September 29, 2003
Small Values - now with added favicon

If you are using a decent browser, you'll now see that Small Values has a working favicon. (If you're using a crap browser, try File, Send, Shortcut to Desktop, and you may (or may not) see it.)

Thanks to Ned Batchelder for the suggestion, and Paul for starting me off with an image. I'd like to thank my mother, my agent...

Update 19/11/2003: This isn't how I did it, but it's how I should have done it. And yes, Icon Forge sucks.

Posted to Blogs by Simon Brunning at 03:18 PM
More commented upon than commenting

An important landmark in the lifecycle of this blog has finally been reached:

Entries: 497   Comments: 450

For the first time, there are more comments than posts on Small Values.

Small Values had been running for three months when I first got a comment, and comments remained rare for some time. Though I doubt it'll ever be the hive of social activity that Eloonsie or Steve's blogs are, things are picking up.

I suppose that I ought to work out how many of these comments were made by me, and discount them. But life's too short.

Posted to Blogs by Simon Brunning at 11:06 AM
Spirited Away

This weekend, I took Freja to see Spirited Away.

I can't remember the last time I was so knocked out by a film. Truly magical, fantastically beautiful, utterly original, funny and moving, Freja was entranced, and so was I.

Recommended without reservation to those with children of, oh, five and up. If you don't have children, well, I'd recommend it anyway, provided that you're not wedded to realism. This is a "kid's film" in the same way as Philip Pullman is a "kid's author", (and the way J.K. Rowling fails to be, IMNSHO).

I'll almost certainly see this again at the cinema, and the DVD will be bought on sight.

Grauniad review here, BTW, but I'd read no reviews before seeing the film.

Posted to Music and Film by Simon Brunning at 10:24 AM
September 26, 2003
American Apology Shirt

The American Traveler International Apology Shirt. Why wear your heart on your sleeve when you can wear it on your chest?

The comments page was accurately summed up as:

US: We're awsome!
Everyone else: You suck!!
US: We're awsome!!!
Everyone else: You suck!!
Repeat to infinity

But there are some gems in there. I liked:

When the Great British empire controlled half the world we didn't have these problems. We let some tax dodging religious zealots have their own way and look what happens.

Posted to The Big Room by Simon Brunning at 11:51 AM
A favicon for Small Values

All in the <head> reminds me - I want a favicon too.

Question is, what should it be? "Small Values of Cool" doesn't suggest any kind of image to me. Any suggestions?

Posted to Blogs by Simon Brunning at 10:42 AM
September 25, 2003
Women - different sex, or different species?

No beer goggles for girls.

Bang goes my theory, then. That explains a lot. So, how are we supposed to pull, then?

Via Tilesey.

Posted to Apropos of nothing by Simon Brunning at 05:21 PM
Failure and Exceptions

In Failure and Exceptions, James Gosling argues the case for checked exceptions. (Bruce Eckel makes the opposite case in Does Java need Checked Exceptions?).

Gosling's argument seems weak to me. He claims that it's impossible to test every circumstance, especially the unexpected, (which is true), and that exceptions can keep a program working in the face of this. Well, checked exceptions can keep a program from falling over, but that's not the same thing as keeping it working. I'd prefer a program to fall over than for it to keep on truckin', writing crap to a database. This has happened to all of us, I'd imagine, and a clean failure is far preferable.

Besides, in the real world, there often isn't anything you can do in the face of many exceptions, but the compiler insists that you have a catch block for them somewhere anyway. The number of times I've seen them empty...

The workaround in Bruce Eckel's article works fine, but I'd rather have the choice as to how to deal with exceptions, as Python gives me.

Posted to Java by Simon Brunning at 12:38 PM
WMDs - the best spin yet

