Our debut hackathon

We truly went into the unknown when we hacked away White Rabbit at the Readmill hackathon last month. It was our first hackathon; we neither knew what to expect nor what was expected of us. I had been sitting on this app idea for over a year now and it was the perfect opportunity to get it started.

Acknowledging my own failures, I do value punctuality and driving long distances in Australia comes as no surprise. So I found myself often querying Google maps to figure out how long it would take me to get places. From there, figuring out at what time I should leave was not rocket science, but I also had to be conscious of when that time came. So, the app was simple, it would tell you exactly when you had to leave to make it to your next appointment on time.

The hack in a nutshell

We started by looking into the Google Maps API, sorting through the wealth of info it returns and figuring out how to test the app with the Android emulator. After some time, we could read our calendar events, synced from our Gmail calendar and figure out how far the event was and thus when to leave to get there on time. We were pretty happy but the hack didn’t look like an app. Not yet.

The rest of the early morning was spent digging up the Internet for some cool icons, beautifying the app and most importantly running the app as a service. The idea being, that a cute rabbit would pop up in your status bar whenever it was time to leave for your next appointment.

The screenshots

So, 20 hours later, the sun rose and ta-da, we had our hack fit for demo. With the ability to turn notifications on or off, the app only consisted of one simple screen and would then just run in the background.

Whenever it was time to leave, a notification would pop up in the status bar and it could be expanded to show the event in details.

The upshot

A rewarding weekend filled with caffeine, ping pong, pizzas and falafel.

Where are we now?

You might have picked up that the app name changed somewhere along the way; please read on.

It surprised us that Google had not implemented such a feature, given that all the data was there. This was back before Google Now came out last year and we had not revisited our thoughts for a while. We do know now that Google has indeed implemented this feature.

We also found out that there existed a White Rabbit app on Google Play released in December last year. It was most disappointing that the existing White Rabbit app didn’t make use of any graphics or reference to Alice in wonderland. We never thought that White Rabbit was this unique concept or unique name for that matter, but still heart-brokenly renamed our app “I’m late I’m late!”.

Nevertheless, I just wanted to dedicate this blog entry to our app that will remain for us, our first hack.

The repo is up on Github here.

Refactored Draw Engine code now on Github

I’ve just finished (perhaps) refactoring the Draw Engine source code of our Android app Open Secret Santa and have pushed it out to Github.

The Draw Engine code is responsible for creating the Secret Santa draws from a list of participants and the other participants that they are restricted from giving to. It’s not Android dependent and there’s a whole range of possible algorithms that could be used to generate the result.

The idea behind the refactoring was to make the Draw Engine more modular, rather than just being another package in the app. This would then make code more reusable and simplify the process of iteracting with the open source world; the new module can simply be employed directly as a Git submodule.

I’ve also added tests that allow collaborators to verify new engine implementations as they are created.

Finally, I’ve moved to using a Maven based build system, due to the better integration with Jenkins and Sonar which I have employed to track code coverage in the Draw Engine and the application itself. The Android archetypes available will make the release process much simpler too.

Anyway, take a look at the repo. I’m still getting a handle on some of the technologies, so feedback is appreciated.