FreeSoftwareJourney.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <!-- 2022-12-09 Fri 16:32 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>&lrm;</title>
  10. <meta name="generator" content="Org mode" />
  11. <meta name="author" content="Girish M" />
  12. <style type="text/css">
  13. <!--/*--><![CDATA[/*><!--*/
  14. .title { text-align: center;
  15. margin-bottom: .2em; }
  16. .subtitle { text-align: center;
  17. font-size: medium;
  18. font-weight: bold;
  19. margin-top:0; }
  20. .todo { font-family: monospace; color: red; }
  21. .done { font-family: monospace; color: green; }
  22. .priority { font-family: monospace; color: orange; }
  23. .tag { background-color: #eee; font-family: monospace;
  24. padding: 2px; font-size: 80%; font-weight: normal; }
  25. .timestamp { color: #bebebe; }
  26. .timestamp-kwd { color: #5f9ea0; }
  27. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  28. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  29. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  30. .underline { text-decoration: underline; }
  31. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  32. p.verse { margin-left: 3%; }
  33. pre {
  34. border: 1px solid #ccc;
  35. box-shadow: 3px 3px 3px #eee;
  36. padding: 8pt;
  37. font-family: monospace;
  38. overflow: auto;
  39. margin: 1.2em;
  40. }
  41. pre.src {
  42. position: relative;
  43. overflow: visible;
  44. padding-top: 1.2em;
  45. }
  46. pre.src:before {
  47. display: none;
  48. position: absolute;
  49. background-color: white;
  50. top: -10px;
  51. right: 10px;
  52. padding: 3px;
  53. border: 1px solid black;
  54. }
  55. pre.src:hover:before { display: inline;}
  56. /* Languages per Org manual */
  57. pre.src-asymptote:before { content: 'Asymptote'; }
  58. pre.src-awk:before { content: 'Awk'; }
  59. pre.src-C:before { content: 'C'; }
  60. /* pre.src-C++ doesn't work in CSS */
  61. pre.src-clojure:before { content: 'Clojure'; }
  62. pre.src-css:before { content: 'CSS'; }
  63. pre.src-D:before { content: 'D'; }
  64. pre.src-ditaa:before { content: 'ditaa'; }
  65. pre.src-dot:before { content: 'Graphviz'; }
  66. pre.src-calc:before { content: 'Emacs Calc'; }
  67. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  68. pre.src-fortran:before { content: 'Fortran'; }
  69. pre.src-gnuplot:before { content: 'gnuplot'; }
  70. pre.src-haskell:before { content: 'Haskell'; }
  71. pre.src-hledger:before { content: 'hledger'; }
  72. pre.src-java:before { content: 'Java'; }
  73. pre.src-js:before { content: 'Javascript'; }
  74. pre.src-latex:before { content: 'LaTeX'; }
  75. pre.src-ledger:before { content: 'Ledger'; }
  76. pre.src-lisp:before { content: 'Lisp'; }
  77. pre.src-lilypond:before { content: 'Lilypond'; }
  78. pre.src-lua:before { content: 'Lua'; }
  79. pre.src-matlab:before { content: 'MATLAB'; }
  80. pre.src-mscgen:before { content: 'Mscgen'; }
  81. pre.src-ocaml:before { content: 'Objective Caml'; }
  82. pre.src-octave:before { content: 'Octave'; }
  83. pre.src-org:before { content: 'Org mode'; }
  84. pre.src-oz:before { content: 'OZ'; }
  85. pre.src-plantuml:before { content: 'Plantuml'; }
  86. pre.src-processing:before { content: 'Processing.js'; }
  87. pre.src-python:before { content: 'Python'; }
  88. pre.src-R:before { content: 'R'; }
  89. pre.src-ruby:before { content: 'Ruby'; }
  90. pre.src-sass:before { content: 'Sass'; }
  91. pre.src-scheme:before { content: 'Scheme'; }
  92. pre.src-screen:before { content: 'Gnu Screen'; }
  93. pre.src-sed:before { content: 'Sed'; }
  94. pre.src-sh:before { content: 'shell'; }
  95. pre.src-sql:before { content: 'SQL'; }
  96. pre.src-sqlite:before { content: 'SQLite'; }
  97. /* additional languages in org.el's org-babel-load-languages alist */
  98. pre.src-forth:before { content: 'Forth'; }
  99. pre.src-io:before { content: 'IO'; }
  100. pre.src-J:before { content: 'J'; }
  101. pre.src-makefile:before { content: 'Makefile'; }
  102. pre.src-maxima:before { content: 'Maxima'; }
  103. pre.src-perl:before { content: 'Perl'; }
  104. pre.src-picolisp:before { content: 'Pico Lisp'; }
  105. pre.src-scala:before { content: 'Scala'; }
  106. pre.src-shell:before { content: 'Shell Script'; }
  107. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  108. /* additional language identifiers per "defun org-babel-execute"
  109. in ob-*.el */
  110. pre.src-cpp:before { content: 'C++'; }
  111. pre.src-abc:before { content: 'ABC'; }
  112. pre.src-coq:before { content: 'Coq'; }
  113. pre.src-groovy:before { content: 'Groovy'; }
  114. /* additional language identifiers from org-babel-shell-names in
  115. ob-shell.el: ob-shell is the only babel language using a lambda to put
  116. the execution function name together. */
  117. pre.src-bash:before { content: 'bash'; }
  118. pre.src-csh:before { content: 'csh'; }
  119. pre.src-ash:before { content: 'ash'; }
  120. pre.src-dash:before { content: 'dash'; }
  121. pre.src-ksh:before { content: 'ksh'; }
  122. pre.src-mksh:before { content: 'mksh'; }
  123. pre.src-posh:before { content: 'posh'; }
  124. /* Additional Emacs modes also supported by the LaTeX listings package */
  125. pre.src-ada:before { content: 'Ada'; }
  126. pre.src-asm:before { content: 'Assembler'; }
  127. pre.src-caml:before { content: 'Caml'; }
  128. pre.src-delphi:before { content: 'Delphi'; }
  129. pre.src-html:before { content: 'HTML'; }
  130. pre.src-idl:before { content: 'IDL'; }
  131. pre.src-mercury:before { content: 'Mercury'; }
  132. pre.src-metapost:before { content: 'MetaPost'; }
  133. pre.src-modula-2:before { content: 'Modula-2'; }
  134. pre.src-pascal:before { content: 'Pascal'; }
  135. pre.src-ps:before { content: 'PostScript'; }
  136. pre.src-prolog:before { content: 'Prolog'; }
  137. pre.src-simula:before { content: 'Simula'; }
  138. pre.src-tcl:before { content: 'tcl'; }
  139. pre.src-tex:before { content: 'TeX'; }
  140. pre.src-plain-tex:before { content: 'Plain TeX'; }
  141. pre.src-verilog:before { content: 'Verilog'; }
  142. pre.src-vhdl:before { content: 'VHDL'; }
  143. pre.src-xml:before { content: 'XML'; }
  144. pre.src-nxml:before { content: 'XML'; }
  145. /* add a generic configuration mode; LaTeX export needs an additional
  146. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  147. pre.src-conf:before { content: 'Configuration File'; }
  148. table { border-collapse:collapse; }
  149. caption.t-above { caption-side: top; }
  150. caption.t-bottom { caption-side: bottom; }
  151. td, th { vertical-align:top; }
  152. th.org-right { text-align: center; }
  153. th.org-left { text-align: center; }
  154. th.org-center { text-align: center; }
  155. td.org-right { text-align: right; }
  156. td.org-left { text-align: left; }
  157. td.org-center { text-align: center; }
  158. dt { font-weight: bold; }
  159. .footpara { display: inline; }
  160. .footdef { margin-bottom: 1em; }
  161. .figure { padding: 1em; }
  162. .figure p { text-align: center; }
  163. .inlinetask {
  164. padding: 10px;
  165. border: 2px solid gray;
  166. margin: 10px;
  167. background: #ffffcc;
  168. }
  169. #org-div-home-and-up
  170. { text-align: right; font-size: 70%; white-space: nowrap; }
  171. textarea { overflow-x: auto; }
  172. .linenr { font-size: smaller }
  173. .code-highlighted { background-color: #ffff00; }
  174. .org-info-js_info-navigation { border-style: none; }
  175. #org-info-js_console-label
  176. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  177. .org-info-js_search-highlight
  178. { background-color: #ffff00; color: #000000; font-weight: bold; }
  179. .org-svg { width: 90%; }
  180. /*]]>*/-->
  181. </style>
  182. <script type="text/javascript">
  183. /*
  184. @licstart The following is the entire license notice for the
  185. JavaScript code in this tag.
  186. Copyright (C) 2012-2019 Free Software Foundation, Inc.
  187. The JavaScript code in this tag is free software: you can
  188. redistribute it and/or modify it under the terms of the GNU
  189. General Public License (GNU GPL) as published by the Free Software
  190. Foundation, either version 3 of the License, or (at your option)
  191. any later version. The code is distributed WITHOUT ANY WARRANTY;
  192. without even the implied warranty of MERCHANTABILITY or FITNESS
  193. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  194. As additional permission under GNU GPL version 3 section 7, you
  195. may distribute non-source (e.g., minimized or compacted) forms of
  196. that code without the copy of the GNU GPL normally required by
  197. section 4, provided you include this license notice and a URL
  198. through which recipients can access the Corresponding Source.
  199. @licend The above is the entire license notice
  200. for the JavaScript code in this tag.
  201. */
  202. <!--/*--><![CDATA[/*><!--*/
  203. function CodeHighlightOn(elem, id)
  204. {
  205. var target = document.getElementById(id);
  206. if(null != target) {
  207. elem.cacheClassElem = elem.className;
  208. elem.cacheClassTarget = target.className;
  209. target.className = "code-highlighted";
  210. elem.className = "code-highlighted";
  211. }
  212. }
  213. function CodeHighlightOff(elem, id)
  214. {
  215. var target = document.getElementById(id);
  216. if(elem.cacheClassElem)
  217. elem.className = elem.cacheClassElem;
  218. if(elem.cacheClassTarget)
  219. target.className = elem.cacheClassTarget;
  220. }
  221. /*]]>*///-->
  222. </script>
  223. </head>
  224. <body>
  225. <div id="content">
  226. <div id="table-of-contents">
  227. <h2>Table of Contents</h2>
  228. <div id="text-table-of-contents">
  229. <ul>
  230. <li><a href="#orgd76f6a4">1. Few ideas:</a></li>
  231. <li><a href="#org86521ba">2. Draft:</a></li>
  232. </ul>
  233. </div>
  234. </div>
  235. <p>
  236. Free software story
  237. </p>
  238. <div id="outline-container-orgd76f6a4" class="outline-2">
  239. <h2 id="orgd76f6a4"><span class="section-number-2">1</span> Few ideas:</h2>
  240. <div class="outline-text-2" id="text-1">
  241. <ul class="org-ul">
  242. <li>the initiation - free software usage, merits and motivation</li>
  243. <li>exclusive use of free software for teaching</li>
  244. <li>examples to include:
  245. <ul class="org-ul">
  246. <li>Online coaching for US students using Jitsi and GNU/Linux
  247. <ul class="org-ul">
  248. <li>Usage of Xournal for whiteboard</li>
  249. </ul></li>
  250. <li>op-mattermost and its usage to advocate free software with
  251. OpenProject</li>
  252. <li>GNU LibreJs contribution and receiving first donation</li>
  253. <li>Savapage stint</li>
  254. </ul></li>
  255. </ul>
  256. <p>
  257. Hints - strong storytelling for all those cases.
  258. </p>
  259. </div>
  260. </div>
  261. <div id="outline-container-org86521ba" class="outline-2">
  262. <h2 id="org86521ba"><span class="section-number-2">2</span> Draft:</h2>
  263. <div class="outline-text-2" id="text-2">
  264. <p>
  265. My motivation to write and contribute to free software work has always
  266. been freedom and money. For me writing (both program and paragraph)
  267. have been a means of income and survival for the last few years.
  268. </p>
  269. <p>
  270. I used to work for big companies before who paid handsomely for writing
  271. proprietary software. The transition to free software was a
  272. challenging one - what led me to it was a bigger cause which was
  273. freedom of users: including myself. I still can't wrap my head around
  274. the notion of 'freedom' as an abstract concept and its applicability
  275. to software. Is software freedom really that important when there are
  276. other freedoms which are constantly at stake? Freedom of speech,
  277. expression, living, movement, identity and so on. All of those matter
  278. more when compared to software freedom. Software freedom may help in
  279. achieving those in some ways, however, it cannot exist as an isolated
  280. moral or ethical principle. Human freedom always takes
  281. center-stage. Also, the notion that 'proprietary software is
  282. fundamentally unethical' is a flawed argument. There are examples of
  283. unethical designs, implementations and usages, however, that cannot
  284. apply for all proprietary software. It cannot be a zero-sum
  285. proposition. Having said that, free software generally are benevolent
  286. and freedom respecting, however, not every user requirement can be and
  287. would be satiated by it.
  288. </p>
  289. <p>
  290. Free software has helped me in learning about software
  291. development, implementation, design, version control, collaboration
  292. and communities. This has definitely been an exciting journey, one
  293. that has lived with me for over a decade now and will continue to
  294. be. Over the last few years, I have met many people who contributed to
  295. free software and have learnt a thing or two from them. The challenges
  296. they face in terms of earning revenue for the work they do. One such
  297. example is Savapage - a Free/Libre Open Source (FLOSS) printing portal founded by
  298. Rijk Ravestein from Netherlands. The project was recognized
  299. (<a href="https://directory.fsf.org/wiki/SavaPage">https://directory.fsf.org/wiki/SavaPage</a>) as free software more than
  300. year ago by the FSF. Even though there were users for Savapage across
  301. all over the world: Africa, Asia and Europe, it wasn't able to make a
  302. decent revenue - not enough for business expansion. I learnt Free
  303. Software Advocacy from Rijk and was introduced to Free Software
  304. Business Practice (<a href="https://wiki.librepractice.org/doku.php">https://wiki.librepractice.org/doku.php</a>). Rijk is a
  305. free software practitioner and helps those who want to adopt free
  306. software practices.
  307. </p>
  308. <p>
  309. My journey of using free software for business started through a
  310. teaching gig that I did for couple of students from US who wanted to
  311. learn Python programming. I used free video communication tool Jitsi
  312. for conducting the sessions. Xournal for whiteboard and notes
  313. creation. Had the complete set up created on Trisquel GNU/Linux
  314. running a Libreboot X200s machine
  315. (<a href="https://girishm.info/MyComputer.html">https://girishm.info/MyComputer.html</a>). This setup used 100% free
  316. software with no proprietary blobs - not even the firmware blobs. I got
  317. paid for the gig and the students were happy to learn more about
  318. computers, free software and programming in the due course as opposed
  319. to what was taught traditionally in their schools using proprietary
  320. counterparts. I still continue to teach those students and am actively
  321. seeking more who can learn about the fundamentals of computer
  322. programming, mathematics and free software. My service was enlisted on
  323. the FSF directory (<a href="https://www.fsf.org/resources/service">https://www.fsf.org/resources/service</a>) for the
  324. same. Apart from that, I had written this free software integration
  325. (<a href="https://sr.ht/~girishm/op-mattermost">https://sr.ht/~girishm/op-mattermost</a>) for OpenProject (a fork of
  326. Redmine) project management tool in Mattermost teams software. The
  327. free software integration needs donations to support its development
  328. infrastructure and implementation of new features despite its recent
  329. sponsorship from OpenProject Foundation, Berlin.
  330. </p>
  331. </div>
  332. </div>
  333. </div>
  334. <div id="postamble" class="status">
  335. <p class="author">Author: Girish M</p>
  336. <p class="date">Created: 2022-12-09 Fri 16:32</p>
  337. <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
  338. </div>
  339. </body>
  340. </html>