On Saturday the 11th February 2012, a colleague and I organised a “hack day”. For anyone not familiar with this concept it is a day of ultimate geekiness where you write software for fun (is there any other way to write software?).
A number of us squashed into my colleagues flat with laptops, keyboards, mice and enough sugary snacks to put us all into a coma. We had done some organisation before the day, which included:
- deciding on a programming language to use
- setting up a GitHub repository
- defining some features of the chosen language that we believe people should know before attending
- collecting a number of ideas that we could develop on the day
This was a closed day where we invited a number of friends and colleagues. We sent an email containing all the detailed information for the participants, which is summarized above.
Our chosen language was Python as we thought this was a nice language that we all had a familiarity with and we also had an interest in using Google app engine (which is an Platform as a Service that supports Python). We tried to generate ideas around these technologies. We agreed that all code generated from the day would be open source on GitHub.
The idea we finally decided upon was a photo mosaic generator. Google app engine turned out to be great for this task as google provide a number of image manipulation utilities in python as well as a database that is easily created from the Python framework provided. We had 5 people in total and decided to split off into two teams. One team would work on the core utility of the mosaic maker and the other team would work on a GUI front end.
After the initial discussions of the idea and the splitting into teams, we all worked away for a number of hours before breaking for lunch. The usual suspect of Pizza was ordered and after lunch we returned to our computers to continue hacking away.
About 9 Hours after starting we had a working Mosaic maker, a database to store the images and a GUI that allowed you to upload images into the database and create the mosaic from them. The code still needs some work to improve the quality of the mosaic, allow the selecting of the main image that forms that background for the mosaic and to display the mosaic within the main page of the GUI (you currently get re-directed to a new page).
After this is complete the app will be uploaded to the app engine (it currently runs on our own local installations of the app engine) and I will provide a link to it.
I learnt a great deal about Python, Google app engine and the structure of a hack day. I would say that if you have the opportunity to get involved in anything like this you should jump at the chance. Its a great way to learn something new, a great way to network outside of work and a fantastic opportunity to have a really geeky day with like minded people.
Code Jam Hack Day 2 is on the cards, watch this space!