October 31, 2006
How Much?


My blog is worth $13,548.96.
How much is your blog worth?

That's over seven grand in real money! Certainly more than the rest of me is worth. ;-)

And check out Simon Willison...

Posted to Blogs by Simon Brunning at 02:19 PM
A Stern Talking To

The Stern Review might, just might, if we are very very lucky, save the world. Scientists and environmentalists have of course been pointing all this stuff out for years, and have been almost totally ignored. But if Stern, an economist, can convince the fat-cat capitalists that it will cost serious money if nothing is done, that it's in their own selfish interests to stop polluting, well, something might happen, and damn what the proles think - or the politicians, for that matter.

BTW, the Indy took up its first 10 pages covering Stern today. Top.

Posted to The Big Room by Simon Brunning at 01:56 PM
Where's mine?

Thanks to Nick, I discover that my dad has a Wikipedia page. The world has gone mad.

Posted to The Internet by Simon Brunning at 01:39 PM
There Is No God, And Dawkins Is His Prophet

I was unable to resist picking up Richard Dawkins' The God Delusion this weekend.

Strangely, so far it's mildly disappointing. I've read the first six chapters - including the central fourth chapter, and so far, there's nothing really new to me. It's beautifully written, and the arguments are very well set out - I'd now be able to explain what I mean by God being complex in this discussion rather better than I did, for example - but having read rather a lot of Dawkins, Pinker and Ridley's work in the past, I'm familiar with just about everything that's been covered so far already. I found myself wanting to skip ahead, looking for new material.

Still well worth a read, though. The writing is superb, and if you've not read a lot of the authors I've mentioned above, there's a huge amount to think about here. I'll be buying at least three copies for Christmas.

