Flickr Badge

Wednesday, February 28, 2007

Django screencast: Create a wiki in 15 minutes

I've uploaded a screencast on how to write a wiki in 15 mins with Django. Its available on the Silver Stripe Blog here.

Tuesday, February 27, 2007

Wikicamp round up

Yesterday was my decompression day after wikicamp on Sunday. I can now actually gather my thoughts and write out a round up of wikicamp.

Overall wikicamp went off pretty well. Jimmy Wales was totally awesome. He was pretty much mobbed by the press and audience throughout and was totally willing to mix in with everyone, answering questions all day long. He had a long talk + Q&A, followed by a press conference, then 1-on-1 interviews, posed for photos with everyone and still had the energy to participate in the sessions and with the audience. He was one of the highlights for his enthusiam.

I really liked how the booklet on wikis came out. Many may not know that the whole booklet was done in a few hours by collaborating over a wiki. It could have done with some final editing, but for just a few hours of work, it came out really well. Some more perspectives on this from Balaji who designed the booklet.

I missed most of the first session including Jimmy's talk because I was sitting at the registration counter. We closed the registration desk at lunch and I started attending the sessions. One of the problems was the distance between the rooms for the two tracks. For some reason, I never went upstairs, and apparantly neither did many of the audience...out of sight, out of mind I guess :( I heard from some audience members that the talks upstairs were really good.

A possible solution could be to have all sessions in different corners of the main hall itself. How do you prevent the sessions from interfering with each other? Get rid of the mic, speakers and projector :) Thats exactly what I posted to the bangalore barcamp 3 mailing list last week. Here is an example of how such a setup would look. Lots of small groups of under 10 people. A perfect example of this was when some of the guys from the organising group asked me about my session on writing a wiki in 15 mins. The session was removed because of a lack of speaking slots, so we decided to go through it on the spot, just the 7 of us.

One of the things that I noticed in Barcamp Bangalore 2 and happened here as well was that the energy levels after the lunch session seemed to drop. We were also running quite a bit late on the sessions in the main hall. Keeping things going after lunch is a big challenge. I've been wondering about group games. Many unconferences have a round of Werewolf, for example. I've never played any of these, and I'm not sure what the response would be like, but I've read a lot of good things about them.

The highlight for me was the BoF session. Unfortunately it was the last session and there was not much audience. Anyhow, I was there in the front row and there was a very nice discussion on a number of topics. Topics like getting started with editing, handling vandalism, discussions about the recent changes patrol, role of protection, how semi-protection works, policy of verifiability, delete vs speedy delete, how wikipedia handles referencing a newspaper article that is unavailable online, policy on original research, policy on biographical pages, and a whole lot more. If you are interested, just search wikipedia for the above words. Very entertaining and illuminating. Good job by the panel - Ganesh Krishnamurthy, BalaSundaraRaman, Arun Ramarathnam, Bhadani and Atul Chitnis.

I caught up with Ganesh Krishnamurthy and had a discussion about wiki bots (in Python!!). He was due to give a session on it, but unfortunately we ran out of time and he was unable to give it. Actually quite a few sessions got cut due to a lack of time. Anyway, I did catch up with him and we had a discussion about it. He runs a bot on wikipedia that reads a list of towns, then gathers information like population, latitude, longitude etc from some sources and automatically creates a wikipedia article stub on that town. Very cool.

Also met the guys Underdog Productions, who are making a documentary on Jimmy Wales. They are a group of six guys, three of whom had come to record footage for the documentary. Their previous movie was Piece by Piece, a documentary on San Frasisco's graffiti scene. Way to go guys.

So what was the benefit of wikicamp for me? Lot of knowledge gained from the BoF session. Really interested in wiki bots now and doing more investigation along those lines. Also, I've been having an account on Wikipedia since April, 2006, but I had never done any edits, except a few anonymous typo corrections. I figured out the password to my account and just started off with my first edit using the account. Plus getting to meet some interesting people.

All in all, wikicamp was really helpful.

Monday, February 26, 2007

Wikicamp Photos

I've uploaded my photos of Wikicamp here:

