Google Analytics

Thursday, August 11

Technical Goals for 2011: Mid Year Review

Although we are already 2 months past the middle of the year, I decided to do a "mid year" review of my technical goals for this year to see how am I doing. Here we go:
  • HAML, SAAS & Coffeescript: No progress :(
  • SproutCore & BackBone.js: After a cursory look, I decided to explore Backbone.js for our upcoming project at Pothi.com. Still getting a feel of it.
  • Learn Haskell: Deferred
  • Git: Since Drupal moved to Git, it is hard to ignore it and I am beginning to get familiar with it. But given that we use trac, I don't think we will be leaving SVN anytime soon.
  • Android: No progress
  • SQL: Finally starting to dig into this. Not a very planned effort but in 6 months managed to understand few more nut and bolts of Mysql. Ran a few Explains finally :). Learnt to generate slow queries log and also managed to fix some obnoxious queries sitting in Ubercart.
  • Beautiful Code: I realized that "finishing" beautiful code is not the right way to approach it. I read it one chapter at a time whenever I feel like and also re-read the earlier chapters to better understand what are they saying. Meanwhile instead of "Founders At Work", I have acquired "Hackers & Painters" and will be reading that.
This doesn't look impressive at all. But there are 2 new set of tools that were not in my initial plans that I have come to know and use. One are Job Queues/ Message Queues. Used Celery for building a system for crunching the Streaming API of Twitter. Planning to also check out BeanStalkd and other Job Queues.

The other set is deployment & configuration management Tools like Cap, Fabric, Puppet and Chef. Puppet and Chef were not immediately useful for the task at hand but Fabric and Cap were. I decided to stick with Fabric since it is more generic in nature and it is Python. I am consciously trying to not get into one more language. Want to spend some time to get better with Python.

A related discovery was Vagrant which is a tool for provisioning Virtual Machines using Oracle VirtualBox. Using a combo of VirtualBox and Fabric, I am setting up a "few clicks" server for building and deploying for Pothi.com. Will also use it for all other projects once the basic code base is more stable.

The surprising thing is that looking back at my initial list, I now feel that it was all over the place with no core theme tying everything together. If I somehow manage to get to all of them by the year end, I would have gained familiarity with some good tools but I doubt I would be any good in using them. The tools need to be something that I can get down to do real work with. Also they should be something that improve my work. The things I ended up playing with fit that pattern. They fix some basic loopholes in my tool chain. So keeping that in mind, here is the new list:
  • CoffeeScript & Sass
  • BackBone.js
  • Celery/ MessageQueue
  • Fabric/Vagrant
On a related note, I submitted a talk proposal to Pycon India, 2011 and it has been accepted. The talk is about various ways of implementing Naive Bayes Classifier in Python and comparing their performance and pros & cons. So I will probably be in Pune for 2-3 days in September. This is going to be my first technical talk since grad school. Need to finish the work I want to cover in the talk and then start working on the presentation.

And while I have been busy with this stuff, Jaya has been killing it with Python. She has been super productive since she started using Python couple of months back and has already automated a significant part of our backend operations, thus opening up a lot of bandwidth. If there was any more proof I needed that Python is the one general purpose language everyone should pick up, I now have it! :)

1 comment:

Jason M. Adams said...

I've been using CoffeeScript for the past 5 months and love it. Definitely takes the verbosity out of javascript and brings it closer to python or ruby in terms of fun.

And I've been using git for 3 years now and can't imagine going back. Every time I have to do something in subversion, I want to poke myself in the eye. :)