I wonder if many theists will read it? Somehow, I doubt it. :-(

(Not my title, I'm afraid, but I don't remember where I heard it. It would make a good tee shirt, don't you think?)

Posted to Science and technology by Simon Brunning at 01:31 PM
Burnt To Bitz track listing

Right, that's it; I'm bored of waiting for a Burnt To Bitz track listing. I've done my own.

Burnt To Bitz cover

Disk 1Track 1Escape SongGraham Coxon3:00
Track 2SpectacularGraham Coxon2:53
Track 3I Can't Look At Your SkinGraham Coxon3:24
Track 4No Good TimeGraham Coxon3:26
Track 5I WishGraham Coxon5:44
Track 6Bittersweet Bundle Of MiseryGraham Coxon5:20
Track 7What's He Got?Graham Coxon4:33
Track 8Girl Done GoneGraham Coxon5:04
Track 9All Over MeGraham Coxon4:48
Track 10Just A State Of MindGraham Coxon5:11
Track 11You & IGraham Coxon4:06
Track 12Standing On My Own AgainGraham Coxon4:30
Track 13Right To PopGraham Coxon2:50
Track 14Don't Let Your Man KnowGraham Coxon3:30
Track 15What Ya Gonna Do Now?Graham Coxon3:01
Track 16Bloody AnnoyingGraham Coxon3:20
Disk 2Track 1Freakin' OutGraham Coxon3:46
Track 2That's When I Reach For My RevolverMission of Burma4:27
Track 3People Of The EarthGraham Coxon3:50
Track 4Big BirdGraham Coxon7:26
Track 5See A Better DayGraham Coxon5:37
Track 6All Mod ConsPaul Weller1:12
Track 7You Always Let me DownGraham Coxon2:52
Track 8I Don't Wanna Go Out (Part 1)Graham Coxon3:20
Track 9I Don't Wanna Go Out (Part 2)Graham Coxon1:31
Track 10Gimme Some LoveGraham Coxon2:52
Track 11Who The Fuck You Looking At?Graham Coxon5:07
Track 12Life It SucksGraham Coxon4:04

Corrections very welcome. Photos of the gig here and here.

Posted to Music and Film by Simon Brunning at 01:00 PM
October 27, 2006
Congratulations to El Presidente!

And to Tatiana, naturally. Nadya was born at twenty to five this morning. Mother and baby are well. God knows what state the father is in.

Update: He's obviously not that bad, 'cos he's put more photos up. Beautiful.

Posted to Apropos of nothing by Simon Brunning at 09:23 AM
October 26, 2006
Interregnum interrupted

They've shortened the interregnum - we'll be sprinting again from tomorrow. Which is a pain, 'cos I'm up to by neck in a real beauty of a bug. I'm getting a ClassCastException from one of our domain objects - but only if the back end is MySQL. Running against PostgreSQL or SQL Server, it's all fine. This is deep into the domain layer; we should have left all the database stuff far behind - and besides, we are using Hibernate, so our database engine specific code is zero.

Naturally we discovered this bug at the last minute, during the demo run-through. Our functional test box runs on SQL Server, and on my machine where it was developed I run PostgreSQL, so it all looked fine, but our demo server runs MySQL. Lucky Tulna did a demo run-through, or it would have fallen over in front of the BSDs...

Update: Got the bugger last night in the pub. It turns our that MySQL's timestamp has somewhat less resolution than the other database engines that we were using. This meant that our domain objects's compareTo() method was finding two timestamps equal, so it resorted to lower order keys - one of which was an ArrayList. Now, for some reason, ArrayLists don't implement Comparable, so when Commons Lang's CompareToBuilder tried to cast them into Comparables, we got our ClassCastException!

The fix was simple - write a little ComparableList class, sub-classing ArrayList, and use that instead. Sorted.

Posted to Java by Simon Brunning at 03:04 PM
Three in a row

I'm pushing my luck (and my stamina) this week. Beer with Steve on Tuesday, Graham Coxon last night, and the gorgeous Lucy Porter at Roar this evening. Three nights in a row, and at my age! Will I make it? Will I be of any use at work tomorrow?

Well worth coming down if you are in the area. In fact, Roar is going through a big name period at the moment - Harry Hill, Noel Fielding (of Mighty Boosh fame) and We Are Klang (who are going to be big names if there's any justice) are all coming up soon.

Insert predictable El Presidente comment to the effect that I'm never any use at work here.

Posted to Comedy by Simon Brunning at 02:16 PM
Graham Coxon at The Astoria

The Graham Coxon gig last night was fab. My ears are still ringing! Lots of silly jumping about, both on and off stage, and plenty of old-school post punk with all the trimmings.

Silly jumping about - how old do I sound?

Anyway, I picked up the Burnt to Bitz CD on the way out. It's really well put together - despite picking it up on the way out of the gig, it has a good case and cover, and the sound quality is good from what I've heard so far. I'm just waiting for a track listing now...

No tee shirt, though. They had none in my size. <jack-black>Hey, Graham's merchandise people - fat boys like to rock too, you know!</jack-black>

Posted to Music and Film by Simon Brunning at 01:09 PM
October 24, 2006
Timing is everything

Crew eject safely after Tornado jet crash.

After the crash? After?

Posted to The Big Room by Simon Brunning at 04:06 PM
The Richard Dawkins Foundation for Reason and Science

Thanks to Michael Smith (a very funny comedian I've seen at Roar and Ginglik and who rather quaintly seems not to have any 'net presence) for pointing this out to me:

RichardDawkins.net

Remember The Enlightenment!

The Foundation's introductory video:

See also Why There Almost Certainly Is No God.

My views are pretty much summed in this post, but I'll never be as eloquent as His Richardness, the Saint Dawkins.

Posted to Science and technology by Simon Brunning at 03:37 PM
Walk It

Steve pointed me at a nice new route planning site - Walk It. The difference between this and, say, Google Map is that (as the name suggests) Walk It is aimed at pedestrians. I'm fed up with being told that I can't take a footpath or walk both ways up a one way street. ;-)

My main issue with the site itself is its lack of obvious URL hackability. The site won't show you the URLs it generates for the searches, unlike Google Maps. There is an "Email to a friend" option, though, and having played with the URLs sent by that, it turns out that you can use URLs in this form: http://www.walkit.com/validate.aspx?from=e18an&to=se18lp. (That's me meeting Steve for a beer this evening sorted!)

Naturally, some of the routes it suggests are sub-optimal - it's pretty new, and besides, software generated routes often look a bit odd to me.

Anyone care to guess how long it will be before Google Maps' route finder includes an "on foot" checkbox, swatting this impudent newcomer like a fly?

Posted to The Internet by Simon Brunning at 01:23 PM
Wimpy iPod accessories

Yet another iPod remote is on its last legs. :-(

What is it that I do to this stuff? This will be the 2nd time I've had to replace an iPod remote within a year - and as for earphones, well, I go through them like Russell Brand goes through groupies. My Shures gave up after about six months - which isn't bad staying power for me. I tried some Philips 'phones that I can't even find on their web site, which were horrid, so now I'm back with yet another pair of EX71s, which again last me about six months a go, and are comfortable, sound good, and aren't too expensive.

I know I'm clumsy, but surely these things should built to take a bit of abuse?

Next time, I'm going for some kind of sports remote. I hope they are a bit tougher.

Posted to iPod by Simon Brunning at 01:04 PM
Long interregnum

For reasons beyond our control we have a week and a half between scrum sprints - the period I have taken to calling the interregnum.

We usually only have a couple of days, which is a bit tight. There are plenty of things to do; a bit of user story definition and estimation, infrastructure maintenance, bug fixing, that kind of thing. But eight days - luxury!

I might get some blogging time in!

Posted to Software development by Simon Brunning at 12:34 PM
October 20, 2006
Try giving the punters what they want

I'm off to see Graham Coxon next week at the Astoria. And this is a good idea - I'll be able to buy a CD of the gig on the way out. Beats the usual tee shirt - though I'll probably get one of those too.

As El Presidente says; "this is what the music industry should be doing rather than screw everyone over with DRM". Try giving the punters what they want. Then they might be happy to pay for it.

Trivia, of interest to no one - Graham Coxon worked as a cook in Clown's Restaurant, Colchester, at some time in the eighties, at the same time as my sister waited table there. He was, apparently, a rubbish cook.

Posted to Music and Film by Simon Brunning at 01:08 PM
October 17, 2006
Java Profiling

Can anyone recommend a good tool for performance profiling Java web applications? (Hibernate, Spring, on Tomcat. you know the kind of thing.)

I've been playing with JiP, but I can't seem to get anything useful out of it. The remote control seems to do nothing at all, so I have to start up the server with it on, which takes a while - then I seem to get no output most of the time. Small runs - no problem. Big runs - which is where I get my performance issues - nothing. Irritating to get no output after waiting several hours for a big test run to complete!

Update: Or, perhaps the fact that Tomcat is still running an hour after I've asked it to shut down indicates that JiP is trying to do something? Who knows?

Posted to Java by Simon Brunning at 03:48 PM
iPod goodies

On the subject of iPods, I have spotted a few nice iPod bits and bobs recently:

  • Wearable iPod remote. This would be dead useful for me, 'cos I'm forever breaking my iPod remotes. I'm not so much extreme-sports as I am extreme-clumsy, but it has much the same effect.
  • iPod screensavers. Pointless, but fun. Any suggestions as to what I should use? Kylie?
  • Wikipod. Hmmm, I have 2.88 GB free...

Posted to iPod by Simon Brunning at 12:55 PM
DVD Audio format-shifting on the Mac

OK, Mac gurus - how do I rip the audio from a DVD to MP3, so I can listen to it on my iPod, preferably using open source software?

I own the DVD in question, FWIW. ;-)

Update: Mac the Ripper and ffmpegX did the job between them. Thanks.

Posted to Mac by Simon Brunning at 12:37 PM
October 13, 2006
Merge tools

If you are going to be doing a lot of merging working with Subversion (or, I'd imagine, CVS), you are going to need good a good merge tool. And believe me, you are going to be doing a lot of merging.

Subversion itself doesn't provide a merge tool - and nor should it. It's a cross-platform command line driven tool, and besides, I suspect that most developers have their own favourite - or need to find one quickly.

If you are working on Windows, you'll probably have Tortoise installed, 'cos it's really good for simple stuff. Tortoise does come with a merge tool, but it's horrid, really nasty. Aside from just how damn ugly the thing is, it's also almost totally incomprehensible. All those colours - what do they mean?

But that's OK. There are alternatives, and they are easy enough to integrate into Tortoise. The first thing I came across was WinMerge. WinMerge is very good for showing diffs, but it doesn't (as yet) do three way merging - so that's out. Another, more powerful alternative is KDiff3. By the time I came across this, I'd already made my happy move to the Mac, so I've not used it myself, but my Windows-victim colleagues report that it works fine.

So the trick is to use the tool with diff in the name for merging, and the tool with merge in the name for diffing. ;-)

Tortoise also provides tools for making and applying patches, but they seem to use fully-qualified path names, so you can't apply patches from one machine to another unless it happens to keep everything in the same place. So, it's best to use Subversion to make your patches with svn patch > whatever.patch to make your patches (or svn st | awk '/^\s?[MAD]/ { print $NF } ' | xargs svn diff > whatever.patch if you've made the same externals mistake that I did), and to use unxutils' patch to apply them.

In the Mac, there's a natural solution - FileMerge, part of the XCode suite. It's very nice to use, if not perfect. (A few more keyboard shortcuts would be nice, for example, Apple, Just 'cos it's GUIfied and beautiful doesn't mean I should be reaching for the mouse all the time.) Integrating it with command line Subversion would be non-trivial but for Bruno De Fraine's lovely Using FileMerge as a diff command for Subversion - he's done all the hard work for you. Thanks for that, Bruno.

Oh, SubClipse also provides a merging tool, but I've never really used it. It's nice to have SubClipse around - the fact that it decorates all your files showing you their status against the repository is nice, and I often use it to add files - quicker than an svd add if you are in the IDE already. But IDE/version control integration is far less crucial than it used to be in the bad old VSS days when you couldn't edit a file without checking it out, so I do most of my Subversion tasks from the command line.

I'd be interested to know what all you *nix types use - especially anything console based.

Have I missed anything cool?

Posted to Software development by Simon Brunning at 08:27 PM
WriteRoom

Just a quick post to plug the lovely WriteRoom. If you sometimes need to write prose, and you are easily distracted, give it a try.

(There seems to be a Windows analogue, DarkRoom, but I have no experience of it. Let me know if it works!)

Prose like, for example, blog posting s. ;-)

Posted to Mac by Simon Brunning at 03:11 PM
svn:externals: just say no

When we set up our Subversion repository, we did it wrong. And by we, I mean me. ;-)

Our application is modular - you can buy one bit, or several, depending on what you want. There's a core module, containing anything that all the other modules can't do without - authentication and authorisation, audit logs, that kind of stuff. Then we have a simple contact management module, a technical accounting module, and so on. (Mostly still to be written.)

Each is a separate web application - a separate WAR file. They communicate via SOAP. (I know, SOAP in this day and age. Still, it was what was required...) And each has its own Java package - uk.co.trisystems.morph.core, uk.co.trisystems.morph.cm, uk.co.trisystems.morph.ta, and so on. But they have a fair amount of code in common, which lives in uk.co.trisystems.morph.common. And that's where we (all right, all right, OK, I) went wrong.

It's not all my fault - I blame VSS. We'd been using it for ages, and in VSS, you do things like this using shared folders. This was our first major project to dump VSS in favour of Subversion, and the closest thing we could find to VSS's shared folders was Subversion's externals. Brain damaged by VSS as I was, that's what we used.

In hindsight, a mistake.

Subversion's externals are really intended not for code shared within your own project, but for genuinely external code - stuff you want to pull in from other projects and so on. Subversion treats externals as 2nd class citizens in a way.

Updating your working copy is not a problem - the usual svn up works fine. But checking your changes back in, that's not so easy. If you've made changes to common code, svn commit leaves them behind. Merging, branching, making patches, just the same - externals are ignored. Fair enough, given what externals are intended for.

It's not so bad for me - bash helps out a lot here. To check all my changes in I do a:

svn st | awk '/^\s?[MAD]/ { print $NF } ' | xargs svn commit -m"Blah blah blah"

(Thanks to Andy for the awk lesson!)

Branching is still a bit of a pain - branching both common and the other apps, and munging the svn:externals property is a fiddle, but I can live with it. But for my Windows-victim colleagues, it's much worse. Padawan Dan has taken to cygwin like a duck to water, but for the rest of the team there's Tortoise.

Tortoise is fine for simple stuff, like updating and looking for conflicts. (Though its conflict resolution doohicky is horrid.) But whenever people try to use it for the slightly more complex jobs such as branching... things just go wrong. And we can never work out what happened. I'm not blaming Tortoise as such - I'm sure that it works fine. But GUIs are just not good for this kind of stuff. You need to be able to work from examples, and with a GUI, it's just too easy to leave some checkbox or other unchecked - and you'll never be able to work out what you did wrong after the fact.

So, what should we have done? Well, I think I know, but this is all a bit suppositional. ;-) What I think we should have done is not to have bothered trying to keep one copy of our common code. Instead, we should have had a copy of the common code in each application, and merged any changes to that common code to the other applications.

