From cf29488c587334874cf491a01a1f74ba3ac7de45 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 30 Sep 2013 13:46:59 -0400 Subject: Merge branch 'new'. --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..471106b --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Swap and backup files +.*.sw* +.sw* +*~ +Session.vim + +# Generated files +*.html + +#* +#!*/ +#!Makefile +#!*.mdwn +#!*.css +#!.gitignore diff --git a/.htaccess b/.htaccess deleted file mode 100644 index 82f062b..0000000 --- a/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -Options +Includes -XBitHack on diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4095ecd --- /dev/null +++ b/Makefile @@ -0,0 +1,58 @@ +# Makefile +# +# Copyright (C) 2013 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +INDEX = +INDEX_SCRIPT = s|href="\([^:]*\)/"|href="\1/$(INDEX)"|g +DOCUMENT_BASE = +MEDIA_BASE = +SSIFLAGS = -D DOCUMENT_BASE=$(DOCUMENT_BASE) -D MEDIA_BASE=$(MEDIA_BASE) + +srcs = \ + index.mdwn \ + contact.mdwn \ + resume.mdwn \ + guides/index.mdwn \ + guides/shell-workshop/index.mdwn \ + essays/index.mdwn \ + essays/commercial-free-software.mdwn \ + essays/social-networking.mdwn \ + talks/index.mdwn \ + talks/software-contracts/index.mdwn \ + projects/index.mdwn \ + projects/ssic/index.mdwn \ + projects/cgol/index.mdwn \ + projects/screen-batt/index.mdwn \ + projects/changelog-gen/index.mdwn \ + terms.mdwn \ + server.mdwn +objs = $(srcs:.mdwn=.html) + +.SUFFIXES: +.SUFFIXES: .mdwn .html + +all: $(objs) + +local: + $(MAKE) INDEX=index.html DOCUMENT_BASE=$(PWD) MEDIA_BASE=$(PWD) all + +$(objs): Makefile includes/header.html includes/footer.html + +.mdwn.html: + markdown $< | ssic -o - $(SSIFLAGS) - | sed '$(INDEX_SCRIPT)' >$@ + +clean: + rm -f $(objs) diff --git a/contact.html b/contact.html deleted file mode 100755 index f5c9a7b..0000000 --- a/contact.html +++ /dev/null @@ -1,57 +0,0 @@ - - -

Contact Information

-

- The following are ways to contact me, listed in order of my preference. -

-

In Person

-

- I always prefer face-to-face communication over any other medium. If we - don't normally cross paths and you would like to meet with me, please - coordinate a meeting over some other medium (e.g. e-mail). -

-

IRC

-

- I use the Freenode and - OFTC IRC networks. My nick on both - is "pehjota". You can find me in a channel or query me if you'd like. I - generally reply within minutes or hours of contact. However, my IRC client - runs 24 hours a day on this server. So even though I'm online, I may be - asleep, travelling, or otherwise disconnected from my IRC client. I - eventually receive all personal messages, so I should respond sometime - within 24 hours. -

-

E-mail

-

- The Simple Mail Transfer Protocol (SMTP) works very well for verbose - asynchronous communication. You can reach me at - <mailto:pjm@nac.net>. Depending on - the complexity of queries and my schedule, I usually reply to e-mail - messages within a couple of hours or days. -

-

Microblogging

-

- You can also find me using the free and federated StatusNet microblogging - software. My profile is at - <http://identi.ca/pehjota>. -

-

SMS/MMS and Voice

-

- I have a mobile phone and use it to send and receive SMS ("text") messages, - MMS ("picture") messages, and voice calls. I don't publish my phone number, - but I may provide it on request. -

-

- I often find phone calls rather distracting, especially while working. I do - submit, however, that they are useful and often time-saving for - collaborative work, personal arrangements, and business communications. -

-

XMPP/Jabber

-

- My JID is - <xmpp:PehJota@jabber.org>, - but I rarely have my XMPP client running as few people contact me this way. - If you'd like to talk to me over XMPP, you should first let me know via some - other communication medium. -

- diff --git a/contact.mdwn b/contact.mdwn new file mode 100644 index 0000000..0724489 --- /dev/null +++ b/contact.mdwn @@ -0,0 +1,57 @@ + + + +The following are ways to contact me, listed in order of my preference. + +In Person +========= + +I always prefer face-to-face communication over any other medium. If we don't +normally cross paths and you would like to meet with me, please coordinate a +meeting over some other medium (e.g. e-mail). + +IRC +=== + +I use the [Freenode](http://freenode.net/) and [OFTC](http://www.oftc.net/oftc/) +IRC networks. My nick on both is "pehjota". You can find me in a channel or +query me if you'd like. I generally reply within minutes or hours of contact. +However, my IRC client runs 24 hours a day on this server. So even though I'm +online, I may be asleep, travelling, or otherwise disconnected from my IRC +client. I eventually receive all personal messages, so I should respond +sometime within 24 hours. + +E-mail +====== + +The Simple Mail Transfer Protocol (SMTP) works very well for verbose +asynchronous communication. You can reach me at <>. +Depending on the complexity of queries and my schedule, I usually reply to +e-mail messages within a couple of hours or days. + +Microblogging +============= + +You can also find me using the free and federated StatusNet microblogging +software. My profile is at <>. + +SMS/MMS and Voice +================= + +I have a mobile phone and use it to send and receive SMS ("text") messages, MMS +("picture") messages, and voice calls. I don't publish my phone number, but I +may provide it on request. + +I often find phone calls rather distracting, especially while working. I do +submit, however, that they are useful and often time-saving for collaborative +work, personal arrangements, and business communications. + +XMPP/Jabber +=========== + +My JID is <[xmpp:PehJota@jabber.org](xmpp:PehJota@jabber.org)>, but I +rarely have my XMPP client running as few people contact me this way. If you'd +like to talk to me over XMPP, you should first let me know via some other +communication medium. + + diff --git a/essays/commercial-free-software.html b/essays/commercial-free-software.html deleted file mode 100755 index 2a9c724..0000000 --- a/essays/commercial-free-software.html +++ /dev/null @@ -1,351 +0,0 @@ - - -

Commercial Free Software: Not an Oxymoron

-

- TODO: Clean up some wording, consider removing reference to Sencha Inc., - maybe mention Qt "open governance", mention transferable skills under - "Development", discuss application stores under "Distribution", and note - that most money in proprietary software comes from support rather than from - licenses. -

-

- Many people believe that money can't be made in free (as in freedom) - software. They believe that "free" means "noncommercial", and they might - compare "open-source" software and "commercial" software as if the terms - were opposite and mutually exclusive. This is in fact a logical fallacy; - specifically it is a - false - exclusionary disjunct. Software can be both free and commercial. If a - software copyright license allowed only noncommercial dealing, it would be - considered neither free nor open source. -

-

- Free software is in fact used commercially, and successful business models - around free software exist (and have existed longer than those around - proprietary software have). I've generalized the ways in which people make - money with free software into three broad categories: development, support, - and distribution. -

-

- Development -

-

