Google Wars
It appears the war of the Adrian Sutton’s is hotting up on Google. (Hint for those that just read the RSS feeds: take a look at the main page) The once unstoppable Professor Adrian Sutton who ruled supreme as number one search result for “Adrian Sutton” has dropped significantly down to third place, though he now has two entries in the top five with his surprise appearance in some meeting minutes. The new kid on the block Adrian Sutton has roared up the charts to take the number one spot just ahead of my own Randomness which held the top spot less than two days ago. I also hold the fifth spot with my appearance in a CVS commit message for FreeCard Stay tuned as this pathetically geeky race continues to unfold!
URL Escaping is Evil
I have come to the conclusion that URL escaping is evil and must be banished from the face of the earth. I’ve got no idea how it manages to work at all – every implementation seems to be different and the support for different character sets is a major hit and miss affair. Take for instance the string: © Adrian Sutton It looks like a pretty simple string and all. It should be encoded as: %C2%A9%20Adrian%20Sutton assuming UTF-8 character encoding (and I literally mean assuming since there’s no possible way to know for sure). If however you were to use the javascript escape() function you could get any one of: %u00A9+Adrian+Sutton %C2%A9%20Adrian+Sutton %u00A9%29Adrian%20Sutton It’s impossible to tell if the + sign in the first two is an encoded space or an actual plus sign (there’s no requirement for + to be escaped in URIs so many implementations leave it as is). Then you have to deal with the rather odd %u00A9 syntax which seems to be half URI escaping, half HTML entity and finally you get to worry about which character set was in use. For the record, here’s what your browser makes of it:
MarchFest Wrap-up
Wow, what a fantastic day. MarchFest was yesterday and for those who didn’t make it, you missed a sensational day. While there’s always a few things that go wrong when you put on a big production like MarchFest is, things went exceptionally smoothly and all the reports coming back have been really positive. It was particularly good to see the number of people who offered to help out and did so with such talent and energy. We even had a few people email us completely out of the blue offering to help out. Anyway, I’m going to bed as I haven’t had much sleep this weekend and I spent most of my waking time either lugging around heavy staging, PA systems or lighting or running madly between the two venues to make sure that the next band at each venue got set up quickly with all the sound stuff they need. The life of a stage manager and sound engineer in one is never easy. Good fun though. Hopefully now I’ll have some more time to do some recording with Soul Purpose and finish writing my musical.
JavaScript Fun
Nick Chalko talks about setting onsubmit dynamically. The solution he received from Alan Gutierrez which is good, but overly complicated. Since I work for a company that just so happens to do some amazingly funky stuff with JavaScript, here’s some fun you can have with it. Firstly, lets take the original solution:
<form name='CDiceComponent_0' id='findApplication'
action='/cdiceWebApp/custom/component/bridge.jsp' method='post'>
<script>
document.findApplication.onsubmit = function() {return checkForm();}
</script>
and simplify it to:
<form name='CDiceComponent_0' id='findApplication'
action='/cdiceWebApp/custom/component/bridge.jsp' method='post'>
<script>
 document.findApplication.onsubmit = checkForm;