Sound right?

Of course, for all this merging, you need good merging tools. But that's another post...

Posted to Software development by Simon Brunning at 01:07 PM
October 10, 2006
Phew, what a scorcher!

It's 26°C in my office at the moment. It was up to 28°C earlier. It's even too hot for Tulna!

The heating is broken - stuck full on. Aside from the discomfort, having the heating on full blast at the same time as having all the windows open isn't exactly ecologically sound, and must be costing a fortune.

Still, they claim to have fixed it now, so lets hope it cools down a bit before I fall asleep.

Update: Nope, 26°C again today.

Posted to Apropos of nothing by Simon Brunning at 02:03 PM
October 09, 2006
November London Python meetup

There were some people who weren't able to make it to last week's restrained and dignified London Python meetup, 'cos it hadn't been arranged sufficiently far in advance, so I'm planning the next one now. It'll be on Wednesday the 15th of November.

I'll announce a venue a bit nearer the time. The Stage Door is a very nice pub, but it's a bit small, and sometimes very noisy, so I'm looking for somewhere a but more suitable for a techie meetup. Any suggestions? (No, not the bloody Bank of England.)

If it were to be a good distance from anywhere that's open 'till the small hours selling cocktails and containing femme fatale redheads, that would be an advantage.

Please add a comment if you think you might be coming.

