May 27, 2024

Your operating system is your girlfriend

Charles Miller has written a funny post on why the Mac is so desirable. That post, and this, makes the implicit assumption that you are male.

The Mac as mistress metaphor is very good, but I find it mildly offensive to use the metaphor that Windows is a prostitute. I don't disapprove of prostitution per se. It's just that for this metaphor to work, 90% of the computer-using population of the world would be having most of their relationships with prostitutes.

I would rather say that Windows is a female co-worker. Not unattractive, reasonably efficient (in her Win2000/XP guise), but prone to gaffes and embarrassing behaviour that kind of makes you dread meeting her in the hall or having lunch with her.

Linux on the desktop could well be a psychotic girlfriend. I wouldn't know, I've never used Linux as a desktop system, and I've never had a psychotic girlfriend. I do know that my laptop running OpenBSD and blackbox is a female co-worker that I would feel very comfortable with, even though I am married. Perhaps a hyper-efficient personal secretary.

Windows as a server is a female relative in a old peoples' home who calls you in the middle of the night and rambles senilely. You're happy to pay other people take care of her, and secretly wish that she would just die quietly.

Linux or *BSD as a server, on the other hand, is like a grandmother who is a world-class cook with a physics degree. You can always drop by her house, she is endlessly supportive and helps you with your life, without asking much in return. You love her all the more for it.

Posted by gustaf at 01:41 PM | Comments (0)

May 26, 2024

why I know perl

I learned Perl in my first real consulting gig at Agero. A large business directory company in Sweden wanted to synchronise their print catalogue with the Web. Additionally, they wanted an interface for customers to create their own ads on the Web. This was the sexy part of the project. I wasn't involved there.

The synchronisation didn't work yet, so every Monday my colleague had to take a 650 MB XML-file and feed it to a Java program that inserted the contents into a big old Oracle database running on a Sun Starfire. She was much more billable than I was, so as I incautiously admitted to Un*x knowledge I was asked if I could take over this job.

The XML was full of errors, unescaped ampersands, invalid characters... The Java program choked if it couldn't parse the file, so you had to manually search for the error and fix it, then try again. A successful run took about 9 hours.

I started by chopping up the file into the component entries and checking for bad stuff. This is trivial, just set $/ to whatever end element suits your fancy, but it took some reading of the Perl Cookbook before I had it nailed.

Then I started looking at how to automate this stuff. I eventually wrote a sophisticated run-control program that could be started with at, and that sent email when something went wrong.

Just when I had cut down the effective load time from three days to about 11 hours, the whole project got axed. I later learned that this was the third attempt to integrate the print version with an online database.

The contractor more or less blamed the whole debacle on us, even though it could be fairly laid at bad project management and unrealistic promises from the client to its customers. Oh well.

In the middle of my next project, I was cding up from a directory over a slow ssh link and accidentally rmd all my perl code. When I called the admins of the machine they helpfully informed me that as the machine wasn't in production it didn't have backups.

So now I know more Perl than I really want to. But I'm still learning more every day.

Posted by gustaf at 02:55 PM | Comments (0)

May 24, 2024

the dark side of java

Anyone who reads Erik's linkblog will be astounded about two things:

  1. damn, there's a lot of Java projects, and

  2. how the hell does Erik do it?

The list of projects is impressive, and for me as a novice Java maintainer, a bit daunting. How can one person keep up with all this? And everyone seems to be on first-name basis, not just with the developers, but with the projects themselves. What the heck is Maven, anyway?

But it's not just one happy family. There's a dark side to the Java development scene, and it rises to the surface here.

This person probably has a name, but I prefer to consider him or her as a cry from the collective subconscious of those Java programmer who're having trouble just staying on top of Java, never mind all the whimsically named frameworks and tools.

Both Erik and Russ are on the Bileblog's shitlist. But so is everyone else.

Posted by gustaf at 03:54 PM | Comments (1)

May 18, 2024


Googling around for an emacs implementation of the Blogger API, I stumbled over color-mode.el by Don Knuth, and pmwiki.el by my old university friend Christian Ridderström.

Knuth violates the emacs interface guidelines, but I guess he can get away with it. On the other hand, a celebrity deathmatch between RMS and Knuth would be something I would see on Pay per view...

The world is a small place, at least if you like emacs.

Posted by gustaf at 09:12 PM | Comments (0)

April 27, 2024

today's microsoft rant

Part of my responsibilities is taking care of new computer installs at work. We have recently purchased several top-notch Dell Inspiron 8100s. These have 15" widescreen displays.

To prevent ridiculously small font sizes, Dell ships with the DPI settings set to 120. This means that fonts look bigger, but also that Internet Explorer also scales the images on websites. These appear blurry and jagged.

Not surprisingly, this is a top issue at Dell's support forums. The "solution" is a registry hack: change the value of the key HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\UseHR from 1 to 0.

Additionally, when I tried to read an article on MSDN about this, IE froze when trying to load the page.

I will recommend Mozilla for our users in the future.

Posted by gustaf at 11:27 AM | Comments (0)

April 14, 2024

ordering email

After a tip from Rui, I've started to sort my work mail (mail addressed to me personally, and the support box) into quarterly archives.

Long experience has told me never to throw away mail, and the quarter seems to be a good time period in which to ask yourself "when did I get that mail?"

Posted by gustaf at 10:57 AM | Comments (0)

March 31, 2024

dilbert newsletter goes html

The Dilbert newsletter has gone HTML. I guess that's so they can sell more adverts. I wouldn't know, because I read my mail in gnus. So this just means I have to resize my ssh window so that the text doesn't wrap.

But the really bad thing about it is it isn't funny.

Posted by gustaf at 06:08 PM | Comments (0)

March 30, 2024


Kasei: The Importance of Fudgability is an interesting "common sense" view on how to design an application.
Posted by gustaf at 03:27 PM | Comments (0)

March 24, 2024

HTML typography

Learn about the fifteen spaces defined in Unicode at this page.

Posted by gustaf at 07:25 PM | Comments (0)

March 03, 2024

the litany of hate

In the interest of my co-worker's sanity, I have resolved to concentrate my hatred and loathing of Microsoft products to a five-minute period each morning.

This way, they will not be upset by my outbursts of anger at the crappiness of MS products, business practices, advertising, or general view of computing.

The actual litany is not finished, but I find the following to be restful:

We hates them, hates them forever!!!

Posted by gustaf at 10:54 AM | Comments (0)

January 23, 2024

compiling 3.4 on a sparc64

So I need emacs 21.3 to be able to use ange-ftp to update this blog. I just can't go around ftp:ing by hand, losing all sync, missing one measly comma and having to do it again.

I download the src and run configure -- it can't figure out which arch I'm on. No problem, I get the package from the openbsd server. Hmm, can't run, missing some libc .so file. Huh. Well, the machine should be running 3.4 anyway.

I get the src and ports packages, untar them, run the whole CVS update thing, and start to read the upgrade minifaq. Lot'sa stuff to do, but I follow the steps. Config the kernel and try to compile. Won't even let me run make depend. Seems to be expecting a file swapgeneric.c somewhere -- but that file should be somewhere else entirely.

So now I'm waiting for reply on the sparc64 mailing list. We'll see what happens.

Update: turns out to have been some kind of problems with my CVS update. Works now after a fresh get.

Posted by gustaf at 12:34 PM | Comments (0)