I was listening to Today this morning, and heard Kenneth Adelman (one of President Bush's defence advisers) claim that it's OK that no WMDs have yet been found in Iraq, because Saddam Hussein was himself a weapon of mass destruction.

Do they really think that we are stupid enough that they can get away with this?

Also, I'd like to point out that they haven't found him yet, either.

Update: It seems I wan't the only one to hear this.

Posted to The Big Room by Simon Brunning at 11:45 AM
GM Nation?

5 to 1 against GM crops in biggest ever public survey.

I have profoundly mixed feelings about this.

On the one hand, I really can't say that I see any advantage to GM foods, at least not in the hands of Monsanto and the like. The current momentum towards GM is all part of the intensive high-yield low-quality agriculture industry which, along with the madness of the CAP and the like, are starving the 3rd World and costing the 1st in both money and choice.

But on the other hand, I have to say that I feel that the public's opposition to GM is driven more by ignorance and the naturalistic fallacy than by any informed objections.

None of the food that we eat is remotely natural - we've been genetically modifying our food for thousands of years, by selective breeding. Modern livestock and crop plants are so different from thier natural ancestors that it's doubtful that a present day farmer would even recognise them.

People have been eating GM food in the US for many years without any health problems at all.

Where real dangers may lie are in the environmental impact. Genes are known to transfer from species to species quite readily in the plant world, so care needs to be taken, and research needs to be done.

As is so often the case, in the end I think that people should be allowed to make their own choices. I remember thinking during the BSE scare that banning beef-on-the-bone was, well not exactly an over reaction, but too prescriptive. I think that food labelling would have been a more appropriate response to BSE, and also for GM foods. If you don’t want to eat GM foods until sufficient research has been done on the environmental impact, or indeed if you are worried about health risks in spite of the evidence, then strict labelling would give you the option.

Posted to The Big Room by Simon Brunning at 11:18 AM
The Indy goes tabloid

The Indy, the paper that I take by choice, is launching a tabloid edition. Tabloid in format, that is, not in content.

I'll give this a go, 'cos it might be more convenient on the tube than the broadsheet edition. That said, I've become pretty adept at broadsheet-origami over the years, (or perhaps I'm just become inured to poking people,) and I wouldn't want anyone mistaking it for a copy of The Mail.

Posted to Books and magazines by Simon Brunning at 10:29 AM
It's what you say *and* how you say it

I don't usually take much notice of the so-called experts when it comes to parenting, but 5 Best and Worst Things To Say To Your Kids is actually pretty sensible on the whole. I'll try the please make a decision the next time the opportunity comes up. Knowing Freja, that'll be this weekend!

Via Kevin Dangoor.

Posted to Parenting by Simon Brunning at 10:21 AM
Word Considered Harmful

Word Considered Harmful.

The title is a bit of an overbid, I must say, since many of the criticisms are rather narrow in scope. For a single user creating a static document for one off publication, Word is still a pretty good tool. (Said through gritted Microsoft-hating teeth.)

But it's true that for collaborative work, a wiki is a better fit - take a look at MoinMoin.

Via Square Rutabaga.

Posted to Software by Simon Brunning at 09:54 AM
Pretty Eclipse pictures

I have no idea whether the Creole plug in for Eclipse is actually any use, 'cos it's not available for download yet. But it looks as cool as fuck, I must say, and who's to say that isn't as important as actual utility, eh?

Via Real Life, beta version.

Posted to Java by Simon Brunning at 09:36 AM
September 24, 2003
You'll be hearing from my brief in the morning

There are libel laws in this country, you know, Steve. Drink at lunchtime? Me?

On the other hand, I have to admit that Steve has a good defence, in that his accusation is totally accurate.

In fact, though, I don't drink at lunchtime at all any more. Basically, I'm not to be trusted, so now I just don't go to the pub in the first place. Sigh.

Even if I were to go for "a quick half" (meaning a pint or two), where's the fun in that? Steve and I used to go for "a couple" (meaning four pints plus).

Posted to Apropos of nothing by Simon Brunning at 05:12 PM
The lucky, lucky bastard...

Joel is bragging about his new office.

In my office, I'm the lucky one, 'cos I've got the window desk. It only looks out onto an atrium, with a brick wall and another window ten feet away, but at least it's natural light, and I can open the window for some fresh air. Besides, the sill gives me somewhere to put my books. I don't have much room around me, though - Tulna's desk is four feet behind me, and we both have to fit into that gap!

Still, I can hardly claim to be on the 99.9 percentile, I'll freely admit.