Posted to Python by Simon Brunning at 05:16 PM
Tulna Shouting

Nice photo of Tulna and I at Once in A.

No acting required. ;-)

Posted to Apropos of nothing by Simon Brunning at 03:45 PM
Planet London Python

A big thank you to Menno Smits and Remi Delon for setting up and hosting Planet London Python! Now we'll have even more to natter about at the next London Python meetup.

I've sent Menno a bunch of URLs - at the moment, it seems to be mostly my blatherings up there, and no body wants that.

Update: Blimey, that was quick. Menno had the new feeds up in seconds flat.

Further update: There's a new URL for this: http://londonpython.org.uk/.

Posted to Python by Simon Brunning at 02:57 PM
October 06, 2006
Photos from Wednesday's Python meet

Not Geraldine Somerville

OK, so she doesn't look that much like Geraldine Somerville after all. It was the beer. Pretty, though - I do like a redhead.

More photos:

Wossname
Wossname

Wossname and I
Wossname and I

Ryan, Wossname and I
Ryan, Wossname and I

Me behind some bloke, and not Geraldine Somerville
Me behind some bloke, and not Geraldine Somerville

Thanks to Chris for these.

Posted to Beer by Simon Brunning at 04:36 PM
The 2006 Ig Nobels

Just how bad would you your hiccups need to be before you'd consider "digital rectal massage"? And where did they get the idea from? The mind boggles.

