Oct 12

How Not To Tackle the Mess around Forges

In my previous two posts I have diagnosed a significant weakness in the open-source infrastructure. The architecture of the code behind the major SourceForge-descended hosting sites is rotten, with all kinds of nasty consequences — data seriously jailed, poor or completely absent capabilities near scripting and project migration. I said I was going to do something about it, and I’m working the problem now — actually writing code.

The rest of this post is not an announcement, because it will be mostly about things I’ have figured out I should not try to do. Yet. But it is a teaser. I see a path forward, and shortly I expect to have some working code to exhibit that shows the way. Actually, I have working code that attacks the problem in an interesting way now, but I’m still adding capabilities to make it a more impressive demonstration.

Here are some approaches I’ve considered, or had suggested to me by others, and rejected:

Continue reading

Oct 09

Looking Deeper into Forges, And Not Liking What I See

In my previous post, Three Systemic Problems With Open-Source Hosting Sites I identified some missing features that create serious brittleness in or project-hosting infrastructure. The question naturally arises, why don’t existing hosting systems already have these facilities? I have looked into this question, actually examining the codebases of Savane and GForge/FusionForge, and the answer appears to go back to the original SourceForge. It offered such exciting, cutting-edge capabilities that nobody noticed its internal architecture was a tar-pit full of nasty kluges. The descendants — Savane, GForge, and FusionForge — inherited that bad architecture.

Continue reading

Oct 08

Three Systemic Problems with Open-Source Hosting Sites

I’ve been off the air for several days due to a hosting-site failure last Friday. After several months of deteriorating performance and various services being sporadically inaccessible, Berlios’s webspace went 404 and the Subversion repositories stopped working…taking my GPSD project down with them. I had every reason to fear this might be permanent, and spent the next two days reconstructing as much as possible of the project state so we could migrate to another site.

Berlios came back up on Monday. But I don’t trust it will stay that way. This weekend rubbed my nose in some systemic vulnerabilities in the open-source development infrastructure that we need to fix. Rant follows.

Continue reading

Jul 30

GPSD-NG: A Case Study in Application Protocol Evolution

I’ve been doing some serious redesign work on GPSD recently. I had planned to do a blog posting about lessons learned, but the result grew enough length and structure to turn into an actual technical paper. You can read it here; comments and criticism will be welcomed.

Note, everything described in the paper has already been implemented in gpsd. There’s work still to be done; for those of you familiar with the software, I still need to do equivalents of the old–protocol commands B C J N R Z $. I do not expect these to pose any significant difficulties.

May 22

News from the Linux-adoption front

Well, now. This is interesting: A study of corporate Linux adoption polling 1,275 IT professionals says:

Linux desktop roll out is easier than expected for properly targeted end-user groups

Those with experience are much more likely to regard non-technical users as primary targets for Linux. The message here is that in practice, Linux is easier to deploy to end users than many imagine before they try it.

It’s become fashionable lately to be pessimistic about Linux’s future on the desktop, but I have to say this matches my experience pretty well. The handful of Ubuntu deployments I’ve done in the last couple years for end-users have indeed been easier than one might have expected.

Continue reading

May 07

Engage the balonium generator, Scotty!

I enjoy a game called “Commands and Colors: Ancients”, which I’ve blogged about here before. It’s a simulation of tactical ancient warfare that uses special dice to resolve battles. In any given battle you can consider each six-sided die to have faces labeled with the symbols Miss, Miss, Hit, Sword, Helmet, Flag. To improve my play, I decided to generate and study a table of the odds of getting a specified number of hits when a specified number of dice is rolled. I set out to write a Python program to do this.

There are special circumstances under which flags and helmets convert to hits, so the program actually needs to print out several tables and is not entirely trivial. Still, it is computing on a mathematically simple model with strictly bounded computational cost – except for war elephants. These units have the special ability that when they roll a sword, the sword is counted as a hit and then rerolled. (This may make more sense if you think of a sword roll as representing impact damage.) You keep rolling and marking hits as long as the die keeps coming up swords.

To calculate the non-elephant probabilities I enumerated eight entire state spaces for each of 1 to 8 dice (the most you can ever roll under the rules – takes Alexander the Great or Julius Caesar leading a Heavy unit with the the Clash of Shields +2 bonus active), then counted up instances of each distinct outcome (so many misses, hits, swords, flags, banners) to assign a probability mass to each.

(Statisticians often think in terms of probability mass or probability weight, which has to be conserved as a distribution changes. It’s analogous to thinking of electricity as a fluid.)

I then had to write code to mutate a copy of each distribution according to the elephants’ sword-reroll rule. To do this, each outcome containing a sword hit needs its probability mass divided by six and reallocated to itself and five other outcomes with one fewer sword apiece; you stop reallocating when the probability mass on a sword-containing outcome drops below a very low noise level.

That particular piece of code gave me more trouble than the rest of the program put together. At one point I grumbled to a friend who had been following the project “I’m having persistent bugs in my probability mass reallocator.”

He looked right back at me and said, with a perfectly straight face, “Have you considered reversing the polarity of the neutron flow?”