Posted to Software development by Simon Brunning at 04:58 PM
Tulna's hen night

In preparation for her wedding, Tulna's hen night was this last weekend in Rome. (Tulna's in the boa, just like she wears at work. Just one of the reasons why her nickname is Margo.)

Jenny (third from the left), our receptionist office and events co-ordinator, still hasn't made it back to the office. I'm assured that she's ill, and not in a Roman police cell, but I'm sceptical.

I quite fancy a couple of Tulna's friends, I must say, so I'm looking forward to the wedding even more than before. Problem is, I'm going to be a real disappointmet to all my colleagues. My daughters will be with me, so I won't be drinking, and they all so look forward to my making a total arse of myself

Posted to Apropos of nothing by Simon Brunning at 03:41 PM
Dysfunctional Programming

Charles Miller, part of the team responsible for proposing some superb Java improvements in JSR 666, goes one step further and introduces a whole new programming paradigm - Dysfunctional Programming.

Posted to Funny by Simon Brunning at 02:02 PM
September 23, 2003
Bring back Doctor Who!

Viewers miss Doctor Who the most, says the BBC. Viewers also voted for long-running comedy series Last of the Summer Wine to be taken off air.

I can't disagree with a syllable of that.

And before Dan pokes his head in, I'd like to add Bottom, Gimme Gimme Gimme and Red Dwarf to the put-a-stake-through-its-heart-lest-it-rise-again category.

Posted to Music and Film by Simon Brunning at 02:05 PM
The Unsexy List

We'll have to agree to disagree about Denise Richards, but other than that, The Unsexy List is spot on.

Hmmm, well, I'll admit to finding lower back tattoos rather appealing, too, but I know damn well that I shouldn't - it's just a bit council, really.

I particularly like 18. Your cats. Attachment to a non-human mammal that doesn't give a fuck about you bespeaks emotional damage. It's the kind that transforms you from "alluringly quirky" to "certifiable."

Via Burnt Toast.

Posted to Apropos of nothing by Simon Brunning at 01:29 PM
Whatever happened to pressure cookers?

Everybody used to have a pressure cooker, but I can't remember the last time I saw one.

Posted to Apropos of nothing by Simon Brunning at 12:59 PM
September 22, 2003
Good luck, Steve...

You'll need it - Four in ten IT contractors out of work.

Posted to Business by Simon Brunning at 05:08 PM
More addictive than crack

The Wikipedia's Random page link.

Posted to The Internet by Simon Brunning at 05:00 PM
Kitty Bash

Animal lovers won't like Kitty Bash, but I do. Thanks, Steve.

Posted to Funny by Simon Brunning at 02:50 PM
Java Idioms

Thanks to V S Babu, I found this great Java Idioms page.

There's enough here for a thousand posts. Well, five or six, anyway. ;-)

For starters, see Immutable Value for a good explanation of why value objects should always be immutable, Use Factories To Build Objects to see how and why to avoid the new keyword, Build Interface Implementation Pairs to see how to use interfaces everywhere, and No Null Beyond Method Scope to see how to put an end to those pesky NullPointerExceptions (or at least to make them occur near the source of the problem).

Posted to Java by Simon Brunning at 02:00 PM
Programming Fonts

Most developers spend a huge amount of time looking at code. Obviously, the quality of your VDU is very important, but it's also important to use a good font.

Obviously, you're going to use a non-proportional font for coding. As a Windows victim user, you get a couple by default. Courier New is just too hideous to contemplate. Lucida Console is better, but both these fonts have one big defect in common - it's hard to distinguish between zeros and upper case letter 'o's. Me, I prefer Andale Mono. (You can download Andale Mono here.)

Ned Batchelder points out Tristan Grimmer's programming fonts. Proggy Clean especially looks really nice for day to day code and text editing. Proggy Tiny, is, well, a bit too tiny for editing with, but it might make a good console font. I'll give them a try.

Update: I've had a look, and I think I'll be sticking with Andale for the moment, though Proggy Clean is almost as nice - it just takes up that tiny bit more room. Some samples: Andale Mono, Proggy Clean, and (for Hans) FixedSys.

