Category Archives: Software Development

BarCamp Boulder 3

BarCamp Boulder is on. It will be held October 17th and 18th (2008) at the TechStars bunker in downtown Boulder. The last one was great and I expect this one will be even better. Reasons you should come: you like meeting smart and interesting people you are passionate about something that the rest of us should know about you […]

Will code for …

I am no longer with Gnip. Which means that am available for other opportunities. I know a fair bit about REST, HTTP, web services, extensible system design and scalable architecture. I like agile (small a) processes, Behavior (or test) driven development and dynamic languages. I am also pretty good at designing data interchange formats in JSON and XML. […]

Envy Code R

I love the new Envy Code R font. It’s very clear and easy to read. I had looked at this font in the past and quite liked it. However, I need a somewhat larger font than its native size and previous releases of it did not scale very well. Fortunately, the new version (pr7) seems […]

Gnip Launches

Yesterday Gnip launched! We have a killer service offering. And apparently lots of other people agree. I am totally stoked to be part of the Gnip team. The Gnip blog does a good job describing why we exist and what we do. If you are looking for the quick elevator pitch it goes something like this: If […]

Announcing Resourceful

Resourceful has its initial (0.2) release today. Resourceful is a sophisticated HTTP client library for Ruby. It will (when it is complete, at least) provide an simple API for fully utilizing the amazing goodness that is HTTP. It is already tasty, though. The 0.2 release provides fully compliant HTTP caching a framework for implementing cache managers (memory based cache […]

Java and Scalability

Every time I hear someone say that Java is “scalable” my initial reaction is to kick the person who said it in the shin. I have been talking to a lot of people lately about the tools we are using at Gnip. Every time I tell someone that major parts of our system are written in […]

REST/HTTP Service Versioning (Reponse to Jean-Jacques Dubray)

Jean-Jacques Dubray takes issue with my approach of using content negotiation to manage service versioning in HTTP. I actually hesitate to respond to Mr. Dubray because the overall tone of his piece is rather off putting. On the other hand, he raises a couple of interesting questions which I have been really looking for and excuse to […]

Versioning REST Web Services (Tricks and Tips)

In my previous post on this subject I described an approach to versioning the API of a REST/HTTP web service. This approach has significant advantages over the approach that is currently most common (i.e. embedding a version token in the URL). However, it does have some downsides. This post is an attempt to outline those and […]

Versioning REST Web Services

Managing changes to APIs is hard. That is no surprise to anyone who has ever maintained an API of any sort. Web services, being a special case of API, are susceptible to many of the difficulties around versioning as other types of APIs. For HTTP based REST style web services the combination of resources and content […]

SystemShepherd 5.0

There is big news from the work front, SystemShepherd 5.0 has been released. This is what I work on day-to-day and it is great to see it finally officially released. SystemShepherd is a seriously cool bit of software designed to help you manage your software-as-a-service offering more effectively. If you have a system that you need to manage […]