</script>
JavaScript functions are just string variables so you can pass them around by just dropping the () at the end. Here’s how you could store the existing onsubmit function:
HttpClient – Moving On Up
The vote to start the motion of HttpClient out of jakarta-commons to become a fully fledged Jakarta sub-project has been declared passed. I’ve just done up an initial draft of the proposal that will need to be put to the Jakarta PMC to approve the move (they noted that it was coming and that it was most likely to pass at the meeting they just recently had). This is the first bit of Apache “politics” I’ve been involved in so I’ll be interested in the feedback. I’m just not sure if it’s considered politics when everyone agrees as they seem to do so often on the HttpClient list. It’s good to have a team that’s working so well together.
JDBC, MySQL and the GPL
I discovered something really quite annoying today. The JDBC drivers for MySQL have been re-licensed from LGPL to GPL (happened quite a while back actually). Now while it’s their code and they can do with it as they please, that’s really, really annoying. I’ll be moving all my development away from MySQL in the future. Here’s the problem. I came up with a really cool new feature for a product I’m working on which involves interacting with a variety of databases and inevitably someone will want to use it with MySQL. This feature would be a small add-on to a much larger commercial product. In order to use the official MySQL drivers though I’d either have to pay MySQL or GPL my application. Neither of which is a realistic option considering how insignificant this one feature is in the overall product. So now I’m developing the prototype with Microsoft SQL Server and it’s going great. MySQL, there appears to be a bullet shaped hole in your foot.
Masako, Forks and Stuff
Crazy Apple Rumors updated the look of their site today in what would have to be one of the most disastrous site overhauls I’ve seen. The all new forums were instantly filled with a whole bunch of people complaining about the new look of the site. Fortunately, Crazy Apple Rumors being as it is, the conversation rapidly turned to the joys of having Masako (the CARS web designer and rumored to be most attractive and feminine) poke you with a fork – apparently she does that kind of thing a lot. It does occur to me however that judging by the general accuracy of rumors at CARS, Masako could in fact be a fat middle aged balding man with no fork. I’m not sure if the thought of a large number of people lining up to be forked by a beautiful woman is more disturbing that them being turned away because the beautiful woman was neither beautiful or womanish. Actually, most disturbing is probably the fact that most of them would still line up for the forking by the fat middle aged balding man with no fork. Anyway, go read the comments, they’re quite funny with the CARS staff all getting involved.
E-Petitions
I was going to comment on how good it was to see the Queensland Government trialling E-Petitions, until I noticed the 12 month trial started in 2002 and they just haven’t bothered to update the website since. Sigh. On the plus side, the E-Petitions are still up and there’s one that’s still current, so I guess the trial was considered a success. Good stuff. You can view the currently open petitions here.
Shock Horror!
The Brisbane City Council in conjunction with the Queensland State Government are building a rather expensive Youth Recreation Centre across the road from the recording studio I record in. There’s very little information available about what they actually intend to do with it but since I’ve been organising quite a few youth activities lately I thought I’d see what the plans were and try to take advantage of the new facilities to make staging youth events easier. I called the manager of the centre who, it turns out, is actually the manager of the sporting complex next door and really doesn’t know too much about what’s going to happen with the youth centre. When he knows more he’ll get back in touch with me, but apparently there’s negotiations with the Policy Youth Club to run the place and provide activities to make use of the new building. No real surprises so far. I thought I’d see what information I could gather from the local council so I call the councillor for my ward Kerry Rea and asked her. Much to my surprise I got straight through to Ms Rea herself, no waiting on hold, no secretaries, no messing around. Then not only was she polite and friendly she offered to track down information on who I should speak to about the youth centre and get back to me by the end of the week. So, cudos to Ms Rea, that’s the way government is supposed to work. I wonder what things will be like after the council elections next Saturday….
Fighting Kernel 2.6
I’ve been playing with Linux on my powerbook, mostly just for something to tinker with. Generally it runs pretty well, but I don’t have a lot of space on my internal drive and wanted to use my firewire hard drive for /usr. This is a major mission apparently. After many hours of compiling kernels with massive struggles in finding a set of options that will actually compile, I managed to build a 2.6 kernel. Sadly it freezes the machine during boot. It seems to not like running discover to automatically probe devices. I’ve removed discover and will be installing my modules by hand from now on – most things are compiled into the kernel anyway. So I’m finally up and running on 2.6. HFS plus support went AWOL so I’ve now applied those patches and am recompiling again – hopefully without drama this time. On the really cool side, the sleep light on my powerbook flashes when the hard drive is accessed.
Follow Up Arggggg!
There’s been a few comments to my rant on choosing the right language for the task that I wanted to comment on.
Firstly the simple one from hammet:
Dude, you can say you hate C#, not .Net. .Net is not a language.
No, I definitely hate .Net. I still can’t tell you what went wrong with it or where to point the blame but my short spell of .Net programming rates as my most hated moments in computing. I have no particular problem with C#, it’s a language that’s very close to Java has some nice ideas, leaves out some nice ideas and makes some good and some bad design decisions – so be it. My beef was definitely with .Net because it didn’t matter if I used ASP.Net, VB.Net or C# nothing went right. A good deal of the blame definitely lies in my not knowing the language or the environment but I definitely shouldn’t have been able to waste a full two weeks getting obscure error messages that even intensive Googling and asking experts couldn’t sort out. I suspect something went bad in my Visual Studio.Net install which then broke something in my .Net framework install or in Windows itself. .Net has never worked for me since, nor has my IIS installation been all that rock solid. Oh well, maybe next time I have a need to use .Net it will go better.
Long Live The Dogcow
It appears that Apple have killed the dogcow. A highly endangered animal that was taken under Apple’s wing and blossomed in the days before OS X, the last known wild Dogcow now appears to have died. The soul remaining vestage of Doggycowiness (sic) is TechNote 31 which now can only be found in captivity at Google (or is that cacheivity?). Sadly because Google doesn’t cache images, the actual Dogcow that was in captivity in TechNote 31 at Apple now appears to be dead. The body of that last Dogcow cannot be found below:
Let us all solemnly recite the great Dogcow muse: