To the Colors
Welcome
Users of the colors.js color conversion library were surprised recently when their printers started to print "Liberty Liberty Liberty…" and then began spewing random characters in an infinite loop.
Dear Reader,
Users of the colors.js color conversion library were surprised recently when their printers started to print "Liberty Liberty Liberty…" and then began spewing random characters in an infinite loop. The weird appearance of the printed page made those users wonder if a vandal had broken into the source code, but the truth that began to emerge was much stranger.
It turns out that the developer of the colors.js and faker.js libraries sabotaged the code himself. Marak Squires had apparently become disillusioned with the way large companies were using his code without contributing or providing compensation. On November 2020, he wrote on the faker.js GitHub page, "Respectfully, I am no longer going to support Fortune 500s (and other smaller-sized companies) with my free work. There isn't much else to say….Take this as an opportunity to send me a six figure yearly contract or fork the project and have someone else work on it."
At the time, it wasn't clear how the story would end. This month, we all found out.
Although colors.js and faker.js are independent projects that are largely overseen by a single volunteer, they have quite a large footprint in the world. According to reports, colors.js receives more than 22 million downloads per week and is integrated into many open source tools by commercial vendors, including the Amazon Cloud Development kit.
This kind of story always makes us want to choose sides for a proverbial "haves and have nots" or "business" versus "everyone else" debate. However, it would not be accurate to assume that the Free Software founders opposed commercial uses. The four freedoms that underlie the Free Software movement tolerate no restrictions on how the code will be used (as long as it stays free), and the commentaries at GNU.org make it clear that prohibiting commercial use is just another limitation on freedom.
One of the reasons the early Free Software pioneers didn't care if someone else got rich was because they totally didn't believe that getting rich was all that important. They wanted an identity for Free Software that was independent of wealth, and to them, the best way to ensure that was not to restrict wealth but to not care about it. Of course, they were young back then. As volunteers get older, they start to think about a mortgage and college tuition for their kids, and the idea of contributing for the pure joy of it while a large corporation is deriving value from the work must be quite unsettling.
I can see why this developer was ready to stop giving his work away for free – especially with mega vendors like Amazon using his code and not pitching in or compensating him. However, the problem with this kind of dramatic exit is that it plays into the hands of those who depict Free Software as a playground for unruly anarchists who can't be trusted with real business. I can imagine there are Microsoft sales reps out there right now scheming on how to work this episode into their pitch.
Note that none of this has anything to do with Linux – at least directly. The affected projects are based on JavaScript and are therefore cross-platform, but in the long run, this kind of theatrical protest is not a good look for the open source development model, which means it isn't good for the Linux community.
Independent open source developers burn out all the time, and, ideally, resources are available within the project for an orderly transition. However, many projects are too small or too fragmented to provide the needed continuity. What is striking about this case is that Squires served notice all the way back in 2020 that, unless a paycheck was on the way, someone else would need to take over. Should we have been listening? Perhaps it is time for the Linux Foundation or another of the multimillion dollar organizations dedicated to overseeing the Linux image to provide some direct outreach and transition support for these small projects that give Linux so much of its luster.
Joe Casad, Editor in Chief
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
System76 Refreshes Meerkat Mini PC
If you're looking for a small form factor PC powered by Linux, System76 has exactly what you need in the Meerkat mini PC.
-
Gnome 48 Alpha Ready for Testing
The latest Gnome desktop alpha is now available with plenty of new features and improvements.
-
Wine 10 Includes Plenty to Excite Users
With its latest release, Wine has the usual crop of bug fixes and improvements, along with some exciting new features.
-
Linux Kernel 6.13 Offers Improvements for AMD/Apple Users
The latest Linux kernel is now available, and it includes plenty of improvements, especially for those who use AMD or Apple-based systems.
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.