(BTW, this code snippet arose because a colleague was struggling using a text editor to open a 1.2 gig log file in order to find all the lines containing a specific exception. A slight variation on this code pulled out the required lines, and took 13 minutes on an oldish PC. Another Python convert, I hope!)

Another update: V S Babu mentions Bitstream Vera in passing. There's a non-proportional font in there which looks pretty nice. An example - Bitstream Vera Sans Mono. But again, I think I'll stick with Andale.

Posted to Software development by Simon Brunning at 10:37 AM
September 19, 2003
Break out the grog

Binge drinking 'costs £20bn'. Wow, now that's what I call a session. Three sheets to the wind, arrr!

Posted to The Big Room by Simon Brunning at 02:08 PM
A fine stern on that there scow

Me mateys! At last, thanks to Captain 'Widowmaker' Eloon, I see that some scurvy dog has finally found a good use for mobile phone cameras. Arrr!

Update: Cap'n 'Blackheart' Phil pointed out that it's the stern, not the bow.

Posted to Funny by Simon Brunning at 12:28 PM

I missed out on Sobig.F and the other recent viruses and worms, but this scurvy bilge rat is doing the hornpipe all over me servers. Arrr!

Norton is sending it to Davy Jones' locker, so I hope everyone updates right smartly.

I spotted Microsoft Press' Writing Secure Code the other day. Yeah, right, I'm sure that's a top seller.

Posted to The Internet by Simon Brunning at 10:42 AM
Avast there, you scurvy dogs!

Ahoy, me hearties! Today be International Talk like a Pirate Day.

Anchors aweigh, top gallants full and a bone in its teeth! Arrr!

Thanks to Cap'n 'Blackheart' Phil for some authentic nautical terminology.

Update: A round of Grog for Simon Willison. And point your telescope at Nautical Expressions in the Vernacular for more, uh, nautical expressions. Arrr!

Posted to Funny by Simon Brunning at 08:49 AM
September 18, 2003
Is your site accessable?

It had better be! But don't worry - Mark shows us how.

Posted to Blogs by Simon Brunning at 04:24 PM
How autistic are you?

Try this online Autism Spectrum Quotent test. I scored 18 - just above average. Funny - I'd have thought I'd score higher. Perhaps I'm not as nerdy as I think I am.

Via Ned Batchelder.

Posted to Science and technology by Simon Brunning at 10:15 AM
September 15, 2003
Big Brother is watching you

Well, clearly he isn't, but Sadie is.

What's going on? Look at these proposals:

See a pattern?

Posted to The Big Room by Simon Brunning at 11:33 AM
September 12, 2003
Am I an irritating colleague?

Apparently, yes. You are David Brent combined with Gareth Keenan. Your office persona swings wildly from forced hilarity to utmost anality, and is driving your long-suffering colleagues to drink and drugs. For their sakes at least, seek psychiatric help.

These Grauniad quizzes are brilliant!

Update: Everyone else in my office claims to be a dream colleague. But at least one lied in her answers...

Posted to Funny by Simon Brunning at 04:15 PM
Another blow to UK IT contractors

Am I glad that I'm a permie! What with the horrible job market and IR35, it's not easy being a contractor at the moment. And now this - Litigation frenzy driving IT contractors under.

Posted to Business by Simon Brunning at 11:58 AM
Groovy, man

James Strachan is working on a new dynamically typed scripting language for the Java platform, Groovy.

I can't say that I understand James' motivation here. Why not just use Jython? Jython's quite behind Python though it is the closest to what I want right now, he says. It's true that the most recent Jython release is equivalent to C Python 2.1, two major releases old. But Python 2.1 was great - it's just that Python 2.3 is better. What does he want that Jython doesn't deliver?

Now, J*, that was a good idea.

Posted to Java by Simon Brunning at 11:12 AM
More "How English are you?" nonsense

As for Steve, There is some corner of cyberspace that is forever England. My answers here.


Posted to Funny by Simon Brunning at 09:56 AM
September 11, 2003
Java refactoring with Eclipse

