Directi Hackfest – 31st January, 2010

Ever since I learnt how to use git, there has been an urge from within to share my code, look at others and collaborate and develop something useful which everyone else can use. For me, usability is as important as functionality. Both are as equal as the other in general cases.


Long back I once asked Abhishek Mishra (ideamonk) if we could meet up and organise a small hackfest. The aim was to let know each other’s project, meet new people, learn new things etc etc. One in these *etc* was to complete our unfinished projects due to lack of time, motivation or even know-how of some of the aspect of a technology. Long back Abhishek and Yuvraj Pandian T (YuviPanda) have collaborated on a project named PyMos which was to generate Mosaic for any image. It was written in Python and works like a charm. Give it a try.

Since me and ideamonk live in Bangalore, having a hacking session being physically present would be better than working online. Abhishek liked the idea and tweeted whether anyone is willing to give us space for this event which has wifi. He instantly got a reply from The Chef of CodeChef and there we had a space in the Directi office. Thanks to all the kewl cool people at Directi with “Hacker Mentality” for supporting us.


Abhishek invited his friends for this session and two of them turned up – Ishaan Chattopadhyaya and Rohan Prabhu. Naresh from Directi was waiting for us. When we came in, there wasn’t any plan on what needs to be done, as we expected to work out on a common interest field. Ishaan had to speak on Location Based Search and me on CodeIgniter (PHP Framework). Abhishek had some projects like sahanapy and creating a GUI over apt-offline.


Till this time I had a feeling that we won’t be working much today since I didn’t knew anyone apart from Abhishek. To learn more, we first had small talks so that we can know each other and their interest of fields. Ishaan talked on Location based search which includes geographical searches like Google Maps. It wasn’t a very exhaustive one, but a pretty nice explanation of what all complexity lies beneath the hood.

At this time, we were total 4 people – me, Abhishek. Rohan, Ishaan and Naresh(Directi)

Then I went to speak on CodeIgniter which is a Framework of PHP. As opposed to what I said earlier, it actually doesn’t look like a framework, since it does not have many of functionality which make a F/W. This is what I explained – why it has only the things which we want, awesome documentation and a dead simple setup. It is just a set of classes which relive you from messing with  lower level functionality. Since it is very simple, there is hardly any overhead with speed. You get only the basic boring things and complicated and interesting things are left to you.


Abhishek showed us apt-offline which is an utility for getting updates, upgrades and packages on a Debian based box which does not have internet connection. The system on which these updates,upgrades and  package download is done can also be windows. Typical situation is you have a very slow or no internet at home, but blazing fast net at workplace. You would be tempted to use office net to download the packages and update your local index, install updates and install packages.

This utility was created by Ritesh Raj Sarraf long back and was just a command line based application. Abhishek had tried it and it works flawlessly. All which was missing was a GUI over it. It first looked like an easy task. Use Qt Designer and drag-drop every control and here we go. This way of development had a big flaw. The GUI developed is no better than the CLI since the clueless non-techies wont understand words like “apt-offline set”, “apt-offline get” etc etc. Even it took me a minute or two to actually get what all these mean.

Rohan can be called a Qt geek. The guy knows each and every class and it’s properties and event etc etc. This made us even more interested since he is always at disposal to help us and teach us more. By this it was pretty late and we were wondering if could do something worthy at that time. Then we decided to work only on UI as of now, make small changes in the core class to accommodate the GUI which is otherwise hard-coded. We had to dive in the code to get better knowledge of how apt-offline works as there is hardly any documentation apart from one written by Ritesh himself.


I don’t have much idea of Qt and this was a good learning curve. I agree that this hackfest didn’t pay off well as we expected. Most of the time we spent in discussing data structures, algorithms, Qt, git etc etc. which was again as usual – AWESOME.

My personal expectations from such sessions is to create some useful software and not just YAXX (Yet Another XX). Functionality, Usability, Accessibility and Documentation – all matters equally. I would also like to slowly slowly move on more tougher and promising things like kernel and filesystem level coding.

Winding up, this is just a start and I have great expectations from these sessions. I would like to again thank the Directi guys and the other people who were supposed to come but were not able to turn up due to their personal commitments.