Friday, July 16, 2010

IronRuby: 0 to Cucumber in 15 minutes

Once again, a 140 character (or less) “outburst” gets me in trouble with a follower and I end up with a blog post. This one is one I probably should have written a while back. I’ve enjoyed working with IronRuby the last few months, so this little intro is long overdue. Tim: From 0 to IronRuby all set up in less than 15 minutes. Preparing to cuke me some .Net. woot!

First things first, you’ll need to install IronRuby. Head off to the download page, and click on your msi of choice and let the installer do its thing.

Since my goal here was to get cucumber ready to roll against some .Net assemblies, you’ll need to install a few gems. IronRuby comes with Ruby Gems already installed, so thankfully to install the ones you need you just need to type igem install a few times.

Jared: Sounds like someone needs to blog the steps needed to setup. “Wait, what? igem? WTF?” Yeah, that’s one of the IronRuby-isms, putting an i on the front of a couple of commands. If you’ve done a bit of Ruby, you’ll have a little muscle memory to retrain, but it’s a small hurdle. (You’ll also type ir instead of ruby to run a script and iirb instead of irb to get to irb.)

So, on with our gem installing…

igem install rake

First install is rake. I’m not going to use it right away on the cucumber running, but I’ll use it at some point, I always do.

igem install albacore

Like rake, I’m not going to use this one right away, but I’ve found it to be the one must have gem if you’re using rake with your .Net builds and test runners. It just makes you life that much easier.

igem install rspec

I’m not starting out writing rspec in this example, but cucumber is going to use its matchers.

igem install cucumber –-version “=0.6.4”

This is the one we’re after for this example. Be sure to add that version command on there because IronRuby isn’t quite ready for the latest version of Cucumber. But, 0.6.4 is going to get the job done for us.

igem install iron-term-ansicolor

The first time you run cucumber, it’s going to advise you to install this gem to get color coding in the terminal window. Go ahead and do it now, and you skip that warning. (Or don’t, and check the message for yourself. ;) )

Now all you need is some features, some step definitions, and a dll to write it all against. As luck would have it, I have just that written up in a code sample that I just used at Codestock a couple weeks ago. (And also coming soon to an Ohio user group meeting near you…) Here’s the root of that project: http://github.com/timwingfield/TestingSeaPound

The features directory there is where you’ll find my cucumber samples and the dll they are running against. Download it and give it a shot. Once you get it downloaded, open the command prompt in whatever directory contains the features directory (not the actual features directory) and type:

cucumber features

Happy IronRubying!

Thursday, May 6, 2010

Mongo Mapper: Spelling Matters

Added Mongo Mapper to my test Sinatra app today, and kept getting a gem not found error. All the examples that came up in my various Google searches had:

require ‘mongomapper’

After a reinstall of the gem and a few curse words, I tried a little experiement:

require ‘mongo_mapper’

That did the trick.

Tuesday, April 27, 2010

Lean Conference Recap

Last week I was an attendee and a speaker at the Lean Software and Systems Conference. It was three days of lean, kanban, and flow; and it really got the wheels turning on a few things.

Off the top, a quick warning: If you are a restaurant owner and you don’t usually set up a buffet line in your restaurant, pray that Mary Poppendieck is not among the first few patrons to your new set up. This situation happened at the speaker lunch, and as 50+ lean thought leaders (and me) lined up, Mary came out with, “You would think a restaurant with a buffet line would understand queuing theory!”

Overall, the conference was very interesting. It wasn’t the normal dev conference I’m used to attending. The audience was comprised of project managers and team leads much more so than it was of developers and engineers. It made for a much different dynamic…and dress code. A lot more khakis and golf shirts than cargo shorts and Star Wars t-shirts.

The sessions were pretty good, but this was year two for this conference. That combined with the relative newness of the whole lean software movement led to some overlap in session content. Not saying that’s a bad thing overall, just the nature of the situation.

As with any conference, the hallway sessions add to the whole situation. I saw a few familiar faces and met quite a few new folks, including three guys who had flown over from Sweden for the conference. (And got past the volcano that wreaked havoc on the speaker schedule all three days.)

The only real downer for me was I didn’t get to visit open spaces. I was opposite the open spaces on Friday, so I was preparing to speak or speaking during the first part of the morning. After that, we were tearing down the booth and getting to the airport for our flight home. Would have liked to have seen what came out of those open spaces.

I thought my own session went pretty well. I did 45 minutes of a kanban experience report, and got a few questions near the end. The room was pretty big, so it didn’t lend itself too well to creating the discussion this topic has for me in the past. But, I was video taped for the first time in my short speaking career, so when that link comes out I’ll be sure to pass it around. (After reviewing it to make sure my hair looks ok.)

It looks like next year is slated to be in LA. I’ll submit a topic again, but even if I’m not selected to speak I may have to attend. This isn’t a CodeMash I must-attend-as-long-as-I-have-a-pulse type situation, but more to see how this conference matures and drives lean and kanban forward.

Saturday, April 10, 2010

The Tool List from Kalamazoo X

Here is the list of tools that I mentioned (and some I forgot to mention) during my talk at Kalamazoo X.

Communication and Collaboration

  1. Basecamp
  2. AgileZen
  3. Google docs
  4. Google sites
  5. Trac
  6. Bugzilla
  7. Tiddlywiki
  8. Pivotal Tracker

Source Control

  1. git
  2. github
  3. mercurial
  4. bitbucket
  5. Subversion
  6. Tortoise SVN
  7. Google code
  8. unfuddle

Builder Servers and Continuous Integration

  1. Hudson
  2. TeamCity
  3. Cruise Control
  4. Cruise Control .Net
  5. Cruise Control rb

Text Editors

  1. Vim
  2. emacs
  3. e text editor
  4. textmate
  5. Notepad ++
  6. Scite

Command Shell

  1. Cygwin
  2. Powershell

Scripting Languages

  1. Ruby
  2. Python

Books

  1. Pragmatic Programmer
  2. Productive Programmer
Monday, March 29, 2010

On the Move to Pillar

It wasn’t that long ago I was announcing my move to Reflex, but I am indeed taking the career on the road again, this time to join the team at Pillar Technology. Officially, I’ll be on board at Pillar on April 1st…no foolin’.

I have to give a big thanks to Andrew at Reflex for putting enough trust in me to make a difference there. In the short time there, we instituted a number of changes that will help them going forward. In two short months, we dove into cloud computing with Amazon, github, basecamp, Kaban, threw VSS out the window, and strived for more communication and visibility in all our projects. We bit off a lot in a short time and got some good positive momentum out of all of it.

However, as with any job or company, changes happen that effect everybody there. In this case, the changes came much quicker than I expected, and the opportunity to join Pillar came up and was too good to turn down.

Change is never too easy, but I’m excited to be joining Pillar. I’m going to get to work with some familiar faces, and some new ones. I’m going to get to push further into agile and lean, and learn from some leaders in the industry. All in all, I think this is an excellent opportunity for me and my career.

And, thankfully, Lotus Notes wasn’t involved in the decision making process what so ever.