Posted to Science and technology by Simon Brunning at 02:32 PM
The right to offend

People seem to feel that they have a right not to be offended these days. I think it's worth pointing out that there is no such right.

So, of you don't like the play, don't watch it.

And what's more, as Richard Dawkins rightly points out, there really is no rational reason that religious beliefs should be entitled to any more respect than any other beliefs. (The archaic blasphemy laws, which currently grant special protection to Christian beliefs, should be scrapped rather than extended to cover other religions.) There is no such thing as "different kinds of truth". A thing is either true, or it isn't.

Prompted, as I'm sure you've guessed, by Jack Straw's perfectly reasonable comments, that he was uncomfortable with people not being willing to show him their faces, and that veils probably serve to inhibit cultural integration. Lucky your Religious Tolerance bill never made it to law, eh Jack?

Posted to The Big Room by Simon Brunning at 02:27 PM
Google remains as smart as ever

I appear to be #1 page for any old crap. Fantastic.

I'm no longer the only hit for "I hate Carol Vorderman", but I'm still #1 for that too. Top!

Update: Also irritating habits.

Posted to Funny by Simon Brunning at 01:07 PM
October 05, 2006
The joy of os.walk()

One thing that came up yesterday was that people still aren't feeling comfortable with os.walk(). Which is a shame - I love it. I mentioned that I'd used it only that day, in a nice little script that locates malformed XML in a directory tree, and Simon suggested that I post it. So, here it is:

