Older blog entries for ncunningham (starting at number 4)

For quite a while, VMWare and Madwifi haven't played well together. Yes, you can use NAT to give your virtual machine access to the net, but when your virtual machine is running some other operating system (I have to! They don't make Libronix for Linux yet.), and you want to print via another computer running Cups, you were stuck.

No more! I just upgraded to Vmware 5.5.2, and ath0 bridging is fixed! Yay! Now my M$ virtual machine can fully participate in the network browsing. (And if I was silly enough to point router ports it at, I could make it a honeypot too!).

Thanks, VMWare!

A conference was held in Ottawa last week, at which one software engineer (GregKH) confidently proclaimed "Linux is evolution, not intelligent design". What he of course meant was that Linux doesn't develop by people sitting down and making great and intricate plans about what they're going to do, then starting to do it. Rather, the vast majority of work on the Linux kernel is people making small improvements here and there to what already exists.

But is that evolution? When we normally talk about evolution, we are talking about the process by which all life came to be, the Darwinian theory of random mutation and 'natural selection'. Clearly, this is a very different beast. No one is going to claim that the developers of computer programs do their work by making random modifications and then waiting to see if the end result works better. If they did, we wouldn't expect them to be employed for long, we certainly wouldn't pay them the salaries they currently earn, and our technology would be nowhere near as advanced (or reliable) as it is.

More than that, our process of software development does involve intelligent design. People sit down and (at least in the ideal case) think carefully about the changes they're going to make, the best way to make them, and then do careful testing of the resulting patch.

And the process is not entirely one of incremental improvement. In my work on Suspend2, I've done several reworkings of different parts of the subsystem, first carefully designing the new way of doing things (eg storing metadata or implementing a cleaner internal API), then rearchitecting and reworking the code to match the design. These changes don't fit into an evolutionary model because they involve the addition of new code that's initially useless (no reason for 'natural selection'), and then break the old code in order to switch it over to the new implementation (not incremental).

Greg isn't alone, however. Many people would refer to the development of Linux as evolution. So how did people come to call incremental development 'evolution'? My guess would be that a superficial similarity has been seen and taken as an accurate summary of the whole process. In short, people aren't thinking carefully about what they're saying, just saying and accepting statements because they 'sound right'.

What about you and I? How superficial is our examination of the things we hold as true? I call myself a Christian. Do I do so merely because Christianity as I know it 'sounds right', or have I seriously examined its claims, so that I can say "I know whom I have believed, and am convinced that He is able to guard what I have entrusted to Him until that day"? In the same way, if you believe in evolution, is it just because people have told you it's true, or have you carefully examined the theory?

(This is a revision of my pastoral note for this week, for the congregation I serve).

17 Sep 2005 (updated 17 Sep 2005 at 03:13 UTC) »

A bit further along the road toward Suspend2 v2.2 .. rc7 for 2.6.13 and 2.6.14-rc1 was released last night. A couple of small problems were found so I'll probably do an rc8 today. Hopefully it will be the last one before 2.2.

24 Aug 2005 (updated 24 Aug 2005 at 09:25 UTC) »
Suspend2

Busy week so far.

We've gone from 2.1.9.13 to .14 to 2.2-rc1 and then 2, all in the space of a few days. The .14 release was mentioned in the last entry - corrupted tree. Then I finally found the cause of an annoying bug, the last one I'd been searching for. That got me happy enough to make 2.2-rc1. This afternoon Linus released 2.6.13-rc7, and I had a few more little fixes to pop in (gcc 3.4 doesn't like being told we're clobbering all the registers, so we have to lie to it, and there was a int vs ul problem with the lzf compressor on amd64). So we're at 2.2-rc2. Now to get on with preparing a git tree.

I thought it might be time to start keeping a blog. Let's see how good I am at using it :).

Did a new release (2.1.9.13) of Suspend2 last night. Tons of bug fixes. Unfortunately my base tree managed to get a bit of corruption - the perils of hard linking files. 2.1.9.14 obviously won't be long coming.

Now to try to get to grips with git.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!