The Poetry of Programming

While working on some Solaris 10 security recently I ran into an interesting article on the Sun site called The Poetry of Programming, which is an interview with Richard Gabriel, Distinguished Engineer at Sun Microsystems:

Writing software should be treated as a creative activity. Just think about it — the software that’s interesting to make is software that hasn’t been made before. Most other engineering disciplines are about building things that have been built before. People say, “Well, how come we can’t build software the way we build bridges?” The answer is that we’ve been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that’s been built. Someone says, “Oh, let’s build a bridge across this river. The river is this wide, it’s this deep, it’s got to carry this load. It’s for cars, pedestrians, or trains, so it will be kind of like this one or that one.” They can know the category of bridge they’re building, so they can zero in on the design pretty quickly. They don’t have to reinvent the wheel.

But in software, even with something such as Java 2, Enterprise Edition or the Java implementation (or almost any of the APIs we define), we’re rolling out — if not the first — at most the seventh or eighth version. We’ve only been building software for 50 years, and almost every time we’re creating something new. If you look at software developers and what they produce, if you look at their source code, the programs they make, and the designs that they end up creating, there is real variability. And some people are really good and others are not so good.

True, but that is also because software is not heavily regulated or disciplined. Not just anyone can be hired to build a bridge that millions of people will cross in the material world, but on the Internet people who are idealists and hacks can throw anything up and people will use it. I am not being critical of the latter situation, just pointing out that there is a much lower hurdle and so nothing to require the study of prior bridges (and their failures) before building another one. This is further compounded by the intellectual property movement that restricts source from view, whereas every inch of a bridge can be studied in detail.

Writing code certainly feels very similar to writing poetry. When I’m writing poetry, it feels like the center of my thinking is in a particular place, and when I’m writing code the center of my thinking feels in the same kind of place. It’s the same kind of concentration.

Ah yes, the same for all aspects of information technology. Poetry is mastery of a discipline. You might say Microsoft software, thus, is like supermarket checkout tabloids — all glam and glitz and very little to hang your hat on. We already look back at Windows 9x and agree, even Microsoft, that it was a train-wreck of an operating system. And for what it’s worth I met with Microsoft the other day for another review of Vista and a new browser that I’m not even allowed to give details on…let’s just say that some of their developers clearly don’t practice the poetry of programming.

Congolese Voting, Security, and Benefits

The BBC has reported on the security needed to end the civil war and help facilitate the first multi-party vote in the Congo in 40 years:

More than 25m people are entitled to vote, protected by the biggest UN peacekeeping operation in the world.

Over 9,000 candidates are running for parliament.

[…]

The presidential candidates include the four vice-presidents who took office in 2003 in terms of a transitional power-sharing deal.

Three of the four vice-presidents are the leaders of former armed factions.

And as if the political stakes aren’t complicated enough, there is also the problem of actually getting people to the polls to vote:

Election workers in Democratic Republic of Congo are putting the finishing touches to possibly the most complex and challenging elections the world has ever seen.

Helicopters, canoes, motorbikes and porters have been used to transport election material to almost 50,000 polling stations across a country two-thirds the size of western Europe, with just 300 miles of paved roads.

Compared to this effort, can you believe people displaced from the Katrina hurricane in Louisiana were unable to vote? If the Congo can get 25 million people in some of the remotest parts of the world a ballot, then you would think the US could figure it out.

Another report had a cute story about changes happening in terms of people’s sense of risk, which caught my eye:

This is good for the poor jobless youth who are having a fun fair shouting their voices hoarse and riding their bicycles silly, at times daring the UN mission (Monuc) drivers to knock them over.

I hear its big business – if you’re knocked over by a UN car, the dollars that come with the pain are appealing. At least no one was knocked.

This must be a big cultural shift from how the youth interacted with the warring militias. I mean how often did someone challenge a security/military vehicle with the hope to collect benefits from the vehicle’s owner?

Having fun with wifi neighbors

I’ve been running parallel wifi signals at home for a while, just to monitor who is actually in the airspace and trying to get on my networks, but this clever beaver has gone a few steps further and created a whole new way of seeing the world for people who try and connect to his signal:

My neighbours are stealing my wireless internet access. I could encrypt it or alternately I could have fun.

Very cute and harmless although, since it’s based on MAC, it’s not hard for the neighbors to bypass the access controls with only a slight modification.

I suppose a “don’t tread on me” message might be a little more effective since it would give a clear(er) message to people. I can just imagine the neighbors knocking on the door and saying “dude, did you know your wireless is all messed up?”

Whale sinks sailboat

Here’s some news from the Ultimate 20 newsgroup:

A San Francisco Based 40 foot custom boat “Mureadritta’s XL” that did
the Pacific Cup SF to Hawaii race was on its way home yesterday when they were hit by a whale 500nm north of Hawaii.

The crew was in contact with the owner via Sat phone. They tried stuffing the hole with sails and wrapping the outside of the boat with a jib to stem the flow but were not having any luck.

They eventually decided to abandon the boat on Tuesday morning. They were picked up last night around 8pm by a ship then transfered to a fishing trawler and are expected back at Honolulu on Friday.

All sailors are safe and un injured. They had all the proper safety gear EPIRB etc. Very lucky crew.

Lucky? I think proper planning was probably more relevant in this story since hitting a whale and sinking 500 miles from shore seems like bad luck to me.

Interesting that innovation has made sailboats lighter and stronger, and personal rescue equipment more reliable and comfortable, but there really is no open water hull-patch kit available yet. Stuffing the hole with sails sound like a scene from a sci-fi movie where people patch the hole in a space station with their pillows. Didn’t Heinlein write about that too? I wonder if there could be a better way, like pushing an umbrella-like device through the hole that could expand and then seal against the hull to stop the leak at least to the point where a sump could keep up with the flow. Probably too expensive to make it worthwhile to develop and test since the threat (being hit by a whale) is low and the asset value (of a sailboat) is only marginally high. I had my share of dangerous experiences sailing across the Pacific, but fortunately the only whales I saw kept their distance.