tuesday, october 22, 2019

outside my back window leaves swirl in the wind
and the streetlight over the alley flicks on
against the sky pale blue and pink

Sunday, October 20, 2019

on rms / necessary but not sufficient

I’m old enough now that, of the famous people I admired when I was young, more have fallen in my estimation than not. At best I’ve learned about the difference between a person and the construct of their fame, and something about how to put the work I still admire in context and acknowledge its problems. At worst, well, plenty of days I’m just disgusted. The idea that you shouldn’t have heroes at all resonates in these times, even if there are a few I still find it hard to let go.

I couldn’t tell you exactly when I first ran into Richard M. Stallman’s thinking. I spent an ocean of time on Slashdot and IRC in the 90s. I probably read “The Right to Read” right after it was published. I was running a Linux desktop by late 1998, and read Steven Levy’s Hackers right around then. I was 17, which must be right about the age when radical ideas take hold with the most ferocity: You’re old enough to entertain big thoughts, but not old enough to have many defenses against taking them on wholeheartedly.

Since then, I’ve built my working life and quite a few personal beliefs on ideas that originated and developed in hacker culture. Even so, most of the people, places, and institutions that crop up in the hacker mythos have stayed in the realm of abstraction or distant figure for me.

I’ve shared both antipathy and (I hope) friendship with people from the orbit of MIT, but it was never anywhere near my orbit. American East- and West-Coast cultures crop up repeatedly in my life, but they aren’t exactly my culture either. I haven’t worked on public projects of much significance (until recently, anyway), and I don’t do conferences all that often.

As a result, I’ve never been in direct social proximity to RMS, the staff of the Free Software Foundation, or most of the people who work on GNU projects. I also haven’t spent much time on the mailing lists, forums, or IRC channels that would have given me more experience of them as distinct individuals. I suspect the same is true of many people who rely on GNU tools, advocate software freedom, publish work under the GPL, and donate to orgs like the FSF.


The way it now reads to me, RMS has behaved like an asshole for a long time, and the moment of his resignation from the FSF after ill-advised opinionating about the Epstein scandal was bound to come in some form eventually. A lot of people in that scene have written to the effect that there’s a long term pattern here, and/or that they and others tried and failed to get him to behave less like an asshole.

Some links:

I don’t think these read as simple efforts at character assassination, and they appear to come from people who share the values of the movement and have put in the work to prove it.

I also find it credible that there’s been an ongoing problem here because I paid a little attention during a couple of previous blowups about RMS, and I sent this to the FSF late in 2018:


I wasn’t really sure where to write, but as someone who continues to support the FSF financially, I wanted to register with the organization in some way that I broadly agree with what Bradley M. Kuhn has to say here:



– Brennen Bearnes

And then: I’ve talked with women who have said that RMS’s behavior is alienating or that they’ve stayed away from the FSF because of his reputation. I have every reason to think that this kind of thing drives people away from a movement that’s supposed to be liberatory and fundamentally concerned with human agency.


I’m not writing this to throw fuel on any fires. Not that it would be needed; reaction in some quarters has been more or less on par with the systemd flamewars of these last 5 or 6 years or the least pleasant threads I’ve slogged through on Wikimedia mailing lists.

I’m tired of that kind of thing. I’m tired of technical work and technical politics being defined by fear and loathing. I’m far less willing than I used to be to participate in the outrage cycle that’s overtaken social media and journalism. I’m weary of callouts, pile-ons, and network-amplified harassment. I’m way beyond jaded by the dysfunctions and endless self-immolation of activist culture. I have friends and colleagues who are decent people without sharing many of my beliefs, and for the most part I’m happy to collaborate with them on things that seem beneficial regardless of that.

So: As little sympathy as I have for the view that free software isn’t a political project, I understand the desire to avoid getting drawn into the unrelenting nightmare of partisan politics and its ancillary culture war.


But free software is a political project.

Software, broadly speaking, is a political project, and it’s one that has come to govern human existence. So far it’s done so mostly without the consent of the governed, and it operates to an intolerable degree in the interests of concentrated wealth and unaccountable power.

Computation is everywhere. Less and less of it is subject to the understanding or control of its individual users. Or, for that matter, to any democratic representation or governance. Systems that define our jobs and social lives are managed by a technocratic class beholden to megacorporations and billionaires. These systems' workings are opaque, their maintenance is an unrelenting nightmare, and everyone involved is fundamentally compromised.

Free software saw much of this coming and tried to stop it. It failed, in ways large and small. It’s a very incomplete set of answers to a problem of almost incomprehensible scope. But any humane future for computation is going to require ideas and practices that have thrived within the free software movement. The content of the ideas matters, and without them we’re basically fucked. That’s what’s at stake.

Accordingly: I think it’s reasonable to ask better of people with authority in our community, and imperative that we outgrow cults of personality as an organizing principle. I’m not still in this after 20 years because I admire a particular dude. I’m in this because at heart I’m an anarchist a lot of the time. Free software isn’t whatever RMS says it is. Free software is what we make of it: We who want to be free, we who want others to be free.


I’ve been using the phrase “state of total defeat” when I talk about the goals of free software and related ideas, but I recognize that that’s hyperbolic and not especially nuanced.

I’m writing this on a computer that, even if I can’t inspect it all the way down to the metal, runs an operating system and a bunch of applications I can crack wide open any time I feel like it. The OS and its package repositories are a product of anarchy in the real sense, assembled over the course of decades into a mostly-coherent whole by a distributed collective of volunteer hackers from the work of thousands of other projects.

Free and open source software has given me both a tolerable scope for my individual use of computers, and the ecosystem where I make a living. To the extent that free software was about wanting the freedom to hack and freely exchange the fruits of your hacking, this hasn’t gone so badly. It could be better, but I remember the 1990s pretty well and I can tell you that much of the stuff trivially at my disposal now would have blown my tiny mind back then. Sometimes I kind of snap to awareness in the middle of installing some package or including some library in a software project and this rush of gratitude comes over me.

The elephant in the room is that open source, combined with the networks it did so much to help build, has provided much of the technical architecture for a proprietary control over computing that exceeds all but the wildest dreams of a few decades ago.

There are plenty of ways that RMS-style obsession with terminology has done more harm than good in the last few decades. The conflation of “free/libre software” and “open source” into one thing might even be a good idea, provided the political motivations of the “libre” side of the question are retained. But it’s still worth making some distinctions, and worth knowing some history. Open Source™ set out partly to make open code palatable to business, and it succeeded in that.

In fact, tons of people taught business that open source / FOSS was a good way to get economic leverage: At one end of the scale, just people like me and a lot of my coworkers, who started out as amateurs on shoestring budgets, wanting to make a living with the stuff we already knew and liked. At the other end, straightforward predators of the sort who found tech companies and hold upper management positions: People who looked at open code and open standards and saw unpaid labor and a commons ripe for enclosure.

Google, Amazon, Facebook, Apple, Twitter, Netflix, Uber, and so on down the line: To varying degrees, they’ve all used FOSS as a basic technical foundation for their current empires. Google and Facebook’s history is riddled with instances of using an open technology or medium to gain the leverage necessary to subvert the tech’s openness: Mail, RSS/Atom, the web itself.

Android and Chrome use open source rhetoric and development practices to drive their adoption while operating purely in furtherance of Google’s agenda — a pattern you can see replicated in countless products and systems. Locked-down APIs replace protocols, personal computers are relegated to the status of “client”, and keystone projects like web browsers become impossible to replace without billions in funding and hundreds of engineers.

The scale, complexity, and rent-seeking of megacorps have poisoned our expectations for software and the practice of software development to an extent that’s hard to get your head around. Technical work is well-paid, at least for the skilled and well-connected, but that typically comes at the price of a livelihood held hostage by terrible people in service of terrible goals.


It could be otherwise, but I think we first have got to recognize that the existing tools of FOSS aren’t remotely sufficient to remedy everything that’s broken about software. What the communities writing and publishing all this code have accomplished is astonishing, but it remains embedded in a system of exploitation and a profoundly damaged larger culture.

Technical culture is broken, generally concentrating rather than diffusing the inequities and pathologies of the one that surrounds it. Employment is broken and jobs are rife with bullshit. What Diana Thayer calls the poverty gun — the relentless, asymmetrical threat of unemployment pointed at anyone in conflict with the whims of capital — stifles most meaningful dissent. Capitalism, however inevitable or useful some of its basic elements are, is broken.

I don’t know how to solve those problems. What I think I know at the moment is that free software is necessary, but it’s not sufficient. As something necessary, it needs to be better. As something insufficient, it needs to be a place where more people can find a home.

Saturday, October 5, 2019


