vendor library bugs…

Not to engage in schadenfreunde too much, but sometimes it’s nice when something you’ve been working on to fix is actually the result of a vendor bug.

I feel I should say something about tonight’s election, but this is primarily a technical weblog, so I merely wish to point you to a hilarious satire site that I was helping to work on:

marryanamerican.ca

We built the site in about a day as part of a GeekEnd event.

more Perl aggravation…

For some time I’ve been trying to get amavisd-new to play nicely with ClamAV using Mail::ClamAV under FreeBSD. It just would not behave – I would get an error like /usr/local/lib/libclamav.so.1: undefined reference to pthread_mutex_create() and fall over. (This error message would only appear if amavisd-new was being run in debug mode; otherwise, mail would just silently fail to be delivered and queue forever.)

Well, I finally discovered the problem: Perl is not built multithreaded by default on FreeBSD! 🙁 You have to build Perl, defining WITH_THREADS and this will work.

Obviously this isn’t apparent from the above error message. It looks like ClamAV is the culprit, rather than the ClamAV.so that’s built by Mail::ClamAV. I guess it’s just because in the course of using the ClamAV API, libclamav.so.1 is the caller, so the runtime link problem is wrongly attributed to it.

Unbuttoned

This appeared in the The Globe and Mail a little while ago:

It’s a ritual. You walk up to an intersection, press the little pedestrian button that is supposed to change the traffic lights for you, and nothing happens for a long, long time. In this computer-controlled age, you are merely letting the traffic light know you are there. It won’t do anything until its next natural cycle.

And sometimes it won’t do anything at all. New York City’s Department of Transportation acknowledge the other day that 80 per cent of the 3,250 buttons in New York were deactivated long ago, even though the official signs telling pedestrians to push the button to cross the street remain in place. They encourage pressing engagement even as they cause people to miss pressing engagements.

Still, it’s not worth hitting the panic button. That’s probably a sham, too.

projects that are like stage plays

Years ago when I did drama, it always seemed like the plays we did were total chaos up until the last minute. It would always come right down to the wire, say, five days before opening night; there would be a frenzy of activity as actors struggled to remember their lines, set painters and decorators furiously sawed and painted to slap the sets together, and the lighting and sound staff wired up the whole auditorium in a two-day-straight work marathon. The director, gnawing on his fingernails, would fret over missed details even up to the end of the dress rehearsals. But when the curtain rose on opening night, everything would always come together, without fail.

I’ve been working on CBC’s Olympics site and this project has been exactly like a play of yesteryear; in less than half a year we’ve built an entirely new statistics engine to replace our old Sportwire system, and by golly, it’s working. Of course, there will be hiccups along the way, but the fact that this engine is running both CBC.ca’s regular sports scoreboards and the Olympics ones is a remarkable achievement. None of this would have been possible without the hard work of my former colleague Jake Burkholder who has moved onto other interests, but to whom we owe a huge thanks.

The Olympics start on Friday — wish us luck.

/dev/kitty: Inappropriate ioctl() for device

… and now for something light-hearted: How to tell when your cat has been on your keyboard.


Jul 15 22:17:10 jupiter kernel: atkbd.c: Keyboard on isa0060/serio0 reports too many keys pressed.
Jul 15 22:18:00 jupiter last message repeated 33 times

Haha!

towers of hanoi in sendmail

Classic. But still truly frightening.

Towers of Hanoi in sendmail.cf

From shrchin Thu Jan 25 05:38:40 1996
Newsgroups: alt.sysadmin.recovery
Subject: Re: ASR London – The Next Generation
Message-ID: <4e7512$712@susscsc1.rdg.ac.uk>
From: shrchin@reading.ac.uk (Jonathan H. N. Chin)
References: <4du54g$kf@kadath.zeitgeist.net> <4e081g$gh1@shellx.best.com> <4e443s$g80@kadath.zeitgeist.net>

cuccia@motherhouse.Talamasca.COM (Nick Cuccia) writes:
>–Nick (still working on towers of hanoi in sendmail.cf…)

Bastard.
I was planning to go home early for once.
Here:


# Towers of Hanoi
S49
RHANOI:$+ $:1 2 3$1
R$-$-$-$*[$+] $:$1$2$3$4

R$-$-$- $@$1$2$3
R$-$-$-@$* $:$>49 $1$3$2$4
R$-$-$-$* $:$>49 $2$3$1$4[Move Top Disk Of Peg $1 To Peg $3]
R$-$-$-$* $:$3$2$1@$4

Add to your /etc/sendmail.cf equivalent.
If S49 is in use, change the three `49’s to an unused ruleset.

Invoke with something like:

echo ’49 HANOI:@@@@’ | /usr/sbin/sendmail -bt -d21

Add `@’s to taste.
Assumes you have three pegs and want to move the stack from
the first peg to the second.

v8 output is cleaner than SunOS.