You can find all the wikicamp photos by searching for the tag "wikicamp". That list on flickr is here

Thursday, February 22, 2007

Upcoming conferences

There are a lot of conferences (and unconferences) coming up in the next few months. The calendar is pretty packed. Here are some that I'm keeping track of, in order of the dates:
  • (25 Feb): For a start, is happening this Sunday. It looks to be very interesting, with almost 300 participants signed up including the founder of Wikipedia, Jimmy Wales. Also check out the Speaker list, and add your name if you are interested in giving a talk. And don't forget to join the mailing list for announcements.
  • FOSS @ NIT Calicut (2-4 Mar): There is a FOSS conference coming up at NIT Calicut on the 2nd, 3rd and 4th of March. More information on the FCI Wikia
  • ChennaiPy workshop (17 Mar): The next gathering of the ChennaiPy group will be a workshop on the more advanced Python concepts. It will be in Chennai on the 17th of March (Sunday). Take a look at the ChennaiPy wiki to attend or give a talk. I'll be giving an introduction to decorators, and will be touching on my blog post, “Using Python decorators to implement guards.” If you are interested in Python and are in Chennai, do drop by. If you would like to talk about something in Python, go ahead and add the topic to the wiki.
  • Bangalore Barcamp 3 (tentatively Mar): Planning has started for the third edition of the Bangalore Barcamp. If you are interested in organising or attending, I suggest joining the bangalore_barcamp mailing list. Take a look at the call for organisers here.
  • Python Conference (tentatively April): There are plans for a first Python conference in India. Again, join the BangPypers list to keep track of this. If you would like to help out in organising, reply to this thread.
  • Agile India 2007 (tentatively July): If you are interested in agile software development, then look out for Agile India 2007. Planning has started, check out the call for organisers on the mailing list.

Thursday, February 15, 2007

Managers and developers: Are you two teams or one?

One of the reasons why I love Dilbert so much is because Scott Adams really feels the pulse of the typical IT organization. How many times have you seen the above situation? In one project, the whole world (including me, and I was not even a part of the project) knew that the project was burning, except the people who really needed to know — the managers and stakeholders — had no clue as to the real state of the project.

Why does this happen?

Most manager-developer problems in a software company are caused by one thing: trust, or rather, a lack of trust. Managers do not trust the developers to do any work. They believe that the developers have to be pushed, otherwise nothing will get done. Developers in turn do not trust the management to cover their back. They believe that the managers will screw them when things go wrong. As a result, instead of working together as one team, they become two teams, each defending their turf from outside attack.

Once that happens the project is as good as dead. Communication across the border will virtually stop.

Back to the above cartoon:

Dilbert is comfortable telling Wally the real situation of the project because he knows Wally will support him. After all they are in the same 'team'. When he tells the PHB that the project is fine, he doesn't really mean that its fine. He knows if he brings up any issue, the PHB will blame the team. What he is really communicating is "I don't want to talk to you. I'll say fine so that you go away quickly."

If you are a manager, be sure that you cultivate trust with the development team. What better way to do that then to show that you are on their side. When the team asks for more RAM for their computers, do you get it or do you say that its out of budget? When the team says that the schedule is too short, do you tell that to the customer and try to find a solution or do you ask the team to work weekends?

This is one reason why I like agile processes and the Scrummaster role in particular. Scrum tries hard to make the Scrummaster fit in with the team, to support the team, to enable the team to perform. In exchange, when things go wrong, the team is often more open in bringing up issues because they are all one team, working together in the same direction. They know that the Scrummaster will help in solving the problem rather than blaming the team.

Tuesday, February 13, 2007

Catalyst: Public beta available for download

Catalyst has entered public beta. The beta is available for download here. I would love all of you to try it out and give some feedback so that Catalyst can be made better. The goal is that it should be useful for you, the user, so take a look and let me know what you think.

Wednesday, February 07, 2007

Tester Tested!

If you want a good blog to read on exploratory software testing in India, check out the Tester Tester! blog. Most of the testers seem to be requirements based testers, so its nice to see some alternative approaches getting popular. For more on exploratory testing, also check out James Bach's blog.

