Thursday, February 28, 2008


I played the Piano at a small recital organised in my teacher's home last Sunday. My piece was a Sonatina in C Major (Opus 34, No. 1) written by Johann Anton André. The piece has two movements, a song like moderato followed by a lively Rondo. The event came at the end of slightly more than a year of lessons. Last year at a similar event I was a novice sitting with the audience marveling at the performances. This year it was my turn to get behind the keys.

Unfortunately for me two of my friends were in attendance in spite of my best efforts to prevent them from coming. When my turn came I found myself quite nervous to even approach the "stage", in this case the piano in the middle of the living room. This came as a surprise. I was a public speaker in college and in spite of my many faults have never had a case of stage fright. Playing a well rehearsed piece for 25 odd people should have been easy, but wasn't because I was very anxious about missing a note or phrase.

As it turned out I ended up making mistakes in a couple of places in the first movement. I did not die on the spot; on the contrary I began to relax after completing the first few lines. The second movement went fairly well even if I say so myself.

I don't recall much about the audience reaction. I do recall that my friends did not boo but then they were not experienced enough to have recognised my mistakes :) Tasty refreshments were served afterward but my body was awash in adrenalin for me to work up much of an appetite.

In retrospect the recital was a good experience. It made me realise the need for any student of music to periodically perform in a (semi-)public setting. I would like to be a part of more such events in the future. These need not even be on the same scale as my recital. A group of four or five would suffice. Perhaps these events can be arranged along the lines of the very useful "losers club" meetings I have attended. I can think of several advantages of such gatherings. Besides bolstering their confidence attendees also get valuable feedback. The "mini-recital" format would force all to focus on coming up with measurable output (play a piece) as opposed to talking about it ("I practiced for a total of 15 hours last month"). I am talking to a couple of musically inclined friends to see if we can come up with something worthwhile. Let me see how it works out.

Monday, February 25, 2008

What am I writing?

I started the year with a resolution to write more frequently. Specifically I had set myself a goal to write four blog entries a month and thereby work up a total of 52 by the end of the year. As the second month draws to a close I am three entries short (if I count this one as well) and trying hard to catch up. The question is, what do I write about?

I had a discussion with a friend where the same question popped up. I mentioned that I was not sure what to write. He suggested that I ask myself this question: "What would I discuss with a friend if we had 30 minutes to spare?". The question yielded instant results (not entirely surprising given my propensity to talk). There are indeed a bunch of things I would like to talk about with my friends. Here is a partial list.
  • Learning (How to have a day job *and* find time and energy to learn; learning "methodologies")
  • Programming (how to use it as a tool to help learning)
  • Hobby - Miniature Wargaming
  • Hobby - Music (practice, objectives, tips and tricks)
  • Tackling the rest of my life (Post Three-Oh blues)
  • Movies and Books
  • History
  • Current Affairs
  • Living in Bangalore
  • Travel plans

You may have noticed that whatever I have written so far falls under just a few topics in the above list. In retrospect it is evident that I have been writing only about those topics which I thought "people would want to read about". This is not helpful for many reasons. First of all it forced me to think about guessing what "people" liked to read rather than focusing on what *I want to write about*. Such a filter also impeded writing frequently and making enough mistakes to learn from and improve.

Also I have found that writing something down crystallises my thoughts. The absence of writing frequently leads to vague, half-baked ideas and thoughts.

To make up for my mistakes I have decided to actively implement my resolution in the coming weeks and months. I will try my best to write at least one entry a week. Expect to see me back shortly.

Thursday, February 14, 2008

Who can conduct a Devcamp?

I liked the recently concluded Devcamp Bangalore well enough to hope for more of its kind. My thoughts about future Devcamps led me to a question: what characteristics should a software company have to organise a successful Devcamp? Based on my inferences I came up with the following criteria.

1. Buy-in from Management. I think one of the factors that worked in favour of Devcamp '08 is the way unconferences tie in nicely with the recruitment and PR strategies of ThoughtWorks. Of course TW is just one example. The necessary precondition is that management should appreciate devcamps and work out ways to use them to help their business plans.

Recruitment is one department that can make obvious use of devcamps. However most software companies in India do little to ensure the actual quality of recruits beyond paying lip service to the "Quality over Quantity" mantra.

The PR value of devcamps may be difficult for traditional managers to understand. The subtle fact is that a well executed devcamp can make a company more popular with discerning developers than full page advertisements in technology magazines ever will.

There is also the question of participation. Unlike with barcamps most managers will find very little to do in a devcamp. The very nature of unconferences will ensure that there is no stage time for top brass who are used to delivering speeches at events organised by their companies.

2. Buy-in from Software Developers. For any company to make its devcamp work its programmers should be actively involved. This in turn requires that developers have an active interest in software outside the demands of daily work. An useful metric would be the number of employees who are involved in open source projects. If a software company cannot muster a dozen developers who work with code of their own interest, let alone contribute to OSS projects, then chances are that devcamps will never be popular in such a place.

3. Infrastructure. Around 200 people turned up for Devcamp '08 and many of them brought their laptops. Besides managing to squeeze all into their main office TW also put up a wireless network and served free lunch and refreshments. I think more people can be counted on to attend future devcamps. Any future organiser should be able to accommodate 200+ attendees and their computing machines.

4. Location, Location. It matters which city and block devcamps are held. In Bangalore the distance from the city centre to the venue will directly affect attendance.

Monday, February 11, 2008

Notes from Devcamp Bangalore

I attended the first Devcamp conducted last weekend at the ThoughtWorks premises in Bangalore. What I liked most about the event was how it stayed more or less true to the goals - developers talking to developers. Unlike in previous barcamps a lot of speakers built their talks around code. Not surprisingly talks involving working code gave me the most returns on investment of time. I do wish some of the talks had gotten more time though. The 30 minute limit on time had a dampening effect on some of the talks. In some cases the speakers managed to get around this by extending their session into the lunch break. Some others booked two consecutive slots but I don't think this would be always encouraged. One way to avoid the problem in the future would be to change the time slots to 45 or 60 minutes.

I found time to attend six sessions. I was very impressed with Ravi's presentation on Monads. Not surprisingly there were a bunch of requests for an encore after his talk.

SRK's work on load testing using Erlang showed a lot of promise. He demonstrated how he was able to harness the unique strengths of Erlang to load test some of his applications.

In spite of my lack of knowledge I could tell that Vivek Singh was on to something with his new tool for testing Windows applications, 'White'. More power to him.

I spoke about my experiences developing a hobby related application using Django. Somehow the projector refused to work with my laptop running Ubuntu Feisty in spite of the best attentions of a system administrator. To be fair mine is an old laptop(4+ years) and I should have ensured beforehand that it worked well with a projector. Nevertheless I hope the organisers of the next devcamp will be a little more *nix friendly :)

Following my misadventures with *nix and projectors I did a quick tally of operating systems. I was surprised to see so many developers running Windows on their laptops. Even those who were working for startups deploying their products on *nix boxes seemed to be using Windows (Vista!). I guess all those photographs of tech events overseas that I have seen are to blame for my wrong expectations ;)

As one of my friends told me, one shouldn't speak for other people - "you should speak for yourself". At that time I didn't quite catch the meaning. I do now. Getting up on stage and showing code forces you outside your comfort zone. So if you commit to something that is just outside your current ability level you need to stretch to do a good job. So I hereby commit to talk about implementing algorithms related to Computer Vision in the next devcamp. See you then.