At Barcamp Bangalore 10 on Saturday, I talked about GTD, Pomodoro and Productivity:

NOTE: If you have trouble viewing the web version, there is also a PDF version of my slides.

I was nervous when preparing for this talk because it is not a concrete topic, it’s something abstract and perhaps even illusive for many people, so when I started off my session, I asked people to set aside their cynicism for half an hour, I then established some source credibility, explained my view of how I look at productivity, success and happiness, and how GTD and Pomodoro tie into all this. The presentation above is quite self-explanatory, so I’ll not repeat that again, except for the demo-on-whiteboard part where I did a live session about how to do Pomodoro.

(photo by @the100rabh)

The session went surprisingly well, and most people grokked what I was explaining, which I’m still very surprised about. I guess part of it is because (1) the audience was so interactive and asked questions and (2) most people in the audience have already tried experimenting with todo lists and GTD, so it is a problem they were already facing, so they assimilated what I was saying very quickly.

(photo by @anenth)

The best part about Barcamp is that I got to talk about a personal obsession of mine and I would have otherwise probably never gotten a chance to discuss such a topic in-person with other people who are interested in this topic.

Some of the feedback on my session:

It was even more fun to hear from people when days after the conference, they were actually trying out the Pomodoro technique:

There were many other good sessions in Barcamp that I liked, I especially loved the sessions about the Namma Cycle project and about ShreeKumar’s adventures and how to survive while doing a yatra across the country, talking the locals, etc.

And I really do hope that the Namma Cycle project takes off – Murali who effused passion when talking about it has shown a lot of progress already – got sponsorship, got government buy-in, and is starting off at Bangalore University and has big dreams about turning Bangalore into a cycling city. That seems to be already under way, with the new cycle stand near M G Road.

Overall, even my non-techie wife thoroughly enjoyed the day and was inspired by the people she met at Barcamp. And that really says it all for me on how much I enjoyed going to Barcamp again.

Special thanks to SAP Labs India for hosting the Barcamp in their beautiful campus and the great lunch as well. And not to forget, all the organizers of BCB10, kudos to you guys for making it happen!

P.S. Regarding the Quantified Self phenomenon, I highly recommend reading the New York Times article by Gary Wolf on The Data Driven Life.

Update: Just remembered a related old article of mine – Creativity and Organization is Impact”.

I quickly (read as “hastily”) put together this short presentation for a discussion session at the upcoming Barcamp. The question is “With the advent of cloud computing, cloud databases, RIAs, APIs, etc., are web developers and their frameworks evolving and keeping up with the times?”

If you are interested in this discussion, please click the “I Want to Attend” button on this session’s page at the BarCamp Bangalore website.

If there is not sufficient interest, I will drop this session because there seem to be 88 sessions registered already, I have no idea how so many sessions are going to fit into just 2 days.

For more background material on this topic, see my Website Making Howto wiki page.

Today, I talked at Mukthi 6.03 at M S Ramaiah Institute of Technology.

First of all, M S Ramaiah is a huge campus. So huge that the students actually tell the teachers that they were late for class because they couldn’t find the class, and that’s a fact. I made sure that Srichand, the student who took me inside to the auditorium led me back to the front gate as well, so that I wouldn’t get lost.

The auditorium where the talk was scheduled was in the new building, so it was plush, comfy, and it wasn’t a big auditorium which was perfect. The talk (introduction to Python) went well, the students were alert and interactive (even though the talk was between 5-6 pm) and I was especially happy with the range of questions that came at the end of the talk.

After the talk was over, one of the students announced that Mukthi was originally planned as a 1-day event, but later they made it a 2-day event because I had informed them that I would be available only on 17th to present a talk and not on the 18th. Whoa!

Why won’t I be here on 18th? That’s where my next post comes in.

Yesterday, I talked about Python at the FOSS Day at Mount Carmel College For Women.

I was not able to attend the earlier sessions in the day because my team (at work) is making a release soon and as expected, that means crunch time. I managed to make time for presenting my own talk and attending Shreyas’ talk (who spoke after me).

