Scrubbed

Finally deleted the last trackback spam yesterday. All comments and trackbacks are disabled forthwith. Go and bother someone else you bastards.

Not especially impressed with the new version of Movable Type either. The installation was really quite fiddly, and I’m a geek for heaven’s sake. And there was almost nothing that couldn’t have been scripted if they’d made the effort. I know the theory is that it should be possible to install with nothing more than an FTP connection, but there should have been a script provided for those of us who have complete access. The blacklist capability appears to be dreadful. There was no way to scan existing comments and trackbacks for spam, they were all assumed to be fine it seems. So I had to (via the web interface), delete 2000 odd trackbacks in batches of 100, which each took about a minute to complete. Nice. Bring back MT-Blacklist I say.

Hold tight, I’m going in

The machine my hosted account is on suffered a fairly fatal hardware failure a few weeks ago. Thanks to the marvels of RAID and backup schedules nothing important was lost, but my perl libs (which were not part of the backup) seem to have taken a hit, with the result that some bits of MoveableType have stopped working, namely trackback and comment filtering. I’m taking the opportunity to upgrade MT, so hopefully we’ll be back to spam-free operation soon. Either that or I’m about to take myself offline in a rather unplanned fashion.

Beyond HTML email

Slightly late to the party reading this entry about how we should all switch to HTML email.

That’s so 90’s. HTML is a truly shocking format for email, capable of containing malicious code and tracking your actions (thus allowing spammers to know if your email address is still valid). Also, an HTML ‘document’ often isn’t the whole message. HTML often contains references to external content. Consider the <img> tag. I received an email the other day that consisted almost entirely of image tags pointing off to a site that the corporate proxy had tagged as inappropriate content. The message was completely broken and unreadable (probably just as well), and the proxy logs would show that I ‘attempted’ to browse to a blocked site, despite the fact that it was my email application acting entirely beyond my control. HTML? Its fine for web pages and that’s where it should stay.

What’s more, there at least 2 open standards far better suited to sending richly formatted emails. Rich Text Format (RTF) and Portable Document Format (PDF). Both do what they say on the tin, and both are viewable on pretty much every platform with a GUI. And neither will cause your machine to go trawling the web or turn into a zombie.

(Not) Learning from history

Vorlath writes:

So the compiler will be written in itself. It’s a really strange concept.

Not to denigrate what seems like an otherwise noble project, but compilers are routinely tested by using them to compile themselves.

Every generation of developers seems to rediscover old ideas and believe they invented them. Its one of the most irritating occupational flaws we programmers have.

Java vs .Net – Specifics

Today’s episode was brought to you by my colleague Griffin’s post about J2EE. While I don’t really mind what anyone’s programming language preference is (everyone knows Smalltalk is the best, right?), I find the lack of details…. disturbing. Get specific! Otherwise its just ranting, and we wouldn’t want that would we?

So, some specific shortcomings of Java that are affecting me right now:

Insufficient separation of classloader hierarchies. Its almost impossible to successfully deploy 2 versions of the same class in a single JVM. This is often manifested by XML parsers and the resulting musical chairs of classpath reordering to try and get the ‘right’ one to load first. .Net’s AppDomains do a better job. The ray of light in this case is the MVM (aka ‘Barcelona’) project that introduces Isolates and should be in Java 1.6.

JTable. Very powerful, but the degree of subclassing and overriding you have to do for anything beyond the basics is scary. Plus there’s always the nagging fear that you’ll get 80% done and hit a wall that forces you to throw it all away and reimplement as a bunch of custom panels and labels and…. GridBagLayouts. Oh, GridBagLayout. If ever there was a class that needed an entire book devoted just to it, this is the one. Sure its possible to layout the UI in almost any way imaginable using this layout but you’ll find out just how many ways there are to do it wrong in the process. And just when you think you’ve got it sorted, you innocently try resizing the window…. (cue Psycho stabbing music). Argh!

Google for Lotus Notes

Just installed the latest Google desktop, and its brilliant. The scratchpad may actually replace index cards & notepads for jotting things down while working, as it sits off to the side without getting in the way of what I’m doing. The best feature however (for me), is that I finally have a fast and effective search capability for Lotus Notes. There is a small trick however, as the normal version doesn’t include the plugin.

First, install the Enterprise version (also free, but you have to register), including the Notes plugin. Then (without uninstalling it), install the normal version over the top. The plugin stays, and you get all the goodies of the latest version. Recommended for anyone who’s ever tried to search their email in Lotus Notes.

Small caveat: it only searches local files, so you have to be using replication.

The Problem with Tasks

Problems are fun. Problems are like puzzles. They present a challenge to be overcome. Problems stir up the competitive instinct and allow really quite obsessive degrees of focus to be brought to bear on them until they capitulate. The challenge and reward of solving a problem is why many developers will happily spend 30 minutes writing code to automate a 15 minute task and consider it time well spent.

The problem with problems is that they are hard to put on a plan. Project managers would probably rather turn all problems into tasks. Problems are undisciplined, and sometimes called ‘risks’. Tasks are safe, measurable, definite and look good on a gantt chart. To many developers, unfortunately, tasks are dull, repetitive and tedious. The same developer who could bring scarily intense levels of dedication to bear for hours at a stretch in order to solve a thorny problem might well struggle to concentrate for the 15 minutes needed to perform a routine task and will probably spend an hour or so in displacement activity while working on it, not because they’re lazy (they just spent 4 hours solving a problem without taking a break or even, quite possibly, blinking), but because they can’t make their brain engage.