Sam Newman's site, a Consultant at ThoughtWorks

Archive for ‘September, 2006’

I’ll be presenting a session entitled “Refactoring Databases for fun and profit” with a colleague at this year’s “XP Day 2006”: XP Day (not just XP, not just one day…) is run by the long-established (and Olde Bank of England regulars) the “Extreme Tuesday Club”: I attended last year and can highly recommend it to both beginners and seasoned practitioners alike. The conference is very vendor-lite – it is run by practitioners, for practitioners.

Our session will be feeding back experiences of using some specific database refactoring techniques, and will also be presenting a new open source tool for managing database change.

First came the worlds first most modernist computing conference, “PoMoPro”:, then came this great bit of post modern spam:

Are you looking for bulk email software to promote your online

business and increase your profits?

Seeking ways to promote your web presence?

Do you need bulk emailing software to send the ads?

If so, our e-mail marketing utilities can help you reach your goals.

Let’s ignore the fact that I often blog about blogging, shall we?

This month’s meeting will be on Monday the 2nd of October – I’m hoping to try and make the first Monday of each month the regular time for these little get togethers. As usual, it’s informal, no real agenda, however I’ll probably be talking about Database refactorings and Microformats.

After an interesting meeting earlier this month, where Jason provided us with a very cool Selenium demo, I’m once again hoping for people to bring along stuff to show off. This time around I’ll do my best to get a quieter space – hopefully one of the rooms at the Olde Bank of England. We have a room at the Olde Bank of England. Starting 7pm as usual, although I’ll probably be there from 6.30pm.

Please let me know if you’re going to attend – either by leaving a comment or mentioning it over at “Upcoming”: As always, the event is on the “London 2.0 iCal feed”: too.

I’m in the process of saving up for a new Mac (probably a MacBook Pro) for photo editing. I’m seriously considering getting Apple’s “Aperture”: software. I know the history of the project has been “beset by problems(ThinkSecret – Aperture future in question as Apple axes bulk of team)”:, however with things having stabilised (and the price being slashed), I was thinking of giving it a go.

Does anyone have any experiences with it? Should I consider it? Or should I wait for “Adobe Lightroom”:


I’ve had a chance over the last few years to observe various different types of tech leads. Collated here are my views on what I think makes a successful one.

A Tech Lead Should…

  • Ensure the creation of a clear and consistent technical vision for the project which can best result in a successful project
  • Ensure all members of the team have a proper understanding of the technical vision
  • Ensure that the technical vision updates to reflect new requirements
  • Track and resolve issues where the code deviates from the technical vision
  • Create an environment in which all members of the team can contribute towards the technical vision
  • Understand and address skills gaps in the team which would result in difficulties implementing the technical vision

A Tech Lead Should Not…

  • Tell everyone what to do
  • Necessarily be the best at everything
  • Write no code
  • Write all the hard code

I just got this from an old colleague:

Despite all of our many successes, our architect has started making noises to the product management team that pair programming is a waste of money.

Why should he let mountains of academic research and our own project metrics get in the way of his own personal opinions!?!?!

Sometimes I just want to pack up and go home

Now first off, when people start talking in favour of Pair Programming, I tell them two things:

# From what I’ve seen, it’s the most efficient way to transfer skills, reduce “truck factor”:, ensure quality and (say it quietly) stop slacking. It’s also damn hard to get some companies to try it for a number of reasons.
# Read “this Hacknot article(Hacknot – A Critical Look At Some Pair Programming Research)”: before you start quoting studies.

I don’t happen to agree with the editorial bais of the Hacknot site – my own (and my company’s own) experience has shown that we produce better software more efficiently when pairing. That said the study quoted is clearly flawed for the reasons mentioned. There have been more studies since – one day I should really get round to pulling them all together. The major problem in producing such a study is that I don’t know anyone who would spend the money creating a real world experiment over a long enough period of time to produce conclusive results.

I am however fairly sure that “pairing with a cat”: yields no benefit over pairing with an alternate programmer.

Is, to put it simply, *driving me nuts*

h3. Lovely Code Highlighting

Geshi was annoying me. Not driven by stylesheets, it uses some pretty bloated markup which makes it very hard for you to do much about changing how the code looks. That markup is being pushed from my server, increasing my bandwidth use and increasing page load time.

“dp.SyntaxHighlighter”: is a Javascript library which performs syntax highlighting on the client side. It supports all the languages I’m likely to post code snippets in, and best of all it’s driven by CSS. To use it, I need to put my code sample in a textarea, like so:

   ... some code here ...

h3. Evil Textile

Textile is great – and evil. On the one hand, it makes writing post pretty easy – I can use Textile shorthand to quickly churn my useless drivel out. Textile performs its substitution on the server side – and it seems was clobbering my textarea blocks. To be fair it was trying to be helpful – it was escaping ‘<' characters as '<' and the like.

There are two ways which _should_ enable you to escape Textile – that is to turn off Textile formatting for a given block. Both wrapping your block in '==' or with 'notextile' tags should stop the formatting. This didn't seem to work for me. A search on the web (I'm avoiding using the verb 'Google' in case I get sued) showed that even in Textile friendly Textpattern it’s “far from simple”:, however it should still work.

I followed all the instructions given – and indeed I can use ” to stop formatting of things like ‘(C)’ which normally turns in to a ‘(C)’ – to no avail.

If anyone out there can work out how to stop Textile formatting angle brackets (or can think of some other way for me to render a textarea with a specified name without Textile interfering) then I’m all ears.