Monday, February 05, 2007

The more you know, the more you realise how much you don't know

I've been programming since the mid-late eighties. I started out with BASIC on a Commodore 64. By 1992, I thought I knew everything there was to know about programming. Then I learnt C, and found out that I didn't know very much at all. I programmed for another ten years. By 2002, I had programmed a lot. Surely by now I'd figured out everything about programming. Then I saw Scheme and I realised that I didn't know very much at all.

When I started testing software, I thought I knew everything about testing. Just check the requirements, create some tests cases to validate the requirements, run the cases, and you're done, right? Then I ran into TDD, Cem Kaner, Brett Pettichord and James Bach. Now I know that I don't know very much at all.

When I started working with UI, it all seemed so easy. Create windows and buttons and hook up events. Then I started reading Alan Cooper, Bruce Tognazzini and Don Norman. Now I know that UI design is actually very complicated and I don't know any of it.

Peter Norvig says it takes 10 years to get good at a skill. If you think you know something, either you've been doing it for years, or you're still at the first step. Most likely the latter.

The more you know, the more you realise how much you don't know.

Sunday, February 04, 2007

Can your programmers read code?

Surprising as it might seem, programmers spend a majority of the time reading code, not writing code. Take my case. Even though I am working alone, on a new project, I spend the majority of my time reading code. That's not just my code, but also the code in the various open source modules that I'm using. At some point or the other, I've had to delve headlong into the source of Django, Dojo, Mochikit and ToofPy, and try to make out what the code is doing by ignoring the docs (if there are any!) and reading the source. If you are working in a team, the effect is magnified even more.

This was no sudden revelation. When I was hiring, I had a standard question to see if candidates could read code. Here is the code snippet.

int function f(somestruct *a) {
int x = 0;
if (NULL == a) {
return 0;
x += f(a->left);
x += 1;
x += f(a->right);
return x;
Candidates had to try to figure out what function f was doing.

First, I expected the candidate to see the left and right fields and guess that "a" was a pointer to a binary tree of some sort. I then expected the candidate to see the pattern of the recursive calls and guess that it was a tree traversal (inorder in this case). Once that's done, its simple to try out the function with some data and figure out what it does (count the number of nodes).

Given that everyone learns about binary trees, and especially inorder traversal, you would have expected many to get it right. Surprise! Only a few have ever got it correct.

Most answers were something related to linked lists or arrays. It seemed that every programmer when confronted with a pointer in any form assumed it was related to linked lists!!

To be successful at code reading, it is the ability to execute the program in our mind that needs to be developed. This is a learned skill, developed by just reading lots of code.

One conclusion is that many programmers don't spend enough time reading code. It also explains why in many teams, most code becomes spaghetti — programmers can't read the original code, so they hack their fixes.

So, do you check to see if programmers can read code? As an aside, you can now find out how most programmers can't write code either.

Saturday, February 03, 2007

Right after comes

Do you use wikis? Fascinated by them? Never heard of them? Want to know more? Then you need to attend wikicamp, India's first event dedicated to wikis. Think of it as blogcamp for wikis.

Another reason why you should attend — Jimmy Wales, founder of Wikipedia will be attending!! Yep, thats right. is an unconference, which means that anyone can come and everyone can participate. Find out how wikis are used on the Internet, how they are changing knowledge management in enterprises and even how they can be used to organise your personal content. Find out more about user generated content and collaborative editing and how they are changing the way we use the Internet.

This event takes place on the 25th of Febuary, Sunday, at Tidel Park, Chennai (map). For more information, take a look at the event wiki. To register, just add your name to the participant page.

Thursday, February 01, 2007

Eastern Winds blog

Vignesh over at the Eastern Winds blog is writing about his experiences starting a 1 person Micro-ISV in Hyderabad. Some interesting posts there about typical concerns of mISVs like experiences with AdWords, SEO, payment processors and so on. These are some things that I'll have to tackle when I start selling online, so its been very interesting reading. If you are interested in Micro-ISVs, especially from India, check out the blog.