I've become addicted, within a very short time, to the Wiki Wiki Web.
Wiki is a hypertext community. It consists of a potentially limitless number of pages. When you create a page, you pick a title that is MoreThanOneWord joined together like so. Whenever a page is displayed, the script finds all the WordsLikeThis and creates links through to the relevant Wiki Pages. If there's no page at the destination, the link turns into a prompt to fill it out, so you can pepper your post with suggestions for others to create more content.
The catch is... Anyone is allowed to edit any page. Although there is a complex etiquette about changing something written by another, the basic premise is that once you've posted, you don't own the words. They can be added to, manipulated, even deleted. The community self-organises. Some pages end up being discussion threads, some are collaborative articles. They'll grow boundlessly, until someone gets tired of it all and either splits off a new topic, or refactors everything down to a more convenient length. Or they'll just stay small, short and sweet.
Of course, this thing only works with a small community where people are more interested in making the community work than in breaking it. Sort of like the Internet is supposed to have been a few years before I turned up. Idiots who try to break things "because they can" could easily shut the system down. But there are many, many functional WikiWebs out there.
The coding behind it would be bloody easy - Just a dbm and some regular expressions. I keep thinking I should set one up myself, just a social "random-thoughts" web, but I don't think I have enough friends to make it take off.
I bought a new programming book today called "Refactoring". It's something of an Extreme Programming bible. For those not up on the jargon, refactoring is when you take a program that works, and turn it into a program that works, but which is more readable, and more maintainable. The refactoring book is full of easily-summarized formulae, such as "Replace Parameter with Method (292)", "Extract Class (149)", "Collapse Hierarchy (344)" or "Inline Class (154)".
The problem with being a geek, is that you think the world can work like code. Where are the refactorings for "Replace Wasted Years With Hindsight (539)", "Atone For Mistakes (132)", or "Eliminate Bad Decision (94)"?
We're doing "Extreme Programming" at work at the moment. It's the most practical software design philosophy I've ever seen.
Two of the core tenants of XP, as far as the practicalities of coding go, are "Code the simplest thing possible" and "You aren't going to need it." The idea is that you look at your requirements, and think of the simplest way to code it. If later, you need to make it more complicated, you'll waste less time refactoring that one bit of code than you would have over-complicating all the other bits that you could have left simple. And you never code anything that isn't in the requirements, just because you think it'll be useful in the next version, because it'll delay your release, and with the way that specifications change during a project, chances are, "You aren't going to need it.".
This has broken me out of my coders block - I got far more done on my webmail diversion this weekend than I have since leaving Perth. It's only up to 1000 lines of code, but by mercilessly stomping on my urge to over-complicate code just for the sheer beauty of it, I'm actually making progress that can be measured, which inspires me to do more.
...you've got a packet of chips obscuring part of your monitor, so you attempt to raise the window over it.
I rediscovered a CD I bought last year. It's called "Short Music for Short People". The Punk label Fat Wreck Chords got one hundred and one different punk bands to contribute tracks to the CD, with the provisio that each song should be thirty seconds or less. The idea kinda palls after about 30 tracks, but some of them are really nifty.
I've become too assimilated into the blandness of everyday society. I should cultivate some really annoying personal habits, like smoking really fat cigars, or wearing hats indoors, or calling everyone I meet "pal".
I'd also like to go down to the WTO protests in Melbourne later this month and see if I can get myself tear-gassed, but I doubt I can make it down there.
One of the great things about the digital age is that you can e-mail the night before that you've been kept up until 2am by construction work outside your apartment, and won't be getting out of bed in the morning.
Oh, and I like this song.
Well, it's 1:10am, and I'm being kept awake again. It's starting to become something of a habit. I've been lying in bed for the last hour and a bit, listening to the sound of the earth-movers in the street outside moving large bits of the road around.
It's funny, really, because I thought that the big problem of living here would be the fact that I'm a few hundred metres from six parallel train tracks. When I walk out of my front door, I can hear the little announcer-voice saying "This train is now due to depart. Please stand clear." When I came in to look at the place, I asked the tenant (not the landlord or agent) whether the train noise was a problem, and she said "No, you don't notice it. The only noise comes from the building site, but they'll be done in a few months." Oh, prophetic words. I've not had one problem sleeping through the occasional train noise that filters through my walls, but this is the third night in the last week that I've been kept up by people digging up roads.
Also, my neighbours play guitar and sing very late at night on weekends. I wouldn't mind too much - loud neighbours are a blessing if you're a loud neighbour yourself - but I did go around and ask them to be quiet when they hadn't turned the stereo down by 2am. I refuse to do the banging-on-walls thing, though, I have my dignity. The other problem was their attempt at a rendition of Jeff Buckley's "Last Goodbye". Grace should come with a warning label: "You will not be able to sing along with this. No, not even if you're drunk."
The problem with the street outside is that it's narrow, two very thin lanes with barely enough room for trucks to pass each other in opposite directions, but because it's a bridge over the train track, and it links two pretty arterial roads, if they were to dig it up during the day it'd probably back traffic up all the way back to the city. I know that's what I'll be told if I complain about the noise, anyway.
I'm teaching an OB77 next week. Joy. Teaching is one of the things I don't like about my current job, but I like enough of the other stuff that it's only a minor annoyance. Nobody on the staff really likes the teaching, I think, but it's a sacrifice we have to make in order to stay as cool as we obviously are. I get to play with some pretty big RS/6000 boxes on the next job. Of course, they'll be running AIX, but nothing's perfect.
Fish are groovy.
Everyone I know seems to have an online journal. So I've decided to start one of my own. It's got my name on it, if anyone is really dedicated to finding it, I'm sure they will. So I'm not going to tell anyone it's here. This post is just to make the page look less empty, I'll actually say something later today...