- Modern economic models around free software closely resemble early economic - models around software. Keep in mind that software freedom is as old as - software itself. The "proprietarization", as I call it, of software began - around the 1970s, apparently pioneered by International Business Machines - (IBM). [1] It was furthered by companies like "Micro-Soft" and people like - Bill Gates, who in 1976 published an "Open Letter to Hobbyists" that - criticized people for sharing software without paying for it. [2] Before - that time, software was usually distributed with source code (some - universities even had policies of rejecting software that wasn't). Software - was often distributed either at no cost or at the cost of making and - shipping copies (at the time, on tapes). [3] Programmers were paid for the - time they spent writing software, not for copies of the software itself (or - really, licenses to use the software). [4] We see the same thing happening - today. Programmers are being paid to work on software, and the software is - distributed freely (that is, without unfair restrictions) and often even at - no charge. -

-

- I cite four major examples of this phenomenon of paid development of free - software. The first is Linux, a powerful and reliable high-performance - kernel found in everything from televisions and ATMs to large servers and - supercomputers (in fact, in over 90% of the world's 500 fastest - supercomputers [5]). As of 2010, over 70% of work done on Linux is done by - paid programmers. [6] At least 659 companies have supported the development - of Linux. [7] Compare that to the Windows NT kernel of Microsoft Windows, - the development of which is supported by only one company (the only one - legally allowed to do so). Additionally, AMD's recent hiring of two more - graphics driver developers shows that if you can improve a company's - freely-licensed software, they might hire you to do so officially. [8] -

-

- The next example is Qt, a flexible cross-platform application framework - popular in desktop, server, and embedded applications. [9] Qt is free - software, licensed under the GNU Lesser General Public License (LGPL) - version 2.1. [10] Most of Qt's developers are employed by Qt Development - Frameworks, a subsidiary of Nokia Corporation since 2008. [11] -

-

- My third example is GNAT, a compiler for the Ada programming language that - is now a part of the GNU Compiler Collection (GCC). It was originally - developed by the New York University under a $3-million contract awarded by - the United States Air Force in 1992. Under the requirements of the - contract, copyright on the software was assigned to the Free Software - Foundation and the software was released under the GNU General Public - License (GPL). [12] -

-

- Finally, I cite the GNU Project, a project announced in 1983 with the - now-successful goal of creating a complete free operating system. The Free - Software Foundation, Inc., a non-profit organization founded by Dr. Richard - Stallman in 1985 to support the development of free software, hired - programmers to work on parts of the GNU system. GNU Bash (a popular and - user-friendly command shell now used in systems like GNU/Linux and Apple - Mac OS X), GLIBC (a C library), and GNU tar (an archiving program) were all - initially developed by paid programmers. [13] Yet all are free software, - and all are distributed often at no charge. -

-

- But you may think this doesn't make any sense. Why do companies pay for the - development of software for which few people pay? They must be losing lots - of money. Actually, they have a financial interest in having high-quality - software available, even if few or no people actually pay for it (but - remember that free software is a matter of freedom, not price). Many - companies sell support for free software; we'll see more about this later. - Many companies sell hardware with which free software is run (servers, - wireless network adapters, digital cameras, mobile phones, televisions, - cars, commercial airplanes, etc.). Many companies see free software as a - way to save time and money and not have to reinvent the wheel. If you want - something that serves a similar but not identical function as a proprietary - program does, you have to write a new program from scratch; a free program, - on the other hand, can simply be adapted to a new purpose. I suspect this - is part of AMD's motivation in supporting Coreboot, a free bootloader that - is faster and more flexible than proprietary BIOSes, in their server and - embedded products. [14][15][16] -

-

- Finally, most software is custom software, software that is written for a - single person or company and not meant to be released. This software is - technically commercial and often free in a trivial sense. If there's one - user, and that user has the rights to the software, then the software is - free for all its users. [13][17] -

-

- Support -

-

- With proprietary software, only the copyright holder is allowed to - understand it, and only they are allowed to support it. Support of - proprietary software is a monopoly. (And as it turns out, this allows - something like extortion. A phone call to Microsoft about Windows XP costs - $59; an e-mail costs $49. And soon they'll discontinue support for Windows - XP completely. [18] You have to pay to report a bug, then pay for an - "upgrade" to see if they've fixed it. [13]) With free software, everyone is - allowed to understand it and support it. Support of free software is a - free market. [13] There is competition in free software support. - Companies and individuals must please their clients, because their clients - are free to go elsewhere for support. -

-

- Individuals make money from making changes to free programs. They can - support their own programs (in fact, Richard Stallman made a lot of money - doing this, more than he ever did before [13]) or anyone else's free - programs. Again, like the earliest programmers, these individuals are paid - for doing work, not for the results of their work. The results of their - work are usually free software that does what their clients want it to do. -

-

- Individuals and companies sell consulting services and support contracts - for free software. The first company to officially do so was Cygnus - Solutions, founded in 1989. Cygnus maintained many parts of the GNU - development toolchain and offered commercial support for GNU software. - Between 1999 and 2000, Cygnus merged with Red Hat, Inc. [19][20] Red Hat - sells support for GNU/Linux, and its revenue is expected to reach $1 - billion this year, an impressive record. [21][22] Canonical Ltd., founded - in 2004, maintains and supports a number of free software projects, - including the Ubuntu GNU/Linux operating system. [23] Nokia Corporation - used to provide official support for the Qt framework, but earlier this - year it sold this support business to Digia Plc. [24] Digia is one of 27 - "Qt Partners", companies that work with Nokia to provide commercial support - for Qt. [25] AdaCore is a company run by the original developers of GNAT, - the aforementioned Ada compiler commissioned by the U.S. Air Force. AdaCore - has been officially supporting GNAT since 1994. [12][26] - Sencha Inc. also offers support for its own free software. - [27] The Debian project has a list of 824 consultants in 63 countries who - support the use of Debian GNU operating systems. [28] The Free Software - Foundation lists 86 individuals and companies offering support services in - free software. [29] Clearly, there is a successful business model here -- - one based in a free market. -

-

- Distribution -

-

- Additionally, some people sell free software. That is, they charge a fee - for distribution, even of other people's work. How is this morally - acceptable? A person can profit from someone else's hard work? Well, it may - go against the traditional free software economic model of paying for time - spent on work instead of for copies of the results of that work. But it's - not inherently unethical or even illegal. In fact, software licenses must - allow this practice in order to be considered free licenses. [30] In some - cases, there is a cost in making and distributing copies of software (e.g. - the cost of burning and shipping CDs). Or people may just want to earn some - money for performing a moral act (sharing freedom) and maybe even - contribute some of the profit back to the developers. [31] In the 1980s, - Richard Stallman himself charged a fee for copies of GNU Emacs (a text - editor he wrote) that he shipped on tape. In doing so, he made about $1300 - per month, a respectable income from something that's "free"! [13] -

-

- Conclusion -

-

- In short, programmers have always had ways to earn money with free - software, even before proprietary software existed. Most programmers who - write free software are in fact paid for their work, in a variety of ways. - The difference in free and proprietary software economic models is that - copyright holders (not necessarily even the developers) of proprietary - software profit from restricting users, while free software developers make - money in more ethical ways. Free software programmers are usually paid for - the time spent writing software, not for copies of the software (or more - accurately, the right to use the software). -

-

- References: -

-
    -
  1. - "Proprietary Software". Wikipedia. July 10, 2011. - <http://en.wikipedia.org/wiki/Proprietary_software>. -
  2. -
  3. - "Open Letter to Hobbyists". Wikipedia. July 6, 2011. - <http://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists>. -
  4. -
  5. - Williams, Sam. "For Want of a Printer". Free as in Freedom. 2002: - O'Reilly. - <http://oreilly.com/openbook/freedom/ch01.html>. -
  6. -
  7. - The Codebreakers. 2006: Asia Pacific Development Information - Programme. Aired on BBC World. - <http://www.apdip.net/news/fossdoc>, - <http://www.archive.org/details/The-Codebreakers>. -
  8. -
  9. - "Operating system Family share for 11/2010". Top500 Supercomputing - Sites. Top500.Org. - <http://www.top500.org/stats/list/36/osfam>. -
  10. -
  11. - Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda. "Who is - Sponsoring the Work". Linux Kernel Development: How Fast it is Going, Who - is Doing It, What They are Doing, and Who is Sponsoring It. 2010: The - Linux Foundation. - <http://www.linuxfoundation.org/docs/lf_linux_kernel_development_2010.pdf>. - 12-13. -
  12. -
  13. - Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda. "Who is - Doing the Work". Linux Kernel Development: How Fast it is Going, Who is - Doing It, What They are Doing, and Who is Sponsoring It. 2010: The Linux - Foundation. - <http://www.linuxfoundation.org/docs/lf_linux_kernel_development_2010.pdf>. - 10. -
  14. -
  15. - Larabel, Michael. "AMD's New Open-Source Employees". Phoronix. July 5, - 2011. - <http://www.phoronix.com/scan.php?page=news_item&px=OTYzOA>. -
  16. -
  17. - "Qt (framework)". Wikipedia. July 13, 2011. - <http://en.wikipedia.org/wiki/Qt_%28framework%29>. -
  18. -
  19. - "Qt Licensing". Nokia Corporation. - <http://qt.nokia.com/products/licensing>. -
  20. -
  21. - "Qt Development Frameworks". Wikipedia. July 8, 2011. - <http://en.wikipedia.org/wiki/Qt_Development_Frameworks>. -
  22. -
  23. - "GNAT". Wikipedia. May 9, 2011. - <http://en.wikipedia.org/wiki/GNAT>. -
  24. -
  25. - Stallman, Richard. "Free Software: Freedom and Cooperation". GNU - Project. Free Software Foundation, Inc. July 13, 2011. - <http://www.gnu.org/events/rms-nyu-2001-transcript.html>. -
  26. -
  27. - "Coreboot and Open Source Development". Business Blog. Advanced Micro - Devices, Inc. February 28, 2011. - <http://blogs.amd.com/work/2011/02/28/amd-coreboot/>. -
  28. -
  29. - "AMD to use Coreboot in Llano, other upcoming parts". Fudzilla. May 10, - 2011. - <http://www.fudzilla.com/home/item/22677-amd-to-use-coreboot-in-llano-other-upcoming-parts>. -
  30. -
  31. - "Benefits". coreboot. January 15, 2008. - <http://www.coreboot.org/Benefits>. -
  32. -
  33. - "Categories of Free and Nonfree Software". GNU Project. Free Software - Foundation, Inc. July 13, 2011. - <http://www.gnu.org/philosophy/categories.html#PrivateSoftware>. -
  34. -
  35. - "Support Options". Microsoft Support. Microsoft Corporation. (No - portable URI. Go to - <https://support.microsoft.com/oas/default.aspx?gprid=1173&st=1&wfxredirect=1&sd=gn>, - click "Microsoft Windows XP Home Edition", select "Other", and - click "Continue".) -
  36. -
  37. - "Cygnus Solutions". Wikipedia. June 8, 2011. - <http://en.wikipedia.org/wiki/Cygnus_Solutions>. -
  38. -
  39. - "Marketing Cygnus Support -- Free Software history". September 27, - 2006. - <http://www.toad.com/gnu/cygnus/>. -
  40. -
  41. - Woods, Dan. "Red Hat At $1 Billion". CIO Central. Forbes.com LLC. - November 30, 2010. - <http://blogs.forbes.com/ciocentral/2010/11/30/red-hat-at-1-billion/>. -
  42. -
  43. - Dignan, Larry. "Red Hat: Nearing $1 billion in revenue; Not bad for - free software". ZDNet. CBS Interactive. March 23, 2011. - <http://www.zdnet.com/blog/btl/red-hat-nearing-1-billion-in-revenue-not-bad-for-free-software/46445>. -
  44. -
  45. - "Canonical Ltd.". Wikipedia. June 12, 2011. - <http://en.wikipedia.org/wiki/Canonical_Ltd.>. -
  46. -
  47. - Nystrom, Sebastian. "Nokia and Digia working together to grow the Qt - community". The Qt Blog. Nokia Corporation. March 7, 2011. - <http://blog.qt.nokia.com/2011/03/07/nokia-and-digia-working-together/>. -
  48. -
  49. - "Partner Locator". Nokia Corporation. - <http://qt.nokia.com/partners/partner-locator>. -
  50. -
  51. - "AdaCore". Wikipedia. May 20, 2011. - <http://en.wikipedia.org/wiki/AdaCore>. -
  52. -
  53. - "Company". Sencha. Sencha Inc. - <http://www.sencha.com/company/>. -
  54. -
  55. - "Consultants". Debian Project. July 11, 2011. - <http://www.debian.org/consultants/>. -
  56. -
  57. - Sullivan, John. "Service Directory". Free Software Foundation, Inc. - April 14, 2011. - <http://www.fsf.org/resources/service/>. -
  58. -
  59. - "The Free Software Definition". GNU Project. Free Software - Foundation, Inc. July 13, 2011. - <http://www.gnu.org/philosophy/free-sw.html>. -
  60. -
  61. - "Selling Free Software". GNU Project. Free Software Foundation, Inc. - July 13, 2011. - <http://www.gnu.org/philosophy/selling.html>. -
  62. -
- diff --git a/essays/commercial-free-software.mdwn b/essays/commercial-free-software.mdwn new file mode 100644 index 0000000..c71e4ab --- /dev/null +++ b/essays/commercial-free-software.mdwn @@ -0,0 +1,267 @@ + + + +TODO: Clean up some wording, consider removing reference to Sencha Inc., maybe +mention Qt "open governance", mention transferable skills under "Development", +discuss application stores under "Distribution", and note that most money in +proprietary software comes from support rather than from licenses. + +Many people believe that money can't be made in free (as in freedom) software. +They believe that "free" means "noncommercial", and they might compare +"open-source" software and "commercial" software as if the terms were opposite +and mutually exclusive. This is in fact a logical fallacy; specifically it is a +[false exclusionary disjunct][fed]. Software can be both free and commercial. +If a software copyright license allowed only noncommercial dealing, it would be +considered neither free nor open source. + +Free software is in fact used commercially, and successful business models +around free software exist (and have existed longer than those around +proprietary software have). I've generalized the ways in which people make money +with free software into three broad categories: development, support, and +distribution. + +[fed]: http://en.wikipedia.org/wiki/Affirming_a_disjunct + +Development +=========== + +Modern economic models around free software closely resemble early economic +models around software. Keep in mind that software freedom is as old as software +itself. The "proprietarization", as I call it, of software began around the +1970s, apparently pioneered by International Business Machines (IBM). [1] It +was furthered by companies like "Micro-Soft" and people like Bill Gates, who in +1976 published an "Open Letter to Hobbyists" that criticized people for sharing +software without paying for it. [2] Before that time, software was usually +distributed with source code (some universities even had policies of rejecting +software that wasn't). Software was often distributed either at no cost or at +the cost of making and shipping copies (at the time, on tapes). [3] Programmers +were paid for the time they spent writing software, not for copies of the +software itself (or really, licenses to use the software). [4] We see the same +thing happening today. Programmers are being paid to work on software, and the +software is distributed freely (that is, without unfair restrictions) and often +even at no charge. + +I cite four major examples of this phenomenon of paid development of free +software. The first is Linux, a powerful and reliable high-performance kernel +found in everything from televisions and ATMs to large servers and +supercomputers (in fact, in over 90% of the world's 500 fastest supercomputers +[5]). As of 2010, over 70% of work done on Linux is done by paid programmers. +[6] At least 659 companies have supported the development of Linux. [7] +Compare that to the Windows NT kernel of Microsoft Windows, the development of +which is supported by only one company (the only one legally allowed to do so). +Additionally, AMD's recent hiring of two more graphics driver developers shows +that if you can improve a company's freely-licensed software, they might hire +you to do so officially. [8] + +The next example is Qt, a flexible cross-platform application framework popular +in desktop, server, and embedded applications. [9] Qt is free software, +licensed under the GNU Lesser General Public License (LGPL) version 2.1. [10] +Most of Qt's developers are employed by Qt Development Frameworks, a subsidiary +of Nokia Corporation since 2008. [11] + +My third example is GNAT, a compiler for the Ada programming language that is +now a part of the GNU Compiler Collection (GCC). It was originally developed by +the New York University under a $3-million contract awarded by the United States +Air Force in 1992. Under the requirements of the contract, copyright on the +software was assigned to the Free Software Foundation and the software was +released under the GNU General Public License (GPL). [12] + +Finally, I cite the GNU Project, a project announced in 1983 with the +now-successful goal of creating a complete free operating system. The Free +Software Foundation, Inc., a non-profit organization founded by Dr. Richard +Stallman in 1985 to support the development of free software, hired programmers +to work on parts of the GNU system. GNU Bash (a popular and user-friendly +command shell now used in systems like GNU/Linux and Apple Mac OS X), GLIBC (a +C library), and GNU tar (an archiving program) were all initially developed by +paid programmers. [13] Yet all are free software, and all are distributed often +at no charge. + +But you may think this doesn't make any sense. Why do companies pay for the +development of software for which few people pay? They must be losing lots of +money. Actually, they have a financial interest in having high-quality software +available, even if few or no people actually pay for it (but remember that free +software is a matter of freedom, not price). Many companies sell support for +free software; we'll see more about this later. Many companies sell hardware +with which free software is run (servers, wireless network adapters, digital +cameras, mobile phones, televisions, cars, *commercial airplanes*, etc.). Many +companies see free software as a way to save time and money and not have to +reinvent the wheel. If you want something that serves a similar but not +identical function as a proprietary program does, you have to write a new +program from scratch; a free program, on the other hand, can simply be adapted +to a new purpose. I suspect this is part of AMD's motivation in supporting +Coreboot, a free bootloader that is faster and more flexible than proprietary +BIOSes, in their server and embedded products. [14][15][16] + +Finally, most software is custom software, software that is written for a single +person or company and not meant to be released. This software is technically +commercial and often free in a trivial sense. If there's one user, and that user +has the rights to the software, then the software is free for all its users. +[13][17] + +Support +======= + +With proprietary software, only the copyright holder is allowed to understand +it, and only they are allowed to support it. Support of proprietary software is +a *monopoly*. (And as it turns out, this allows something like extortion. A +phone call to Microsoft about Windows XP costs $59; an e-mail costs $49. And +soon they'll discontinue support for Windows XP completely. [18] You have to +pay to report a bug, then pay for an "upgrade" to see if they've fixed it. [13]) With free software, everyone is allowed to understand it and support it. +Support of free software is a *free market*. [13] There is competition in free +software support. Companies and individuals must please their clients, because +their clients are free to go elsewhere for support. + +Individuals make money from making changes to free programs. They can support +their own programs (in fact, Richard Stallman made a lot of money doing this, +more than he ever did before [13]) or anyone else's free programs. Again, like +the earliest programmers, these individuals are paid for doing work, not for the +results of their work. The results of their work are usually free software that +does what their clients want it to do. + +Individuals and companies sell consulting services and support contracts for +free software. The first company to officially do so was Cygnus Solutions, +founded in 1989. Cygnus maintained many parts of the GNU development toolchain +and offered commercial support for GNU software. Between 1999 and 2000, Cygnus +merged with Red Hat, Inc. [19][20] Red Hat sells support for GNU/Linux, and its +revenue is expected to reach $1 billion this year, an impressive record. +[21][22] Canonical Ltd., founded in 2004, maintains and supports a number of +free software projects, including the Ubuntu GNU/Linux operating system. [23] +Nokia Corporation used to provide official support for the Qt framework, but +earlier this year it sold this support business to Digia Plc. [24] Digia is one +of 27 "Qt Partners", companies that work with Nokia to provide commercial +support for Qt. [25] AdaCore is a company run by the original developers of +GNAT, the aforementioned Ada compiler commissioned by the U.S. Air Force. +AdaCore has been officially supporting GNAT since 1994. [12][26] Sencha Inc. +also offers support for its own free software. [27] The Debian project has a +list of 824 consultants in 63 countries who support the use of Debian GNU +operating systems. [28] The Free Software Foundation lists 86 individuals and +companies offering support services in free software. [29] Clearly, there is a +successful business model here -- one based in a free market. + +Distribution +============ + +Additionally, some people sell free software. That is, they charge a fee for +distribution, even of other people's work. How is this morally acceptable? A +person can profit from someone else's hard work? Well, it may go against the +traditional free software economic model of paying for time spent on work +instead of for copies of the results of that work. But it's not inherently +unethical or even illegal. In fact, software licenses must allow this practice +in order to be considered free licenses. [30] In some cases, there is a cost +in making and distributing copies of software (e.g. the cost of burning and +shipping CDs). Or people may just want to earn some money for performing a +moral act (sharing freedom) and maybe even contribute some of the profit back to +the developers. [31] In the 1980s, Richard Stallman himself charged a fee for +copies of GNU Emacs (a text editor he wrote) that he shipped on tape. In doing +so, he made about $1300 per month, a respectable income from something that's +"free"! [13] + +Conclusion +========== + +In short, programmers have always had ways to earn money with free software, +even before proprietary software existed. Most programmers who write free +software are in fact paid for their work, in a variety of ways. The difference +in free and proprietary software economic models is that copyright holders (not +necessarily even the developers) of proprietary software profit from restricting +users, while free software developers make money in more ethical ways. Free +software programmers are usually paid for the time spent writing software, not +for copies of the software (or more accurately, the right to use the software). + +References: +=========== + +1. "Proprietary Software". Wikipedia. July + 10, 2011. <>. +2. "Open Letter to Hobbyists". Wikipedia. + July 6, 2011. + <>. +3. Williams, Sam. "For Want of a Printer". Free as + in Freedom. 2002: O'Reilly. + <>. +4. The Codebreakers. 2006: Asia Pacific + Development Information Programme. Aired on BBC World. + <>, + <>. +5. "Operating system Family share for 11/2010". + Top500 Supercomputing Sites. Top500.Org. + <>. +6. Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda. "Who is + Sponsoring the Work". Linux Kernel Development: + How Fast it is Going, Who is Doing It, What They are Doing, and Who is + Sponsoring It. 2010: The Linux Foundation. + <>. + 12-13. +7. Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda. "Who is + Doing the Work". Linux Kernel Development: How + Fast it is Going, Who is Doing It, What They are Doing, and Who is + Sponsoring It. 2010: The Linux Foundation. + <>. + 10. +8. Larabel, Michael. "AMD's New Open-Source Employees". + Phoronix. July 5, 2011. + <>. +9. "Qt (framework)". Wikipedia. July + 13, 2011. <>. +10. "Qt Licensing". Nokia Corporation. + <>. +11. "Qt Development Frameworks". Wikipedia. + July 8, 2011. + <>. +12. "GNAT". Wikipedia. May 9, 2011. + <>. +13. Stallman, Richard. "Free Software: Freedom and Cooperation". + GNU Project. Free Software Foundation, Inc. + July 13, 2011. + <>. +14. "Coreboot and Open Source Development". Business + Blog. Advanced Micro Devices, Inc. February 28, 2011. + <>. +15. "AMD to use Coreboot in Llano, other upcoming parts". Fudzilla. May 10, + 2011. + <>. +16. "Benefits". coreboot. January 15, 2008. + <>. +17. "Categories of Free and Nonfree Software". GNU + Project. Free Software Foundation, Inc. July 13, 2011. + <>. +18. "Support Options". Microsoft Support. + Microsoft Corporation. (No portable URI. Go to + <>, + click "Microsoft Windows XP Home Edition", select "Other", and click + "Continue".) +19. "Cygnus Solutions". Wikipedia. June + 8, 2011. <>. +20. "Marketing Cygnus Support -- Free Software history". September 27, 2006. + <>. +21. Woods, Dan. "Red Hat At $1 Billion". CIO + Central. Forbes.com LLC. November 30, 2010. + <>. +22. Dignan, Larry. "Red Hat: Nearing $1 billion in revenue; Not bad for free + software". ZDNet. CBS Interactive. March + 23, 2011. + <>. +23. "Canonical Ltd.". Wikipedia. June + 12, 2011. <>. +24. Nystrom, Sebastian. "Nokia and Digia working together to grow the Qt + community". The Qt Blog. Nokia + Corporation. March 7, 2011. + <>. +25. "Partner Locator". Nokia Corporation. + <>. +26. "AdaCore". Wikipedia. May 20, 2011. + <>. +27. "Company". Sencha. Sencha Inc. + <>. +28. "Consultants". Debian Project. July 11, 2011. + <>. +29. Sullivan, John. "Service Directory". Free Software Foundation, Inc. April + 14, 2011. <>. +30. "The Free Software Definition". GNU + Project. Free Software Foundation, Inc. July 13, 2011. + <>. +31. "Selling Free Software". GNU Project. Free + Software Foundation, Inc. July 13, 2011. + <>. + + diff --git a/essays/index.html b/essays/index.html deleted file mode 100755 index 81a2ff6..0000000 --- a/essays/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - -

Essays

-

- Here you will find essays containing facts and opinions about computing - freedom and ethics, U.S. and international copyright law, and GNU/Linux. -

-

Computing Freedom and Ethics

- -

Copyright Law

- diff --git a/essays/index.mdwn b/essays/index.mdwn new file mode 100644 index 0000000..2ba7df5 --- /dev/null +++ b/essays/index.mdwn @@ -0,0 +1,18 @@ + + + +Here you will find essays containing facts and opinions about computing freedom +and ethics, U.S. and international copyright law, and GNU/Linux. + +Computing Freedom and Ethics +============================ + + * [Commercial Free Software: Not an Oxymoron](commercial-free-software.html) + * [On Facebook, Google+, and Ethical Social + Networking](social-networking.html) + * Software as a Service: Lost in the Cloud + +Copyright Law +============= + + diff --git a/essays/social-networking.html b/essays/social-networking.html deleted file mode 100755 index 47acb13..0000000 --- a/essays/social-networking.html +++ /dev/null @@ -1,350 +0,0 @@ - - -

On Facebook, Google+, and Ethical Social Networking

-

- TO COME: An introduction and a section on Google+. -

-

The Ethics of Facebook

-

- Facebook shares their users' personal information with third parties. - They use mere Web site design changes as an excuse to revert users' - privacy settings to unsafe defaults. Their social platform has huge - security holes that allow personal information to be leaked. One such - hole made some users' private chats accessible to all of their contacts. - Facebook also exposes users to malware and identity theft. [1] They - make it easy for application developers to collect personal information. - [2] The Wall Street Journal found that these application developers - collect this personal information, link it with other information, and - sell it to others. [3] -

-

- In general, Facebook has always operated on an opt-out basis. In some - cases, you can actually disable third-party access to your information. - But you must always be on the lookout for new "features" or changes to - privacy settings. Facebook always changes the way it collects - information, and it catches many people unaware. But it's impossible to - opt out of things you don't even know about. Recently, Facebook added a - feature they call "tag suggestions". If you have photos on your - profile, Facebook can pick out people's faces and suggest names for - them. This may sound useful, but it's the tip of an almost nightmarish - ethics iceberg in information systems. Facebook uses facial recognition - software to make this work; they scan already-tagged photos and record - distinguishing facial features and then find photos with similar faces - and give them names. They maintain a database of people's facial - features. They never notified anyone about this database. They never - asked users if they could record this information. Instead, of course, - they made it an opt-out feature; you have to explicitly disable this - hidden feature to keep your facial information out of the database. - This new feature has even sparked an investigation by the European - Union. [4][5] But just imagine what Facebook could do with this - information (and consider their track record with personal information). - I suspect they may soon start selling facial data to other companies, - law enforcement agencies, and oppressive governments (I've heard that - the U.K. once used video camera footage to locate and arrest protesters, - so imagine what they could do with facial data). -

-

- Basically, Facebook is a business. And you are not their customer. You - are their product. They are, in fact, selling their products to - advertisers. That is, they use a person's face (without getting - permission and without paying anything) to advertise things to that - person's friends. Claim to like something, and you've given a product - endorsement at a price advertising agencies would love. [6] -

-

- And they also seem to like selling out their users to governments and - limiting what their users can read and say. After their recent - collaboration with Chinese partners, the Facebook platform was allowed - into China under political censorship. At the time, Facebook lobbyist - Adam Conner remarked, "we're allowing too much, maybe, free speech". - [7][8] The Associated Press reported last month that Facebook sold out - hundreds of peaceful pro-Palestinian activists who had been organizing - events through the social platform. Facebook allowed governments to - track its users' activities. As a result, more than 300 peaceful - activists were added to airline terrorism watch lists and denied the - right to leave their countries. International air travel was disrupted - as planes from Geneva and Italy were diverted for security inspections. - 310 people were detained after landing in Israel on their way to stand - with Palestinians in a peaceful mission of solidarity and fact-finding. - [9][10] Imagine what might have happened if Facebook (and widespread - publicly-accessible computer networks for that matter) existed during - the civil rights movement. Would there be racial equality in the United - States today? Or would peaceful protesters organizing events have been - sold out and arrested before they could even meet? -

-

- But it seems you don't even have to use Facebook to get tracked by - Facebook. Everyone who sees a "Like" button somewhere on the Web (as - I'm sure you have) can be tracked. Facebook has the ability to map out - the browsing behavior of a massive number (a number that grows by tens - of millions each month) of Web users, even those who don't use Facebook. - [11] Again, imagine what they could do with such vast amounts of - information. -

-

- Things like these gaping holes in privacy, devious information - collection practices, abuse of users, censorship, and tracking inspired - Matt Lee, campaigns manager, and John Sullivan, executive director, of - the Free Software Foundation to write about Facebook's poor track record - with privacy and create rather amusing "Dislike" and "not f'd" buttons. [12] -

-

Ethical Social Networking

-

- TODO: Move characteristic four into a note somewhere, as it is rare for a - service provider to attempt to claim copyright on user-submitted works. - Also, refer to the Franklin Street Statement. -

-

- But social networking is not inherently evil. You can connect with old - friends and discover new ones without sacrificing privacy, security, - autonomy, and freedom. You just have to be careful about the platforms - you use. I've identified four basic characteristics that a social - networking platform must have for it to be an ethical one that doesn't - abuse its users. The first two characteristics are universal; all - viable platforms, whether running on your own computer or hosted by a - service provider, must have these. The last two apply only if you - choose to use a platform that is run by someone else as a service. -

-
    -
  1. - Software freedom. You must be free to use the software that powers - the social networking platform on your own computer without - restrictions. You must be free to inspect the software and modify - it. You must be free to share the software with others, with or - without modifications. With these freedoms, you have full control - over your social networking and you can decide who has access to - which personal information. Without these freedoms, only the - developer can decide what the software does, and you may not even - be allowed to know what it does to you. -
  2. -
  3. - Federation. You must be able to run the software on your own - computer and still be able to communicate with other people using - other copies of the software. If the software has protocols for - communication between users across multiple installations, then the - software is federated. For example, e-mail is federated; you can - run your own mail server and still send mail to other people who - use other servers. This is because all standards-compliant mail - servers speak the same protocol. -
  4. -
  5. - Privacy. If you choose to use a social networking service run by - someone else, the service must offer a clear and agreeable privacy - policy to which the service provider must strictly adhere. The - service provider must not be allowed to give your personal - information to third parties without your consent (unless required - by law) or use your information in ways that threaten your privacy - and autonomy. -
  6. -
  7. - No claims of copyright. The service provider must agree that your - personal information is yours, not theirs. There must not be any - claims of copyright on the information you provide. The provider - may, however, require you to license such information to them - and/or to others for it to be published on the service; in this - case, you should make sure you agree with the license terms before - using the service. -
  8. -
-

- Let's look at some social networking platforms and see how they adhere - to these criteria. We'll start with Facebook. Facebook fails criterion - one; you cannot run, inspect, modify, or share the software that powers - Facebook. This means it also fails criterion two; it is inherently not - federated because you cannot run it on your own computer. Since - Facebook is not federated and you're stuck with the hosted service, - criteria three and four apply. Facebook has a terrible track record - with privacy and therefore fails criterion three. According to their - terms of service, you retain copyright on your information and give - Facebook "a non-exclusive, transferable, sub-licensable, royalty-free, - worldwide license to use" your information. [13] This is standard - licensing language that allows Facebook to publish information you - submit, and with these terms Facebook seems to pass criterion four. - (I've heard that Facebook claims or used to claim copyright on your - information, but seeing these terms of service I'll give Facebook the - benefit of the doubt here.) Facebook fails three out of the four - criteria, and we can conclude that Facebook is an unethical social - networking platform. -

-

- Next we'll evaluate Twitter. Again, it fails criterion one since you - cannot run, inspect, modify, or share the software. And again it fails - criterion two since you cannot run the software on your own computer. - Twitter has a clear privacy policy that describes what information is - made public, what information you may optionally provide, what - information is collected in logs, and what information is to be kept - private except under certain circumstances. [14] I don't know of any - occasion on which Twitter has failed to adhere to this policy, so if you - agree with this policy then Twitter passes criterion three. Twitter's - terms of service explicitly leave you with the rights to your - information, but you must agree to grant Twitter "a worldwide, - non-exclusive, royalty-free license (with the right to sublicense) to - use, copy, reproduce, process, adapt, modify, publish, transmit, display - and distribute [your information] in any and all media or distribution - methods (now known or later developed)". [15] Again this is standard - licensing language that allows Twitter to publish the information you - post, and I conclude that with these terms Twitter passes the fourth - criterion. In summary, Twitter passes two out of the four criteria; - it's not completely ethical since it leaves you without important - freedoms and at the mercy of a single centralized provider, but it seems - it's not as bad as Facebook is in terms of privacy. -

-

- Next up is Identi.ca. Identi.ca is an instance of StatusNet, a free - software microblogging platform that is similar in function to Twitter. - StatusNet is licensed under the GNU Affero General Public License, - which requires that all users, including those who use the software over - a network, have all of the necessary freedoms with the software. With - this license, StatusNet, and therefore Identi.ca, pass criterion one - beautifully. StatusNet implements the OStatus protocol, which allows - users of other installations of StatusNet (or even other software such - as GNU Social) to communicate seamlessly. With this, StatusNet and GNU - Social (and instances of the software such as Identi.ca) are federated - and pass criterion two. If you choose to use Identi.ca instead of - running StatusNet or GNU Social on your own computer, then criteria - three and four apply. Identi.ca has a very clear privacy policy that - describes what information is made public, what information remains - private, and how information may be used by Identi.ca, by users, and by - other instances of StatusNet and GNU Social. [16] With this, Identi.ca - passes criterion three. Identi.ca's terms of service make no claims to - copyright on your information. The terms require that you grant - Identi.ca "a world-wide, royalty-free, and non-exclusive license to - reproduce, modify, adapt and publish the Content solely for the purpose - of displaying, distributing and promoting your notice stream". They - also require that you "grant all readers the right to use, re-use, - modify and/or re-distribute the Content under the terms of the Creative - Commons Attribution 3.0 [Public License]". [17] This license allows - readers to share your notices, to modify your notices, and to - incorporate your notices in larger works, as long as they give you - credit for your words and do not misrepresent you. These are agreeable - terms that leave you in control of your information and allow the world - to share and build upon your work, so we can conclude that Identi.ca - passes criterion four. Identi.ca, which runs the free social networking - platform StatusNet, passes all four criteria. It is an ethical platform - and service that protects your privacy, autonomy, and freedom. Because - of this, I myself use Identi.ca. [18] Since the software is free, before - registering I checked the source code to make sure that my password - would be stored securely. And since the software is federated, I - reserve the right, especially if Identi.ca in the future ever fails - criteria three and four or ceases to exist, to move to my own - self-hosted instance of the software without losing contact with other - users. -

-

- These three cases are just examples of popular platforms. There are of - course many others. Google recently opened up their new platform, - Google+, which so far is neither free nor federated. The Diaspora - project began in response to outrage over privacy on Facebook; Diaspora - itself is free and federated, and there are hosted Diaspora services - with decent privacy policies. Finally, I don't claim that these - criteria are perfect; they are merely the result of observations I've - made. A similar set of criteria for "freedom in the 'cloud'" has - recently been offered by Georg Greve, founder of the Free Software - Foundation Europe. [19] -

-

References:

-
    -
  1. - "Five Hidden Dangers of Facebook". CBS News. CBS Interactive - Inc. May 11, 2010. - <http://www.cbsnews.com/stories/2010/0/08/earlyshow/saturday/main6469373.shtml>. -
  2. -
  3. - Barnett, Emma. "Your data is Facebook's most valuable asset". - The Telegraph. Telegraph Media Group Limited. January 17, - 2011. - <http://www.telegraph.co.uk/technology/facebook/8264210/Your-data-is-Facebooks-most-valuable-asset.html>. -
  4. -
  5. - Steel, Emily and Fowler, Geoffery A. "Facebook in Online Privacy - Breach; Applications Transmitting Identifying Information". The - Wall Street Journal. Dow Jones & Company, Inc. October 18, - 2010. - <http://online.wsj.com/article/SB10001424052702304772804575558484075236968.html>. -
  6. -
  7. - Gannes, Liz. "Facebook facial recognition prompts EU privacy - probe". CNET News. CBS Interactive Inc. June 8, 2011. - <http://news.cnet.com/8301-1023_3-20070148-93/facebook-facial-recognition-prompts-eu-privacy-probe/>. -
  8. -
  9. - Snyder, Bill. "Facebook Facial Recognition: Why It's a Threat to - Privacy". PCWorld. PCWorld Communications, Inc. June 21, - 2011. - <http://www.pcworld.com/article/230790/facebook_facial_recognition_why_its_a_threat_to_privacy.html>. -
  10. -
  11. - Tynan, Dan. "Facebook ads use your face for free". ITworld. - ITworld. January 25, 2011. - <http://www.itworld.com/internet/134677/facebook-ads-use-your-face-free>. -
  12. -
  13. - Williamson, Elizabeth; Schatz, Amy; and Fowler, Geoffery A. - "Facebook Seeking Friends in Beltway". The Wall Street Journal. - Dow Jones & Company, Inc. April 20, 2011. - <http://online.wsj.com/article/SB10001424052748703789104576273242590724876.html>. -
  14. -
  15. - Crovitz, L. Gordon. "Facebook's Dubious New Friends". The Wall - Street Journal. Dow Jones & Company, Inc. May 2, 2011. - <http://online.wsj.com/article/SB10001424052748703567404576293233665299792.html>. -
  16. -
  17. - Higgins, Alexander. "Facebook Now Helping Governments Spy On And - Arrest Peaceful Activists". The Intel Hub. The Intel Hub. July - 9, 2011. - <http://theintelhub.com/2011/07/09/facebook-now-helping-governments-spy-on-and-arrest-peaceful-activists/>. -
  18. -
  19. - Last, Jeremy. "Israel uses Facebook to blacklist, detain or deport - Tel Aviv-bound travellers". thestar.com. Toronto Star. July 8, - 2011. - <http://www.thestar.com/news/world/article/1022008--israel-uses-facebook-to-blacklist-detain-or-deport-tel-aviv-bound-travellers>. -
  20. -
  21. - Roosendaal, Arnold. "Facebook Tracks and Traces Everyone: Like - This!". Social Science Research Network. Social Science - Electronic Publishing, Inc. November 30, 2010. - <http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1717563>. -
  22. -
  23. - Lee, Matt and Sullivan, John. "Mark Zuckerberg is TIME Magazine's - Person of the Year? Where's the "dislike" button?". Free Software - Foundation. Free Software Foundation, Inc. February 3, 2011. - <http://www.fsf.org/facebook>. -
  24. -
  25. - "Statement of Rights and Responsibilities". Facebook. Facebook, - Inc. April 26, 2011. - <http://www.facebook.com/terms.php>. -
  26. -
  27. - "Twitter Privacy Policy". Twitter. Twitter Inc. June 23, - 2011. - <http://twitter.com/privacy>. -
  28. -
  29. - "Twitter Terms of Service". Twitter. Twitter Inc. June 1, - 2011. - <http://twitter.com/tos>. -
  30. -
  31. - "Privacy". Identi.ca. StatusNet Inc. - <http://identi.ca/doc/privacy>. -
  32. -
  33. - "Tos". Identi.ca. StatusNet Inc. - <http://identi.ca/doc/tos>. -
  34. -
  35. - McDermott, P. J. "P. J. McDermott (pehjota)". Identi.ca. - StatusNet Inc. - <http://identi.ca/pehjota>. -
  36. -
  37. - Greve, Georg C. F. "Freedom in the 'Cloud'?". freedom bits. - Free Software Foundation Europe e.V. July 30, 2011. - <http://blogs.fsfe.org/greve/?p=452>. -
  38. -
- diff --git a/essays/social-networking.mdwn b/essays/social-networking.mdwn new file mode 100644 index 0000000..c446ee7 --- /dev/null +++ b/essays/social-networking.mdwn @@ -0,0 +1,280 @@ + + + +TO COME: An introduction and a section on Google+. + +The Ethics of Facebook +====================== + +Facebook shares their users' personal information with third parties. They use +mere Web site design changes as an excuse to revert users' privacy settings to +unsafe defaults. Their social platform has huge security holes that allow +personal information to be leaked. One such hole made some users' private chats +accessible to all of their contacts. Facebook also exposes users to malware and +identity theft. [1] They make it easy for application developers to collect +personal information. [2] The Wall Street Journal found that these application +developers collect this personal information, link it with other information, +and sell it to others. [3] + +In general, Facebook has always operated on an opt-out basis. In some cases, +you can actually disable third-party access to your information. But you must +always be on the lookout for new "features" or changes to privacy settings. +Facebook always changes the way it collects information, and it catches many +people unaware. But it's impossible to opt out of things you don't even know +about. Recently, Facebook added a feature they call "tag suggestions". If you +have photos on your profile, Facebook can pick out people's faces and suggest +names for them. This may sound useful, but it's the tip of an almost +nightmarish ethics iceberg in information systems. Facebook uses facial +recognition software to make this work; they scan already-tagged photos and +record distinguishing facial features and then find photos with similar faces +and give them names. They maintain a database of people's facial features. +They never notified anyone about this database. They never asked users if they +could record this information. Instead, of course, they made it an opt-out +feature; you have to explicitly disable this hidden feature to keep your facial +information out of the database. This new feature has even sparked an +investigation by the European Union. [4][5] But just imagine what Facebook +could do with this information (and consider their track record with personal +information). I suspect they may soon start selling facial data to other +companies, law enforcement agencies, and oppressive governments (I've heard that +the U.K. once used video camera footage to locate and arrest protesters, so +imagine what they could do with facial data). + +Basically, Facebook is a business. And you are not their customer. You are +their product. They are, in fact, selling their products to advertisers. That +is, they use a person's face (without getting permission and without paying +anything) to advertise things to that person's friends. Claim to like +something, and you've given a product endorsement at a price advertising +agencies would love. [6] + +And they also seem to like selling out their users to governments and limiting +what their users can read and say. After their recent collaboration with +Chinese partners, the Facebook platform was allowed into China under political +censorship. At the time, Facebook lobbyist Adam Conner remarked, "we're +allowing too much, maybe, free speech". [7][8] The Associated Press reported +last month that Facebook sold out hundreds of peaceful pro-Palestinian activists +who had been organizing events through the social platform. Facebook allowed +governments to track its users' activities. As a result, more than 300 peaceful +activists were added to airline terrorism watch lists and denied the right to +leave their countries. International air travel was disrupted as planes from +Geneva and Italy were diverted for security inspections. 310 people were +detained after landing in Israel on their way to stand with Palestinians in a +peaceful mission of solidarity and fact-finding. [9][10] Imagine what might +have happened if Facebook (and widespread publicly-accessible computer networks +for that matter) existed during the civil rights movement. Would there be +racial equality in the United States today? Or would peaceful protesters +organizing events have been sold out and arrested before they could even meet? + +But it seems you don't even have to use Facebook to get tracked by Facebook. +Everyone who sees a "Like" button somewhere on the Web (as I'm sure you have) +can be tracked. Facebook has the ability to map out the browsing behavior of a +massive number (a number that grows by tens of millions each month) of Web +users, even those who don't use Facebook. [11] Again, imagine what they could +do with such vast amounts of information. + +Things like these gaping holes in privacy, devious information collection +practices, abuse of users, censorship, and tracking inspired Matt Lee, campaigns +manager, and John Sullivan, executive director, of the Free Software Foundation +to write about Facebook's poor track record with privacy and create rather +amusing "Dislike" and "not f'd" buttons. [12] + +Ethical Social Networking +========================= + +TODO: Move characteristic four into a note somewhere, as it is rare for a +service provider to attempt to claim copyright on user-submitted works. Also, +refer to the Franklin Street Statement. + +But social networking is not inherently evil. You can connect with old friends +and discover new ones without sacrificing privacy, security, autonomy, and +freedom. You just have to be careful about the platforms you use. I've +identified four basic characteristics that a social networking platform must +have for it to be an ethical one that doesn't abuse its users. The first two +characteristics are universal; all viable platforms, whether running on your own +computer or hosted by a service provider, must have these. The last two apply +only if you choose to use a platform that is run by someone else as a service. + +1. Software freedom. You must be free to use the software that powers + the social networking platform on your own computer without + restrictions. You must be free to inspect the software and modify + it. You must be free to share the software with others, with or + without modifications. With these freedoms, you have full control + over your social networking and you can decide who has access to + which personal information. Without these freedoms, only the + developer can decide what the software does, and you may not even + be allowed to know what it does to you. +2. Federation. You must be able to run the software on your own + computer and still be able to communicate with other people using + other copies of the software. If the software has protocols for + communication between users across multiple installations, then the + software is federated. For example, e-mail is federated; you can + run your own mail server and still send mail to other people who + use other servers. This is because all standards-compliant mail + servers speak the same protocol. +3. Privacy. If you choose to use a social networking service run by + someone else, the service must offer a clear and agreeable privacy + policy to which the service provider must strictly adhere. The + service provider must not be allowed to give your personal + information to third parties without your consent (unless required + by law) or use your information in ways that threaten your privacy + and autonomy. +4. No claims of copyright. The service provider must agree that your + personal information is yours, not theirs. There must not be any + claims of copyright on the information you provide. The provider + may, however, require you to license such information to them + and/or to others for it to be published on the service; in this + case, you should make sure you agree with the license terms before + using the service. + +Let's look at some social networking platforms and see how they adhere to these +criteria. We'll start with Facebook. Facebook fails criterion one; you cannot +run, inspect, modify, or share the software that powers Facebook. This means it +also fails criterion two; it is inherently not federated because you cannot run +it on your own computer. Since Facebook is not federated and you're stuck with +the hosted service, criteria three and four apply. Facebook has a terrible +track record with privacy and therefore fails criterion three. According to +their terms of service, you retain copyright on your information and give +Facebook "a non-exclusive, transferable, sub-licensable, royalty-free, worldwide +license to use" your information. [13] This is standard licensing language that +allows Facebook to publish information you submit, and with these terms Facebook +seems to pass criterion four. (I've heard that Facebook claims or used to claim +copyright on your information, but seeing these terms of service I'll give +Facebook the benefit of the doubt here.) Facebook fails three out of the four +criteria, and we can conclude that Facebook is an unethical social networking +platform. + +Next we'll evaluate Twitter. Again, it fails criterion one since you cannot +run, inspect, modify, or share the software. And again it fails criterion two +since you cannot run the software on your own computer. Twitter has a clear +privacy policy that describes what information is made public, what information +you may optionally provide, what information is collected in logs, and what +information is to be kept private except under certain circumstances. [14] I +don't know of any occasion on which Twitter has failed to adhere to this policy, +so if you agree with this policy then Twitter passes criterion three. Twitter's +terms of service explicitly leave you with the rights to your information, but +you must agree to grant Twitter "a worldwide, non-exclusive, royalty-free +license (with the right to sublicense) to use, copy, reproduce, process, adapt, +modify, publish, transmit, display and distribute [your information] in any and +all media or distribution methods (now known or later developed)". [15] Again +this is standard licensing language that allows Twitter to publish the +information you post, and I conclude that with these terms Twitter passes the +fourth criterion. In summary, Twitter passes two out of the four criteria; it's +not completely ethical since it leaves you without important freedoms and at the +mercy of a single centralized provider, but it seems it's not as bad as Facebook +is in terms of privacy. + +Next up is Identi.ca. Identi.ca is an instance of StatusNet, a free software +microblogging platform that is similar in function to Twitter. StatusNet is +licensed under the GNU Affero General Public License, which requires that all +users, including those who use the software over a network, have all of the +necessary freedoms with the software. With this license, StatusNet, and +therefore Identi.ca, pass criterion one beautifully. StatusNet implements the +OStatus protocol, which allows users of other installations of StatusNet (or +even other software such as GNU Social) to communicate seamlessly. With this, +StatusNet and GNU Social (and instances of the software such as Identi.ca) are +federated and pass criterion two. If you choose to use Identi.ca instead of +running StatusNet or GNU Social on your own computer, then criteria three and +four apply. Identi.ca has a very clear privacy policy that describes what +information is made public, what information remains private, and how +information may be used by Identi.ca, by users, and by other instances of +StatusNet and GNU Social. [16] With this, Identi.ca passes criterion three. +Identi.ca's terms of service make no claims to copyright on your information. +The terms require that you grant Identi.ca "a world-wide, royalty-free, and +non-exclusive license to reproduce, modify, adapt and publish the Content solely +for the purpose of displaying, distributing and promoting your notice stream". +They also require that you "grant all readers the right to use, re-use, modify +and/or re-distribute the Content under the terms of the Creative Commons +Attribution 3.0 [Public License]". [17] This license allows readers to share +your notices, to modify your notices, and to incorporate your notices in larger +works, as long as they give you credit for your words and do not misrepresent +you. These are agreeable terms that leave you in control of your information +and allow the world to share and build upon your work, so we can conclude that +denti.ca passes criterion four. Identi.ca, which runs the free social +networking platform StatusNet, passes all four criteria. It is an ethical +platform and service that protects your privacy, autonomy, and freedom. +Because of this, I myself use Identi.ca. [18] Since the software is free, +before registering I checked the source code to make sure that my password would +be stored securely. And since the software is federated, I reserve the right, +especially if Identi.ca in the future ever fails criteria three and four or +ceases to exist, to move to my own self-hosted instance of the software without +losing contact with other users. + +These three cases are just examples of popular platforms. There are of course +many others. Google recently opened up their new platform, Google+, which so +far is neither free nor federated. The Diaspora project began in response to +outrage over privacy on Facebook; Diaspora itself is free and federated, and +there are hosted Diaspora services with decent privacy policies. Finally, I +don't claim that these criteria are perfect; they are merely the result of +observations I've made. A similar set of criteria for "freedom in the 'cloud'" +has recently been offered by Georg Greve, founder of the Free Software +Foundation Europe. [19] + +References: +=========== + +1. "Five Hidden Dangers of Facebook". CBS + News. CBS Interactive Inc. May 11, 2010. + <>. +2. Barnett, Emma. "Your data is Facebook's most valuable asset". + The Telegraph. Telegraph Media Group + Limited. January 17, 2011. + <>. +3. Steel, Emily and Fowler, Geoffery A. "Facebook in Online Privacy Breach; + Applications Transmitting Identifying Information". + The Wall Street Journal. Dow Jones & + Company, Inc. October 18, 2010. + <>. +4. Gannes, Liz. "Facebook facial recognition prompts EU privacy probe". + CNET News. CBS Interactive Inc. June 8, + 2011. + <>. +5. Snyder, Bill. "Facebook Facial Recognition: Why It's a Threat to Privacy". + PCWorld. PCWorld Communications, Inc. June + 21, 2011. + <>. +6. Tynan, Dan. "Facebook ads use your face for free". + ITworld. ITworld. January 25, 2011. + <>. +7. Williamson, Elizabeth; Schatz, Amy; and Fowler, Geoffery A. "Facebook + Seeking Friends in Beltway". The Wall Street + Journal. Dow Jones & Company, Inc. April 20, 2011. + <>. +8. Crovitz, L. Gordon. "Facebook's Dubious New Friends". + The Wall Street Journal. Dow Jones & + Company, Inc. May 2, 2011. + <>. +9. Higgins, Alexander. "Facebook Now Helping Governments Spy On And Arrest + Peaceful Activists". The Intel Hub. The + Intel Hub. July 9, 2011. + <>. +10. Last, Jeremy. "Israel uses Facebook to blacklist, detain or deport Tel + Aviv-bound travellers". thestar.com. + Toronto Star. July 8, 2011. + <>. +11. Roosendaal, Arnold. "Facebook Tracks and Traces Everyone: Like This!". + Social Science Research Network. Social + Science Electronic Publishing, Inc. November 30, 2010. + <>. +12. Lee, Matt and Sullivan, John. "Mark Zuckerberg is TIME Magazine's Person of + the Year? Where's the "dislike" button?". Free + Software Foundation. Free Software Foundation, Inc. February + 3, 2011. <>. +13. "Statement of Rights and Responsibilities". + Facebook. Facebook, Inc. April 26, 2011. + <>. +14. "Twitter Privacy Policy". Twitter. Twitter + Inc. June 23, 2011. <>. +15. "Twitter Terms of Service". Twitter. + Twitter Inc. June 1, 2011. <>. +16. "Privacy". Identi.ca. StatusNet Inc. + <>. +17. "Tos". Identi.ca. StatusNet Inc. + <>. +18. McDermott, P. J. "P. J. McDermott (pehjota)". + Identi.ca. StatusNet Inc. + <>. +19. Greve, Georg C. F. "Freedom in the 'Cloud'?". + freedom bits. Free Software Foundation + Europe e.V. July 30, 2011. <>. + + diff --git a/guides/index.html b/guides/index.html deleted file mode 100755 index d603d64..0000000 --- a/guides/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - -

Technical Guides

-

- Here you will find technical guides, tutorials, and workshop notes on - GNU/Linux and UNIX. -

- - diff --git a/guides/index.mdwn b/guides/index.mdwn new file mode 100644 index 0000000..5e9c9e2 --- /dev/null +++ b/guides/index.mdwn @@ -0,0 +1,9 @@ + + + +Here you will find technical guides, tutorials, and workshop notes on GNU/Linux +and UNIX. + + * [UNIX® Shell Scripting Workshop](shell-workshop/) + + diff --git a/guides/shell-workshop/index.html b/guides/shell-workshop/index.html deleted file mode 100755 index 3b85b6c..0000000 --- a/guides/shell-workshop/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - -

UNIX® Shell Scripting Workshop

-

Introduction to the UNIX Shell Language and Environment

-

- This is a workshop that I gave at the New Jersey Institute of Technology - (NJIT) in the Spring of 2012 as part of the workshop series of the - university's chapter of the Association for Computing Machinery (ACM). It - was based on a similar tutorial I had given during meetings of NJIT ACM's - SIG GNU/Linux in the Fall of 2011. -

-

Flyer

-

- Below you may find the flyer for this event: -

- -

- This flyer includes copyrighted images used pursuant to the fair use - limitation of U.S. Copyright Law. -

-

Standards

-

- The workshop referred to the Shell and Utilities (XCU) volume of - POSIX.1-2008, - published by the IEEE and The Open Group. - Everything covered applies to any sufficiently-compliant shell and operating - system. -

-

Notes

-

- The following are my notes from the tutorial I gave at SIG GNU/Linux - meetings, reused for the workshop: -

- -

- The following are the notes I wrote as a guide for the workshop: -

- -

Session

-

- The following is a cleaned-up version of the shell session from the - workshop, including all of the commands I ran and scripts I wrote. -

- -

Examples

-

- At the end of the workshop, I showed the following example shell scripts: -

-
    -
  • which - of debianutils - (an implementation of - a program - available - on many UNIX-like operating systems), notable for its use of the internal - field separator (IFS) to parse the PATH variable
  • -
  • opkbuild - of opkhelper (a set of scripts I wrote)
  • -
-

Copyright

-

- Copyright © 2012 Patrick "P. J." McDermott -
- All works related to this workshop, including this document, the flyer, the - notes, and the session records may be used under the terms of the - Creative Commons - Attribution 3.0 Unported license.
-

- diff --git a/guides/shell-workshop/index.mdwn b/guides/shell-workshop/index.mdwn new file mode 100644 index 0000000..6e4c575 --- /dev/null +++ b/guides/shell-workshop/index.mdwn @@ -0,0 +1,82 @@ + + + +Introduction to the UNIX Shell Language and Environment +======================================================= + +This is a workshop that I gave at the New Jersey Institute of Technology (NJIT) +in the Spring of 2012 as part of the workshop series of the university's chapter +of the Association for Computing Machinery (ACM). It was based on a similar +tutorial I had given during meetings of NJIT ACM's SIG GNU/Linux in the Fall of +2011. + +Flyer +===== + +Below you may find the flyer for this event: + + * [Source SVG document](flyer.svg) + * [Rendered PDF document](flyer.pdf) + +This flyer includes copyrighted images used pursuant to the fair use limitation +of U.S. Copyright Law. + +Standards +========= + +The workshop referred to the Shell and Utilities (XCU) volume of +[POSIX.1-2008][posix], [published][unix] by the IEEE and The Open Group. +Everything covered applies to any sufficiently-compliant shell and operating +system. + +[posix]: http://pubs.opengroup.org/onlinepubs/9699919799/ +[unix]: http://www.unix.org/ + +Notes +===== + +The following are my notes from the tutorial I gave at SIG GNU/Linux +meetings, reused for the workshop: + + * [shell.txt](shell.txt) + * [shell-tut.txt](shell-tut.txt) + +The following are the notes I wrote as a guide for the workshop: + + * [notes.txt](notes.txt) + +Session +======= + +The following is a cleaned-up version of the shell session from the +workshop, including all of the commands I ran and scripts I wrote. + + * [Plain text (Markdown) document](session.txt) + * [HTML document](session.html) + +Examples +======== + +At the end of the workshop, I showed the following example shell scripts: + + * [`which` of debianutils][debianutils-which] (an implementation of [a program + available][which] on many UNIX-like operating systems), notable for its use + of the internal field separator (IFS) to parse the `PATH` variable + * [`opkbuild`][opkbuild] of opkhelper (a set of scripts I wrote) + +[debianutils-which]: http://anonscm.debian.org/gitweb/?p=users/clint/debianutils.git;a=blob;f=which;hb=1b1dfee67e9ddd9dfe9171ac347e5000f4deab8a +[which]: https://en.wikipedia.org/wiki/Which_%28Unix%29 +[opkbuild]: http://odin1.pehjota.net/git/opkhelper/tree/src/opkbuild.sh + +Copyright +========= + +Copyright © 2012 Patrick "P. J." McDermott + +All works related to this workshop, including this document, the flyer, the +notes, and the session records may be used under the terms of the [Creative +Commons Attribution 3.0 Unported license][cc-by-3.0]. + +[cc-by-3.0]: http://creativecommons.org/licenses/by/3.0/ + + diff --git a/includes/footer.html b/includes/footer.html index 314100a..4cbebd6 100755 --- a/includes/footer.html +++ b/includes/footer.html @@ -1,6 +1,6 @@

- - + diff --git a/includes/header.html b/includes/header.html index 5eb7577..e952fe7 100755 --- a/includes/header.html +++ b/includes/header.html @@ -1,44 +1,91 @@ + + + + + + + + + + + + + + + + + + - + - + + + P. J. McDermott + + <!--#echo var="title" --> - P. J. McDermott + + + + P. J. McDermott + <!--#echo var="title" --> - P. J. McDermott + - + /main.css"> -
- -

P. J. McDermott

+ +
+

/">P. J. McDermott

Software and hardware hacker and advocate for software and cultural freedom.

-
- -
- + +
+ + + + +

+ + + + +

+ + +
diff --git a/index.html b/index.html deleted file mode 100755 index b551d28..0000000 --- a/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - -P. J. McDermott -

- This is my personal Web site, which contains personal and professional - information about me, technical guides on GNU/Linux and UNIX, and essays - on computing ethics and freedom. -

-

About Me

-

- I am: -

-
    -
  • A hacker (that is, a playful tinkerer interested in exploring the limits - of technology).
  • -
  • A knowledgeable user of GNU/Linux.
  • -
  • A competent software author.
  • -
  • A fan of freely- and semi-freely-licensed heavy metal and rock - music.
  • -
  • A student in the - 2012 - Google Summer of Code program - working - with the Debian Project.
  • -
  • The leader of a project to develop a fully-free - embedded operating system - distribution.
  • -
  • Associate - member #10830 of the Free Software Foundation.
  • -
  • A recent university graduate with a degree in computer science.
  • -
  • A self-taught student of U.S. and international copyright law and free - software licensing.
  • -
  • The former leader of my university's undergraduate GNU/Linux special - interest group.
  • -
  • Trained in karate.
  • -
  • Licensed to operate motorboats.
  • -
  • Certified for open water SCUBA diving.
  • -
-

New

- -

To Come

-
    -
  • More essays on computing ethics and freedom.
  • -
  • Technical guides on GNU/Linux, especially one related to the boot - process (an apparently popular topic with which I'm quite familiar).
  • -
- diff --git a/index.mdwn b/index.mdwn new file mode 100644 index 0000000..d8e226f --- /dev/null +++ b/index.mdwn @@ -0,0 +1,53 @@ + + + +P. J. McDermott + +This is my personal Web site, which contains personal and professional +information about me, technical guides on GNU/Linux and UNIX, and essays on +computing ethics and freedom. + +About Me +======== + +I am: + + * A hacker (that is, a playful tinkerer interested in exploring the limits of + technology). + * A knowledgeable user of GNU/Linux. + * A competent software author. + * A fan of freely- and semi-freely-licensed heavy metal and rock music. + * A student in the [2012 Google Summer of Code][gsoc-2012] program [working + with the Debian Project][gsoc-appl]. + * The leader of a project to develop a fully-free [embedded operating system + distribution][proteanos]. + * [Associate member][fsf-am] #10830 of the Free Software Foundation. + * A recent university graduate with a degree in computer science. + * A self-taught student of U.S. and international copyright law and free + software licensing. + * The former leader of my university's undergraduate GNU/Linux special + interest group. + * Trained in karate. + * Licensed to operate motorboats. + * Certified for open water SCUBA diving. + +[gsoc-2012]: http://www.google-melange.com/gsoc/homepage/google/gsoc2012 +[gsoc-appl]: http://wiki.debian.org/SummerOfCode2012/StudentApplications/PJMcDermott +[proteanos]: http://www.proteanos.com/ +[fsf-am]: https://www.fsf.org/register_form?referrer=10830 + +New +=== + + * [A presentation on the disputed legal validity of software + contracts](talks/software-contracts/). + * [A workshop on the UNIX shell](guides/shell-workshop/) I gave at NJIT. + +To Come +======= + + * More essays on computing ethics and freedom. + * Technical guides on GNU/Linux, especially one related to the boot process + (an apparently popular topic with which I'm quite familiar). + + diff --git a/main.css b/main.css index df3a869..9c8fe2f 100644 --- a/main.css +++ b/main.css @@ -6,20 +6,16 @@ body { * { margin: 0px; } -h1 { - font-size: 24pt; - margin: 16px 0px 16px 0px; -} -h2 { +body>section>h1 { font-size: 20pt; margin: 16px 0px 16px 0px; } -h3 { +body>section>article>h1 { font-size: 16pt; margin: 16px 0px 16px 0px; } -h4 { - font-size: 12pt; +body>section>article>h2 { + font-size: 14pt; margin: 16px 0px 16px 0px; } p { @@ -43,92 +39,94 @@ p span.super { font-size: 9pt; } -div.header { - margin: 16px; -} -div.header a.skip { +a.skip { display: none; } -div.header h1 { + +header { + margin: 16px; +} +header>h1 { + font-size: 24pt; font-family: serif; margin: 0px 0px 0px 0px; } -div.header h1 a { +header>h1>a, header>h1>a:visited, header>h1>a:hover { color: #000000; text-decoration: none; } -div.header h1 span.super { +header>h1>a>span.super { vertical-align: 33%; font-size: 18pt; } -div.header p { +header>p { font-style: italic; text-align: right; font-size: 12pt; margin: 0px 0px 0px 0px; } -div.menu { +nav { margin: 0px 0px 0px 0px; padding: 0px 72px 0px 72px; background-color: #CC4433; text-align: center; } -div.menu ul { +nav>ul { list-style-type: none; margin: 0px; padding: 12px 0px 12px 0px; } -div.menu ul li { +nav>ul>li { display: inline; font-family: sans-serif; font-size: 12pt; } -div.menu ul li a { +nav>ul>li>a, nav>ul>li>a:visited { color: #FFFFFF; font-weight: bold; font-size: 12pt; text-decoration: none; padding: 12px; } -div.menu ul li a:hover { +nav>ul>li>a:hover { color: #FFFFAA; background-color: #BB3311; font-weight: bold; text-decoration: none; } -div.body { +body>section { margin: 24px 64px 8px 64px; font-family: serif; } -div.footer { +footer { margin: 32px 8px 8px 8px; padding-top: 8px; font-family: sans-serif; border-top: 1px solid #666666; } -div.footer p.copyright { +footer p.copyright { margin-top: 0px; } -div.footer p.dates { +footer p.dates { margin-bottom: 0px; } -div.footer p.web-site { +footer p.web-site { float: right; margin-top: 0px; margin-bottom: 0px; text-align: right; } -div.footer p.license img { +footer p.license img { float: left; /*vertical-align: middle;*/ margin: 0px 8px 8px 0px; } /* Homepage */ -div.body img.photo { +body>section img.photo { float: right; margin: 0px 0px 16px 16px; width: 240px; diff --git a/projects/cgol/index.html b/projects/cgol/index.html deleted file mode 100755 index 30a4a74..0000000 --- a/projects/cgol/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - -

cgol (Curses Game of Life)

-

- cgol is an implementation of Conway's Game of Life written in C and using - the curses interface. Upon start, it generates a finite grid with a random - seed pattern. It then iterates through generations indefinitely (unless the - '-n' option is supplied). -

-

- It was written simply for its hack value. Game of Life is a magnificent - hack of a game: there is no gameplay beyond the initial state, yet it can - still provide hours of fun. -

-

Getting cgol

-

- Download or browse the repository hosted on this server:
- <http://odin1.pehjota.net/git/cgol/> -

-

- You may share and modify this software under the terms of the GNU General - Public License, version 3 or later. See "COPYING" in the source tree for - details. -

- diff --git a/projects/cgol/index.mdwn b/projects/cgol/index.mdwn new file mode 100644 index 0000000..7bec380 --- /dev/null +++ b/projects/cgol/index.mdwn @@ -0,0 +1,22 @@ + + + +cgol is an implementation of Conway's Game of Life written in C and using the +curses interface. Upon start, it generates a finite grid with a random seed +pattern. It then iterates through generations indefinitely (unless the '-n' +option is supplied). + +It was written simply for its hack value. Game of Life is a magnificent hack of +a game: there is no gameplay beyond the initial state, yet it can still provide +hours of fun. + +Getting cgol +============ + +Download or browse the repository hosted on this server: +<> + +You may share and modify this software under the terms of the GNU General Public +License, version 3 or later. See "COPYING" in the source tree for details. + + diff --git a/projects/changelog-gen/index.html b/projects/changelog-gen/index.html deleted file mode 100755 index 2357b84..0000000 --- a/projects/changelog-gen/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - -

changelog-gen

-

- A UNIX shell script to generate a change log from "CHANGE:" tags found in - Git commit messages. -

-

Getting changelog-gen

-

- Download or browse the repository currently hosted on Gitorious:
- <https://gitorious.org/pehjotas-tools/changelog-gen> -

-

- See the "README" file for help with changelog-gen. -

-

- You may share and modify this software under the terms of the Expat license. - See "changelog-gen.sh" for details. -

-

Changes

-

Version 0.2.1:

-
    -
  • Fixed: Commits contained by multiple tags can pollute the changelog.
  • -
  • Accept an optional filename (or "-" for standard output) as an - argument.
  • -
-

Version 0.2.0:

-
    -
  • Add help and version options.
  • -
  • Group changelog entries by formatted Git tags.
  • -
-

Version 0.1.0:

-
    -
  • Initial release.
  • -
-

Planned Improvements

-
    -
  • Possibly switch to licensing under the terms of the GNU LGPL
  • -
  • Use here-doc to print long blocks of information instead of a mass of - printf commands.
  • -
  • Maybe offer HTML output.
  • -
- diff --git a/projects/changelog-gen/index.mdwn b/projects/changelog-gen/index.mdwn new file mode 100644 index 0000000..e8eca01 --- /dev/null +++ b/projects/changelog-gen/index.mdwn @@ -0,0 +1,43 @@ + + + +A UNIX shell script to generate a change log from "CHANGE:" tags found in Git +commit messages. + +Getting changelog-gen +===================== + +Download or browse the repository currently hosted on Gitorious: +<> + +See the "README" file for help with changelog-gen. + +You may share and modify this software under the terms of the Expat license. +See "changelog-gen.sh" for details. + +Changes +======= + +Version 0.2.1: + + * Fixed: Commits contained by multiple tags can pollute the changelog. + * Accept an optional filename (or "-" for standard output) as an argument. + +Version 0.2.0: + + * Add help and version options. + * Group changelog entries by formatted Git tags. + +Version 0.1.0: + + * Initial release. + +Planned Improvements +==================== + + * Possibly switch to licensing under the terms of the GNU LGPL + * Use here-doc to print long blocks of information instead of a mass of printf + commands. + * Maybe offer HTML output. + + diff --git a/projects/index.html b/projects/index.html deleted file mode 100755 index a0958d8..0000000 --- a/projects/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - -

Projects

-

- The following is a list of projects that I maintain. All of these works are - freely-licensed and may be shared and modified under the terms of their - respective licenses. I offer my work with hope that some may find it useful, - but without any warranty. If it breaks, you're free to fix it (or find - someone who can) -- unlike the case with non-free software. -

- -

libRCIO

-

- A library written in ISO C to read and write UNIX-style run - control (configuration) files. -

- -

Cowbell

-

- "Curses, I'm up already!" A feature-packed alarm clock with a curses - interface. -

-

screen-batt

-

- A simple battery status indicator for GNU Screen. -

-

changelog-gen

-

- A UNIX shell script to generate a change log from "CHANGE:" tags found in - Git commit messages. -

- -

HIDRECT (Human Interface Device Reverse Engineering - Capture Tool)

-

- A simple event-based capture tool for human interface devices. -

- -

VHC (Virtual Host Config)

-

- A collection of scripts to manage hosted users, domains, Web roots, and - mailboxes. -

- -

testbuild

-

- A simple script to automate build testing for software managed with Git. -

-

cgol (Curses Game of Life)

-

- An implementation of Conway's Game of Life written in C and using the curses - interface. -

-

opkhelper (opkg Build Helper Tools)

-

- A set of programs to assist in building binary packages installable by the - lightweight package manager "opkg". These tools are inspired by - "debhelper", a similar set of programs written primarily by Joey Hess for - Debian. They are designed to build source packages that comply with draft - version 1.0 of - this source package format. -

- diff --git a/projects/index.mdwn b/projects/index.mdwn new file mode 100644 index 0000000..4a0c664 --- /dev/null +++ b/projects/index.mdwn @@ -0,0 +1,82 @@ + + + +Following is a list of free/libre and open source software projects that I +maintain. + +Active or Otherwise Interesting +=============================== + +[ProteanOS](http://www.proteanos.com/) +-------------------------------------- + +ProteanOS is a fully-free BusyBox/Linux-libre operating system binary +distribution designed for embedded applications. + +Within this project, I've also developed a number of programs, including: + + * [opkbuild](http://git.proteanos.com/opkbuild/opkbuild.git/) + * [opkhelper](http://git.proteanos.com/opkhelper/opkhelper.git/) + * [markdownbook](http://git.proteanos.com/markdownbook/markdownbook.git/) + * [pro-archman](http://www.proteanos.com/dev/pro-archman/) + +[ssic (Server Side Includes Compiler)](ssic/) +--------------------------------------------- + +ssic processes HTML documents with SSI directives formatted as SGML comments. +It can be used to process documents without an HTTP server for local browsing or +to generate static HTML documents to be efficiently served by an HTTP server. +Documents could even be preprocessed, e.g. by a Markdown processor, before being +parsed with ssic. + +[cgol (Curses Game of Life)](cgol/) +----------------------------------- + +An implementation of Conway's Game of Life written in C and using the curses +interface. + +[screen-batt](screen-batt/) +--------------------------- + +A simple battery status indicator for GNU Screen. + + +Dead +==== + +[libRCIO](https://gitorious.org/librcio) +---------------------------------------- + +A library written in ISO C to read and write UNIX-style run control +(configuration) files. + +[Cowbell](https://gitorious.org/cowbell) +---------------------------------------- + +"Curses, I'm up already!" A feature-packed alarm clock with a curses interface. + +[changelog-gen](changelog-gen/) +------------------------------- + +A UNIX shell script to generate a change log from "CHANGE:" tags found in Git +commit messages. + +[HIDRECT (Human Interface Device Reverse Engineering Capture Tool)][hidrect] +---------------------------------------------------------------------------- + +A simple event-based capture tool for human interface devices. + +[hidrect]: https://gitorious.org/hidrect + +[VHC (Virtual Host Config)](https://gitorious.org/vhc) +------------------------------------------------------ + +A collection of scripts to manage hosted users, domains, Web roots, and +mailboxes. + +[testbuild](http://odin1.pehjota.net/git/testbuild/) +---------------------------------------------------- + +A simple script to automate build testing for software managed with Git. + + diff --git a/projects/opkhelper/index.html b/projects/opkhelper/index.html deleted file mode 100755 index 3e9b56a..0000000 --- a/projects/opkhelper/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - -

opkhelper (opkg Build Helper Tools)

-

- A set of programs to assist in building binary packages installable by the - lightweight package manager "opkg". These tools are inspired by - "debhelper", a similar set of programs written primarily by Joey Hess for - Debian. They are designed to build source packages that comply with draft - version 1.0 of - this source package format. -

-

Getting opkhelper

-

- Download the latest version of opkhelper from this Web site:
- opkhelper-1.0.0.tar.gz
- opkhelper-1.0.0.tar.bz2 -

-

- Download or browse the repository hosted on this server:
- <http://odin1.pehjota.net/git/opkhelper/> -

-

- You may share and modify this software under the terms of the GNU General - Public License, version 3 or later. See "COPYING" in the source tree for - details. -

- diff --git a/projects/screen-batt/index.html b/projects/screen-batt/index.html deleted file mode 100755 index b1b2fbd..0000000 --- a/projects/screen-batt/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - -

screen-batt

-

- A simple battery status indicator for GNU Screen. -

-

Getting screen-batt

-

- Download or browse the repository currently hosted on Gitorious:
- <https://gitorious.org/pehjotas-tools/screen-batt> -

-

- See the "README" file for help with screen-batt. -

-

- You may share and modify this software under the terms of the Expat license. - See "screen-batt" for details. -

- diff --git a/projects/screen-batt/index.mdwn b/projects/screen-batt/index.mdwn new file mode 100644 index 0000000..01b2132 --- /dev/null +++ b/projects/screen-batt/index.mdwn @@ -0,0 +1,17 @@ + + + +A simple battery status indicator for GNU Screen. + +Getting screen-batt +=================== + +Download or browse the repository currently hosted on Gitorious: +<> + +See the "README" file for help with screen-batt. + +You may share and modify this software under the terms of the Expat license. +See "screen-batt" for details. + + diff --git a/projects/ssic/index.mdwn b/projects/ssic/index.mdwn new file mode 100644 index 0000000..fcb4fee --- /dev/null +++ b/projects/ssic/index.mdwn @@ -0,0 +1,36 @@ + + + +This is ssic, a Server Side Includes Compiler. + +ssic processes HTML documents with SSI directives formatted as SGML comments. +It can be used to process documents without an HTTP server for local browsing or +to generate static HTML documents to be efficiently served by an HTTP server. +Documents could even be preprocessed, e.g. by a Markdown processor, before being +parsed with ssic. + +The set of commands, tags, and variables supported by ssic is mostly a superset +of those supported by the old [NCSA HTTPd][ncsa-httpd-ssi] and a subset of those +supported by [Apache HTTPd's `mod_include`][mod-include-ssi]. + +ssic uses the `CGI::SSI` Perl module for directive processing. + +[ncsa-httpd-ssi]: http://web.archive.org/web/19971210170837/http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html +[mod-include-ssi]: http://httpd.apache.org/docs/2.2/mod/mod_include.html + + +Downloading +=========== + +ssic is maintained in a [Git repository][repo-http], which can be cloned from +`git://git.pehjota.net/ssic/ssic.git`. + +Debian packaging for ssic is maintained in a separate [Git +repository][repo-debian-http], which can be cloned from +`git://git.pehjota.net/ssic/ssic.debian.git`. Prebuilt packages are not yet +available. + +[repo-http]: http://git.pehjota.net/ssic/ssic.git/ +[repo-debian-http]: http://git.pehjota.net/ssic/ssic.debian.git/ + + diff --git a/resume.html b/resume.html deleted file mode 100755 index 10a6542..0000000 --- a/resume.html +++ /dev/null @@ -1,11 +0,0 @@ - - -

Résumé

-

- Download a copy of my résumé in Portable - Document Format (PDF). -

-

- I'll eventually write an HTML version for more convenient viewing. -

- diff --git a/resume.mdwn b/resume.mdwn new file mode 100644 index 0000000..52b8b04 --- /dev/null +++ b/resume.mdwn @@ -0,0 +1,9 @@ + + + +Download a copy of [my résumé in Portable Document Format +(PDF)](resume-web.pdf). + +I'll eventually write an HTML version for more convenient viewing. + + diff --git a/server.html b/server.html deleted file mode 100755 index 1de509f..0000000 --- a/server.html +++ /dev/null @@ -1,27 +0,0 @@ - - -

About This Server

-

Hardware

-

- This server is an AMD Athlon II X2 250 Regor dual-core 3.0-GHz CPU sitting - next to one 2-GiB DDR3 SDRAM module, all on an Asus Micro-ATX motherboard - and sitting inside a very old and bare Gateway chassis. Connected to the - board is a 500-GB 7200-RPM hard disk drive. Powering the whole machine is a - 400-W ATX power supply. One front-mounted 80-mm fan keeps the case and - components cool. -

-

Software

-

- This server runs Debian GNU/Linux. There is no non-free software (not even - firmware) installed on this system. I even have plans to someday port - coreboot (freely-licensed and high-quality boot firmware) to my server's - motherboard (and I purchased a board for which a port should be easy). -

-

- With the help of apticron, I keep the system up-to-date with proposed - updates and security fixes. These documents are served by the Apache Web - server with mod_include for SSI parsing. My mail server of choice is Exim 4, - however port 25 is currently firewalled. I manage virtual hosts in Apache - httpd and Exim using VHC. -

- diff --git a/server.mdwn b/server.mdwn new file mode 100644 index 0000000..3505a83 --- /dev/null +++ b/server.mdwn @@ -0,0 +1,27 @@ + + + +Hardware +======== + +This server is an AMD Athlon II X2 250 Regor dual-core 3.0-GHz CPU sitting next +to one 2-GiB DDR3 SDRAM module, all on an Asus Micro-ATX motherboard and sitting +inside a very old and bare Gateway chassis. Connected to the board is a 500-GB +7200-RPM hard disk drive. Powering the whole machine is a 400-W ATX power +supply. One front-mounted 80-mm fan keeps the case and components cool. + +Software +======== + +This server runs Debian GNU/Linux. There is no non-free software (not even +firmware) installed on this system. I even have plans to someday port coreboot +(freely-licensed and high-quality boot firmware) to my server's motherboard +(and I purchased a board for which a port should be easy). + +With the help of apticron, I keep the system up-to-date with proposed updates +and security fixes. These documents are served by the Apache Web server with +`mod_include` for SSI parsing. My mail server of choice is Exim 4, however port +25 is currently firewalled. I manage virtual hosts in Apache httpd and Exim +using [VHC](projects/vhc/). + + diff --git a/talks/index.html b/talks/index.html deleted file mode 100755 index d8d59d6..0000000 --- a/talks/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - -

Talks

-

- Here you will find information about some of the talks and presentations - I've given. -

- - diff --git a/talks/index.mdwn b/talks/index.mdwn new file mode 100644 index 0000000..0a917cb --- /dev/null +++ b/talks/index.mdwn @@ -0,0 +1,9 @@ + + + +Here you will find information about some of the talks and presentations I've +given. + + * [Legal Validity of Software Contracts](software-contracts/) + + diff --git a/talks/software-contracts/index.html b/talks/software-contracts/index.html deleted file mode 100755 index 158810f..0000000 --- a/talks/software-contracts/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - -

Legal Validity of Software Contracts

-

- This is a presentation that I gave in a law-related course at the New Jersey - Institute of Technology (NJIT) in the Spring of 2012. -

-

- In the presentation, I define software contracts (a.k.a. "end-user license - agreements", "software license agreements", or simply "licenses") and - explain the history of software copyright law and contracts. I then examine - the disputed legal validity of software contracts in three main areas: - assent to terms (including "shrink wrap" and "click wrap" contracts), - ownership of copies (the "licensed, not sold" argument), and conscionability - and preemption. -

-

- The presentation refers to statutory and case law in the United States, but - the concepts should apply to almost any jurisdiction. -

-

Slides

-

- The following are the slides I prepared for the presentation: -

- -

- Included in the OpenDocument version is the script to the presentation - (in LibreOffice, look in the "Notes" tab). -

-

- Many reader programs render stripes in the slide background of the PDF file. - This is due to - a bug - in cairo - which has been fixed in a version newer than that which I used. -

-

Copyright

-

- Copyright © 2012 Patrick "P. J." McDermott -
- All works related to this workshop, including this document, the flyer, the - notes, and the session records may be used under the terms of the - Creative Commons - Attribution-ShareAlike 3.0 Unported license. -

- diff --git a/talks/software-contracts/index.mdwn b/talks/software-contracts/index.mdwn new file mode 100644 index 0000000..7727014 --- /dev/null +++ b/talks/software-contracts/index.mdwn @@ -0,0 +1,46 @@ + + + +This is a presentation that I gave in a law-related course at the New Jersey +Institute of Technology (NJIT) in the Spring of 2012. + +In the presentation, I define software contracts (a.k.a. "end-user license +agreements", "software license agreements", or simply "licenses") and explain +the history of software copyright law and contracts. I then examine the +disputed legal validity of software contracts in three main areas: assent to +terms (including "shrink wrap" and "click wrap" contracts), ownership of copies +(the "licensed, not sold" argument), and conscionability and preemption. + +The presentation refers to statutory and case law in the United States, but the +concepts should apply to almost any jurisdiction. + +Slides +====== + +The following are the slides I prepared for the presentation: + + * [OpenDocument Format](software-contracts.odp) + * [Portable Document Format](software-contracts.pdf) + +Included in the OpenDocument version is the script to the presentation (in +LibreOffice, look in the "Notes" tab). + +Many reader programs render stripes in the slide background of the PDF file. +This is due to [a bug][bug-lp] [in cairo][bug-fdo] which has been fixed in a +version newer than that which I used. + +[bug-lp]: https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/164233 +[bug-fdo]: https://bugs.freedesktop.org/show_bug.cgi?id=47706 + +Copyright +========= + +Copyright © 2012 Patrick "P. J." McDermott + +All works related to this workshop, including this document, the flyer, the +notes, and the session records may be used under the terms of the +[Creative Commons Attribution-ShareAlike 3.0 Unported license][cc-by-sa-3.0]. + +[cc-by-sa-3.0]: http://creativecommons.org/licenses/by-sa/3.0/ + + diff --git a/terms.html b/terms.html deleted file mode 100755 index d27f421..0000000 --- a/terms.html +++ /dev/null @@ -1,17 +0,0 @@ - - -

Terms of Service

-

- The following terms and conditions govern your use of this Web site. By - using this Web site, you agree to be bound by the terms and conditions of - this agreement. -

-

- 1. Affirmation terms. - You agree that the statements made in section 2 below are true. -

-

- 2. Denial terms. - You agree that the statements made in section 1 above are false. -

- diff --git a/terms.mdwn b/terms.mdwn new file mode 100644 index 0000000..020d26b --- /dev/null +++ b/terms.mdwn @@ -0,0 +1,14 @@ + + + +The following terms and conditions govern your use of this Web site. By using +this Web site, you agree to be bound by the terms and conditions of this +agreement. + +**1. Affirmation terms.** +You agree that the statements made in section 2 below are true. + +**2. Denial terms.** +You agree that the statements made in section 1 above are false. + + -- cgit v0.9.1