for path, dirs, files in os.walk(os.getcwd()):
    for xml in [os.path.abspath(os.path.join(path, filename)) for filename in files if fnmatch.fnmatch(filename, '*.xml')]:
        try:
            ElementTree.parse(xml)
        except (SyntaxError, ExpatError):
            print xml, "\tBADLY FORMED!"

Syntax highlighted version, with imports: find_dodgy_xml.py.

Notice that it takes more code to import ElementTree than it does to do the actual work! It'll be nice what we can rely on version 2.5 being available, but that's a while away.

Hmm, actually, this is such a common pattern that it's probably worth a helper function:

def locate(pattern, root=os.getcwd()):
    for path, dirs, files in os.walk(root):
        for filename in [os.path.abspath(os.path.join(path, filename)) for filename in files if fnmatch.fnmatch(filename, pattern)]:
            yield filename

Syntax highlighted version: locate.py.

This simplifies the main loop to:

for xml in locate("*.xml"):
    try:
        ElementTree.parse(xml)
    except (SyntaxError, ExpatError):
        print xml, "\tBADLY FORMED!"

Worth a cookbook recipe, or is it too simple?

Posted to Python by Simon Brunning at 04:20 PM
Yesterday's Python booze-up

A good Python booze-up last night. No Steve Holden, but a very good crowd, including Simon Willison, Tim Couper, Remi Delon, Chris Miles, Fuzzyman with a couple of his colleagues, Menno Smits, Ben Sanders, Ryan someone-or-other and loads of other people, some of whose names I might even remember at some point. Topics of conversation included XML libraries, Steve Irwin, DVD piracy (theoretical and applied), the Python job market, JavaScript, os.walk and the path module, some Web 2.0 malarkey that I only caught the tail end of and didn't understand a word of, the Python, Ruby and Perl communities compared and contrasted, PyCon and EuroPython, and embarrassing drinking events - I'm sure that more will come back to me later.

As per usual, Chris made us all go to Cubana after the pub closed for several jugs of daiquiris and mojitos, and some very odd shooters.

We also bumped into a girl who was a dead ringer for the lovely Geraldine Somerville. I was convinced it was actually her, but alcohol may have been a factor there.

I felt fine this morning, strangely enough, though I did sleep through my alarm. I'm just too old for this two in the morning business these days.

Photos forthcoming, when Chris recovers from his hangover and emails them to me.

If you were there, please identify yourself!

Posted to Python by Simon Brunning at 03:08 PM
El P has a blog!

Welcome, El Presidente, to the blogsphere. Check out Once In A.

Do I get let off for coming in late this morning for that? ;-)

Update: Dan & Margo are a bit miffed that I didn't link to their Flickr photos, so, err, now I have. Also interesting; a set of photos that El P took for a demo: Monkey Productions.

Posted to Blogs by Simon Brunning at 01:38 PM
Python in a Nutshell

I picked up the 2nd edition of Python in a Nutshell by Alex Martelli, Python's very own Umberto Eco. (I donated my 1st edition to my Padawan, Dan.) As expected, there's not that much changed - a few new string methods there, a new module or two there.

