Flickr Badge

Thursday, June 21, 2007

Marc Andreessen

Marc Andreessen started a new blog recently. If you are a startup company, this is one blog that you must read. Yes, it's that good. Read it now.

Tuesday, June 19, 2007

Bangalore Roof Top Film Festival

Bangalore is about to get it's own roof top film festival next month. Nice to see the idea spreading. It's kind of funny how most good ideas happen by accident. The initial idea was to watch the cricket world cup on the terrace. Great work by Sagaro in getting it the RTFF concept started.

Which reminds me.. when is the next RTFF in Chennai? And more importantly, what is the venue [let me guess on that one ;)]?

Now that Sagaro is officially still alive, I'm pretty sure that the next RTFF won't be far away.

Friday, June 15, 2007

Chennai Ultimate Frisbee

Some of us will be meeting up at the beach tomorrow morning to play Ultimate Frisbee. The group was started by Manu and his friends at ISB. We played for about half an hour last week. It was super tiring, especially on the beach. This time I'm bringing lots of water.

If you are interested, join the group and reply to this thread.

Date: 16 June
Time: 5.20 am
Place: Besant Nagar Beach

Erlang demo video

Harish Mallipedi has a very nice post pointing to an interesting erlang demo video.
This is probably the only time I have seen someone demo their programming language by making phone calls to each other. It is fun! Watch it.
Check it out!

Wednesday, June 13, 2007

Silver Catalyst v1.1 Released

If you were wondering why there were no blog posts for a while, you now know. Been really busy over the last ten days getting a new version of Silver Catalyst ready.

The new version was released today. The big addition is support for multi-lingual scripts. You can now create tasks and team members in languages apart from English.

Take a look at a screenshot to see an example.

The new version can be downloaded from the download page. Follow the upgrade instructions on that page to upgrade.

Saturday, June 02, 2007

Deploying web applications

A couple of recent developments have once again brought web app deployment to the forefront.

First, ThoughtWorks announced that Mingle will run on JRuby. The reason of course is because it makes it much easier to deploy the application. Most enterprises have a J2EE system already installed and configured. By using JRuby, ThoughtWorks can package the application in a war file which can be deployed onto the existing infrastructure.

Second, David started a google group to discuss a standard ruby on rails stack. From what I've heard, deploying a rails app is complicated. Which is one of the reasons why ThoughtWorks went the JRuby way.

What about Django? The standard Django deployment scenario is Apache - mod_python - MySQL/Postgres. Since most of the components are fairly standard and usually already installed, there is no real issue in deployment.

If you have anything non-standard though deployment can quickly become a problem. That really sucks.

Look at desktop apps. You install it and then click a shortcut and it runs. Imagine if you had to copy files all over the place and edit arcane configuration files in order to get a desktop app to run. You wouldn't stand for it! But this is exactly how the web app scenario is.

With the growing popularity of writing a web app for personal and team applications, where the application will be installed by a person or team on one of their own machines, deployment will become a big issue.

I bring this up because the agile tool I wrote had exactly this problem. It's for use by teams and I want teams to be able to set it up without mucking about with complicated deployment and configuration issues.

Luckily, if you are programming in Python, there is a solution to the deployment mess: Simply package everything you require — the python interpreter, a python webserver, an embedded database, django code, your application code — into an executable. Then your web app behaves just like a desktop application. That is exactly what I did with my tool. You can install and run it by running the installer and then clicking the shortcut icon in the start menu — just like a desktop application. Isn't that nice?

For a more detailed explanation on how this was done, check out my post on the other blog: Deploying a Django app on the desktop.

Tuesday, May 29, 2007

Wednesday, May 23, 2007

Advertising to the new consumer

Russell Buckley has a nice post pointing to a new Microsoft video about a "break up" between the old advertisers and the new consumers.

Old advertising was all about bombarding the consumer with messages, but what the new consumer wants is to have a dialog. Now, this is not news if you have read the Cluetrain Manifesto or any of the stuff that followed it, but it probably is news for a lot of traditional advertisers.