Before I started my talk, Surjo warned me to make my talk as non-technical as possible. I was informed that some of the earlier talks had not been well received by the audience since it was “too technical”. That reminded me of Guy Kawasaki’s notes from a Stevenote where he says it helps that Steve has a beautiful operating system to show off, and for me, it helps that I have a beautiful language to show off, heh.

Earlier in the day, I had reminded myself of Simon’s notes on public speaking where he makes two good suggestions:

  • Show, don’t tell
  • Never, ever put up a whole slide full of code

Following this advice, I had stripped down the content of my presentation (the same presentation that I have used earlier for beginner Python talks) to the bare minimum.

The mistake in my last talk at was that I had made the slides too detailed and I suffered by trying to “stick to the slides”. Since I had avoided that this time, I had a free hand in what I spoke and actually used the slides for what they were meant – a reminder of what topics to talk about and not a replacement for the speaker. As a result, my talk was better than I anticipated.

Since I was asked to try to make the talk non-technical and I had also perceived the audience to have a short attention span, I decided to make the talk more about interaction rather than about Python. Most of them knew about C, so I followed the principle of “always start from the known to the unknown” and kept comparing C to Python and that helped to keep them interested. I knew the talk was going well when I compared their 6-line version of Hello World in C to 1 line in Python, and when I demoed some simple statements and asked them “I just ran a program, but where’s the semicolon?” – that surprised them and they started clapping. From there on, it was all about keeping them enthused.


I asked them if they liked cricketers or film stars, and they gave an overwhelming response that cricketers were preferred. So, I wrote a Python list and added names of cricketers they liked (Irfan Pathan is popular indeed) and asked them how they would get the second and third cricketers names in a C array and compared that with slicing in Python and that received cheers as well.

One of the few mistakes I did was waste a lot of time in the last part of my talk trying to download FeedParser to demonstrate how to use it.

After the talk was over, I received some good feedback as well as questions, which is always a good sign. It’s good to know that I’m improving my speaking skills. I’ve come a long way from a kid who thought thrice before standing up in class.

Interestingly, this has been my 10th talk on stage.

Today morning, the first session was a Linux Kernel roadmap by Jonathan Corbet. Although I’ve never been a kernel-level guy, the talk was interesting and he clearly explained how features have been added and improved over the various versions, and how the development process has improved and become more “professional.”


Then, it was my turn to talk and I talked about TurboGears. The talk went pretty good and it was well-attended which made me quite happy even though I had some tough competition, heh.


I did make two mistakes. First was that I got worried about the time I had to finish the talk, and second, I concentrated too much on the slides. Whenever I have presented well (which has been most of the time, thankfully), I tend to leave slides as guidance for the audience, and have my thoughts free-flowing enough to be coherent and entertaining. Well, I don’t think I’ll be making these mistakes again. However, I did get good feedback about the talk from various people, and a good number of questions after the talk, which is always a good sign. For those who couldn’t attend, my TurboGears slides are online.

And one more thing … my book’s website is now running on TurboGears! This is only the second public website ever running TurboGears after

Then, I attended Gopal_V‘s talk on programming in the Mozilla platform. He gave a very detailed approach to creating Mozilla applications and how to go about things. I must get the slides from him later, but it shouldn’t be a problem grabbing hold of him since he works in the same floor as me at Y! His slides are online.


I was on my way to the OpenLaszlo talk, but took a peak in the Ruby on Rails tutorial. Does Ruby on Rails really need the CREATE TABLE SQL statements to be written by hand? …. I think I prefer the SQLObject approach of having all the database-schema in one place as simple Python classes instead of having separate database creation and database manipulation (ActiveRecord) parts.. Update: The new RoR migrations feature is simply brilliant. Thanks to Mark Ramm for the tip.

Other than that, Rails looked cool. The directory structure created by rails as well as the test-driven nature was good.