Note: I’ve edited this since initial publication, mostly to add links to other entries, but there’s some new text as well.

Late summer into middle fall seems to be a time when things get kind of loose around the edges and I think about what I’m doing and, often enough, make decisions that change the whole structure of my life.

Not coincidentally, it’s coming up on 5 years since I quit SparkFun Electronics. They’ve been eventful years, for good and ill both. I’ve had some times, man. Even so, I wonder in a clichéd way how it’s been this long already.

Mostly, SparkFun gets further from my mind all the time. Every passing year fewer of my friends are trapped there while it decays into the kind of thing it used to repudiate just by existing. I’m still bitter, but it’s a bitterness I don’t have to think about very much. Still, it comes back in waves now and then. This time I wondered: What did I learn from all of that?

There was probably a lot. After all, it was seven years of my life, and on one end of it I was still young and on the other I wasn’t really. I probably knew a lot of things in the middle of that experience that I’ve lost since.

So, first: You won’t always know more than you used to.

When I started working on sparkfun.com it was an e-commerce site written mostly in a programming language called PHP, and when I left it was still an e-commerce site written mostly in PHP. We made plenty of mistakes along the way, but I’m pretty sure we were right not to do a wholesale replacement of a functioning system using trendier tech.

If you are not familiar with the politics of programming languages, a thing you should understand is that it’s important to the way technical culture operates that some tools (and often by extension the people who use them) be understood as generally bad and without value. PHP is, in this model, marked as fundamentally misguided and thoroughly regrettable, and is thus an acceptable target of derision and mockery.

Just as important are two other facts: First, that despite its nastiness and reflexive contempt, this understanding is in many ways correct, insofar as it applies to tooling. Second, that it errs mainly in being applied so narrowly. Which is to say that yes, PHP is a bad programming language, but generally so are the programming languages preferred by PHP’s most vocal detractors. (I should know, as I have often been a vocal and ardent detractor of PHP.) I have yet to find an exception to this, though I continue to learn programming languages and may one day be pleasantly surprised.

I’ve spent most of my working life using tools that are, as I’ve written elsewhere, terminally unhip. SparkFun was an extended lesson in the difference between something’s received reputation and its consequences in practice.

See also:

I learned that you should be kind to customer service reps and tech support.

There were a lot of times I was unkind to the people I worked with, and I’ve learned to regret that.

I learned that “the customer is always right” is poisonous, and that there’s some joy in explaining to the kind of person who has always used that notion as a weapon that their business isn’t worth the abuse.

I already knew how to program when I started at SparkFun, or at least I thought I did. While I was there, I learned how to make software. A bunch of the apparatus and the tooling, but more than anything that you have to work with people. That it’s a shared thing. That, mostly, you’re going to do it together or you’re going to fail at it.

I learned a lot about unintended consequences, and the ways that design decisions unfold into patterns you never anticipated. I learned to mistrust cleverness and prize the explicit.

Models are always wrong, maps are territories unto themselves, and shared understanding is a harder thing to build than almost any other kind of technical artifact. If people use the tools you create, even if they helped you build them, they’re going to do it in ways that break every expectation you had and put the lie to every unstated assumption you made.

I discovered all that at painful length, and then I thought that when I got into the wider technical world I’d find out how unsophisticated we’d been about the whole thing. In some ways that’s what happened, and it’s painful (but also funny) to think about how little I knew back then. In others it turns out that most people are groping in the dark and a lot of what gets sold to you as sophistication just curls back around into wishful thinking, technical debt, and bureaucratic churn.

In late 2013 I wrote this:

Programmers must, as long as we hope to be effective, sustain a dispassionate awareness that all we do is dust in the wind: That entropy is destiny, disorder is law, and futility is the architecture of existence. We succeed, to the extent that success is possible, only as long as we remember that our efforts are but brief disturbances in the ordinary course of time’s certain triumph over the integrity of all built systems. Everything you make will surely die, and unlike the children of your body or the structure of a great city, the code you write will probably die long before you do.

See also:

I learned that salespeople will find a way around you, and that no one is more susceptible to marketing than marketers.

I came to think of marketing itself as an aggressive ideological cult, or maybe just the most visible part of one — a complex of ideas spidering out into most domains of human endeavor, and hungrily grasping at whatever cognitive territory remains unconquered. Marketing as a mask worn by something deeper in the culture and harder to name or delineate, let alone contradict.

See also:

