Google’s “Project FI” – Can you hear me now?

A month or so before I started considering a trip abroad, I read a blog post about Google’s “Project FI”. The concept that Google wants to become it’s own cellular carrier (or even become an abstraction over other carriers) — is quite an interesting move, especially — given my history of endless unhappiness regarding my phone carriers. Having traveled to Europe a number of times over the last 5 years, I was always extremely frustrated with the $30 for 120mb of data — really? Of course two weeks in Europe, especially if you intend to continue doing your job, means that you are going to wind […]

The whole “hiring developers” thing

Approaching a year ago I was asked to step into the VP of Development job at Sauce Labs, which in retrospect is the first time I have ever had a job that was basically “full-time” management. I had convinced myself that I would somehow magically find enough time to also do a full-time developer job, that didn’t quite happen. Over the last 6 months I have spent 3/4 of my time concentrating on building out a development team. As it turns out, this process involves all the things; finding/hiring developers, organizing budget and roles, interfacing with recruiters, salary and stock […]

Geddy.js Rocks


About 7 months ago, I decided I was going to try to build a small web app for doing group events. The concept is nothing revolutionary, but I had some differentiating ideas and have a need to be continuously exploring new tools. The first evolution was built using Express.js, CouchDB and a custom model layer. To be honest, this is a really nice prototyping tool chain — I enjoyed getting to know CouchDB views a bit better, and the freedom of writing everything from scratch. I made a ton of progress over about 4 months and was excited about getting […]

Node.JS is a Swimming Pool

Over the past six months I have heard about the unbelievable awesomeness involved in this project called Node.JS. At first I thought, “Server Side JS NOT on the JVM” – YAY! Then after a few days of that I thought, “I really don’t care about server side code, even if it is JS”. See the thing is, right out of college I started fooling with raw DOM, cross browser event firing and capturing and building pretty big cool projects without the help and support of jQuery. So I developed this sick enjoyment of writing tons of raw uninhibited, IE 6 […]

CouchCamp was great

I just wanted to drop a quick note outlining some of my thoughts about CouchCamp (or you could call it “Swiss Family Robinson” meets database geeks anonymous). First and foremost — having a tech conference at a summer camp is just plain awesome. As we all know that the social lubrication required to gel a bunch of geeks can lead to a state where said geeks should not operate any kind of a vehicle. In this case, all they had to do was walk 100 feet down a trail and pass out. Secondly, I really like the idea that the […]

iPad’s, iPhone’s, iThink I’m going broke

Some of you may know that over the past few years I have been a bit of a early adopter, when it comes to Apple products. A few years ago, it was considerably easier — since the rate of product releases felt much slower and the increase in technological capabilities of each of the revisions seems significantly less compelling than today. I remember thinking, I have a Macbook Pro and an iPod — what else could Apple possibly release that would be so compelling that I had to have it. As the upgrades happened, the iPod was still really just […]

My new gig – Sauce Labs

After almost two years of working at Slide Inc, I have started my new job at Sauce Labs. The press release can be found here: “Sauce Labs Adds Windmill Test Framework Co-Creator Adam Christian to Engineering Team“. Slide Inc. I had a fantastic experience and learned a ton working with the really talented team of engineers, artists and product managers over at Slide. It was incredibly educational to work in an environment where so many people use your product everyday. I built a lot of really cool features there for SuperPocus and spent a year building a test automation infrastructure, […]

Considering in-house web automation?

Recently I have had numerous conversations with people at various tiers of companies all over the place who are toying with the idea of building their own test automation and continuous integration infrastructure. Since I have spent a considerable amount of time dealing with such undertakings I decided that it might be worth the time to brain dump some of the issues you may want to consider before you dive in. Choosing Tools Boxes, VM’s or Cloud? A common first reaction is to take a couple of those old boxes sitting around to run the first “couple” tests you have. […]

Windmill Plugin for Hudson