Then, I got into the OpenLaszlo talk by Nirav Mehta. I had seen the OpenLaszlo demos before and used to follow Oliver Steele’s blog, but I never got around to writing anything with it. Nirav kept the audience engaged and showed off some eye candy stuff that OpenLaszlo provides from images to animation. Somebody in the audience asked him to put audio as well, but unfortunately, he didn’t have any mp3s.

Then, my friends and myself headed to the food court and then went around the FOSS Expo section. The Sun Microsystems booth was the best one and they showcased real open source projects such as Belenix (the OpenSolaris LiveCD) and NetBeans. I got a demo of OpenSolaris’ DTrace functionality and it was pretty impressive.


Sadly, the other stalls like the Google and Yahoo! booths didn’t showcase any open source projects at all! When Google has open sourced many projects and Yahoo! has contributed open source stuff such as the Alternative PHP Cache, why can’t they show it off and demonstrate they too are part of the community (and invite people to join the company), which I thought was the point behind the stalls…


Then, I saw Pramode in the Phoenix stall and it seems people are showing interest in Phoenix which was good to hear. Nearby, Anush and Tejas were in the Python stall and trying to entice people to talk about Python, heh.

Soon, we were back in the Intel hall for Jaya Kumar’s talk on GPL and non-GPL code interaction in the Linux kernel. He stressed that binary-only kernel driver modules are not a good idea and his explanation was pretty simple – it screws users on other architectures and users using different distro-compiler-etc. combinations. Another point is that they are not respecting the people who wrote the Linux kernel. He quoted Linus Torvalds saying it has to be a two-way street, if somebody wants to write something using the Linux kernel, they have to contribute back as well. Jaya Kumar was over-shooting his time slot but he had a lot of interesting examples and incidents to talk about. I think he had more than 100 (sic) slides in his presentation. Outside the hall, Jaya Kumar and Harald Welte were mobbed and they had a good time interacting with others.


Then, I attended the “FOSS in Education” BoF. Philip, Manish and Praveen were also there. The discussion involved quite a number of issues and Praveen has added a nice page in the FCI wiki regarding the discussion. The focus was mainly in creating awareness, and getting students interested, at the high school level. The emphasis shouldn’t be in simply using open source but stressing the points on why open source is good for everybody, and how the community is the core strength.


Phew. As you can gather, it was a long day but an exciting, educative and interesting one.

I was looking at and hoping to look for any insights from the many talks that I missed today (there are 6 tracks running in parallel!), but it seems very few people write such long posts as dumb me!

Last Thursday (24th November, 2005), there was a FOSS Day at PESIT, my alma mater.

Typically, I managed to leave office and reach PESIT at 4.10 when I was supposed to be there at 4. The venue had shifted from the hall in the “new” building to the MCA seminar hall, because of confusion on who had booked the original hall or rather who gets to use it.

When I entered the MCA hall, there were quite less number of students, but they slowly started trickling in and finally filled up the place. I met one of my teachers (after 2 years) and he still remembers me by name. That was cool.

The first talk was by Tejas on ‘Why FOSS?’ where he gave the “free as in freedom, not free as in beer” speech. I don’t think there has ever been a FOSS introductory talk without that phrase. Then, he dispelled some FUD on FOSS. Yes, open source software does not necessarily mean free software but the vice versa is true.

Next was Anush talking on FOSS development.


Then, it was my turn to give my usual ‘Slither Away with Python’ talk. This must be my fifth or sixth Python intro talk that I have given :-).

I was worried that my coughing would affect the talk, but Vicks VapoRub came to the rescue. Man, that stuff is powerful. Anyway, I digress…

It’s fun to introduce a language like python to students who know only C/C++. The first thing that amazes them is that you can type at the interpreter prompt and gives back results immediately, no edit-compile-run cycles. One of the evergreen examples is the swapping. I asked them on the algorithm we learn on how to swap variables in C and they promptly gave me the function that uses pointers to achieve the same and I said ‘This is how you do it in Python’ and typed b, a = a, b. Of course, you can do that in almost any modern interpreted language these days, but they didn’t know that, heh. One of the cool things that is specific in python is the slicing such as a[:4] to get the first 4 characters of a string and the loop, which the audience was impressed with.