I learned that you should moderate the comments, if you have them at all, and maybe something about how.

I learned to ride a bicycle again, commuting as many days as not on an aluminum road bike from from the early 80s with downtube shifters and straps on the pedals. A coworker found it on craigslist and helped me tune it up - the first bike I’ve ever owned that wanted to go fast.

Despite an ocean of beer and liquor and all the attendant bad decisions, I was probably healthier then than I’ve been any time before or since. I was definitely more plugged into the landscape and the seasons where I live. Every working day bookended by little adventures.

Some things about hiring:

  • It’s hard and very often the people doing it are flailing.

  • Interviews are mostly nonsense.

  • Hiring your friends (and maybe relatives) is an entirely rational way to go about things, to a point. What you have to deal with is this: Some of your friends might be incompetent or worse, and even if they’re not, leaning too hard on your existing social connections reinforces all the privileges and biases and latent power structures that put you in the position to hire somebody in the first place.

I learned how much quality matters and how much it doesn’t: From how hard we tried to get things right in the software and how little it probably mattered in the final analysis. From selling things that were basically pretty good and also from selling bottom-dollar no-utility garbage, both with enormous externalities.

I was pretty good at not thinking about those externalities: Cheap labor and industrial pollution in someone else’s country. Fuel oil and gasoline and jet fuel in transit. I was fully complicit, and I knew it on some level, but as long as we were getting something right I felt like we were ahead of the game anyway.

We sold stuff with open designs and open code and showed people how to use it. A faction of us free software partisans fought pretty hard on that open part, and got listened to for a while. A lot of the people I worked with were teachers in the best and simplest sense. I couldn’t begin to guess how many people learned to solder and write a simple program from SparkFun workshops and tutorials. It worked for a long time. Maybe we were ahead of the game. Maybe we made people more free, gave them greater agency in a time when the tech in general is spinning wildly out of their control.

Then again maybe we mostly taught the children of technocrats to put more tiny computers in everything, to the long-term advantage of the billionaires and authoritarian scumbags currently hastening civilization along to an end state that’d slot pretty cleanly into the Mad Max franchise.

It’s hard to say exactly.

Erik Winn always said business ruins everything. I learned I think he was right, for the most part. I also learned that you have to work with people to get anything done, and that businesses are a lot of where that happens, for better and worse both.

“Community” has to be one of the most abused and debased words in the contemporary vocabulary. There’s this Greg Brown recording I half remember where he makes fun of the idea of intentional community and says that community is what happens when you have to get along with the people you’re stuck with.

Well, for years I went to work in a gray-carpeted room in a shabby building in a half-empty suburban office park, and after a while I woke up looking forward to it as often as not, because I was going to work with my friends.

The Sunday after my last day at Sparkfun:

It can be an astonishing thing, in a certain sort of life, to look around and understand that you have, and have had for a long time now, a lot of friends.

I still feel like that.

A lot of what I learned from SparkFun came right at the end.

I learned never to mistake an aesthetic for an ethic. That the signifiers of style can’t be relied on as the signs of a lived belief or a worked understanding. That a keg in the break room and a high tolerance for stoner hijinks makes a pretty good smokescreen for lousy wages and bad faith.

I learned just how easy it can be to kill something from the top, even if it got built from the bottom up.

I knew for a long time before SparkFun that employment was mostly bullshit, and that the interests of the owners are not the interests of the workers. I managed to set that one aside for a while, but it all came back in a rush: More complicated by all the contradictions of experience, but true all the same.

As long as there’s no shared power that can check and hold to account the owning class and their enablers, we’re all their enablers. Individual workers are, more often than not, left with rage-quitting an organization as the only means of signalling meaningful dissent. And at that it’s a form of dissent open only to the few who are cushioned enough by their skills, family wealth, or social status to exercise it at will.

It’s late on a Saturday night and I’ve been trying to write this for days without getting half of what I wanted to say into it.

I guess for now I’m going to call it good and close this set of entirely too self-serious reflections with some dialog from the Coen brothers' Burn After Reading, as quoted on IMDb.com:

CIA Superior: What did we learn, Palmer?

CIA Officer: I don’t know, sir.

CIA Superior: I don’t fuckin' know either. I guess we learned not to do it again.

CIA Officer: Yes, sir.

CIA Superior: I’m fucked if I know what we did.

CIA Officer: Yes, sir, it’s, uh, hard to say.

CIA Superior: Jesus Fucking Christ.