Monthly Archives: July 2007

Besieged by Castle

Well I’ve managed to check some basic code into the mainline ASP.net Fitnesse repository, it’s not much but mainly because Andy is having trouble with his ISP back in the UK and unable to get our integration server up and running again, we’re working on a solution but as it stands I don’t want to check in too much and find a feedback loop of a month or so on my changes. I’m also looking into the feasibility of finding my own server solution so I can host a few things if need be.

The other reason it’s not much is that this is all I’ve managed to come up with just yet, it’s my first real foray into Castle and MonoRail and it’s really kicking my butt at the moment.

The concepts are in but some of the code I’m putting together is obviously wrong. Luckily it’s all surrounded by unit tests so I should be able to refactor later as I get to grips a bit more with how it should be written.

My main problem I’m coming up against at the moment is testing the components, my first architecture decisions killed me straight off, I  wanted to work to interfaces as I generally like doing (just because it enforces a design by contract and really allows easy slotting in of mock objects into tests) however, I can’t for the life of me work out how to wrap an ActiveRecord into a simpler interface, the problems that come from this at the point of saving the objects are killer.

I’ve also had a hard time leaving behind composite keys, and running with simple id’s backed by a database constraint. It still doesn’t seem right to me that I have a requirement that wiki pages belong to projects and the project and wiki page name combined must be unique (I.e. you can have the same page name as long as it’s in a different project) but I can’t enforce this on the ActiveRecord object itself, perhaps I’m missing something.

My other problem is that I can’t use the BaseControllerTest to test a controller that has scaffolding enabled. It spews out an error saying

“You must enable scaffolding support on the configuration file, or, to use the standard ActiveRecord support copy the necessary assemblies to the bin folder.”

I’ve tried copying the assemblies to the bin file and putting the isWeb=true on the active record node of the test config files, all to no avail, perhaps Ivan or Tim can shed some light for me.

Anyway apart from the few issues I’m really pleased with what MonoRail offers me in terms of control and flexibility (and great testability) so I’m going to persevere.

Tagged

The leaning tower

I read in the news this morning that the Burj Dubai tower is now the tallest in the world and it got me thinking. I remember watching a discovery channel program on the project earlier on this year and they were on the 20th floor waiting to add the 21st and talking about all the structural challenges ahead and behind and the biggest thing that came out? testing! yes that’s right, all these people with the best tools and processes in the world were at their wits end because at level 19 a laser test had shown that the floor was 2 meters off vertical… everyone was shouting about how this could happen (they measure every 4 floors or something and this was the first time an error had been shown). After a lot of palaver they realized that the mark they were using as the basis for the test had been put in the wrong place. [step one: always test the expected outcomes]

I’ve also been reading Code Complete a great book that enough people swear by to know you have to take it seriously. The book has a general premise at the beginning that development should be looked at as metaphorically similar to construction. So building billion dollar systems is metaphorically similar to building billion dollar sky scrapers.

Only we aren’t treating them with the same diligence.

I would argue that lack of testability of software I see around us is like draping a massive tarpaulin over the building we are constructing. Throwing away any tape measures and building each piece of the building in isolation.

All too often we’re ignoring the fact that occasionally we need to shine a laser through the building to get a good reading of where we are, and all too often we are not even able to get close enough to kick the bricks and ensure they’re solid.

Tagged

Drupal to SubText continued

Well I’ve managed to get a tool together that quickly converts my Drupal database to BlogML format, and I’ve just put it on Google code if anyone else wants to have a play, it’s not configured for anything but the standard table names and uses SubSonic as well as part of Simone’s Rss2BlogML tool which i’ve just used verbatim (so you’ll have to get hold of that source code too if you want to use the Drupal2BlogML converter).

 

So go take a look.

 

I’m also getting some work done on ASP.net Fitnesse finally, although I’m trying to use castle’s monorail which is taking me a while to pick up.

Tagged

me.Engaged = true

Sorry for the geek title, but hey it is my blog your reading here, I can put what I like ok?

So on Sunday I surprised myself: I got carried away by the moment being on holiday in Martinborough and asked

Katy

to marry me and then she surprised me by saying yes.

I’m absolutely ecstatic at the moment and am desperately trying to stop smiling like a mad man every time I think of it.

Katy posted a picture of the ring:

 

I’m so very happy right now.

More details as we plan them.

Media_httpspaceslivec_hlpat

Tagged

Drupal to subtext

