Sane Filenames
I’ve changed from using the entry ID for the filename to using a "dirified" title. Redirects should be in place so that all the old links work but if you do find an entry that has disappeared off the face of the earth please let me know.
Also, major apologies to anyone who winds up with every entry in my RSS feed being marked as new because of the change. I would have hoped that wouldn’t happen but NetNewsWire seems to think they’re all new so I suspect the planet aggregators might as well. Sorry!
Speaking Of ELJ
This week was a big release week for us. With new versions of EditLive! for Java, EditLive! for XML and EditLive! for Windows all going out. My main focus has been on EditLive! for Java’s release and it was pretty huge. There’s a lot of things in there that we’d been wanting to do for a long time but couldn’t because of limitations in the Swing text components. We’ve now replaced so much of the standard Swing text code that they’re possible. Stuff like spell checking as you type, inline image and table resizing and a much better selection model just makes life for users so much easier.
ELJ Integration
I finally got around to embedding EditLive! for Java into Movable Type so I don’t have to do all the HTML layout by hand. It’s amazingly simple to integrate once you work out which template you have to edit as well, just 5 lines of JavaScript.
On Charsets
Reworking Copyright
Some time ago I outlined my thoughts on copyright and Byron responded. I’ve been meaning to revisit that conversation for some time but needed to think it though some more. There are no easy answers to the copyright problem and I don’t have any answers to offer at all really. I just wanted to note down some of my thoughts with the hope that others might jump into the discussion and help complete some of these thoughts. Byron’s main comments were along the lines that musicians didn’t need to make their money from CDs and to some extent I agree with that. I had never intended my comments to be particular to any one industry, distribution method or business plan. In fact my line of thought has been along the lines of how to create a complete solution. To create a complete solution to the copyright problem you need three elements:
The Spam Fight Continues
More and more spam has been gradually getting past spamassassin and winding up in my inbox lately. It’s getting really annoying. So today’s project is to upgrade to SpamAssassin 3 in the hope that it contains some new voodoo that will clean up my inbox again. It seems to have a new requirement on Digest::SHA so this time the build can go through CPAN but it’s on to the tests now and everything seems okay. Hopefully it will be a smooth upgrade.
Globalization
Every so often an event happens that makes you realize just how globally oriented the world is today. I’ve been watching the results of the US presidential election over the course of the day, getting updates in real time. This in itself is nothing particularly special. The fact that I’m Australian adds a little to the sense of “globalness” but it really struck me when I realized that I was an Australian watching the results of the US election in real time over the web – via the British Broadcasting Corporation. I mean, it wouldn’t have been particularly surprising for me to watch CNN reports flow by my RSS feed about the US election, and it wouldn’t have been all that far fetched to think I might have a web page open that showed the results as they came in. It does strike me as odd that the page I happened to be pointed at for the results essentially formed a triangle that touched the furthermost parts of the globe. Such is life these days…
Trackback Spam
Sigh, while my comment spam avoidance measures seem to be exceptionally successful, I got hit by my first batch of trackback spam this morning. Nearly 100 trackbacks to various entries. Fortunately they were all for the same domain so MT-Blacklist could clean them all up in one hit. I guess I’ll have to rename the trackback CGI next….
Equals (Settled Once And For All)
Andraes Schaefer finally comes up with a solution to the great equals debate. It turns out that in fact it is possible to implement equals in such a way that it works well with subclasses that add additional constraints to equals.
Andraes’ solution is still not great though because of the restrictions he mentions:
- All sub class must overwrite and adjust the equals() method otherwise line 8 in the base class will create an endless loop
- The equals() method in the sub class cannot call the equals() method in the base class otherwise it ends up in an endless loop, too
- Line 11 in the Complex class cannot check against a sub class of Irrational in a different branch (meaning it is not a sub class of Complex, too)
I think we can solve the first two of those problems by throwing more code at it (I’m not sure we want to but I think we can). Here’s how, in the base class we have:
Hunka Hunka Burnin’ Office
You know it’s going to be a bad day when you get to work and discover the building surrounded by police tape with 3 policemen standing outside and the chairman of the board asking “when did you last do a backup?” You know it’s going to be an even worse day when your response is “since when have I been in charge of backups?” The restaurant above our office caught fire sometime Monday night, fortunately the fire brigade managed to contain the fire to the restaurant so our office only suffered minor water damage to one room. We were however without power for a day and a bit which was a bit of a nuisance but meant we didn’t loose any data or any time setting up systems again. On the downside, the air-conditioning still hasn’t been approved as safe and Brisbane is getting some really hot weather at the moment. Being in an office full of computers with no air-conditioning is proving to be not so much fun.
More On Exceptions
Benjamin still doesn’t like exceptions but I sense I’m making some headway.
Again, I think it comes to the number of paths through a piece of code. and much later:
Exceptions put a possible branch on every line of code, and that is why I consider them evil. It seems to be this belief that exceptions put a possible branch on every line of code that is making Benjamin dislike exceptions. Again though, this is just a case of exceptions making possible errors obvious. For instance, how many possible codepaths are there in the C code:
A Washing Victory
Until just recently, we haven’t had any real rainfall for quite some time. During such times, one tends to become rather lax about getting washing done because it’s just so easy to throw it on the line whenever and within hours of daylight it will be dry. Sadly, this went someone wrong for me on the weekend. I did a load of washing on Saturday and didn’t get around to bringing it in before the evening dew set in. I then did another load on Sunday and the rain set in just as I finished hanging it out. Sunday night and Monday was heavy rain and storms, this afternoon another storm is on it’s way in and rain is predicted for the rest of the week. Things looked bad for me having clean clothes to wear by the end of the week (I don’t own a dryer). Fortunately, leaving work slightly this afternoon paid off – I got home just in time to get my washing off the line before it started raining. And if you’re wondering why I’d post this here, it’s because I felt I just wasn’t airing enough dirty laundry on this blog…