Apr 30

Irrational Expectations

The reactions to my posting on the economic case against the GPL reminded me yet again why failure to understand basic economics often becomes more toxic in people who think they understand a bit about the subject. In this mini-essay, I’ll take a look at the most important (and misleading) of the superficially clever arguments I saw in responses.

Continue reading

Apr 27

RMS issues ukase against Software as a Service – and I agree it’s an iffy idea

In a recent O’Reilly interview, Richard Stallman utters an anathema against software-as-a-service arrangements, calling them “non-free” and saying “you must not use it!” It would be easy to parody RMS’s style of uttering grave moralistic sonorities as though he were the Pope speaking ex-cathedra, but I’m going to resist the temptation because I think in this case his concerns are quite valid.

Continue reading

Mar 29

Freeing technical standards

I grew up on Internet RFCs, so technical standards issued under licenses that forbid free redistribution offend me. Every such document, whether intentionally or not, is a device for hindering open-source software projects and privileging closed-source developers with big budgets and lawyers to hand.

They offend me even more when (as, for example, when the GPS reporting standard NMEA 0183) the proprietary “standard” is so badly designed that a mob of crack-addled rhesus monkeys could have done a better job – and for this they want me to pay? They offend me the absolute most when the “standard” is distribution-restricted, expensive, badly written, and its topic is a safety-critical technology – so that people could actually die because some jerk wants to collect a trivial amount of secrecy rent on a standard that was crappy to begin with.

Fortunately, there is a way to monkeywrench the organizations that perpetrate this sort of thing – and I’ve spent a substantial part of the last couple of weeks doing exactly that. I’m writing about it here to encourage others to do likewise.

Continue reading

Mar 26

Please forget to FLOSS

In email to a third party, copied to me, Linux activist and long-time friend Rick Moen comments on the acronym FLOSS (usually explanded “Free, Libré, and Open Source”.

I continue to find it difficult to take seriously anyone who adopts an excruciatingly bad, haplessly obscure acronym associated with dental hygiene aids. We learned in the late 1990s a number of lessons about how not to market free / open source, and the idiots who keep coming up with bad ideas like “FLOSS” and “FOSS” are determined to rush, like urban-legend lemmings, off the very cliff of PR incompetence that we so painfully learned to finally avoid, a decade ago. I’m sorry, but those people need to be cluebombed and routed around until they stop shooting at everyone’s feet.

I couldn’t have put it better myself, so I’m not going to try.

Near as I can figure, the only appeal this term has is a sort of lily-livered political correctness, as though people think they’d be making an ideological commitment that will cause petulant screaming from a million basements if they pick “open source” or “free software”.

Well, speaking as the guy who promulgated “open source” to abolish the colossal marketing blunders that were associated with the term “free software”, I think “free software” is less bad than “FLOSS”. Somebody, please, shoot this pitiful acronym through the head and put it out of our misery.

Rick adds:

The problem with [FOSS and FLOSS] isn’t merely that that they sound like goofy nutjob organisation investigated by Emma Peel and John Steed. Worse, it is that neither term can be understood without first understanding both free software and open source, as prerequisite study.

That isn’t merely gross marketing failure; it’s a semantic black hole that sucks marketing into it, never to be seen again. It’s a finely executed study in nomenclature incompetence – and I can’t help noticing it’s promoted by, among others, the same crowd who were doing such a masterful job of keeping free software an obscure ideology prior to 1998.

Er. Yes. Quite…

Feb 23

Why GPSes suck, and what to do about it

I’m the lead of the GPSD project, a service daemon that monitors GPS receivers on serial or USB ports and provides TPV (time-position-velocity) reports in a simple format on on a well-known Internet port. GPSD makes this job looks easy. But it’s not — oh, it’s decidedly not — and thereby hangs an entertaining tale of hacker ingenuity versus multiple layers of suck.

Continue reading

Jan 26

The sound of empire falling, episode 2

From “200 Laptops Break a Business Model” in the pages of the New York Times:

So who’s up, who’s down and who’s out this time around? Microsoft’s valuable Windows franchise appears vulnerable after two decades of dominance. Revenue for the company’s Windows operating system fell for the first time in history in the last quarter of 2008. The popularity of Linux, a free operating system installed on many netbooks instead of Windows, forced Microsoft to lower the prices on its operating system to compete.

Mene, mene, tekel, upharsin!

Continue reading

Jan 11

Master Foo and the Nervous Novice

There was a novice who learned much at the Master’s feet, but felt something to be missing. After meditating on his doubts for some time, he found the courage to approach Master Foo about his problem.

“Master Foo,” he asked “why do Unix users not employ antivirus programs? And defragmentors? And malware cleaners?”

Master Foo smiled, and said “When your house is well constructed, there is no need to add pillars to keep the roof in place.”

The novice replied “Would it not be better to use these things anyway, just to be certain?”

Master Foo reached for a nearby ball of string, and began wrapping it around the novice’s feet.

“What are you doing?” the novice asked in surprise.

Master Foo replied simply: “Tying your shoes.”

Upon hearing this, the novice was enlightened.

(Other koans here.)