Over the last 6+ months, I have been using Hudson in conjunction with Windmill very heavily for continuous integration. For the most part using the build step specific to whatever the slave OS requires has worked sufficiently well until recently when my needs changed. I use the ‘configuration matrix’ option to build a matrix of browsers to run the tests, this way I can have one job that represents a test run on multiple boxes and multiple browsers on each box. Drilling down allows me to see the results for each of these test runs within the job. (Configuration Matrix […]

PyCon 2009 Recap

Getting back in the swing of things after conferencing for weeks can be pretty painful, thus the lateness of the post. However I think it’s important to go over some thoughts still lingering in my brain as a result. First off, I have to say that for those of you who don’t know, PyCon is a community organized event, and amazingly well done. I was impressed by the design of the conference, the way they had four talks going on at once and they tried to keep them in a similar interest track. Every talk I attended was at least […]

This thing I’m calling Windmill-Lite

In preparation for the Windmill 2 client side re-architecting, and an article I am writing about simulating user sessions with JavaScript, I decided it was time to go through the Windmill JavaScript source and pull out the pieces necessary to drive a user session in JavaScript. It turns out that it’s easily broken into a few pieces: Events: Cross browser compatible event firing functionality ElementsLib: DOM element lookup functionality via many methods called ‘locators’ Controller: The logic for firing the right events to simulate user actions such as ‘type’ In order to test all the functionality I wrote a small […]

Diving into GIT

Over the last year, I have known that the day would come when I could no longer avoid moving from SVN (my comfort zone) to this new beast called GIT that everyone is so excited about. My first hour, which was installing it on my Mac and pulling down a repo to play with was very pleasant. My ssh keys and ~/.ssh/config was already setup the way I wanted and everything just worked. The pain began when I started in on moving our build slaves over to GIT. Of course two of the three are running Windows because we have […]

Windmill Gets a Facelift for 1.0Beta1

Working up to the Windmill 1.0 Beta 1 Release, I finally had the opportunity to put some time into making the IDE (that a lot of you live in when in test writing mode) a little bit nicer to look at. The IDE has been growing organically since 0.1 and there was a lot of functionality hacked into it that wasn’t in the original game plan, so I did what I could to improve the beauty of the CSS/Layout as well as the whole mess of code behind it. Launching If you have used our latest release, or are running […]

Zero to Continuous Integration with Windmill

Following ‘automation’ and ‘continuous integration’ in the micro blogging world I have seen a major influx in people being super interested in functionally automating their web apps. I have seen a slew of things about Grid, and Selenium, and people hacking on Watir so I decided to show you from the ground up how incredibly easy it is to get automated test running setup using Windmill and Hudson. I am not going to walk you through every detail, this is much more high level but I do plan to start a ‘continuous integration’ page on in the near future […]

Bringing Windmill to Life

Project Status I have spent nearly every day since July 7th working to bring the Windmill Project up to a level where it can be used reliably in a production environment. Our mission starts with “Windmill is a web testing framework intended for complete automation of user interface testing”, of course this refers to the web including everything and anything inside the browser window. This turns out to be a very large task, one that only an Open Source labor of love could possibly attempt to accomplish. Windmill has slowly evolved as a project with user contributions, a moderately active […]

JUnit Compatible Reporting for Windmill

A large part of the utility in a testing framework like Windmill is the ability to interoperate with a continuous integration environment. Much of the work that has gone into Windmill recently has been the result of continuous integration needs. There are many ways to do this with existing software packages out there that include Tinderbox,Buildbot and Cruise Control however we picked Hudson as a result of the super small learning overhead and amazing simplicity required to setup slaves on the network. One of the requirements of course for parsing results is the need for JUnit compatible XML output from […]

OSCON 2008 Recap

This year was my second year at OSCON in Portland, and it’s pretty amazing for me to look back at last July and know that I was working at OSAF. A lot can happen in a year, but what didn’t surprise me was the amount of people that I interacted with at the con that I had met during my OSAF experience. A few things come to mind when I think about the conference as a whole. First off, who gave OSCON a Ruby adrenaline shot? The Ruby track was pretty extensive, and I would say more prominent even than […]

Oscon 2008 Schedule

Every year I like to make myself a road map of how I will be spending my time during OSCON. As there are so many interesting possible talks, gatherings and social events it’s tough to get to all the things you care about. At this point in my career my focus is on Web Development, Test Automation (specifically for the web & browsers), and social networking. Obviously on a moment by moment basis your interests are pulled in varying directions, but that sums up the bulk of my attention. If you are interested in the full schedule grid, it can […]

iPhone 3G — The Saga Continues.

As you all know — this morning at 8 AM PST, the new iPhone 3G was made available at Apple and AT&T stores on the west coast. Being a compulsive early adopter of such things, I somehow managed to tear myself out of bed around 6 AM this morning and head down to the Apple Store in Emeryville Califorinia. I arrived somewhere between 6:30 and 6:45 AM, and even though deep down I knew that it was going to be ridiculous — the whole experience still managed to be much crazier than I expected. Approaching the Apple Store, every step […]

Leaving Rearden Commerce, What’s Next?

What happened? As some of you may have heard, today I resigned from my position at Rearden Commerce. Leaving a company is never a fun thing, because you know how you feel when you hear that someone else is leaving.. and you can see it in people’s eyes. I have reminded myself multiple times today that I am still going to be 30 mins away, most of my communication with those people has been via email and IM and there is no reason for me not to stay in touch. Why did I resign? That’s a very good question. Let me preface […]

Real Estate Data Services

This is my final business review from the high school era, however this one is especially important because it forced me to get my hands dirty with some serious database work and made me write more php boiler plate than I had ever dreamed up until this point. FYI, the person driving this business was a teacher at my high school (his last name goes in the graphic above).. that I never took a class from. He had spent a lot of time working in the appraisal part of the real estate market, and as with any repetitive process — […]

IE Web Development Tips

As a web developer you are probably aware of that sinking feeling in the pit of your stomach that you suffer when posed with the idea of testing your freshly written JavaScript that works perfectly in FireFox. For years now, we have had to ‘suck it up’, and pour a glass of scotch to get through an afternoon of testing in IE. As I am now a Web Developer at Rearden Commerce who currently caters to an audience of enterprise users instead of your standard bay area geek population — I have to make sure everything I commit works nicely […]