Elements Hackathon 2015

Wouter ten Brink
Elements blog
Published in
3 min readDec 22, 2015

On Friday December 18th, we held our annual Hackathon at Elements, albeit in a way smaller and modest setting as most teams were busy finalizing projects for upcoming deadlines. Beforehand, we defined a list of interesting and useful topics to dive into. Coworkers that could join were asked to choose one of the topics, learn about it and give a short demo at the end of the day to show their findings.

tvOS

Carlo and Eltjona, both back-end developers, chose to challenge themselves looking into with the development of an Apple TV tvOS application prototype. The project was developed using JavaScript, TVML and Swift. They noted that as Python developers, it was a bit hard for them to work with Swift as it was their first time, but at the end they still managed to create a nice prototype of the small app.

Eltjona: “We had a time limit to go through the tutorial, documentation and deliver a functional app. It was a challenge that we have overcome with success. The small app we created consisted of one main screen that showed how many times the user clicked on the screen. Nothing ground-breaking yet, but at least a nice working example of the possibilities. At the end of the day, we held a presentation where we explained our workflow and showed the app prototype. The Hackathon was a nice collaborative learning experience and our project was very exciting since tvOS is still relatively new.”

Django Cookiecutter

Fabrizio and David worked on adding a full-blown Django project template to our arsenal of tools.

At Elements we are constantly finding ways to improve ourselves and the way we deal with our projects, for that reason we started working on having an in-house custom project skeleton for our upcoming projects, with that in mind, we set a base list of requirements:

  • We need a single tool to bootstrap new projects.
  • All our projects need to follow certain structure in the code.
  • A new project should be easily deployable and scalable.
  • The project should make use of our unique set of external services (Opbeat, Sentry…)
  • The bootstrap process needs to give us a fully functional and deployable project from scratch.

With all those requirements in mind, we embarked on a journey to see how could we provide this.

We started with the awesome cookiecutter library and cookiecutter-django as a base, that made our job a lot easier because cookiecutter-django already gave us a huge head start.

Next we adapted cookiecutter-django to remove all things we didn’t need and add some things missing. Mainly we added py.test as our main testing library and since most of our work includes django-rest-framework we made it part of our default skeleton. The result is a full dockerized environment to test and run our projects: if you combine that with a scheduler for Docker containers, you have a deployable project from start.

In conclusion, we now have a base project skeleton to use in all our Django projects, and we have the possibility of deploying our projects from day one without breaking a sweat, we are sure our clients will love that.

SpriteKit

Corné and Johan, both mobile developers, looked into SpriteKit, Apple’s 2D graphics rendering and animation library for creating games.

In the few hours they had, they were able to put together a small space invaders shooter game that even featured a cameo appearance of the unequaled Nyan Cat. Corné and Johan’s little game demonstrated the rendering of 2D sprites and the playing of audio.

Conclusion

There are way more topics to research and more technologies to discover, but the time was limited and there were also project deadlines to make. We are currently discussing to organize another Hackathon-like event in Q1 of the new year, more on that soon.

Follow Elements on Facebook, Twitter and LinkedIn!

Originally published at www.elements.nl on December 22, 2015.

--

--

Wouter ten Brink
Elements blog

WonderBit co-founder. Tech enthusiast. Lives for thinking up and delivering digital solutions to fix real-world problems.