The new advertiser will be talking to their customers via blogs, message boards and social networks, especially if their target market hangs out online.

Sunday, May 13, 2007

Silver Catalyst 1.0 has been released!

Some links to get started
Another thing: This release of Silver Catalyst is beta license compatible. So if you helped out during the beta test and got a license at the end of it, you can use the same license with this release and it will work. Thats US$1,568 in value. Just to say thanks for beta testing the tool.

Tuesday, May 08, 2007

Proto.in 2007 SE

So the Summer Edition of Proto.in is coming up in July. Like the first edition of Proto.in, we will be selecting a bunch of startups to come down and present their prototypes to an audience of VCs and other folks.

First, nominations have opened, so if you are a startup looking for funding, customers or partners, then head over to the nomination page and nominate yourself. You can nominate yourself again, even if you nominated the last time around, as long as you weren't selected last time.

Secondly, we are looking seriously at the feedback we got from the first edition of Proto. As the first event of its kind, there were a number of things that happened well, but I'll be the first to admit that there were a number of things that could have been better.

This is a good time for me to say that the Proto blog for the second edition is up, so take a look.

One of the things we have been rethinking is the entry fee for the event. This time around we are going to charge Rs.10,000 for startups instead of the Rs.5,000 last time. In exchange, we hope to bring in more value for the startups this time. How? I'll post more about that in the days leading up to the event.