But one thing I was hoping for was some ElementTree coverage. The 2nd edition only covers Python 2.4 rather than 2.5, and ElementTree wasn't yet part of the standard library at that point, but ElementTree has been a hugely popular library for a while, so it's a pity it wasn't included. It's my XML API of choice, and chatting to Simon and others at last night's Python booze-up, I'm far from alone. (Tim prefers 4suite, though. To each his own, I suppose.)

Still, all in all, a must-have book. I'm not sure I'd say an upgrade is essential, though, if you have the 1st edition.

Posted to Python by Simon Brunning at 01:28 PM
October 04, 2006
Off to the London Python meetup

Right, I'm off to the London Python Meetup. It's at The Stage Door, but Cubana is nearby, Chris Miles is going, and he's such a bad infuence. So, wish me luck...

Posted to Python by Simon Brunning at 04:57 PM
Superb high-speed film

Be patient - it is moving, honest, just very slowly. Provided you've clicked the "play" button, that is - otherwise, it's not moving. ;-)

Via Paul Mannix.

See also:


Posted to Apropos of nothing by Simon Brunning at 02:12 PM
Emacs and me

There's a discussion going on at the moment concerning refactoring dynamic languages. For whatever reason, its protagonists don't seem to be aware of Phil Dawes' excellent Bicycle Repair Man.

I'd love to give Bicycle Repair Man a go; it looks fab when Phil demos it. but there's one hurdle to get over first - Emacs. And it's a big one.

I've given Emacs a go a couple of times (most recently Aquamacs), and it seems to make sense to me. It's not totally horrid like that nasty vi thing that just beeps at me all the bloody time. No, it's just that the learning curve is steep, and I have real work to do, work that I can accomplish far more easily at the moment using jEdit.

There are loads of tasks that I can achieve really easily using jEdit that I wouldn't even know where to start looking for in Emacs - line sorting, search and replace across a filtered set of files throughout a directory sub-tree, opening files in archives or FTP repositories, HTMlifying, XML re-indenting. I know Emacs can do all this stuff, but I really don't know where to look for it all, and I need to get stuff done.

There are a couple of other jEdit features that I really like and would miss, too. The File System Browser (which I keep docked and open at all times) is a fabulous tool. I like a mouse driven interface for navigating around the file system, and jEdit's is a very powerful one. Also, the combination of the search bar and the hypersearch panel (which I leave on by default and dock at the bottom respectively) is really powerful too. Are there Emacs analogs of these tools?

Oh yes, and I like buffer tabs too.

And before Andy comes in and starts accusing me of being a weak-minded GUI lover, I'm not. I'm getting on fine with bash on the Mac. I'm starting to use awk and sed to do stuff on the command line that are totally impossible via a GUI. (Oh, and thanks for the help on that, Andy.)

So, should I stick with what I know? After all, it's not like I'm using Notepad here - jEdit's very good. Or should I take the pain and try to switch to Emacs? I'd be able to use Bicycle Repair Man!

Posted to Python by Simon Brunning at 12:34 PM
October 03, 2006
Misery

I went to the London 2.0 meetup last night. Bit of luck, really, 'cos I missed all the problems on the Northern Line.

I did hear the announcement, though; "Severe Delays are being experienced in both directions on The Northern Line this evening due to a passenger being taken ill". Both directions? Just how ill can you get? Ebola?

Posted to Rants by Simon Brunning at 02:00 PM
London Python Meetup tomorrow

Tap, tap. Is this thing on?

Now, blackmail is an ugly word, but I can't think of any other word for it - Simon Willison tells me that he'll come to tomorrow evening's London Python Meetup (at The Stage Door near Waterloo) if, and only if, I start blogging again. So, I don't really have a lot of choice, do I? Let's see if I can manage a post or two a day...

It would be beneath me to get my revenge by mentioning that at one point last night (at Sam Newman's London 2.0 meetup) Simon referred to Jack Davenport as "the hot one from Pirates of the Caribbean", don't you think? ;-)

Anyway, do try and get along tomorrow evening, all you London based Pythonistas. I think there will be a good crowd, including Steve Holden, Simon Willison, Tim Couper, Remi Delon and many other equally nice but not quite so famous chaps. (Yes, probably all chaps.) So, get practising.

Posted to Python by Simon Brunning at 01:45 PM