Flickr Badge

Monday, March 31, 2008

Roundup of Barcamp Mumbai 3

Vijay and I were in Mumbai on Saturday for Barcamp Mumbai 3. I had checked the wiki the day before and there were over 600 registrations. Wow. Out of that I guess about 200-220 turned up, which is still a pretty big crowd.

There was some confusion at the start especially with the schedule board with a big crowd putting up sessions only for everything to be rearranged by track so that all startup demos go into one room and so on. Eventually by the time everything started we were running about 90 minutes late. The other problem was the wifi. I asked about five of the volunteers, but no one seemed to know the settings. I finally got the wifi configured thanks to one of the students sitting next to me.

I first headed out to the startup demo track and checked out demos of on2biz, MediaMelon and WikiSlice. on2biz is a workflow management web app. From the demo, it looked like it is targeted towards the sales cycle. MediaMelon is a video delivery network that uses p2p to deliver the videos. I would have loved to have seen a demo, but apparently the firewall was blocking the app. WikiSlice is a UI layer around wikipedia that allows you to browse topics better (grouping related pages, subtopics etc). They have also made it work with an offline wikipedia dump. My initial reaction was why anyone would want wikipedia offline, but the discussion brought up some interesting cases like rural access.

I headed out for the Firetalk track, but it seemed to have fizzled out, nothing was happening there. I went to the tech track. A talk on jQuery was going on but both the wifi and the projector were not working in this room. The laptop was connected to a computer monitor making the slides unreadable, and the lack of wifi meant that the online demos didnt work.

The next talk was on Asynchronous IO by Bhavin. This was a really good talk, and fortunately it didn't depend so much on the slides. A couple of points - having worked with async IO, it really complicates the application logic, especially state management, so thats a tradeoff that must be made. The other problem with not handling each request in its own process is that if there are any misbehaving callbacks, they can bring down the whole server. A pretty interesting talk.

Next was my session on some of the homebrew stuff that people have done on the Nintendo DS, following which was a session on Facebook API, except the speaker didn't show up, so I left the room. I spent the rest of the day floating between rooms and the lobby area.

I managed to catch bits of Aalaap's demo of linkbunch, Aditya giving a session on Startup Saturday and Aditi doing a session on the iAccelerator program for startups at IIMA.

Just as we were leaving, we met Grishma from Whirlybird Electronics. This is a company that builds measurement and control systems for unmanned aerial vehicles. Pretty cool stuff.

One thing I was quite impressed was how many people had heard about Proto. They would mostly go "Ohh you're from Proto." If you dont know what Proto is, it is a two day event that brings together the startup ecosystem - startups, investors, invited guests, industry experts etc - and gives each selected startup six minutes to pitch to the audience. The event also has a series of talks by industry experts on technology and business topics. See the agenda for the previous edition and join the Proto.in facebook page to get a better idea.

By the way, the nominations for the July edition of Proto have just opened. If you are a startup and you would like to present at Proto, head over to the nomination page and nominate your company

Thursday, March 27, 2008

Yellow burst


Yellow burst
Originally uploaded by Siddhi
Fireworks during the national day parade 2003

Tuesday, March 25, 2008

Why doesn't Django find my unit tests?

I ran into a Django gotcha today. I had an app for which it was simply not running the unit tests. The tests were there in the correct location. Django was correctly running the tests for all the other apps. Why was it not running the tests for this one? I checked settings.py to see if the app was in INSTALLED_APPS. It was. It worked fine through the browser, and the test code looked good. What was worse, it was working when I last ran it before the weekend. Why did it suddenly stop running?

I got my answer after some digging around in the Django source. It appears that you must have models.py in the app for tests to run. It so happened that this app has no models, only some views that do some calculations. Since models.py was empty, I had deleted it and didn't think too much about it. Whoops! The tests stopped running.

Once I had that figured out, the solution was simple - recreate the empty models.py, and the tests started running again.

This whole thing is really unintuitive though. Who would have thought that removing an empty file would cause the tests to stop running? There doesn't seem to be any connection between them at all.

In a broader sense, any piece of code that uses django.db.models.get_apps to get a list of installed apps is likely to run into this problem. Don't be surprised if you remove an empty models.py and then something breaks and you are left scratching your head as to what exactly happened.

This is exactly the kind of unintuitive "magic" that we Pythonistas hate :) Explicit is better than implicit etc.

What I don't understand is that the list of installed apps *IS* explicit. It's sitting there called INSTALLED_APPS in settings.py. Why does Django go about hunting through the models when it could just read this value? Any clues?

Saturday, March 22, 2008

Has Django reached the tipping point?

Antonio Cangiano thinks so. The numbers used to come to this conclusion are not exactly scientific, but there's no doubt that Django is getting bigger (and better) everyday.

Friday, March 14, 2008

Tracking upcoming community tech/startup events in India

If you've been reading this blog via an RSS reader, you might not have noticed a new addition to the blog sidebar. With the number of unconferences and community tech & startup events rapidly increasing over the last year, it's been getting harder and harder to keep track of what is happening.

A few weeks ago, I created a widget to pull in the RSS feed for the upcoming unconference and tech/startup community events in India. If you visit the blog and then scroll down the right sidebar, you'll see this widget with a list of upcoming events.

The cool thing about the widget is that its sharable. If you click the "Options" menu below the widget, you'll get options to share it in a number of ways. If you would like to put this widget on your blog, click HTML and copy and paste the code onto your blog. You can also put it on a whole number of social networking sites. There is even an option to put it on your desktop as a gadget (you'll need to download some software though).

So much for sharing the list of events. How can you get an event onto this list? Good question. These are the steps -
  1. First, you'll need an account at Upcoming. If you have a yahoo account that should do
  2. Next, join the group India Unconferences and Events. This is the group that tracks the events
  3. Third, create the event on Upcoming
  4. Once the event is created, you can assign it to the group by clicking the "Send to group?" link on the right sidebar of the event page
  5. Once you have tagged the event in the above manner, it will be picked up by the widget and displayed wherever the widget has been shared (pretty cool no?)
So, hopefully you'll no longer have a situation where you learn about an event only after reading the post-event coverage :)

Thursday, March 06, 2008