May 2003

« April 2003 | Main Index | Archives | June 2003 »
Inexorable, the harbour is going nowhere, it has nothing else to do. It will beat on this jetty day after day until it was broken, until it is out of its way. Such forces have hewn valleys between mountains, this little structure of wood and steel will be beaten down if the harbour has to wait until the end of civilisation to do it. And what has civilisation been, but a blink in the water's eye, a ripple in history?
You are in some way subject to architectural, framework or language constraints that force you to write ugly code. For example, your UI framework requires one kind of object, your persistence framework requires another, and you keep having to convert between the two.
(No excerpt)
I recently posted a definition of Metadata to the XP mailing-list. It's pretty basic stuff, but I figured I'd put it here in case I needed to find it again later.
Anyway, today after dropping into the bakery to grab lunch, I decided to walk across the bridge and take some photos. I should do it again some time when it's more sunny. Meanwhile you can find the photographs in question here.
Above all, you need a culture where quality is considered important. (This, once again, parallels security.) If the company doesn't value quality, you're never going to achieve it because everyone will be looking for ways to work around whatever measures you put in place, and nobody will ever be called to account for doing so.
1. Compiles on my machine...
In order for this to happen, though, I expect the people who design toasted sandwich makers for a living to know a hell of a lot about them. This is fundamentally necessary. If it were made by some guy who'd read a pamphlet one evening about how to build an electrical appliance, it'd be just as likely to blow up in my face as do anything useful.
Sometimes I think it would be really cool to have my working day commentated by the ghostly voice from Mortal Kombat.
Getting people to contribute to Open Source is <em>hard</em>. If you do not have sufficient motivation to take the first, important steps yourself, nobody else is going to. At most, you'll attract a bunch of other people who, like you, want to talk about the project instead of coding it.
This, of course, took the poor student somewhat by surprise. Not the least because I tend to write rather formally to strangers, and it may have (unintentionally) sounded like I was annoyed. But anyway, you don't really expect, when you reference someone's writings in your obscure school assignment, to have the author write back and correct you.
How Agent Smith replicates.
I'm going to see The Matrix Reloaded in about two and a half hours. Just now, I was reading JWZ's blog and discovered that it contains evidence of the first ever technically accurate computer-hacking scene in a movie.
A closure is an anonymous function that `closes' over its surrounding scope. Thus when the function defined by the closure is executed, it has access to all the local variables that were in scope when it was created.
There's a lot to think about in this for Swing programmers, too. If your application has been laid out on a Windows box, chances are it's going to look wrong on OS X. At worst, you're going to find a lot of widgets fighting for space, and cropping text because the OS X widgets are just that much bigger and rounder than their Windows counterparts. Even if the layout isn't breaking, you're still not going to look comfortable on the platform because the Apple Human Interface Guidelines are very strict about how applications are laid out
Since joining the Church of Macintosh, I have found peace and fulfilment. Finally, after years in the computing wilderness, I finally feel I have found somewhere that I belong. Don't you want to belong?
No, procrastination week is next month.
(No excerpt)
"...it's funny that it's now become possible to use Linux and still feel like you're selling out, but there you go." --- Kief, on being forced to support RedHat
After eight years of being an Internet nerd, I've finally completely lost the ability to concentrate on one thing at a time.
Static typing is declarative. Testing is procedural. Thus, when your program fails through types, the exact location of the error can be immediately ascertained: it's the point at which your type declaration becomes untrue. When your program fails a regular test, you only find the point at which the testing procedure detects the resulting misbehaviour.
I say we take off and nuke the entire site from orbit. It's the only way to be sure. ---Ripley, in Aliens.
Charles discovers Lisp. Again.
The intended use of Schemix is for exploration of the Linux kernel and for rapid, interactive prototyping of Linux drivers and other new kernel features. To achieve this, Schemix will attempt to make a large subset of the kernel functionality available to Scheme programs. Interactivity is via a character device, /dev/schemix which presents a REPL (Read, Eval, Print Loop) to anyone having access to the device.
X-Men 2 had a good plot, strong villains, good F/X and action sequences (both unfortunately overshadowed by Matrix Reloaded anticipation), and good performances by all the lead characters. What it desperately needed was a decisive, ruthless script editor.
« April 2003 | Main Index | Archives | June 2003 »