February 2012
2 posts
What Software Has in Common with Schrödinger’s Cat →
An interesting article exploring the relationship between quantum physics and continuous delivery. None of it is real until it is in the hands of actual users. I don’t mean someone who will poke at it a bit or evaluate it. And I don’t mean a proxy who will tell you if the users might like it. I mean someone who will use it for its intended purpose as part of their normal routine. The experience...
Feb 5th
Gain Trust and Create Change - LDNUG - Followup
Last Monday I gave my talk “Gain Trust and Create Change” for the first time at the London .NET user group. The guys at Skills Matter recorded the whole thing so you can watch it online if you missed it. I am reasonably pleased with how the presentation went. Watching it back was an uncomfortable experience but is very useful to feed into the next time I give this talk. Speaking of...
Feb 5th
January 2012
2 posts
Heroku in Europe
I tweeted yesterday (25th Jan 2012) to ask if anyone knew of a solution as convenient as Heroku but based in the UK or Europe. The reason I asked was at Zopa we are thinking of migrating our front-end over to a Ruby stack and Heroku was the obvious option for hosting such a solution. However, as 95% or more of our traffic comes from the UK it doesn’t make complete sense to host our website...
Jan 26th
Gain Trust and Create Change - LDNUG
I’m doing a talk at Skills Matter on 30th January titled “Gain Trust and Create Change” for the London .NET user group. Registration has opened so reserve yourself a place. If you run a user group and would like me to present this topic then drop me an email and I’ll try and arrange something.
Jan 16th
October 2011
1 post
DDD North - Introduction to Backbone.js
Yesterday, I gave a presentation on Backbone.js at the inaugural DDD North. My thanks go out to Andrew Westgarth and his team for organising it, it was a great event. I was a bit nervous as it was my first time speaking at a conference and I think it showed. I rattled through my presentation at break-neck speed, unfortunately finishing well under my allocated hour. Niall Merrigan gave me some...
Oct 9th
September 2011
1 post
Resources For, And How I Learnt Backbone.js →
I was going to compile a similar list of resources for my upcoming talk on backbone.js at DDD North but Derick Bailey beat me to it. Check it out.
Sep 14th
August 2011
1 post
Finagle →
I came across Finagle a few weeks ago, it’s: … a protocol-agnostic, asynchronous RPC system for the JVM that makes it easy to build robust clients and servers in Java, Scala, or any JVM-hosted language. And they’ve now written a blog post announcing it to the world. I had a skim over it before but it looks like they’ve added to the documentation since then. I’ve...
Aug 25th
July 2011
1 post
LMAX architecture - Martin Fowler →
I remember watching one of the original presentations on this architecture a few months ago (no idea why I didn’t link to it at the time) and Martin’s article puts it into a format that’s easier to consume at your leisure. Really interesting approach!
Jul 13th
June 2011
2 posts
The Most Important Code Isn't Code →
I cannot stress how much I agree with this. I’ve come to exactly the same conclusions as Zach in the last year myself. I wish I had written this post myself! Here are my highlights: Documentation is the best way to communicate your thoughts to yourself. Forcing myself first to consider the API, the interface, and the end result led to a clarity that inspired less code and a more...
Jun 8th
“There’s a whole school of thought that quantity of features is directly...”
– “How to keep your software awesome” by Jesse Emery
Jun 2nd
May 2011
1 post
GiveCamp UK
This morning I signed up for GiveCamp UK. It is an event taking place this October in London where people involved in the software industry are donating a weekend of their free time to help charities with the IT needs.  What is GiveCamp? from givecamp on Vimeo. If you can spare the time then sign up as a volunteer or if you work for a charity who could use some help submit a proposal. I have...
May 28th
February 2011
2 posts
Tags are magic! - Guardian →
Feb 9th
Pragmatic web service design
Web services are a crucial part of most solutions nowadays, I spend a significant portion of my time designing and writing them and I have read a lot about them to make them better, faster and more resilient each time. This is a summary of how I approach web service design and the things I bear in mind. Protocols and content types Unless you require extreme performance from your service then...
Feb 7th
4 notes
January 2011
2 posts
Jan 13th
Cross-site XMLHttpRequest with CORS →
I was working on a personal project over the Christmas period and wanted to make cross-site requests from an AJAX client to an API. As the client and the API were hosted on different domains they violated the same origin policy implemented by almost all browsers. Modern browsers allow cross-site AJAX requests if the API allows cross-origin resource sharing (CORS). The resources I found at the...
Jan 5th
1 note
December 2010
1 post
Why Rack should matter to .NET developers
There’s been a lot of talk in the .NET community about Sinatra clones, namely Nancy and Nina in recent times but there are several others as well. Unfortunately, all these frameworks are missing the underlying reason that Sinatra is awesome and that is Rack. Sinatra packs a hell of a lot of functionality yet weighs in at 1198 lines of code including documentation. The main reason for that is the...
Dec 7th
November 2010
2 posts
Use integration tests when working in a new...
This is in some respects a follow up to my previous post in that it has been triggered by our internal project in Ruby. When working in Ruby I consciously lean towards integration tests. Sinatra and Sequel make this really as using rack-test and running against an in-memory SQLite database it is easy to simulate a full conversation of HTTP requests and they run reasonably quickly too. How does...
Nov 19th
Simple tools and fundamental principles
We are doing an experiment in using Ruby for an internal project at work. I am the most experienced in Ruby so I’m leading the choices of gems and so forth and the team questioning those choices has lead to a bit of a personal epiphany. I know that for a long while I have preferred simple tools and components. Simple tools tend to be more enabling as they give you control over precisely...
Nov 18th
29 notes
October 2010
2 posts
The Long Beard's Revenge →
Very interesting article on a reduction in contribution to open source and the possibly underlying forces behind it.
Oct 14th
10 Common Mistakes Made by API Providers →
Oct 11th
September 2010
4 posts
Products For People Who Make Products For People →
Your end users are Product People. You need to toss out this stupid idea that making something usable by DHH fanbois means you’re not HARD CORE. You can still be hard core and make something they can use, hell something any programmer can use. By doing this you will reduce costs for the people who use your software which is what that kind of software is good at. The shift in thinking is...
Sep 27th
Beware .Count()
Something I’ve seen at various times is: if (enumerable.Count() > 0) { ... do stuff ... } I’ve always preferred using: if (enumerable.Any()) { ... do stuff ... } Mostly because it reads better, but partly because I felt it was bound to be more efficient. I’m not sure if I actually confirmed that before but after seeing one today I checked on it. This is the...
Sep 21st
WatchWatch
Chris Anderson: How web video powers global innovation
Sep 17th
STEAL THIS PRESENTATION! →
Slide deck on how to create an enagaging presentation.
Sep 16th
August 2010
5 posts
How I feel about the .NET world lately →
Great article by Davy Brion which echoes the feelings I’ve been having around .NET for a while: They (Microsoft) provide architectural and design guidance for everything from your database to your business layer to your service layer all the way to your presentation layer. Unfortunately, a lot of that guidance is of a terribly low quality. Follow their guidance and odds are pretty high...
Aug 12th
1 note
Cucumber
We’re looking at automating our acceptance criteria at work and we’ve chosen Cucumber for doing it. Yesterday I scoured the web for useful articles and so on to find out what the established best practices are for working with Cucumber. This is a link dump of the things I found that were useful. We’re going to be using Cucumber for running the tests, RSpec for our assertions and...
Aug 11th
Common Programmer Health Problems →
Post from Zed Shaw about looking after yourself with a specific slant for programmers. Definitely worth reading if only so you’re aware of what might screw you up.
Aug 9th
Simple parts combined simply
I’ve been on a refactoring mission for what feels like an eternity. The motivation for which is to pay off a significant portion of our technical debt. However, throughout the whole process I keep being reminded of how I believe systems should be written. Namely, simple parts brought together simply. The problem is that this normally stops at the code level. So while you’re happily...
Aug 9th
Switch to tumblr
I’ve been a bit disappointed with Blogger for a while now so after seeing a few people switching to tumblr I checked it out. It seems better than Blogger in that it lets you create static pages and has an iPhone app which should make in promptu posts on the train easier. I’ll be keeping my old posts over on my original blog but all new posts will be made here.
Aug 8th