Thursday, December 30, 2010

Goals for 2011

Release Rabid Tech's first app.

Contribute to more open source.

Have Rails Camp NZ go well and also make it to the Aussie ones again.

Start building up some more passive income streams, small weekend apps that actually monetize etc. I have a new todo app idea that I'll have a look at building sometime soonish(The todo app market is clearly not saturated enough).

Edit my Nanowrimo novel from this year and look at trying to actually finish it. We've got a decent bunch of people carrying on from nano this year so might be able to get some more momentum behind it this year. My writing has improved each year as well.

Read more and widely, particularly:
  • Some Proust
  • One of Chinese four great classic novels, probably Dream of the Red Chamber given I already have some familiarity with Romance of the Three Kingdoms and Water Margin
  • More History in the areas I'm unfamiliar with. Byzantine to start with.
  • Finish Structure and Interpretation of Computer Programs including most of the excercises.
  • More Steinbeck
  • Godel, Escher, Bach: An Eternal Golden Braid - I've been meaning to read this for ages.
  • A few more biographies - I really enjoyed Richard Branson's this year.
  • My usual mixture of Sci Fi and Fantasy.
Blog more - at least twice monthly.

Watch more good movies, with a minor focus on getting up to a convincingly large portion of the imdb top 250 list. I'm up to having watched 112 of them so far and I'm finding the more obscure or older films that place on the list to be particularly enjoyable.

Do some more teaching Rails to people, either mentoring or more workshops.

2010 Achievements

A few of the interesting things I did in 2010 in more or less chronological order.
  • Started off flat out for the initial release of Sponsafier. By far the highest traffic site I've worked on with peaks of 26000 hits per minute.
  • linux.conf.au ate up a week and had lots of interesting things, including the first time I came across Albany High school and their awesome open source infrastructure.
  • Had an intra-office showdown between myself and Mike Lowery on Agile Bob's agile question contest. Plenty of trash-talking was had. In the end I came out victorious on the basis of being more novel and/or crazy.
  • Attended Webstock, got a sweet bag. Rives was pretty awesome too.
  • Became a Certified Scrum Professional (Which, apparently, is better than a Certified Scrum Master even though it doesn't sound like it).
  • Started thinking about planning for Rails Camp NZ
  • Organised Rails Bootcamp
  • Attempted the Milford Track. It was slightly damp.
  • Made Technical Lead at 3months
  • Ran a Rails Workshop at Victoria University
  • Worked a lot and posted lots of overtime, outside stuff went down a bit though.
  • Settled on a location and started working on selling tickets for Rails Camp
  • Created a MUD in Node.js for the Node Knockout
  • Resigned from 3months to start Rabid Tech
  • Did the Rails Rumble and created a news aggregator
  • Did some contracting while getting going with Rabid Tech, unfortunately it took up a lot more time than I meant it to and delayed other things.
  • Attended the NZ Open Source Awards - I had code in three different finalists.
  • Gave a talk at Wellrailed on Rspec 2 and TDD - Unfortunately the videoing didn't work.
  • Wrote a novel for Nanowrimo - Lots of editing still to do.

Sunday, December 12, 2010

Rspec 2 at Wellrailed

I gave a talk to Wellrailed at the end of October on Rspec 2 which drew the largest crowd that Wellrailed has had in a while. I was hoping to put a shiny video of the event up here, but unfortunately the sound didn't come out. Here's a brief recap of what I said instead.

I had two distinct segments in my talk in that I started off talking about TDD for a while to try and convince people of it before moving on to the nitty gritty of Rspec 2. So that they could really understand some of the philosophical stuff that goes on in Rspec and how it's best to work with it. Using a tool right is by far the best way to avoid coming across difficult problems.

There was quite a spread of Rails and Rspec experience in the crowd from a couple of people who knew very little Rails all the way up to people with massive test suites that wanted just any useful extra things I could throw their way. I think I managed to give everyone something but it is one good point about larger gatherings like Rails camp (Tickets available now for Rails Camp NZ) that you have enough people to split up and focus on things a bit more.

One of the things that seems to be happening with Rspec is that it's getting a larger number of nuanced ways of matching things that make test failures easy to understand. It's much easier to see what's gone wrong if the error message is " should be valid but is not" rather than "false should == true" as would happen if you just asserted the result of valid. By having an intuitive error you'll start thinking about what might be wrong and the possible fix sooner which speeds development up. Unfortunately this plethora of options does make the system much more scary for someone just picking up the framework.

It was also a great opportunity for me to pick up some new shiny Rspec tricks. I'm particularly happy with the addition of importance filters for managing which groups of tests run when in Rspec. Being able to easily have you default autotest not run slow tests or ones that rely on some external resource is a vast improvement for anyone who has had to deal with the growth of their test suite on a larger project.

I continue to happily proselytise TDD. It's great that more and more people are open to it and joining in and I didn't have anyone loudly disagreeing with the concept for a change.

Well
(Yeah, the slides are pretty horrible. In my defense I mostly stayed on a couple of the more content free ones while I talked. Going to have to look at making better ones now that I've read Presentation Zen though)