And thats the point really. The focus is in making sure that startups get good value for what they paid for. There has been a lot of brouhaha about the meaning of non profit, and whether we are making loads of cash and retiring to the Bahamas etc. Just to clarify, while I wish I was retired in the Bahamas, I am unfortunately still in Chennai. I'll just point to Vijay's reply (see comment #16). I don't really want to spend any more time on this topic because its kind of lame.

Coming back to the startups. Our main focus is in ensuring that the startups are happy. Which means satisfying what they want. Startups basically come to Proto for three things - funding, customers and partners. So we need to bring to them some investors and a high quality audience. If there are 200 people in the audience, we would like it to be 200 people who would like to do business with the startups, rather than 200 spectators.

We fell short on this on two counts last time around. First, the audience was mostly spectators. Second, the audience preferred to stay in the main hall through the event. We had hoped that a majority of the audience would go to the networking hall and meet with the companies, but they mostly decided to stay in the main hall instead.

This was pretty much a surprise to us all, because all the pre-event debate was about what to do if the whole audience hogs the networking hall after a good presentation and no one remains to see the next presenter.

We are thinking about how we can tweak the format this time to encourage the audience and the startups to mix.

One of the options is to have half an hour breaks after every few presentations. This would allow everyone to mix around without having the guilty feeling that you are missing something in the main hall. Obviously if we go this route, then either we have to go to two days of presentations, or cut down on the number of companies presenting. There is no way we can finish on time otherwise.

Another idea that is doing the rounds is having stalls for each company. That would act as a point of contact between the audience and the startups, and generally allow for more interaction. The issue then is of finding enough space to setup twenty or twenty five stalls.

If anyone has more ideas, post them here.

Coming back to the entry fees for startups. Some have said the entry fees are really high (and are getting higher this time..). We've debated this within ourselves a lot.

DEMO, on which we have modeled Proto, charges a startup US$18,500 as an entry fee. That's seven and a half lakhs when converted to Indian Rupees. Read that number again - seven and a half lakhs. For the first Proto, we charged Rs.5,000 and this time it will be Rs.10,000.

The same goes for the audience fee. It costs US$2995 to attend DEMO. It costs US$2495 to attend Techcrunch20. We charged Rs.500 (US$12.50).

Sure the numbers are not directly comparable, and the value provided for your money is different, but it still puts in perspective that Proto is very very affordable compared to equivalent events.

There is of course a lot more to write about, but this post is big enough, so other stuff will have to wait till later. Any comments welcome.

Friday, May 04, 2007

Mobile Monday Chennai

Some updates on Mobile Monday. It's coming up this Sunday, 6th May at the TeNeT hall in IIT Madras.

Time: 10 AM

Venue:

TeNeT - ADI Seminar Hall,
CSD Block, 3rd Floor,
IIT Madras.

Check out the wiki for the speaker and attendee lists: http://www.momochennai.com/

Do you buy comics?

If you do, then Fantagraphics Books is giving a 20% discount on all their books.

Unlike other discounts, this one is different and rather unique. To avail of the discount, you have to add their user to your network in one of the popular social networking sites: MySpace, Flickr, Orkut, Bebo, Tribe.net, Yahoo 360 or AIM Pages. Once you add them to your network, just mention your nickname and the website and you get 20% off all books purchased.

I took the opportunity to order Volume 1 and 2 of Usagi Yojimbo, Like a Velvet Glove Case in Iron, a couple of new issues of Mome and Bête Noire #1.

Tuesday, April 24, 2007

Upgrade to new blogger

I upgraded to the new blogger interface yesterday, which means that I finally have access to labels. Over the week I'll be labeling most of the 300+ posts in the archives. If you are reading this via a feed, it may happen that a whole bunch of old posts lands up in your feedreader. If that happens you can just ignore it as its only the labeling going on.

Monday, April 23, 2007

Chennai Air Show Photographs

I've uploaded a bunch of photographs from the Chennai Air Show that happened at Marina Beach yesterday. The photos are here:

http://www.flickr.com/photos/siddhi/tags/airshow/show/

Sunday, April 22, 2007

Code coverage for your Django code



One of the things that I like about Django is that it allows you to run unit tests on the code with relative ease. So I have a bunch of unit tests now, and I was looking to expand it. For that I first needed to know which parts of the code had good coverage and which parts had no coverage. I needed to integrate code coverage with the unit testing framework. In the end, it involved modifying a few files. This is what I did:
  1. First, I downloaded Ned Batchelder's coverage.py module.
  2. Next, get this script to colorize the coverage output. I saved it as coverage_color.py
  3. Put both files somewhere on the python path. I put it at Python24\Lib\site-packages
  4. Now we need to modify the django unit test runner to include coverage. Head over to your django\test directory and edit the simple.py file
  5. At the top, add the following line:
    import os, coverage, coverage_color
  6. Scroll down to the run_tests function. You will see a line like this:
        unittest.TextTestRunner(verbosity=verbosity).run(suite)
    destroy_test_db(old_name, verbosity)
  7. Modify it to read like this:
        coverage.start()
    unittest.TextTestRunner(verbosity=verbosity).run(suite)
    coverage.stop()
    if not os.path.exists(settings.COVERAGE_DIR):
    os.makedirs(settings.COVERAGE_DIR)
    for module_string in settings.COVERAGE_MODULES:
    module = __import__(module_string, globals(), locals(), [""])
    f,s,m,mf = coverage.analysis(module)
    fp = file(os.path.join(settings.COVERAGE_DIR, module_string + ".html"), "wb")
    coverage_color.colorize_file(f, outstream=fp, not_covered=mf)
    fp.close()
    coverage.erase()
    destroy_test_db(old_name, verbosity)
  8. What that does is to record the coverage when running the tests. It then creates a directory for putting the HTML output, creates the colorized version of the source and dumps it into the output directory. At the end of everything, it cleans up the coverage data
  9. We now need to configure the COVERAGE_DIR and COVERAGE_MODULES settings. Open your Django settings.py file and add the following lines:
    COVERAGE_DIR = "scripts/build/coverage" # Where the HTML output should go
    COVERAGE_MODULES = ["apps.catalyst.views", "apps.catalyst.models"] # The modules that you want colorized
  10. Save and run your Django unit tests. After running, you will have a html file for each module in the specified directory with the colorized coverage output
Check out the output: The lines in red were not executed by any of the unit tests. Looks like there is a function that I'm not testing at all!