Eclipse sports a number of automatic refactorings, many of which I use regularly, and some of which I probably ought to use regularly. Refactoring for everyone - How and why to use Eclipse's automated refactoring features is a good intro for anyone who isn't familiar with them.

Is there anything like this for Python? I've not seen anything working. Bicycle Repair Man! doesn't look ready yet.

Posted to Java by Simon Brunning at 05:23 PM
September 10, 2003
Nukeing vs. nuking

A special post to welcome a new pedant to the blogsphere. Which is the correct spelling, nukeing or nuking? Every authority that I can find, up to and including Google, supports the latter, but it just looks wrong to me.

It's not just this one - puke > puking looks wrong to me, too, though I know it isn't. But leaving the 'magic' e off doesn't always look wrong - poke > poking looks fine.

I suspect I'm just losing it... ;-)

Posted to Apropos of nothing by Simon Brunning at 03:43 PM
Asylum seekers eat babies shock

Rogue Semiotics' Daily Mail bashing continues with Asylum Seekers Will Cover London By 2005.

Jon will end up working for Private Eye at this rate. All he needs is a large dose of luddism, and he'd fit right in.

Posted to Funny by Simon Brunning at 03:04 PM
A useful gadget

I found a useful Windows gadget today. PowerMenu allows you to minimise windows to the systems tray, to alter their application's run priorities, and to force them to stay on top of other windows. A less useful (though rather cool) feature is that it allows you to make (just about) any window transparent.

Via Scott Hanselman, via Ted Leung. Scott links to a whole bunch of stuff, some of which is really only useful to .NET developers, and some of which I already knew about. Worth a look.

Posted to Software by Simon Brunning at 11:26 AM
September 09, 2003
Totally safe for work

Pictures of beautiful tits.

Via the Royal Rodent.

Posted to Funny by Simon Brunning at 04:32 PM
Not my finest hour

There's a debate going on right now on python-dev about what kind of changes are acceptable in micro releases. (Micro releases are where you go from x.y.z to x.y.z+1 - for example, from 2.2.1 to 2.2.2.)

At one point, Fred Drake said "We might not be able to remove a core dump since it would allow code to run that was not run before, thereby changing the behavior of the code".

No one would rely on something like a core dump, right? Well, perhaps, but I was reminded of one of my nastiest ever iSeries hacks, which was very nearly as bad. Scarily enough, this was (and is) used in production code.

Posted to Software development by Simon Brunning at 12:31 PM
September 08, 2003
Context is everything

It's not often that you read a sentence like the last line in this blog entry without being disgusted.

Posted to Funny by Simon Brunning at 02:25 PM
Comedy attire

While at the Guilfest with Steve this year I spotted a brilliant t-shirt. Turns out it's from - it's the 'Jesus' one. My mate Paul spotted one at the weekend, and recalling that I'd mentioned that I wanted one, picked it up for me. Fab!

I don't usually wear anything with writing on the outside of it, but I'll make an exception in this case.

Posted to Funny by Simon Brunning at 12:22 PM
A rose by any other other name...

... would smell as sweet.

Eclipse may take new name after reorganization, basically because the name pisses Sun off, and so they don't want to join the Eclipse consortium unless it's changed.

Thing is, while I have no reason to object to Sun joining the Eclipse team, I'm not sure what the advantage is, either. So why should Eclipse bend over backwards for Sun, and loose the recognition factor which Eclipse has earned over the last couple of years?

Via architectslobby.

Posted to Java by Simon Brunning at 11:56 AM
Getter and setter methods are evil

Why getter and setter methods are evil explains, uh, why getter and setter methods are evil. Don't ask for the information you need to do the work; ask the object that has the information to do the work for you, it advises.

I hadn't really thought about this, but it strikes me as good advice. Looking through my own code, I see almost no simple setter methods, and few getters. I do use 'is' type getters fairly frequently, though. This feels OK to me.

This isn't the same thing as Python's reason for avoiding getters and setters, BTW. Python's descriptors mean that you can directly access object attributes without breaking encapsulation, making getters and setters very un-Pythonic.

