Saturday, November 14, 2009

Meetup in Chicago with Venkat Subramaniam

Meetup In Chicago on 11/14/2009, 7pm at Penny's Noodle House

Come hang out with Venkat Subramaniam, me and anyone else that comes. Fun stuff!

We'll be meeting at Penny's Noodle House in Wicker Park (1542 N. Damen) between 6.30 and 7pm. We'll have great conversation over dinner, then, depending on the mood, head out to greener pastures for a night of geeking out.

Note: It is BYOB, so make sure to bring what you'd like to drink. Don't worry, after dinner we can hit some local bars.

If you are coming, feel free to send me an @ reply on twitter (@coreyhaines) or an email (coreyhaines@gmail.com). But, if you don't, that's cool, come anyway.

Friday, November 6, 2009

New Katacast

I've posted another kata at Katacasts.com. This is driving the solution to marking a guess in the codebreaker game.

Sunday, November 1, 2009

Evan Light's Road Trip

Recently, Evan Light (blog)began what he calls his "software craftsmanship road trip." He is on the road for 2 weeks, stopping in Floyd, VA, and continuing on for a week in Chesapeake, VA.

His first stop in Floyd, VA, was Entry Way Software. I was very happy to see that he was stopping there, as I spent the first week of May there. My experience was wonderful, and I had the opportunity to film two great interviews, one with Jonathan Greenberg and the other with Gustin Prudner.

Evan has written a great blog post called 'Why you too should undertake a software craftsmanship road trip'. Evan's thoughts and ideas mirror a lot of what I experienced during my my last year on the road. I especially can relate to his comments about the introspection that comes upon you while on the road. I remember driving up from Champaign, IL, back to Chicago, IL, after spending a couple days with Brian Marick. I was a about 10 days, or so, into my first trip in December, 2008 (a whole world away). My head was so full of thoughts after the intense discussions with people; I just had to stop and record my very first road thoughts, "Tools vs Techniques."

Coming up this week, Evan is spending time in Chesapeake with Brennan Dunn and the 757.rb guys.

Evan is also taking a video camera and doing both interviews and road thoughts along the way. He says he will be posting them soon, so keep an eye out for them!

Thursday, October 15, 2009

Katacasts

I'm going to be writing a bit more about what the Katacasts series is, but the short story is that a few of us are going to be screencasting katas on a regular basis. To this end, we set up a blog and are looking to set up a regular podcast (itunes-ish) to provide a centralized place to access the videos.

I posted my first video, and I hope you enjoy it.

Number to LCD Kata

Saturday, October 3, 2009

Just some thoughts on the term 'Pragmatic'

Earlier this week, I started training for the RubyConf 5k. Based on the general suggestions, I'm doing the Couch25k training program, and I found the podrunner podcast that will help with the interval training. So, after the first run, I was feeling pretty good. I mean, the last couple intervals had me breathing pretty heavily, heart pumping, but I thought I handled it all pretty well. So, I was talking to Sarah and said, "Wow! I feel great. I know the program says to take a day off, but I think I might run tomorrow, as well." After all, I've been walking and using my legs for quite a while now; I know and understand the way my body works when moving. She just looked at me and asked if the program said I should take a day off. "Yeah, it does." As expected, she advised me to listen to the instructions; the people who developed the program have a lot more experience than I do with these things. I thought for a second, smiled, and said, "But, I'm pragmatic with my running. Don't hassle me with your 'program dogma.'" Well, we had a great laugh about it. I felt fine the next day, wondered if I should have run, and then, the second day after the run, oh the ache started. My legs definitely were burning, and I was glad that I hadn't over-worked them by running the next day. I guess it is true that it is often the second day after a workout when you feel the effects.

This is a common thing that I hear from software developers: they have a little bit of experience, think that they understand something to the point where they can make their own decisions on what it means to 'be pragmatic.' Often times, people use the term 'pragmatic' as a way to hide a lack of skill and experience. Or, sometimes, it is used in ignorance: someone doesn't realize that they don't understand something well enough. Usually, though, it is brought to play when someone is justifying cutting corners on something. Just like the second day pain I felt with running, this can come back later to bite you in the ass. Think your 9 months of trying TDD makes you an expert, someone who can suddenly decide when it is 'pragmatic' to not design your system with TDD. Or, don't even worry about designing your system with TDD, just talk about automated testing. Are you being 'pragmatic' about automated testing, skipping it things you don't know how to do or are hard? I wrote a blog post about being pragmatic with Uncle Bob around TDD-ing javascript.

It is pretty common knowledge that I'm not a big fan these days of those terms, 'pragmatic' and 'dogmatic.' (I even included a bit of my dislike in a talk I gave to the Chicago Software Craftsmanship group). Do they have value as terms? Yeah, they used to. Nowadays, though, they seem to be used more often as justification for decisions that are based on lack of skill or a desire to cut corners. Next time you are tempted to make a decision based on being 'pragmatic,' take a moment to pause, try not to use that term. Instead, ask yourself why you are making that decision to cut a corner. And be honest with yourself. It isn't shameful to explain that you are not doing something because you don't know how. After all, admitting you don't know how to do something is the first step to learning how to do it, no?

Tuesday, September 29, 2009

Upcoming Code Retreats

This year has seen a huge surge in practice-oriented events, and code retreats are definitely in the fore-front of these. We've seen them happen in several cities in the US, plus even retreats in Iceland and Romania. Most recently, I hosted one in Chicago, where we had some great people practicing the craft together.

I'm working on organizing a couple more (one more in Chicago, one in Durham, NC, plus one in Cleveland), but there are two coming up that I wanted to let people know about.

Chirag Dadia and Sebastian Hermida are hosting a code retreat on November 1st in Philadelphia, PA. If you are in the area, you definitely want to come. They will be doing it in traditional style, in Java, but don't think you can't get something out of it if you aren't a Java developer; the practice you gain comes in handy whatever language you are using. I will definitely be attending this code retreat.

Looking more into the future, Jeremy Anderson is organizing a code retreat on January 23rd, 2010(!), in Grand Rapids, MI. It is a few months away, but put it on your calendar. This is sponsored by Atomic Object. This code retreat is going to be done in Ruby, so sharpen up yours skills. Stepping outside the standard Java box makes it a bit more difficult for just anyone to show up (you need to have a basic skill-set with Ruby), but, if the Chicago Ruby Code Retreat was any indication (and it was), you are going to have a great time. I'm going to do my best to make my schedule work to get to this one.

Monday, September 21, 2009

Practice Features for Conway's Game of Life

At the Chicago Code Retreat last Saturday, I asked whether it would be helpful for people to have a set of Cucumber features for Conway's Game of Life. There seemed to be a general consensus that this would be a handy thing to have, so I've built them and put them up on github.

I created features for the basic rules of cell evolution, and I am adding features for some common multi-cell patterns.

I haven't added an step definitions, yet, although I expect to create a few that can be used to drive your development. Thanks to Aslak and the cucumber team's tireless efforts to get cucumber working for different languages than Ruby, you should be able to use these features to drive development in your favorite language.

Cucumber Features for Conway's Game of Life


I've put instructions in the readme for how to contribute your own features.