Obfuscated Code | Tuesday 13 August 2002 (¤) |
The annual 5K Contest has
announced its winners.
The contest calls for web content totalling less than 5120 bytes, but still
does something compelling. The tagline of the contest is "An award for
excellence in web design and production", and I suppose it is that, but
by imposing strict size constraints (as a way of challenging the entrant)
it has also morphed into that time-honored coder's tradition: the obfuscated code contest.
The original (or at least longest-running)
obfuscated code contest is the
International Obfuscated C Code Contest.
It started because of the reputation C had for being unreadable in the first place,
and because of the fun of trying to make it even more unreadable.
In 1993, in the same ironic spirit, one Obfuscated PostScript contest was held.
I was lucky enough to win a second prize with my square-dance entry, an example of
a parquet deformation (an Escher-like geometric construct, popularized by Douglas Hofstadter
in his book Metamagical Themas):
Because the Obfuscated PostScript results don't have a nice home like the C contest,
I've made them available here in one zip file.
Edsger W. Dijkstra: 1930-2002 | Thursday 8 August 2002 (¤) |
The pioneering software giant Edsger W. Dijkstra
died this week.
His career focused primarily on the process of writing programs, and how to make the
process (and the programs) better. He was the type of thinker who could set out on his
own course and create an entire field of study in his wake.
He kept a running list of his works over his forty-year career, sequentially numbering
everything he thought others might be interested in. Initially, these papers were photocopied and
passed along. In a quaint historical touch, even his latest entries are handwritten (and his handwriting
was classy enough and widely-enough distributed that it inspired a
digital font).
His best-known work is quite short:
Go-to Statement Considered Harmful.
The impact of this letter was remarkable: in 1968, it wasn't possible to write programs without
GOTOs. An ordinary coder who suggested that you try would have been thought crazy, and if someone
had attempted it, it would have been a stunt:
the coding equivalent of stuffing twenty college students into a phone booth.
But Dijkstra was right, and now no serious programmer can imagine it any other way.
Giant software projects are constructed without a single GOTO.
Many programming languages don't even have the concept.
Even the title of his letter is a classic: "{something} Considered Harmful" is a meme unto itself, and
has been often-used
to evoke the ground-breaking insight of Dijkstra's work, even if sometimes in jest.
(Actually, it turns out that he didn't write the title: ironically enough,
Considered Harmful: The Weblog
has the story.)
He wrote many other things over the years. The earliest English entry in his list of work
(a review of the IBM 1620 computer)
provided this insightful conclusion:
The next fact that we have to face is that this machine, despite of its poor qualities,
has been produced, in this case even by a big firm with a long and considerable experience.
The straightforward conclusion is, that nor the size nor the experience is a guarantee
as far as the quality of the product is concerned.
Well, we can think of various explanations for this apparent inconsistency,
but the most obvious explanation predicts still more blunders in the more ambitious
and more complicated products of the manufacturer in question.
Errorwear | Tuesday 6 August 2002 (¤) |
errorwear makes t-shirts imprinted with various error messages
on them. These are hip and clever in a straight-forward sort of way. We computer geeks live with these
messages all day every day. Embracing them and printing them on t-shirts is a brilliant form of
asserting our power over these thorns in our side.
I particularly like the broken image icon shirt,
which is almost
Magritte-like in its play
on the entire concept of what it means to be a t-shirt with an image on it.
Junkbot | Sunday 4 August 2002 (¤) |
I don't usually find much redeeming in the "games" on commercial websites.
They are usually tired rehashings of the same old games, but with the brand's
cartoon characters dropped into it.
The games at Lego are different though.
They seem to have put a great deal of thought and work into them. A particular
favorite is Junkbot.
It reminds me of Lode Runner, the
classic timed puzzle game with hundreds of levels.
My son has played all of the Junkbot levels, and I can understand why: they are
puzzles, they take place in a Lego-themed world, and it's all in good fun. You have
to move Lego pieces around to get Junkbot to the garbage he devours, while avoiding
pitfalls. The variety of pitfalls increases as the levels continue, so that by
the end, there are blocks that destroy you, blocks that make you invincible, blocks
that enable or disable other blocks, blocks that move you against your will, and so on and so on.
Imaginative, challenging, creative, witty, fun. Play it.
Google Groups ASCII Art | Friday 2 August 2002 (¤) |
This is one of those clever hacks that puts smiles on geeks faces, and makes the round for a few weeks,
then disappears to be replaced by the next clever hack.
But I am a geek, and it put a smile on my face, so I present it to you.
Taking advantage of Google Groups' color-highlighting of search results, "artistic" geeks have produced
color ASCII art
in plain-text newsgroup postings. Poke around in the thread to find more.
My favorite:
High-Performance Server Architecture | Friday 2 August 2002 (¤) |
Jeff Darcy has written a quick synopsis of things to do right when
designing servers to get them to perform well:
High-Performance Server Architecture.
It's a quick overview for experienced coders, and covers the important parts. Good reading.