So I’m most definitely considering the move to SubText blogging engine, the reasons for which are numerous but mainly because I want to help out and develop some plugins for them.

(I’m thinking of amazon reading list, gallery 2 integration, and some feedburner and digg stuff)

Now in order to do this I need to get past hurdle number one… which is going to be converting all my content from drupal to subtext…. the best way I can think of doing this is by grabbing the database, and doing a conversion to blogML format to then import into the subtext setup… fingers crossed I can get that to work!

Tagged

Get your frock

Cos tonight we’re gonna party like it’s 1999.

I can’t wait for this to be released…. looks like it’s going to be crazy fun… oh wait… I don’t have any friends to play the other intstruments. In other news, from Andys request please find the comment rss feed here: http://www.bgeek.net/crss

Tagged

OPMLFruit

I have a pretty extensive rss reading list, which I’ve pulled from lots of corners of the Internet and from other peoples links, so here is my reading list for anyone else to enjoy in OPML format:

Reading List

Tagged

Architect

So as I’ve mentioned before the project I’m on at the moment is the most unagile you can imagine, no unit tests, no stories, in fact very little of anything apart from a desire to do some new things with the product.

This has lead to many, many complaints from all quarters most of which can be boiled down to the “customer didn’t know what they wanted” defense.

And I’ve been thinking that the customer really shouldn’t be expected to know what they want, do you go to a car dealer and say “Yes I want a car that I can sit at a 14.5 degree recline, and have my arms bent to 150 degrees, while the coefficient of friction between the break peddle and my shoe should be 0.7″ rather you would say that you wanted a seat that was comfy and a nice response to the accelerator (gas peddle for all you American English speakers)

So why are we not addressing this well enough. Well because it takes team work to design, architect and overall imagine what it should look like. That and the fact that developers are really, really bad at user interface design. It’s so obvious when I’m using a product that actually has some design effort, I forget I’m using the product and just focus on what I’m trying to do, unlike most applications where I have to actively think through the process.

I know none of this is new, Alan Cooper has been rattling on about it for ages (I’m only just catching up). But my point is that we, as developers and software architects shouldn’t be looking for others to change, we should be changing ourselves.

We should have the skill sets available to take a vague statement like comfortable ride and make it a reality.

The only way we can achieve this is to speed up the feedback loop, most people don’t know what they want, but conversely really know what they don’t want. The more you show them the more you can get to grips with what they don’t like. With this in mind you’re much more likely to push their buttons with a final version. (although no version is final).

We had the Wellington Geek Lunch yesterday with a number of great developers and architects in the room, and we discussed the idea of what makes a great developer, well perhaps some of the above would be good to add to the mix.

A huge thank you to Ivan for getting this off the ground, I’ll definitely be along next week.

Tagged

Open Door Policy

So beyond all the iPhone hype and the buzz over Pownce the new social whatchamathingy from Kevin Rose (digg.com), I’ve read two articles today on the reasons why we really shouldn’t be supportive of Facebook and it’s closed in Internet.

While I use Facebook and really do use it a lot (there’s a certain addiction where you check every day to find out if someone has posted anything new!) I really like it for one thing, and that’s the fact that everyone keeps their contact details up to date. I was thinking then of a couple of things:

 

1) Every month or so I get an email from someone who has lost/misplaced/broken their phone and lost everyone’s contact details

2) I generally have a number of dispersed address book (GMail, outlook/exchange, osx address book)

3) I will generally keep my own mobile phone synced with one of these address books

So what I want is a site where people just keep their own details up to date (I can imagine two version of everyone’s details, the corporate these are contact details anyone can use, and the private these are contact details I only want my friends to know about. Then a little utility (or even better an inbuilt utility) into Windows/Mac/Linux/online address books that just keeps links to all the different addresses you’re interested in and keeps these as address contacts. Update your details online and all the people who are subscribed to your contact card get updated. Kind of like an online always up to date business card.

Am I alone in thinking this kind of thing would be really useful?

Tagged

Simplified

Well I realised that the site was getting a little cluttered, so i’ve cut down to the very basics in terms of navigation and side bar content on the site. Also I’m trying to find a nice and simple theme for drupal, not an easy task, so I’ve enabled two. The one you see now, and if you go to your user settings (you have to sign up first) you should see another that you can choose. Let me know if you prefer one over the other.

I’ll keep looking for a simpler theme.

 

[Edit: you have to go to the edit tab and it should be just below specifying a picture for your account]

Tagged
Follow

Get every new post delivered to your Inbox.