Categories
Uncategorized

WinDirStat

I’ve just seen WinDirStat. It’s a very good way of showing where your filesystem space has gone. It might even be good enough to tempt me away from 10 years of xdu(1)

Another similiar program is spacemonger.

Categories
Uncategorized

More Terrorists

Wandering in front of Churchill square at lunchtime, I saw two large armed policemen with sub machine guns. Now I don’t object to having more policemen because the Labour Party Conference is in Brighton. I understand that they’re a large and obvious target for terrorists. But that still doesn’t mean we need armed officers wandering around putting terror into the local populace. I mean it doesn’t take much for the police to take an interest in you these days.

Of course, there’s no information at all on the police website to tell you what’s going on.

Categories
Uncategorized

Terrorists In Town

So the Labour Party Conference visits Brighton once more. On my way into town yesterday, I noticed riot police vans. Standing next to them were police with sub machine guns. If that isn’t terrorism, I’d like to know what is. People with guns like that should be in Basra, not Brighton. Sorry for the lack of photo, I was driving at the time.

It’s also good to know that our elected leaders are far too scared of photography for this to be allowed.

Charge sheet for terrorism

This really does take the biscuit. What kind of people vote for these morons?

Categories
Uncategorized

Projects / TODO

I’ve just been fleshing out all My Projects and my TODO list. They are both discouragingly long. My projects have been left to rot in too many cases and my TODO list is continuously filling up with new ideas. Maybe one day I’ll try to find the right balance. At least having them all down in one place will help.

Categories
Uncategorized

subatom 0.05

I’ve just released a new version of subatom, that now gets linking correct if you have viewcvs or similiar installed. Unfortunately, I’ve now realised that the amount of command line arguments are such that I’m going to have to start adding a configuration file to it. My crontab lines are looking a bit unwieldy.

Nonetheless, if you want to generate atom feeds of your subversion repository, give it a try. It seems to work quite well.

Categories
Uncategorized

Wicket

The ever interesting Ajaxian Blog highlighted this very interesting example implementing AJAX autocompletion for wicket. I had a (very) brief look at Wicket a couple of months ago, and it seems very promising. A really nice design, that cleanly enforces separation of presentation and content. In particular, I am very enamoured by the fact that it doesn’t prevent you from generating valid XHTML templates, unlike Tapestry.

Anyway, that article really confirms the view that it’s a very nice framework, seeing how easy it is to extend it. Of course, it’s not as simple as Rails, but it’s pretty good for Java. 🙂

Categories
Uncategorized

Oilaholics

I am greatly amused by the fuel protests (or lack thereof) that are supposed to be taking place today. Every morning as I cycle in to work, I look at all the fools in their tin-boxes-on-wheels and wonder why they are so addicted to their ugly, smelly devices.

I certainly acknowledge the utility of owning and using a vehicle (as I do). But I am continuously astonished by the complete and utter lack of thought that goes into their use. If you’re only driving into work, why not take a bus instead? Or cycle and get fit at the same time.

By curious coincidence, I’ve just been listening to midweek, which started off with John Grimshaw, mastermind of SUSTRANS. They’ve just opened their 10,000th mile of the national cycle network. I can’t recommend that enough. Great idea.

Categories
Uncategorized

Class::DBI, PostgreSQL and Transactions

Once again, I managed to see the dreaded ”<IDLE> in transaction” message from PostgreSQL today. This means that I have a connection to the database open, which is currently inside a transaction. This is bad because locks are held open in a transaction. So, what to do about it? Firstly, examine the documentation.

  1. <a href="http://search.cpan.org/dbdpg/DBD-Pg-1.43/Pg.pm#Transactions”>DBD::Pg on transactions.
  2. <a href="http://search.cpan.org/timb/DBI-1.48/DBI.pm#Transactions”>DBI on transactions.
  3. <a href="http://search.cpan.org/tmtm/Class-DBI-v3.0.4/lib/Class/DBI.pm#TRANSACTIONS”>Class::DBI on transactions (which I’m amused to see that I contributed when I first came across this problem several years ago)

Now, the application I’m working on at present has no particular need for transactions for the most part. So it would definitely be easier to turn on <a href="http://search.cpan.org/timb/DBI-1.48/DBI.pm#AutoCommit”>AutoCommit and only drop into a transaction when I absolutely have to.

What do I know so far?

  • AutoCommit defaults to on.
  • But Class::DBI disables it by default for PostgreSQL.
  • My application is running as part of an HTML::Mason web page.
  • When I make any call that goes near the database on a Class::DBI object, DBD::Pg executes an implicit BEGIN before the SQL that it has been sent executes. Only the first time though. This is because DBD::Pg is a database where a transaction must be explicitly started. DBI says the driver will automatically begin an explicit transaction when AutoCommit is turned off.
  • In a nutshell, I need to get AutoCommit turned on until I need it.

There, wasn’t that simple?

Categories
Uncategorized

I/O Buffering

Tim Bray notes that buffering is good, in his own inimitable, humourous style. I feel his pain though. I remember wincing when I read about the improvements to 4.2BSD some years ago to stop doing single character reads and writes in libc. It sped the system up enormously and made for some very happy users.

Incidentally, I’m not old enough to remember 4.2BSD. I just read the paper a few years back.

Categories
Uncategorized

SiteBar

SiteBar looks useful. And it has a firefox extension…

But their server software needs MySQL. I like PostgreSQL. Bah. That sounds like work. Thankfully, their database abstraction looks reasonably clean. Oh well, here we go.

Update: no, the mysqlisms are too deeply embedded. Or at least, I don’t know how to sensibly deal with assumptions about mysql_insert_id that aren’t true in a PostgreSQL world.