Showing posts from January, 2007

Testing vs. Speed

So I tend to be on the more extreme side of the testing debate.On my current project I helped institute extensive use of RSpec and Selenium Remote Control.RSpec allows you to test the models, view, and controllers in isolation from each other through the use of a built in mocking framework (to mock out ActiveRecord objects and Stub out call to finders) and some ideas borrowed from Zen Test.Selenium Remote Control allows you to drive a browser (your choice) from Ruby (or most other langs).Which is cool because we were going to have lots of Javascript in this project to control the Google Maps features.The RSpec tests went well:Easy to write once you got a handle on their syntax, and they run real damn fast they don’t hit the database for the view and controller tests (their opinion is that model tests should still hit the db b/c models are so tied to the db it would be silly to test them without it).For the SeleniumRC tests we used RSpec as the harness and created page objects to query…

Huda's Wedding

Getting married requires paper work

A lot of paperwork:

Huda, his wife Uzma, and Huda's parents

Andy's not so sure about the other Andy.

I kiss my wife

Their first dance as married people.

My wife and some drunk guy we met.

The ladies of the family

Take more photos!

In which I complain about air travel

So I work in Atlantic Beach, FL and I live in Chicago.So that means I spend a bunch of time on a plane every week.But this week I was best man in a wedding… in Seattle, WA.You know, the exact opposite corner of the lower 48 and not so easy to get to, as it turns out.I had cleverly arranged to connect through Chicago so I could meet my wife at O’Hare and then fly together to the land of coffee.But, of course, my plane was delayed.I got off the plane at O’Hare at 5:12 pm to make a connection at 5:15.Now I’m a large man these days but I did manage to run from the C concourse to the B in about 6 minutes – about 2 minutes too late to get on that plane.And all the flights to Seattle that night?Full.So my lovely wife gets to spend a night alone in Seattle while I sleep alone in our bed in Chicago. Nice.Then it’s up at 4am to catch a 6am to Denver, to catch a flight to L.A., and then off to Seattle.

As I type this I’m sitting on a plane in Washington, D.C..I’ve been on this plane for over 2 h…

Be the worst

So for about 2 months I’ve been working on this project with Clint Bishop and Nick Drew.Nick was the Project Manager/Tester/Technical lead and build guy.Clint and I were developers.Now that this project is being handed off to a new team (headed by Obie Fernandez), Clint and I have been working with developers other than each other.This is always a tricky thing because you have to justify the code you’ve written while working to make it better. Even more interesting is that Clint and I are around the same level of Ruby/Rails experience while Obie and Zed (Shaw) are superstars.Not only do they have a long history in the Object Oriented field but they have been doing Ruby professionally for a while now.Now I’ve been on a Rails project before and I’ve been messing with RoR for more than a year so I’m no chump, but I’m definitely behind the new guys.I was working with Zed for a few days last week and he’s just crazy fast.First of all, he has this behemoth HP laptop that has a tricked-out L…

How did I get here?

So there's only one more week left before this project goes live. But how did it start? Well, oddly enough, with arts and crafts.

See those faces in the above photo? I, and a bunch of professional consultants, went to Walgreen's, purchased fashion magazines, then cut out and pasted pictures onto paper. Sounds kinda dumb, huh? Well it's not -- lemme try to justify: In our talks with the client it's often helpful to focus on who's going to use the software so that only features for your intended audience get in the code. Also, it helps keeps you focused on who you're developing for. If everyone agrees that, to pick an example, Disco Stu is going to drive the content creation of the site then you might want to think about what he would like and what would annoy him. Why call him "Disco Stu"? Because "20 something bar patron" is boring. And if you're going to be spending a 1-2 weeks discussing what Disco Stu would want in a website…

Mechanical Turk can be beaten

Btw, here's where I'm staying while on this gig:

See that boxy hotel, just right of center? That, my friends, is the mighty Sea Turtle Inn. And by mighty I mean: "Don't stay there." Nice location, crappy rooms.

Yesterday I was laid low by the perils of Amazon's new RESTYSOAPY (because everyone wants their REST to be more SOAP-like) API, but today I have triumphed. I was awful 'fraid Uber dev dudes Zed Shaw and Obie Fernandez would find a 2 second solution to the problem that had plagued me all day. They weren't here yesterday and I was posative they'd come in and spot the problem all flash-like whilst snickering at my code. But of course I was just feeling self-conscious. Obie and I spent a few hours trying to put xml into an url without success until we noticed a line in the doc saying you can call a get OR a post. Oh. All I had to do was do a post with the xml in the body and ... I ran into another problem.

The xml wasn't valid without…

The End to End Example

So this project I'm on is gonna be all sorts of User-Driven, but we don't want users posting just anything (like say pictures of 9/11 on a page about a Restaurant). But how do you know a pic is "appropriate"? Computers just ain't smart enough to do your job for you when it comes to images. And screening all those photos for badness would take an army of dudes.

Well our friends at Amazon are willing to put you in touch with those dudes. For cheap. Their Mechanical Turk service lets you pragmatically post odd jobs to their vast electronic job board. So now you can take a photo on you site, then post a job saying "Hey look at this image and tell me if it's really Abraham Lincoln or just more boobies and I'll give you 5 cents." Then somebody picks up the job and does it. You can even review their work (spot check) to see how they're doing. Or offer the same job to 5 people and pay 1 cent apiece and see if they all agree. Awesome.

Except …