Today I came across a MotherBoardTV article today that really sums up just how deep the software freedom rabbit-hole goes. It reports on US farmers jailbreaking their John Deere tractors with reverse-engineered firmware. Why? In defence of their right to repair their own tractors, or take them to a local mechanic, instead of having to wait for service from an official John Deere approved service centre who could be miles away and take days to get repairs done. This may sound like something out of a dystopian science fiction story, but it’s happening right now, and it’s a classic example of why software freedom isn’t just a fringe issue for GNU/Linux geeks.
The question underlying the concept of software freedom has always been about whether we really own the things we buy (including the rights to repair, tinker, modify etc), or whether we actually only buy a license to use them, under terms that are approved by the manufacturer and subject to change by them at any time. As more and more household, commercial, and industrial equipment becomes computerized, and is connected to the internet (leading to the new buzzphrase “Internet of Things“), the answer to this question affects more and more people. Now, as farms become computerized, it’s even affecting farmers, a group for whom the freedom to tinker with and repair the many pieces of farm equipment on which they depend has traditionally been crucial to keeping their costs below their income.
The tractor-hacking farmers are just one example of a global ‘right to repair’ movement that has been gaining steam in recent years, made up of local groups involved in Makerspaces/ Hackerspaces/ FabLabs and the Men’s Sheds, advocacy organisations like Repair.org (mentioned in the tractor article), and community collaboration sites like iFixIt.com (who host repair manuals for a wide range of hardware under a CreativeCommons BY-NC-SA 3.0 license). Aside from citizens’ rights of ownership of their own belongings, the right to repair also has serious environmental sustainability implications. The Swedish government recently enacted a tax breaks scheme on repair activities to make it more economic to repair things rather than buying new ones, with the goal of encouraging people to reduce avoidable waste. This is a positive step, but it’s benefits will be limited if corporations are still allowed to erect a fortress of legal obstacles, using things like copyright law, patent law, or contract law through restrictive EULAs (End User License Agreements), to hamstring local repair and modification operating independently of their supply chain.
This may be the purpose of the infamous “as such” exception to the rule against software patents in the 2013 update of the NZ Patents Act (disclaimer: I am not not a lawyer). For example, it could be argued that embedded software in a computerized tractor is not really computer software “as such”, which means it’s possible that patent law could still be used against groups offering free code alternatives to proprietary tractor software. The most likely target for legal action, considering the commercially-orientated nature of patent law, would be local tractor mechanic businesses who use that free code software to help farmers keep their older equipment working. Patent law supposedly encourages progress in the arts and sciences. It’s truly horrifying that it could be used in such an anti-environmental and anti-competitive way, obliging farmers to buy new equipment when they don’t really need to and potentially forcing rural mechanics out of business. It’s essential that legislators and regulators make the effort to understand these the implications, and act in defence of the the right to repair.
"Technology is anything that doesn't quite work yet." - Danny Hillis, in a frustratingly difficult to source quote. I first heard it from Douglas Adams.
Here is, at minimum, who and what you need to know:
- Free Software Foundation (FSF) — The non-profit that funds and supports free software development, notably:
- The GNU Project — Which develops the free software GNU operating system, and a whole swag of other useful free software.
- Electronic Frontier Foundation (EFF)
- Electronic Frontiers Australia
- Berkman Klein Centre for Internet & Society at Harvard University
- Defective by Design — Campaign against "Digital Restrictions Management" (DRM).
- Open Rights Group
- Boing Boing — A blog/zine that posts a lot about technology and society, as well as - distressingly - advertorials aimed at Bay Area hipsters.
- Richard Stallman — Founder of the free software movement, the GNU Project, and the Free Software Foundation. More commonly known as RMS.
- Cory Doctorow — "science fiction author, activist, journalist and blogger", co-editor of Boing Boing. At the time of writing, also working for the EFF.
- Bradley Kuhn — President of the Software Freedom Conservancy.
- danah boyd — Probably the most citable academic on IT[C], which is frustrating, because sticking to her preferred non-capitalised name will almost certainly lose you marks for referencing.
- Eben Moglen — Director-Counsel and Chairman, Software Freedom Law Center and President of the FreedomBox Foundation.
- Pia Waugh — Australia's "open government and open data ninja".
- From the Essays and Articles page of the Philosophy section of the GNU website I recommend you start with:
- The FSF High Priority Free Software Projects list
- FAIFzilla — the no-frills online version of Free as in Freedom: Richard Stallman's Crusade for Free Software, by Sam Williams.
- Tim Berners-Lee's original proposal for what would become the World Wide Web.
- The Web Is Ruined and I Ruined it by David Siegel — a criminally under-cited article that describes what happens when control over technology is left in the hands of duelling monopolists and people who fundamentally don't understand it. Otherwise known as the Browser Wars. I was there, and have the PTSD to prove it.
- The Future of the Internet — And how to stop it — The website where you can download the book of the same name by Jonathan Zittrain of the Berkman Klein Centre. You'd think it would have dated since 2008, but nope; it's right on the money.
[I'm aware of the hypocrisy in recommending videos of talks about freedom, privacy and security that are hosted on YouTube.]
- Reclaim your freedom with free software now — Richards Stallman
- Eben Moglen on Facebook, Google and Government Surveillance — Note that this interview was pre-Snowden
- The last lighthouse: free software in dark times - Edward Snowden's LibrePlanet 2016 keynote
- Freedom of Thought Requires Free Media — Eben Moglen
- The Future of the Internet — Jonathan Zittrain talks about his book of the same name
- Cory Doctorow's keynote from the 11th Hackers on Planet Earth (HOPE) conference, 2016
Pretty much all universities maintain a list of free-as-in-gratis software that they recommend students use. Very little of this is free-as-in-freedom software. There is no technical reason why most computer users should ever have to use proprietary software. Some users simply aren't aware of the drawbacks and dangers of proprietary software, while others are compelled to use proprietary software by institutions (their employer, etc.). It is vitally important that educational institutions do not compel, or even encourage, the use of non-free software, for many reasons.
The following list was initially based on the list of software Southern Cross University recommends their students use. I've supplemented this with other software I've found useful, and removed some items that solve problems that virtually nobody has these days (such as running Adobe Flash applications). Let me know if you've any suggestions.
Software most students will find useful.
- Southern Cross University recommends iTunes, which fundamentally is spyware. However,
- SCU also recommends VLC media player, and I would as well! According to Wikipedia, it runs on "Windows, macOS, [GNU/]Linux, BSD, Solaris, Android, iOS, Chrome OS, Windows Phone, QNX, Haiku, Syllable, Tizen, OS/2"!
- I use Totem for playing single audio/video files, and Rhythmbox for organising my music collection. These are only available for GNU/Linux (and other Unix-like OS's).
- gPodder is a pretty nice podcast downloader/organiser for GNU/Linux, OS X, and Windows.
- Suggestions, please…
- Southern Cross University recommends 7-zip, which I've used and recommended in the past. Runs on Windows, OS X, and GNU/Linux (though I use tar and gzip from the command line, or the GNOME front end to these). I don't recommend using 7-zip's own format for any important data you want to preserve for posterity. GZIP (or TAR and GZIP for multiple-file archives) is the most cross-platform and future-proof option, IMHO.
- Most of Java is free software, though some components are proprietary.
- I use IcedTea, part of the GNU Classpath fully free software Java reimplementation, to run Blackboard Collaborate, and it works fine (that is to say, any problems can safely be attributed to Blackboard Collaborate). Only available for GNU/Linux.
- Would like to hear from anybody better informed than I about fully free software Java options for other platforms…
- By virtue of its feature-completeness, LibreOffice is pretty much the only game in town. I rarely used this kind of software before attending uni, and that's where 99% of my frustration with it lies. I've not found anything I've been required to do in three years of uni that it cannot accommodate, though I suppose Microsoft Office power users would face considerable migration strain. Runs on GNU/Linux, OS X, Windows, and even has a document viewer for Android.
If I had a penny for every time I'd heard PDF referred to as "Adobe Acrobat format"…
- I use and recommend Evince, which is available for GNU/Linux and Windows.
- The Free Software Foundation Europe maintains a list of many more free software PDF readers.
- Southern Cross University recommends CutePDF Writer, which has been found in the past to install adware/spyware. Don't touch it with a bargepole.
- Many free software applications, such as LibreOffice and Mozilla Firefox, are able to export to PDF format without requiring additional software.
- Suggestions, please…
Nice to have
More specialised or advanced software.
- Audacity is a multi-track audio editor for GNU/Linux, OS X, Windows. A friend and I had a podcast for a while, so I used this all the time for cleaning up audio, and mixing elaborate sound effects from samples. It's brilliant.
- Dia is a diagram (flowcharts, etc.) creation program for GNU/Linux, OS X, Windows.
- The GNU Image Manipulation program (GIMP) is a raster (bitmapped — photos, and so on) graphics editor for (according to Wikipedia) "[GNU/]Linux, OS X, Microsoft Windows, BSD, Solaris, AmigaOS 4". I don't do a lot of image editing, but I've depended on it for about 20 years, and have never once found myself wishing I had Adobe Photoshop.
- Inkscape is a vector (line art, logos, diagrams, etc.) editor for GNU/Linux, OS X, Windows.
- Dia, the GIMP, and Inkscape all export to PDF, and the latter two do a pretty good job of importing from PDF.
- Bibus is a reference manager for GNU/Linux and Windows. It imports metadata in all the usual formats (Bibtex, etc.), though I've found it pretty poor in automatically generating references you can copy and paste into a list without manually tweaking. I find it principally valuable as a simple searchable database of stuff I can vaguely recall reading, but can't remember where. It has some functionality for hooking into LibreOffice and Microsoft Word, but I've not tried that. It's also unusual in that it doesn't try to hook you into using some proprietary web service, as most other reference managers do, so it wins on privacy.
- Speedcrunch is an intuitive scientific calculator for GNU/Linux, OS X, Windows.
- Qalculate! (you can tell it's fun by the exclamation mark in the name) is a plotting calculator that also has a lot more functions (including statistical functions) than Speedcrunch, though to my mind it's rather clunky to use. Runs on GNU/Linux, and a third party has contributed an OS X port.
- For statistical functions lacking in LibreOffice, and more heavy-duty number-crunching, GNU PSPP is excellent. It's a free software replacement for SPSS for GNU/Linux, though apparently you can get it to compile and run on OS X, if you're the sort of person who doesn't find that too intimidating.
Products that I've never had a reason to find free equivalents for. Suggestions appreciated.
A web app development environment. Possible alternatives.
A proprietary online survey platform. I was a web developer in a former life, so I would use (and indeed have used) my own custom-built Drupal site to conduct surveys. I realise this is not a practical option for most students. The best solution for most would probably be a third-party platform licenced under the GNU Affero General Public License.
If you still need any of these, I'm very very sorry.
Adobe Flash Player
There used to be a number of free software alternatives, but as Flash is a dead technology, replaced by superior native web technologies, these projects appear to have died as well. Install the HTML5 Video Everywhere plugin for your web browser of choice, and you can disable (and preferably uninstall) and forget the blasted thing.
Adobe Shockwave Player
Another superceded technology.
A development/runtime platform for .NET applications. Not strictly obsolete, since .NET developers do perform the useful service of giving PHP developers somebody to look down upon.
Microsoft Security Essentials
An oxymoron in more ways than one.
“Roll your own roulette wheel - use the Yocto project to bitbake our own custom Linux distro specific to the hardware we’re running on - can be x86 or embedded ARM boards. Can make .deb, .rpm or .ipk package systems.”
First some background. Feel free to skip this…
When I first got it about 6 years ago, my Acer Aspire One (1GB RAM) could run Windows XP, Android, and Ubuntu just fine. But after 2-3 years of version updates (10.10 Netbook Remix through to 12.04), Unity had bloated up, and Ubuntu had slowed to a crawl. By this time I’d also become frustrated with Ubuntu’s cavalier disregard for the software freedoms of its users. So, I replaced it with Trisquel 6 (Toutatis), which uses GNOME, and ran pretty well for another year or two. But around the time I upgraded to Trisquel 7 (Belenos), I started to have the same problems; lagging, freezing, and crashing. Thanks to some of the wonderful folks on the Trisquel Forums, I identified that the problem is the GNOME shell, which now requires at least 2GB of RAM to run reliably.
I tried out a couple of more lightweight desktop environments (Enlightenment 17 and OpenBox) and sure enough, my laptop became usable again. I’ve also tried Trisquel-Mini, which uses LXDE as the desktop environment. I’ve tried LXDE distros in the past (Lubuntu and more recently Peppermint 2 and 3), and they are indeed lightweight, but they always feel somehow like a flimsy toy. The default browser, Midori, just doesn’t work properly on a lot of the sites I use, and installing a Mozilla-based browser (IceCat) seemed to pile all the weight removed by using LXDE right back on, while also looking like a hog in a cocktail bar (ie inconsistent with the look and feel of LXDE).
I recently tried Uruk, which uses Mate, and looks almost as pretty as ElementaryOS, but as soon as I opened a browser and started watching a video on YouTube, it fell over True, I was running it live off a USB, but would it really run much faster off a 6 year old magnetic hard drive. I’m skeptical. Sure, I could use VLC to watch YouTube videos instead, or use NoScript or whatever, but these are ugly hacks compared to using the site like normal people do. When I powered down, I noticed it was running *very* hot, which made me wonder if the temperature control and the fans work properly without binary blobs in the Linux kernel, *sigh*.
…and now, to the point.
All of this leaves me feeling very frustrated. The Aspire One is a great little machine, very compact, and great for travelling (connecting to free wireless at public libraries etc), which I do a lot. As I said at the start, it gave me a great GUI experience for the first few years after I bought it and as far as I can tell every piece on hardware in it is working fine, and most if not all of it works without proprietary add-ons. Surely GNU/Linux doesn’t have to be guilty of one of the cardinal Windows crimes, forcing people to buy a new machine every few years to keep up with the cancerous bloat of the operating system, even if the hardware in the old one is still totally functional?
Surely there’s a way to maintain a decent GUI experience for GNU/Linux on older machines?
Sadly, although they don’t climb as quickly they do for Windows, the minimum specs for all GNU/Linux desktop environments do seem to be on a gradual upward creep. I presume this is because developers get so excited about the new bells and whistles they can add to their programs, they don’t notice that this steadily pushes hardware requirements towards the maximum capacity of the PCs they are developing on. Since developers tend to be able to afford the newest computers, and to be more motivated to obtain them than anyone else except gamers (and people who do multimedia production), they just don’t realize that they’re slowly but steadily leaving the rest of us marooned on working hardware that needs ever uglier and more time-consuming hacks to keep it usable.
At the moment, we can choose between general purpose distros divided by politics or subsystem preferences (eg Trisquel, Debian, Fedora/ Red Hat, openSuse, PCLinuxOS, Puppy, Arch, and their plethora of derivatives like the Ubuntu family), and special purpose distros like GParted live (for editing partitions), Tails (for private live sessions on almost any PC), GeexBox (for playing media), or kxStudio/ UbuntuStudio (for multimedia production). All of them try to support as much hardware as possible, with mixed success, due mainly to the Faustian bargain between hardware manufacturers and Microsoft, who still manage to sell Windows as the default OS on most new PCs.
If we want to stick with our PC as it ages gracefully, we have to gradually migrate down the curve of desktop environments. Starting out bright-eyed and bushy-tailed on bloated beauties like Unity/ KDE Plasma, then maybe down to the more modestly bloated GNOME 3 and Pantheon (ElementaryOS), down through Cinammon/ XFCE, and on to Mate, LXDE, and Enlightenment 17, and finally to the featherweights like OpenBox, that barely qualify as a GUI at all (I’m only including the ones I’ve actually tried on the Aspire One). Installing a desktop environment on top of a distribution that wasn’t assembled with it in mind often breaks stuff. So in practice this sequence usually involves migrating from distro to distro, like a meth addict stumbling from homeless shelter, to bus shelter, to park bench, and with an analogous sense of displacement and uncertainty. It’s better than just throwing the PC away when Windows gets buggy, or handing it on to someone else so they can fret about it, but its still far from ideal.
(graph copied from a post on Layer 3 Networking blog, thanks for sharing
All of this has led me to start wondering how much work and resources it would take to create and maintain hardware-specific distros? Instead of hundreds of derivative distros (based on the major distros) foaming in and out of being, trying to be all things to all people, what if they each picked one device (eg Acer Aspire One), or group of devices (eg Fujitsu laptops made between 2000 and 2005), and targeted their distro specifically at the needs of users running GNU/Linux on those? What if they could backport bug fixes and even new features, while making sure they don’t render an unmodified device from that group unusable, and keep the project going until the last known device in that category throws in the towel?
Or, what about hardware-specific desktop environments? What if their developers actively tried to remove bloat before adding new features to keep the hardware requirements about the same over time, and each one was forked and rebranded every time they identified a need for a major uptick in requirements to make whole new classes of functionality possible? That way, it would be possible to know that a distro would run on your device for as long as it keeps working properly, just by looking at the name of the desktop environment. Application developers could target a particular level of device, based on what sort of bells and whistles their applications need, by targeting the desktops they can use.
If free hardware designs and open source hardware really takes off, as it looks like it could based on the achievements of ThinkPenguin and some recent crowdfunding successes, this could make things both much simpler and much more complicated. Let me walk you through some possibilities. On the plus side, hardware based on free designs is most likely going to be sold with free software, with no need for ugly hacks relying on proprietary blobs, which is good. Any proprietary bits in the shallower levels of the stack (eg the GUI in Sailfish) can be swapped out much more easily than kernel or firmware level components. On the other hand, at least at present, hardware is a given; there are certain devices manufactured in large numbers, and the challenge is to get as many of them as possible to run a free code OS, ideally without any proprietary bits. Once one device is supported, thousands of other devices from the same batch will work too.
But what if the growth of free hardware designs and 3D printing results in a confusing explosion of different kinds of devices, with different release schedules, just as free code licenses and the internet have done with desktop environment and application software? Trying to make every GNU/Linux distribution support every kind of device that exists could start to look disturbingly like King Kanute ordering the tide not to come in. At this point, having software teams and hardware teams working together on lovingly-crafted, freedom-respecting devices might make more sense. So, it is so ridiculous to suggest preparing for this utopian scenario by having software teams working on supporting software freedom on specific devices now?
Now, to be fair, I’m not a developer, and I have no idea what goes into maintaining a distro or a desktop environment. I’m guessing a lot. There may be some very good reasons why we have to play distro roulette and surf down the desktop curve, and maybe that’s what those of us who can’t afford to buy a new PC every couple of years will just have to keep doing. But I think if we ever want to arrive at the Shangri-La of ‘The Year of Linux on the Desktop‘, and do to Windows what FireFox and Chrome have done to Internet Exploiter, I think device-specific distros is an idea that’s at least worth considering.
A lot of software is published under licenses that restrict your freedom to do what you want with it. Unfortunately, the widespread use of these restrictive licensing terms coincided with the widespread adoption of personal computers, so many people don't see the restrictions as anything unusual.
A program can be considered free software if it is distributed under conditions which guarantee the user:
- The freedom to run the program, for any purpose
- The freedom to study how the program works, and adapt it to your needs
- The freedom to redistribute copies
- The freedom to improve the program, and release these improvements to the public
Free as in Freedom
In general use, the word free has two possible meanings; "free from restrictions", or "free from monetary cost". In the context of "free software", it is the first of these that applies.
It is possible to sell free software, and it is also possible to acquire software at no cost which does not meet the above criteria for free software (such software is often called "freeware"). As a practical consequence of the four freedoms above, it is generally possible to acquire copies of free software at little or no cost, but low cost is only one of the benefits of freedom.
"Copyleft" is a technique employed in some free software licenses to ensure continued freedom by the imposition of one restriction. If you redistribute copylefted free software or software derived from existing copylefted free software, you must do so with no additional restrictions.
That is, you can't take copylefted free software and redistribute it under a non-free license.
In 1998, a number of prominent members of the free software community began applying the term "open source" to free software, in the belief that it was a less ambiguous term which might encourage wider adoption of free software, particularly in the corporate world.
While this has undoubtedly been the case, the term "open source" is not without it's own ambiguities. These ambiguities, along with the open source movement's emphasis on the practical benefits of collaborative software development rather than freedom, have allowed some unscrupulous companies to imply that their products are "open source" simply by making the source code of their software available in some way, even if the precise distribution terms of the software do not meet either the Free Software Definition, or the Open Source Definition.
Because of this, and because we believe that freedom is desirable in itself, we prefer to use the term "free software".
- The GNU Project's Free Software Definition
- Categories of Free and Non-Free Software
- Free Software at Wikipedia
- The Open Source Definition by the Open Souce Initiative (OSI)
- Goodbye, "free software"; hello, "open source" by Eric Raymond
- It's Still Free Software by Richard Stallman
- It's Time to Talk About Free Software Again by Bruce Perens.
- Why "Free Software" is better than "Open Source" by Richard Stallman
- Open Source at Wikipedia