Update September 9th: Having thought about this overnight, I'm a little concerned that this might be a bit too purist, a bit too principle of least privilege. Yes, so long as the designer of the class has anticipated every need that a client of the class might have, it's better to encapsulate firmly, and to prevent anything unanticipated from happening. In the real world, the designer hasn't thought of everything.

Have you ever raged that a method or attribute that you need to access has been marked private, because the designer of the class that you are using didn't anticipate your every need? I know I have.

Still, the designer should provide a named method for everything for which he/she does anticipate a need. Access to an object's attributes, be it via setters and getters. or directly, strikes me as a code smell.

Posted to Java by Simon Brunning at 11:03 AM
September 05, 2003
Rant of the week

Rogue Semiotics' Daily Mail deconstruction is just too good to miss.

Posted to Rants by Simon Brunning at 03:06 PM
Sun joining the Eclipse consortium?

Sun Mulls Joining Java Eclipse Effort

Better late than never, I suppose, but what they will bring to the party at this late stage I don't know.

Posted to Java by Simon Brunning at 02:54 PM
This blog is 80% British

I scored 8/10 on this Britishness quiz - I missed questions 4 and 5, at both of which I'd guessed wildly.

Can I be a citizen now? ;-)

Posted to The Big Room by Simon Brunning at 02:19 PM
Tomb Raider: The Bag of Shite

I saw Tomb Raider: The Cradle of Life yesterday. What can I say? Plus points - Angelina Jolie looks great in a vest. Minus points - everything else.

I must admit, I quite enjoyed the first one. It was good fun in a leave-your-brain-at-home sort of a way.

But this one was just terrible.

Update: You want examples of why it was so bad. OK, so, partway through the film, Lara manages to make this globe thing show her the location of Pandora's Box. It flashes up images for about five seconds. Lara says "It's in Africa", and ten minutes later she's found the bloody place. Small place, Africa, obviously.

Well, at least she'd seen the mountain. The villain managed to find the place just having overheard Lara say that it was in Africa.

Having found the place, she then talks to a native tribe to find out about the valley into which she will be travelling. The natives talk to her interpreter, the interpreter translates into English for her, and she replies to the tribesman in English, which they have no trouble comprehending.

Posted to Apropos of nothing by Simon Brunning at 11:02 AM

My PC died this morning. It looks pretty nasty:

STOP: c0000135 {Unable To Locate DLL}
The dynamic link library winsrv could not be found in the specified path Default Load Path

I smell a disk failure - there were funny noises coming from my PC yesterday, which I'd reported to PC support.

Ah well, it was backed up, and I've get the notebook.

Posted to Apropos of nothing by Simon Brunning at 09:28 AM
September 04, 2003

Nearly a year ago now, I wrote about persistence. OODBMSs didn't do it for me, so this left the question of how best to use an RDBMS with an OOP language.

A year on, I've still not come across anything which stands out. Not until now, that is. Simon Willison has pointed out SQLObject, and it looks really interesting.

Don't take this as a recommendation, since I've not had a chance to play with this yet, let alone to use it in anger. But it's worth a look, I think.

If and when I do have a chance to give SQLObject a work out, I'll let you know how it goes. If you have any experiences to relate in the meantime, please feel free. ;-)

Posted to Python by Simon Brunning at 03:47 PM
I'm in!

The furniture is all assembled. The unpacking is done. I've spend too much money at Robert Dyas and Ikea. Oh, and Sainsbury's, too - when you have to buy a complete set of cleaning materials, spices and various other odds and sods all at once, it doesn't half add up.

But none of that matters. I'm in.

Tonight - Lara!

Posted to Apropos of nothing by Simon Brunning at 03:27 PM
Groovy new Bloglines feature

You can now make your Bloglines subscriptions public. Here are mine.

Posted to Blogs by Simon Brunning at 11:17 AM
September 01, 2003
No Internet at work today...

So, no blogging. For whatever reason, our poxy proxy server was denying everyone access today. And will continue to do so until somone works out what the f**k is going on.

Everyone, that is, except Tracey for some bizarre reason.

Anyway, phase 2 of moving is now in progress - unpacking. Sigh.

Posted to Apropos of nothing by Simon Brunning at 06:11 PM