Who is that handsome devil?
I’ve just noticed that I’m the face of technology on the JP Morgan Glasgow jobs site. It’s also quite a good illustration of male pattern baldness.
I am Paul Wilson; Mere Complexities Limited, sells my consulting, coaching, and coding services. I am passionate about Agile, particularly Test Driven Development.
I’ve just noticed that I’m the face of technology on the JP Morgan Glasgow jobs site. It’s also quite a good illustration of male pattern baldness.
Richard Cross has started a list of Edinburgh cafes and pubs with free WiFi. While you’re there check out his web-design and photographic portfolio.
I've suggested he adds Black Medicine and the Traverse Theatre Bar.
Disclosure: Richard’s my sister-in-law’s partner. Boyfriend-in-law?
Last week I sent an angry email. I did consider changing the words and tone but I was furious and, as Esther Derby said, “sometimes anger is the appropriate response”; I thought toning down the message would be a super-reasonable stance.
What didn’t occur to me until much later is that the most direct way to convey anger is to say “I am very angry”. It would also be more congruent to state the reason for anger; otherwise the other person might be left guessing. In future I’m going to try and use the following template:
I am very angry about …... because …..”
I’m just over-hearing a discussion about some applications’s design: one of their models is a table, which I find confusing in a database application; matrix would be better. Both retail and trading applications often have the concept of a transaction. Maybe there should be a list of reserved words that should be banned from a ubiquitous language. For a start I suggest

We’re half-way through our Geek Retreat, coding Ruby On Rails in an Ayrshire Cottage. A lot of us have been coding / learning rails in near-isolation, so it’s been great to be able to discuss issues and share techniques. Alan’s been writing about it, here for instance.
I’m feeling better about test-driving the controller / view side of things: previously I’ve been uncomfortable with the lack of orthogonality I’ve perceived in the standard functional tests; I’ve started experimenting with a more DSL style. Sneak preview:
when_succesfully_getting(:cities)
the_page_contains_a_table(:a_table) do |t|
t.row "City", "Country"
t.row "Edinburgh", "Scotland"
t.row "Glasgow!!a[href='/buckfast']", "Scotland"
t.row "San Francisco", "USA"
end
there_is_a_form(:new_city) do |f|
f.there_is "input#city_name"
f.there_is "input#city_country"
end
Sometimes you just need a nasty hack. I’ve added stories to an iteration like “As a developer I want to bring the build time to under 10 minutes, so that I’m not afraid to check in.” I figure that’s ok as long as the team knows that it’s an ugly and dangerous practice.
The danger lies in the slippery slope – if we don’t hold our noses a little when adding the (very occasional) technical stories, then we end up with a stack of things like “refactor the database layer”, and “abstract out the process orchestration”. We lose business focus; the project begins to make great progress to nowhere in particular.
I've uploaded a new copy of my CV here. Feedback (or consulting / coaching contracts) welcome.
Update: Formatting changes: thanks to Richie for pointing out that my CV looked a bit funny using Adobe and Windows.
Jason Snell from MacWorld and John Gruber, Daring Fireball chat about how high the barriers are going to be set for 3rd party developers wanting to write for the Apple iPhone here.
Answer: this high, or maybe this high; this high would be good.
If you switch to a Mac you’ll probably start buying software. There’s a lot of great and inexpensive applications out there and you’re going to want some. No, you really are. Quite a few small companies and individual developers seem to make a reasonable living from Cocoa apps. I’m not too sure what’s different in the Windows world (but Rob blames Eric Raymond).
I talking without any data, but I don’t think there’s a thriving market for individual developers writing mobile phone applications just now. I imagine testing on 5 (?) different platforms with multiple OS versions and hundreds of different phones is a tad tricky. The iPhone promises a sizeable community of users, a single hardware and software platform, and a fantastic user interface to exploit. Now might be a good time to get into Cocoa.
Ok, its official that Apple aren't going to allow an iPhone software free-market, for now anyway. Oh well, back to Ruby on Rails - hey it's not so bad.
Joel wrote about journalists periodically being taken in by product vendors’ claims that their product is going to make coding child’s play: what they hear is “programming is going to be easier.” Usually there’s some kind of Lego allusion.
Like journalists, corporate buyers are a big believers in alchemy. Extract Transform Load tools, for instance, are great for suckering the non-technical IT manager. The project needs data from external feeds and the Stone Soup vendor shows a nice-looking GUI that maps between source and destination by drawing a few lines.

“Great,” the manager says. “The business analysts can do the mapping – we don’t need to rely on those programmers that I neither understand or trust.” In the real world, the mappings end up being too complicated to effectively represent on the GUI:

Joel ends quoting Brooks “building software will always be hard. There is inherently no silver bullet.”.
My website was getting a bit dated, so I've moved this blog over and merged it with the main (only) page. For now, I've hacked some css from Open Source Web Web Design. I'm not that happy with the look and it seems a bit crowded. I may have another fiddle with it when I've a bit of time.
I'm going to be moving my blog around. In preparation, the feed's going first. The new feed url is
One way to get upstream in a kayak is to point your bow that way and paddle like hell. Chances are that you’ll soon run out of steam, though.
Eddies are where the flow is reversed in sheltered parts of the river, normally next to the banks. Stoppers are vertical eddies, caused by water flowing over an obstruction. Kayaking upstream take less effort if you use the water flowing your way. Of course it takes lots of experience to read the river; breaking in and out of eddies takes skill; you have to be very good to use a stopper.
Lessons: