Stallman facts in an Octave release

And now for something completely different…

I managed to get an easter egg into Octave. I’ve always been a little sad that we are not having enough fun in Octave, so I added some facts about the world’s greatest hacker to the source tree. Just type

fact

in the Octave interpreter to read them.

Giving credit where credit is due, thanks to Stallmanfacts.com and to Reddit for starting the whole thing.

Note: I cleaned up the facts a little, removing or amending the ones that were stupid or inflammatory. But this is ok, because these facts are obviously free software under the terms of the GNU General Public license version 3 as published by the Free Software Foundation, or, at your option, any later version? Right? ;-)

We do what we can because we must

A recent conversation with a friend about Twitter vs identi.ca prompted the following response, slightly edited for formatting and anonymity:

<my friend>
man.. that’s my primary annoyance with the open source movement

<me>
What is?

<my friend>
the belief that everything has to be duplicated especially for open source, or it’s invalid

<my friend>
and a version of something that already exists with a smaller community around it and a worse user experience is somehow better

[snip]

<my friend>
someone creates something useful, and then a bunch of people jump on it and do a piss poor job trying to replicate it because they lack the ability to actually design (in the architectural as well as UX sense) and come up with a shit product that they think everyone should use because of some subjective moral high ground

While we were having this conversation, I was sitting in a cafe, it was a lovely sunny afternoon, the sun was beginning to set, and I was feeling very peaceful. I briefly tried a sort of rebuttal but couldn’t conjure up the energy to continue when the argument started to get heated. I replied instead that my surroundings were making me feel mellow. I wanted time instead to respond, which I will attempt to do now.

Let me first try to address the concern at hand. Twitter vs identi.ca. If Twitter exists, why should identi.ca exist? The only reason I started to curiously poke around identi.ca is that I noticed Debian people were using it, and I’ve found that I’m very like-minded with other Debian users and developers. So I trusted their judgement about the usefulness and safety of identi.ca, and I started using it. I’m not particularly defensive about either website; I still think microblogging is kinda dumb. I just wanted to see for myself it would be as captivating as everyone seems to think it is, and I was glad I found a microblogging service that my friends seemed to like.

And yes, it’s true that the fact that I have the source for the website, (it’s under the AGPLv3, which is like the GPL but activates its copyleft clauses by network interaction, e.g. a website!) gives me warm fuzzies. I like having source, and I’m a little sad that the other big websites that I use frequently for their services, bitbucket and gmail, don’t give me source. I briefly tried out gitorious because I wish I could at least submit patches for bitbucket, but then that’s git, and I still prefer hg.

At any rate, if I have two websites of approximately equal functionality, one gives me source, another one doesn’t, then I will disregard popularity and choose the one with source. It’s just what I prefer. I think this is what the attack about “high moral ground” was about, that I think a website should be used because it has source.

I would like to defend against the accusation of high moral ground or holier-than-thou attitude. I now try to never personally appear or act that way, except in very obvious jest (e.g. by speaking religiously about Emacs). I have learned that telling people, don’t use that software, don’t buy that product are extremely counterproductive, so I’m not trying to impose upon anyone any sort of rules of what software I think they can or can’t use. I wish everyone was using identi.ca instead of Twitter and that identi.ca would stay free with that burst in popularity, but the way to that goal isn’t by telling people what they should do; at best you might suggest why they should value source for its own sake, because it enables other kinds of interaction, but it’s pointless to pontificate. So if I or any of my peers in the free software movement have pontificated to you, I apologise for myself and I apologise on their behalf. Empty rhetoric is not what we want you to get out of our work.

Which brings me to the rest of the accusation, what in my friend’s words is a “shit product”… which I don’t think identi.ca is, the interface seems very polished to me (I probably shouldn’t have started off showing the interface by showing off my own identi.ca dark theme; dark themes seem to provoke very intense negative reactions in people). If my wish of everyone using identi.ca or (Octave instead of Matlab!) won’t happen with preaching, then how will it happen? By building a non-shit product, one with a good user experience, one that is architecturally sound.

Clearly being free software isn’t an impediment to being of good quality. We can find software both free and not of good and bad quality. But if there is software that already exists of good quality and it’s not free, then why bother creating a free alternative? And here I come again to Octave and why I felt a poignant need to write this blog post. I am, after all, working on a free project with which I hope to give Matlab users and other people with numerical computing needs better ways to freely collaborate. Octave does frequently receive accusations of having a bad interface (but Jacob Dawid’s Quint project in our private Octave clone may very soon fix this!), of not having enough toolboxes, of being slow, of not having a JIT compiler… all of these are complaints of varying validity. Matlab users have come to expect them, and if we are to offer Octave as an alternative that respects their freedom, we also need to address user complaints.

Here I come to what I felt was the crux of my friend’s complaint. Why bother? If there is something that already works, why recreate it freely and offer something that is a worse user experience? Well, I find this defeatist. If you had the option of software of equal functionality and quality, wouldn’t you prefer it to be free? I think you, yes, you deserve free software, so I’m trying to build it for you, with you. It may not be all that you want right now, but we can always try to make it better. Perhaps you may even help me! Or not, you’re free to do what you want, just improve it privately without even giving me your improvements. That’s fine too.

Will we ever win? Will Octave ever be the de-facto numerical computing environment instead of Matlab like our brothers-in-GNU with the R project are for statistical computing? Will identi.ca receive Twitter refugees when the company takes an irredeemably evil turn in the future? Who knows. But we must not lose heart. We have the capacity to build something better, and because we all deserve something better, we must keep trying. It’s our duty to ourselves, as a community. It’s not a holier-than-thou attitude; it’s thou-art-just-as-holy-as-everyone-else attitude. These are worthwhile windmills to tilt at, we have the steed, we have the lance, so tilt we must.