Lots of cool stuff going on here. Yesterday, we had an awesome presentation about how ThoughtWorks makes fixed-priced projects work. Not just work, but work in an agile manner and achieve great results. I’ve had relatively bad experiences on fixed price projects in the past, but this talk was really inspiring. It basically involved creating a client contingency plan by giving them a “bucket” of free stories. When the client decided that they wanted some new feature that was outside of scope, rather than bickering and fighting about price, scope, etc., the client could simply take a few story points out of their bucket. This made the relationship better and the project smoother. Cool stuff.

Also, yesterday Roy Singham, our founder, showed up in Bangalore and took our Immersion class out to dinner. The food was good, the iPhone ripping began approximately 5 minutes after sitting down, and Roy proposed a chili eating contest. Ola Bini destroyed the competition with 10 chili’s. I ate literally 1/10th of 1 and felt horrendous the rest of the night (pictures forth coming).

Today, we had a quick talk from some of the ThoughtWorks Studios guys. Studios is essentially our product arm. It inspired me to get both CruiseControl.rb and Mingle (two Studios products) installed on my Ubuntu box and I’m pretty happy with each. I feel like they’re neat examples of the power ruby (and jruby) can have on the enterprise level.

Halfway thought Immersion, I’m really happy with the way things are going. We’re doing a trip to Mysore tomorrow where there’s apparently a pretty cool temple.

India: the first week

August 29, 2007

Howdy from the garden city. The first week here has been a total blur, but I’ll try to summarize as best I can.

The flight was one by far the longest I’ve ever experienced. Two 9 hour flights back to back with an hour delay in Chicago (of course). My 5 US co-workers and I landed to the sight of a sign proclaiming “if your name appears on this list, please talk to an agent at the counter.” All our names were on the list. All our bags were in the Frankfurt airport. We were in the Bangalore aiprort. Oh well.

We quickly packed into a couple of cabs and rode over to our hotel. I called a few people and went to sleep.

The next day, I could see a bit more of our surroundings. We’re staying in an area called the Diamond District in Bangalore. The district is composed of a bunch of residential blocks and a corporate building, which is where ThoughtWorks office is. It’s a nice, short, 3 minute walk.

We quickly got into our training routine, which is basically classroom work from 9-6 each day. However, we’ve had tons of time to get involved in open source projects (we’ve started one here and will continue to work on it in a distributed manner after the trip), eat at a million restaurants and see a lot of the city. Here is a quick list of interesting things I’ve learned:

  • Indians become temporarily insane when getting behind the wheel of a car
  • Crossing the street is a scary. Scary as hell
  • Indian food is amazing. Fried daal, tika masala, masala dosa and veg hydrabad are some favorites so far
  • The head wobble is extremely confusing

That’s it for now, more updates coming soon. In the mean time, check out my photos.

drew.visited << “India”

August 19, 2007

Two slightly major pieces of news:

  1. I took a new job with Thoughworks as an application developer. This means I get to spend the majority of my time creating applications using ruby and java! And in an agile environment to boot! I’m extremely excited, my first day is this week.
  2. As a result of this career move, I’ll be going to India for two and a half weeks. I leave this week and I’m extremely excited. I’ll try to post a few pictures.

Expect the frequency of posts to increase in the near future as things have settled down on the job front. See you in the Garden City.

First, sorry for the lack of posting over the past month. Things have been fairly crazy/interesting on the job front. More on that later.

For now, I want to share a nifty little method I put together (I’m probably not the first one) to deal with a situation I recently encountered. I had a bunch of data in an array and I wanted to compare each element with the elements next to it, one at a time, and find any place where the difference between the numbers was more than 10. Here’s what I added to the Array class to accomplish this task:

Little-bitty code snippet

This allows me to perform the function I wanted simply by doing this:

my_array.adjacent_pairs.inject(0){|count,(i1,i2)| count + ((i1-i2).abs > 10 ? 1 : 0)}

Nice and easy. Ruby has made it a breeze for me the solve problems like this in simple, understandable ways without extra fluff.

It appears ruby is even smarter than I imagined; this functionality is already present!

require 'enumerable'
my_array.each_cons(2){|a,b| #do something with a and b }