Shreyas was next. He was my classmate, I was meeting after a long time. He was supposed to speak on debugging. Although, he had a 17″ PowerBook with him (with a “Suse Linux inside” logo, although he was still using Mac OS X :-P), he didn’t have any source code to demonstrate the talk and there was no connectivity at college.


He did talk about the importance of real world skills and how learning to read code is one of the most important skills that a programmer needs to learn. He gave some examples from his own experience. One of the examples was how he was working on some OpenOffice bug along with Michael Meeks and Miguel de Icaza. He started working on the problem while these guys went out for a break and when they returned, they solved the problem in a jiffy. He asked “How did you guys solve this so fast?” assuming he was pretty smart compared to them (no comments there from me). They said “I had seen the code before.” There you go. Simple and straightforward answer, but a lot to understand from that. The students were quite inspired by his talk.


This was followed by Praveen speaking on the education software initiative.

Atul was late for his slot. Unfortunately, quite a few students left during this gap. Well, it was their loss, because Atul’s talk was thought-provoking and he really made the students feel that they can do something innovative and they can do it now. He gave many examples of students such as Kalyan, Shreyas and even me (okay, I admit it, I was surprised to be part of that list).


Two of his slides said “There are two times you can innovate. One is when you are a student. The other is when you retire.” …. I hope that’s not an absolute statement, because that means there’s no hope left for me! However, it is true that I have not been able to do so many things that I wanted to do, compared to my college days when I had done a lot more.

When you are a student
The other is when you retire

Overall, the day was successful and it seems quite a number of students have got enthu to do stuff now.

Note: Tejas and Praveen have entries regarding the day on their blogs.

I am giving a talk on Python tomorrow at the Renaissance 2005 festival at Government Engineering College, Trichur, Kerala, India.

Renaissance 2005 is a festival about Free and Open Source Software (FOSS) – they have many talks, seminars and competitions planned for the 3 days. As they say in their website:

It is time to acknowledge the Renaissance, FOSS is effectuating in the software field all over the world. It is time to appreciate its sheer power to obliterate the digital divide in our society by making the software available to all user class.
The event will enhance the gist and gravity of software freedom and how each can benefit from it.

Also, see the event brochure and the list of talks.

I have to board the train in exactly 2 hours and I am still in office… gotta run!

Yep, that’s right. I’ll be taking over the stage at LB04 to convert Perl/C++/Java programmers into Python programmers under an hour ;)

The talk is titled ‘Python for Programmers’ and a short blurb follows:

Python for Programmers

This talk/tutorial is designed to introduce Python to experienced programmers and get them started on it quickly.

First, the necessary backgrounder stuff on Python is introduced. Then, the main features and virtues of Python are introduced, highlighting the factors that make it different from other interpreted languages.

I always take an example-oriented approach to teaching the language (just like in my book at and using examples, I intend to give a quick review of important topics such as the syntax, the looping statements, functions and OOPs, the built-in data structures, exception handling and the standard library.

The examples give enough information to make it easy to understand but also such that the audience does not have to consume too much information in a limited time.

This will be followed by some real world examples of some interesting areas where Python is easy to use such as wxPython for GUI making, Twisted library for networking and the IronPython and Jython software for .NET/Mono and Java users respectively.

A brief outline is mentioned below:

  1. Python for Advanced Programmers who know Perl, C++,etc.

    • What’s unique about Python
    • Examples on looping, functions, classes
    • Built-in data structures
    • List comprehensions, Exception handling
    • Sampler on advanced stuff like metaprogramming
    • Gotchas
  2. Twisted for Networking

    • Introduction
    • Example, say a blog reader or ssh client
  3. wxPython for GUI
    • For building cross-platform GUI apps
  4. IronPython for .Net/Mono-ers and Jython for Java-ers
    • Interoperate with .NET/Mono and Java

See you there!