Why it’s “Linux” and not “GNU/Linux”

•January 2nd, 2009 • Leave a Comment

I’m sure everyone has at least heard of the GNU/Linux naming controversy, a dispute between rms and the word over whether it’s “GNU/Linux” or just “Linux”.  I prefer “Linux” myself because:

  1. A name is supposed to replace description, not abbreviate it. I think we can all agree on what “GNU” is.  What we call Linux is really GNU running the Linux kernel.  Those last few words (“GNU running the Linux kernel”) are a good description of what we now call Linux.  GNU/Linux is not a replacement for that description, but an abbreviation invented by rms.
  2. It is the path of least resistance. Anyone who disputes that Linux is not the more widespread term is not sane enough to debate this
  3. Misattribution is not uncommon.  Looking through the history of science and math one finds numerous instances in which a major contributor was not attributed or accredited sufficiently, usually as a result of publishing late or not putting enough energy into the project.  Linux is a classic example.  Stallman should not be scandalized over what is in fact a common occurence.
  4. The FSF underestimates the value of a kernel. If my system doesn’t have a working copy of, say, cat or man, it will at least start, if nothing else.  If it is missing a kernel, well, I don’t understand how such a system could receive control flow from the bootstrap.  Yes you need that to boot either way.  But I could probably remove a lot more of GNU coreutils than I could of the kernel — and I mean remove/mung, not shrink.
  5. It is analagous to Iceweasel, but with important distinctions: Debian rebranded Firefox as Iceweasel, making ~no contributions to it in the form of code.  Linus rebranded GNU as Linux, making significant contributions to it in the form of a kernel.  The former was at the request of Mozilla (sort of).  rms didn’t like the latter, but Linus’s contributions are substantial and, unlike with Debian, actually exist, so it is not clear cut whether it is still acceptable (I think it is — it is similar to what distros do, but the contribution is larger scale.  Still, Linus has given his blessing towards renaming it as you please… this debate could go on for a while…).

The Plumber’s Analogy

•December 29th, 2008 • Leave a Comment

So I was working on a bash script, trying to remember how output redirection is ordered (I finally figured it out by trial and error) when I came up with an elegant analogy/mnemonic.  Here’s the command (redirection italicized):

kill $(pidof -x -o %PPID thisscript) >>/dev/null 2>&1 &&
 echo "killed older instance(s) of me" >&2
demo of "plumbing" analogy
demo of “plumbing” analogy

Imagine a grid two columns wide by several high.  The left is stderr (WLG) and the right is stdout.  bash reads from left to right and builds redirection apparatus (i.e plumbing) from bottom to top.  Clear as mud?

... >>/dev/null 2>&1 ...

is really the image on the right
I always had trouble with this and I hope this helps.

*NIX is surprisingly plumbing-like — that is, it’s data oriented as well as task oriented.

Browser comparisons considered harmful

•November 26th, 2008 • Leave a Comment

People often compare browsers.  These comparisons frequently conclude that the Opera web browser is better than Mozilla Firefox in terms of features.  I’m not saying that such conclusions are not reasonably possible, but the means by which they are frequently reached is misleading and could change the conclusion from what it would be naturally, though of course it is an opinion thing to begin with.  Most comparisons exclude Firefox’s addons system, even though this is where Mozilla has been dramatically redesigning.  Addons are an integral part of Firefox.  I honestly believe that Firefox is not intended for use without at least a few addons.  This is why features like adblocking are not included in Fx by default; they are available via addons.mozilla.com.  One reason for ignoring the addons is ostensibly that there is no standard “pack” of addons.  However, Mozilla provides a set of recommended addons, which provides many of the features Opera has, and a few it doesn’t.  For example, NoScript is possibly the least obtrusive method of protecting yourself from clickjacking, and although you can address that in Opera, it is:

  1. most likely not recommended by Opera because
  2. you have to disable IFRAMEs, JS, etc, across all sites (NoScript is site specific, and protects you from everything even without blocking IFRAMEs)
  3. There is no escape: Opera widgets are cute little pieces of fluff that have no control over the rendering engine etc, so you’re stuck with what Opera thinks is best

Clearly, something is wrong, given that if we disqualify addons, Opera beats Firefox in security.  Firefox + NoScript > Opera.

In order to be valid a comparison should take all major features into account.  The unrivaled extensibility of Firefox is a feature, and a huge one.  It’s also an intrinsic feature, because Firefox is open source.  Opera widgets are extrinsic, because Opera is closed source.  Furthermore, Opera widgets have minimal integration: They are merely little windowlets that sit atop the browser (or beneath it as the case may be).  While they are vaguely useful, try coding Greasemonkey as a widget and you’ll see what I mean.