Was too lazy to make it count (ie. let `HANOI:14′, etc, work);
Didn’t seem too hard, but kind of long-winded and tedious.

Anyone know the iterative (non-recursive) solution?

-jonathan

And that, friends, is why I use Postfix.

[belated] report from BSDCan 2004

I attended BSDCan 2004 last month and I’ve been remiss in not speaking about it. In my view it is an example of a conference “done right”. Here’s why:

  • Inexpensive (registration fees were $150)
  • Excellent speakers
  • Good crowd, from developers to administrators to plain old users and students

There’s really not much more than that to ask for at a conference. Lots of FreeBSD developers attended; among them, Wes Peters, Robert Watson, Poul-Henning Kamp, Jacques Vidrine, and so on. It just proves that you don’t need to charge an arm and a leg to demonstrate how “professional” your conferences are, or to attract quality speakers.

The full text of all the papers presented is here.

RWL and maddog’s talk

Last Thursday I ducked out of work to hear maddog give a talk at the Real World Linux trade show — conveniently located across the street from my office. Given that RWL was largely a trade show for PHBs (Pointy-Haired Bosses), I was bracing myself for a PHB-oriented talk, and in many ways, it was. His subject matter was clearly intended to help win over whatever proportion of the audience not already enamoured with Linux. That’s fair, and I applaud him for that. Linux is still suffering slow adoption in large, conservative corporations — financial institutions, for example — and anyone making an effort to loosen the ties of conservative CTOs, on whatever grounds, should be applauded.

I do want to point out the hilarious juxtaposition of some of maddog’s talking points with the circumstances of the show. Let me summarize the central points of maddog’s talk:

  1. Between the 50’s and the 70’s all software development was open source — when you paid for software, you got the source code if you wanted it. (Ignore the historical inaccuracies of this generalization.)
  2. In the late 70’s and early 80’s when a company was developing (closed-source) software, they had, for example, 100 engineers, and 2500 customers. Each customer would generate on average one feature request and one bug fix per year, so per year you would have 5000 requests. No problem; each engineer would handle 50 requests a year.
  3. Once IT became a huge industry, the company in question might now have 200 engineers, but 2.5 million customers, each generating two requests a year. Therefore each engineer would be required (theoretically) to handle 250,000 requests a year, which is clearly untenable.
  4. Therefore, open-source software development is better because even if there are 2.5 million consumers, the number of developers is limitless.

Obviously this is a gross oversimplification, and I’m not trying to criticize maddog on these grounds. As I pointed out above, he’s trying to convince PHBs to use Linux, and why the quality of Linux as an OS can be better, due to more eyes looking at the code.

Maddog went on to talk about how large commercial organizations are unresponsive to customers’ concerns due to this very reason (scope/feature creep), and also used this to justify OSS development as better. Okay, that’s probably a reasonable statement too.

While I was sitting there and listening to maddog outline these truisms about how OSS software development and community support, etc. is better than that of commercial software development and commercial support, not ten feet away we had an entire trade show floor of exactly the same closed-source-type, commercial organizations, pitching their products the same as they would be pitching them at COMDEX or CeBIT! The only difference is that, perhaps, some of the products were built on OSS technology, or they ran on Linux. Nevertheless, when I go up to ACCPAC’s booth at RWL and talk to the sales drone, how is this any different than when I go up to ACCPAC’s booth at COMDEX and talk to the same drone? There’s no difference; ACCPAC is still the same, massive, monolithic commercial company with the same problems regarding creeping featurism that maddog outlined in his talk!

The fundamental problem I now have with Linux is that rather than companies developing software the way OSS developers would develop software (which, if you believe maddog, would be the better way), those same companies are just taking Linux (as they have every right to do, mind you), inserting it into their own corporate framework, and selling it just like any other product that they would sell. It doesn’t matter whether they contribute the code back to the community; the development model is still all wrong. To see this in action, I point you to Novell.

Novell made their money selling a proprietary server operating system called Netware, and now makes some money selling copies of SuSE Linux, Red Carpet, Evolution, and so on. Problem is, they’re selling these things like they used to sell Netware. They haven’t realized there’s a paradigm shift here: all the benefits of OSS development that maddog pointed out in his talk aren’t worth a damn if they have to be funnelled through a vendor who’s just as inflexible (in terms of support) with their distribution of Linux as they are with their own, proprietary, closed-source software!

RedHat is another example of this: in order to meet the demands of their customers, they heavily bastardize the stock Linux kernel with their own patches, written by their own developers. But there’s nothing to say that these patches have to be incorporated back into the kernel: that’s up to Linus’ personal discretion. Eventually RedHat winds up with The RedHat Linux Kernel which is significantly different than the stock kernel, and voilà you lose the benefits of having the greater OSS community available to help you with all those feature requests and bug fixes. We’re back again to the situation where only the vendor’s 200 engineers understand the end product, and the support sucks again because those 200 engineers can’t handle the five million support requests.

Explain to me how this is different than non-OSS, commercial software?

In conclusion, what I find most perverse about RWL and the state of Linux in general is that rather than it changing the paradigm of the way software development is done in the world, it is, in fact, being subsumed into the closed-source software development paradigm. To put it another way: rather than leading formerly closed-source companies to open their source in order to reap the
benefits of limitless development manpower, Linux is now, by virtue of the vendors, being closed down.

I should note that this closing-down isn’t absolute, and it won’t ever be, so long as we have independent distributions like Debian. But I was still surprised to see maddog get up on stage and trumpet the virtues of the OSS development model, when those benefits are being circumvented by many of the vendors before his very eyes.

The Windows Crash Gallery

If you want a good laugh, head on over to windowscrash.com. There’s nothing like a whole gallery of BSODs showing up on public billboards, airport screens and payphones to demonstrate just how unstable and unusable Windows is.

There’s also a fantastic collection of meaningless and just downright hilarious Windows error messages there. My favourite is this one entitled Mouse. This one comes a close second though.