From d8575eddbcd41c309fb525a52738cc11a9e937d3 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Sat, 16 May 2015 02:01:09 -0400 Subject: [PATCH] Githubbub! --- docs/about/githubbub.md | 107 +++++++++++++++++++++++++++++++++++ images/github-42.png | Bin 969 -> 1635 bytes images/github-mark-large.png | Bin 0 -> 9112 bytes tpl/.config | 6 +- 4 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 docs/about/githubbub.md create mode 100644 images/github-mark-large.png diff --git a/docs/about/githubbub.md b/docs/about/githubbub.md new file mode 100644 index 0000000..7b0a1c1 --- /dev/null +++ b/docs/about/githubbub.md @@ -0,0 +1,107 @@ +### GitHubbub! GitHub Does Not Value Software Freedom. + +
![GitHub](/images/github-mark-large.png "GitHubbub!")
+ +If you hit this page expecting to have been taken to my GitHub profile, then +this is probably not what you were looking for. But let me tell you why +you're here. + +Before providing a link to something hosted on a service, it is wise to +consider whether doing so is a good idea---whether the service or website +is antithetical to the message you are trying to send to your +readers/visitors, or whether it deserves clarification. There's a little +bit of both here. + + +#### Non-Free JavaScript +[Free software][freesw] guarantees your freedom to study, modify, and share +the software that you use. We value these freedoms on the desktop, so why +should we compromise when websites serve proprietary JavaScript +[just because it creates the illusion of remote execution][whyfreejs]? When +you visit a website that serves JavaScript to the client, your web browser +is automatically [downloading and executing (often without your permission) +untrusted software][jstrap]. If that JavaScript is not +[freely licensed][ilibrejs], then the software running in your web browser +is proprietary. + +**When you visit `github.com`, you download over 200kB of obfuscated code, +much of which is proprietary.** This code provides many website features +that are fairly essential, and *do not work with JavaScript disabled*: + +- Change repository names or descriptions; +- Delete repositories; +- Add an SSH key to your account; +- Fork repositories; +- Create pull requests; +- Enable and disable project features; +- Use the wiki and issue trackers; +- View graphs of statistics; +- And others. + +That is---GitHub forces you to run proprietary software in order to use much +of their website. This is unethical. + +#### Desire To Remain Non-Free +I contacted GitHub back in April 2014, pointing out these concerns and +asking if they would be able to either liberate their JavaScript, or make +GitHub's essential functionality work without JavaScript enabled. The first +response I received was from one of their "JavaScript Developers": + +> Hi Mike, +> +> Thanks for getting in touch with us here. Some of our internal projects are +> specific to running GitHub, and as such will probably remain closed. We do +> make an effort to open source projects that we create that we think would be +> beneficial to the community, some of which is JavaScript. +> +> You can see a list of some of the open source projects that power GitHub +> here: +> +> https://github.com/showcases/projects-that-power-github + +This response is unfortunately misguided: yes, it is good that GitHub +produces free software, but it is a false assumption that their proprietary +code would serve no benefit to the community: the very existence of +their proprietary software +[gives them unjust control over their users][unjust]. Relinquishing that +control is of benefit to the community. + +I replied to the above message, clarifying my point. After receiving no +response, I forwarded the e-mail to GitHub's original founders: [Tom +Preston-Werner][tom], [Chris Wanstrath][chris], and [PJ Hyett][pj]. The +response I received from Chris was blunt and discouraging: + +> Hey Mike, +> +> We have no plans to release github.com's JavaScript as free software at +> this time, nor do we have plans to remove the site's dependence on +> JavaScript. Thanks for the interest. + +The original correspondence is provided here: + +1. [Original request][gh-request] to `support@github.com`, Tom, Chris, and + PJ. +2. [Reply to my original request][gh-request-reply] from one of the developers. +3. [My reply to the developer][gh-request2] providing more information and + asking for a commitment. +4. [Forward of my reply][gh-request3] to Tom, Chris, and PJ, after having + received no response from the developer. +5. [Response from Chris Wanstrath][gh-request3-reply] stating that GitHub + has "no plans" to liberate its JavaScript or "remove the site's + dependence on JavaScript". + + +[freesw]: https://www.gnu.org/philosophy/free-sw.html +[whyfreejs]: https://www.gnu.org/software/easejs/whyfreejs.html +[jstrap]: https://www.gnu.org/philosophy/javascript-trap.html +[librejs]: https://www.gnu.org/software/librejs/free-your-javascript.html +[unjust]: https://www.gnu.org/philosophy/free-software-even-more-important.html +[tom]: https://github.com/mojombo +[chris]: https://github.com/defunkt +[pj]: https://github.com/pjhyett + +[gh-request]: /docs/gh/email-request +[gh-request-reply]: /docs/gh/email-request-reply +[gh-request2]: /docs/gh/email-request2 +[gh-request3]: /docs/gh/email-request3 +[gh-request3-reply]: /docs/gh/email-request3-reply diff --git a/images/github-42.png b/images/github-42.png index d9c1099eb2615d097803fb1ae0ef6e5063894347..0b01d9b81fd8e7bae905e44ba8a17a288e15f2c0 100644 GIT binary patch delta 1596 zcmV-C2E+Nu2jdKoB#|*0e*j1T002k;M#*bF000GiNkl!ywDH{q!_p$;R3iYjRq6J3yl}b4JH~AZXjYzj17uG zVu;2p8xy2@B4gh z!+@9=8!!Gjj0>;{AH#)Mk1?!BG99$=0-na>n8dR<)m3z`H8qg^#(N}r20n!=u^H!L zbilQ~h3D}o?#EwobWpOjL<UUR}w9dJQv%sO>FIA zqJJ;hC~$7Z7dcc>`bgKalKVB`(Huc(EtZ zfgXRxfG??v2&@8Bo+4KBg?C3|b|0sN_%=cn48w&B9V zFXHMRBxkWV8Hd9n%iNFa6On)7)%5JGBsYrH$zvPvHtxj}X#rjA#g|KV8;Q#w@M{=O z-dvSDwz|hQf6d|zBE}{88SE3O5vKcW_42Y@LDw6}M%h8D6Q|u1W8+7<9=!}(2QV}j zkdu+=^6zB~Ah%pKwkB>53@5>_s1E2EKAOJgwrtR1qK{lrcQ53L+k=^?f;OuT>Ziml zT`C+wEB%{-qLLxrltoQc+C7Ed+v{A4rFRkgMK$aUWp zw|sm0tf+bIDcm{K%=2TS71(0_ES?aTtdUkde}YelVMHsfa*l8v=@L1jNZ%sbksH+a zU$bIBao;fB!7p*0`2+n7zA0|vjrg3X4ZkXe5`V!S{2ecgR-~%RA5D(9cZe`uU-Pm6sb3ML~BluqOS{cjmM=|uO!ZFds)}_c^*q=Cc zSl9yW6Rm8~GgpZ4G>KdAnE6cB5u?LB>eKLSdatfJDq}iv+1LGHE|3?x(YwS*r;DAq zR?LOgi?PdUQU2}4KMuC0>WG>c8_)4OfAtMy5j$`*j&y6`x$Q`2^`r;~8_l;TYs4+z zD-QRQcqDxv>b_ftW}athvFr55F0p&B77O`C&}(_)Huju?Y~JbC+oXc>mYBx4w- z1|T{tqDnuad+_z-tOX9}nZwgD*o51~?ao9Pdrh3R!{WldjO_Vbz!v>Frh#KUa#pT%7Xl_Wlc&6Cw=$z|a=m9p{fJKEUm}?AkY@L%v(k5= zP&H*@jQx3h27eZrqhEMxhy=1#f27}?qCK8r5&nHsLwEuD89Lqfiuf--WR8ew$!_8R z001R)MObuXVRU6WV{&C-bY%cCFflbPFf}bPHB>S(Iy5*sG%+nOG&(RatG@tr0000b zbVXQnWMOn=I&E)cX=Zre uSaefwW^{L9a%BKPWN%_+AW3auXJt}lVPtu6$z?nM0000fFM0Y`6jtdU3SR@OV$GSjt_5^|BksTzxEvEWfKPA?7vU=WjyLcqhU3{I*okX! zKUN3$E^Nl*asDn|tCOzH*cDNkOKEH1mjFB-1@sa&U~iJAQLMp}aa~GQ`8gZ+?yQsg ze!PO4QWQ$-#rpWJNd6i8nds68K)vbStUBFky+s4PK0q$Sf(P(E260;eEnhr;g$XYxT zUFEKrkovv zg(l6qTa^k6?Et!fxA0~fU>0x~d+>C0n{OAHvCQ*ZRezPj>gnV^x+hv~Z{p=xWr|-JJ%1#A{2acDZOo!il2dZ=x1~z`^OZh78JhZWY;$wJ|2p;Uvp$#%2RDlr$9VjeQ$DkLDWcjR x)%-zFA#3SDJQnHiO1$sUv5s}DWB(8P2fKF)Y9GQat^fc407*p#PDHLkV1kqpw}b!y diff --git a/images/github-mark-large.png b/images/github-mark-large.png new file mode 100644 index 0000000000000000000000000000000000000000..13d419fa8aa95354e7b5ef94eef5ed218a524900 GIT binary patch literal 9112 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 E2Ud - + See me on GitHub