Open Craft

Thanks to Open Source Software, I didn't have to write the majority of the software that runs this site, my servers, or my home technology. Tools such as Ruby, Ubuntu, Firefox, GnuPG, Linux, and the GNU toolset help me keep my digital world running smoothly day in and day out. This essay covers how to make these tools work for you.

I try not to take this for granted.

Home Software

The development of this site is driven by open source tools. On commodity hardware, I run the Ubuntu operating system, Gnome window manager, and Firefox web browser. I use LaTeX to typeset my books, Audacity to record my music, The GIMP to process my photography, and GEdit to write my software. All of this runs on the Linux kernel supported by the GNU toolset.

  • Firefox, an excellent, standards-compliant browser.
  • Thunderbird, a solid email client.
  • Ubuntu, an approachable Linux operating system.

All of this software is free and feature-competitive with commercial tools. It can run on low-end hardware, and sets the standard for security. AES cryptography is built right in to the Linux kernel to secure my files and drives, and Thunderbird, GNU Privacy Guard (GnuPG), and enigmail keep my emails secure. Tor keeps my browser safe when in public, and Deja Dup keeps encrypted offsite backups of my work. This setup is highly secure and completely portable—all at no cost other than what I choose to spend on hardware and hosting (which, all tolled, isn't much).

This site is written using nanoc, which is a ruby program that generates static files from dynamic inputs. I tell nanoc about the structure and content of my site, then feed it some HTML, CSS, JavaScript, and image files. It then constructs all of the files in this site automatically and pushes them to my server using rsync. This keeps me from having to use CGI, SSL, or Rails for a site whose content doesn't change all that often. Bundler manages my gem dependencies for me, and git keeps my versions in sync with each other. If you're curious to peer under the hood, the source code for this site is openly available on github.

You don't have to be a programmer or tech guru to use Linux. You don't even have to erase your computer to use it. If you visit and load it to a spare USB stick or CD, you can simply reboot and try it out. If you don't like it, reboot again and toss it. If you like what you see, though, prepare to become addicted to never paying for software again.

Server Software

My servers also run Linux, though a different version called Debian (which Ubuntu is based on). It's fast and secure, and runs a stripped-down version of Apache's HTTPD to serve static files. It also runs on the Linux kernel and GNU tools, with OpenSSH handling secure connectivity to the outside world. This is a lightweight software stack that doesn't require fast hardware to perform well.

Open Standards

Web standards ensure software written in different languages on different platforms all cooperate towards the same goals of effective user experiences. This site builds on these standards such as HTML 5 for structure and multimedia integration and CSS 3 for layout to keep the site displaying consistently between browsers. This means you don't have to have closed source, proprietary software like Flash running on your machine to enjoy music and videos. For a demonstration of these standards in action, checkout my music page—but you'll want to make sure you're using a modern browser. It'll still work if you're not, but you'll have to download the songs to play them.

When building software, it helps to have these standards in place. To check up on a site's content regularly, we can use RSS. To login to other sites without needing to remember a ton of usernames and passwords, we can use OpenID. To integrate semantic data with an online experience, we can use Microformats. It takes a lot of thankless time and work for folks to put these standards together, though their work is absolutely essential to the fabric of the internet.

Open Licensing

All of my software is freely available under some form of open source license, generally the GNU General Public License v.3.0 from the Free Software Foundation. This (loosely) means you can use it freely, change it, or incorporate it into a software project of yours, but if you release a derivative work, it has to be under a license that allows others to do the same. A full run-down of the GPL is available on the Free Software Foundation's website. Any software of mine that isn't under the GPL is under a similar license, such as the Artistic license for perl modules.

Open licensing is not the same as public domain. It means that you can use content freely, but if you build on it and re-release what you've made, you cannot restrict others from enjoying the same freedoms you've enjoyed. Your freedoms end where your neighbor's begin.

Open licensing is not the same as public domain.
Your freedoms end where your neighbors' begin.

Finally, you might have noticed in the footer that all of my work is freely available under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States license. This means you can download any of my work freely, print it off, change it around, and redistribute it in whatever manner you like—in whole, in parts, or as part of a greater whole—subject to three conditions. Anything you build from this must keep relevant attribution to me in place, can't be sold for a profit, and must be freely available to others under a compatible license. Full details on how this works are at the Creative Commons site.

Open source software, open standards, and open licensing keeps our cultural heritage safe from forms of exploitation that would seek to exclude it from everyone's full enjoyment. Whether this heritage is video, audio, software, or writing, these tools allow us to confidently share our work, knowing we've done our part to establish and preserve our freedoms.

Written by Danne Stayskal on 2011-06-20