Category: TIM Group

Idempotency and its friends

We had a discussion recently about “idempotency” – about what it meant, and whether it was an appropriate term to use given its unfamiliarity outside of mathematics and computer science. The following is a short note I circulated with the intention of clarifying the term with a few examples. Potencies […]

Read More

Software Craftsmanship ‘Round Table’ Meetings

Have you done something cool at work recently?  Or are you faced with a difficult technical problem or a team that just won’t gel?  Have you heard of a new technology buzzword and want to understand the implications? Wouldn’t it be great to discuss it with a group of other […]

Read More

Making It Easy with Lofty

One of the exciting new features of Scala 2.10 is Dynamic types, which enable you to write code like this: scala> import scala.language.dynamics import scala.language.dynamics scala> class StraightToConsole extends Dynamic {   |  def applyDynamic(name: String)(args: Any*) = println(name + “: ” + args)    | } defined class StraightToConsole scala> var […]

Read More

TIM Group Scala Dojo

TIM Group hosts a monthly Scala Dojo as part of the London Scala Users’ Group on Meetup (http://www.meetup.com/london-scala). The dojo is free to attend with drinks and pizza provided to the participants. The dojo always takes place on the third Thursday of the month in the TIM Group London offices. […]

Read More

Towards A Rich Domain Model for Infrastructure

We suffer from a number of issues around how we provision environments that host our software. One of the most annoying of these is that we need to make sure puppet runs complete in the correct order because different role types will “export” resources to PuppetDB, which are then consumed […]

Read More

Introducing Orc and its agents

This post is the third part of series documented here (part 1) and here (part 2). In the previous post we discussed the Application Infrastructure Contracts. These contracts mean that new applications can be deployed to production with minimal effort because the infrastructure tools can make assumptions about their behaviour. […]

Read More

Thanks, #leiningen Community.

I recently came across a problem where the journey to the solution reminded me how awesome the notion of community can be. First, a brief overview of the problem: we wanted to create and deploy a Clojure application, which would get access to the continuously-deploying, load-balancing, status-monitoring goodness offered by […]

Read More

SoCraTes 2012

Or, how I learned to stop worrying and love the weizenbier. I kid. I didn’t just drink German beer for the whole four days. In fact, there were periods of several hours where I didn’t touch the stuff. Instead, I sat, listened and absorbed as much information as I could, […]

Read More