Fivium Hack Day 2015
In my previous post I wrote about organising the Fivium Hack Day 2015, this post will be about how the event went, what people created and who ended up going home with prizes.
After all the organising we had around 15-20 staff taking part, which for a company of 40-50 isn’t bad considering not everyone in the company is a developer. Everyone taking part was a software developer or support tech, but as we started on a Friday at lunchtime we did get some idea discussion with some of the staff from other roles in the company such as software testers, marketing and company directors. Having the event start on the Friday afternoon gives a good chance for non-developers to take part where they can and to get a view of what the rest of us are doing which helps spread knowledge and encourage ideas.
By Saturday afternoon we had produced 13 projects suitable for demoing. Giving a demo of a hackday project is usually one of the harder parts for me when I take part in other hack day events so when I organise the Fivium Hack Day I try my best to make it a fairly casual affair where people are only loosely time constrained and have a chance to explain what they did and why.
No coding event is complete without enough food to keep everyone going and just as last year we started off with a mostly-savoury snack table with plenty of sausage rolls, cheese and crackers as well as crisps and dip before going for more traditional hackday food with pizza in the evening.
The first project to be shown was Mustache by Pete. Pete and I both work on the FOXopen java web framework which Fivium use for almost all projects and Mustache was an extension of the database querying functionality allowing developers to run their query through the mustache templating engine before passing it to Oracle. This means you can transform the SQL first and get more targeted execution plans which can mean better performance but it comes with considerable security considerations.
Slobber by Aled was a project to replace one of our internally used tools at Fivium called Clobber. At Fivium our application developers typically edit files locally which need to be put in the database, as a LOB, for the application server to pick up. Clobber, and now Slobber, are tools which watch the filesystem and whenever certain files change promotes them to the database. Slobber is a vast improvement on the aging Clobber tool, it was written using NW.js and took advantage of another internal Fivium project called ScriptRunner to push the code to the database nicely.
One of the Fivium placement students, Jon, was an IRC junkie. Sharing files on IRC can be a pain and there’s a few tools out there which help facilitate easy file sharing between IRC rooms and users and Jon added to that collection of tools with File Foo. I forget exactly how this worked but I believe it was an NW.js based tool with a pure Node.js backend.
This was one of the more inventive hacks by another student Mike. The Fivium office is open plan and other noises in the office can sometimes be distracting. Instead of listening to loud music all the time this project, via a Rube Goldberg series of hacked together code and tools, would work out the background noise volume and adjust your music volume enough to cover it with whatever you were listening to.
Phil, one of Fiviums excellent support team, worked on a project to convert Grindstone report exports to a format that works with the internal timesheet system we use for HR purposes. While most of us developers only have to fill in a few projects on the timesheet each day someone supporting multiple systems can get quite a complex time sheet by the end of the month. Thankfully this tool solved that and it looked like a definite productivity saver for most staff.
We deal with a lot of XML data stored in Oracle at Fivium. Unfortunately our Oracle Database IDE of choice, Toad, is rubbish and crashes often especially when dealing with XML and newer versions of Oracle. Chris worked on XML Edit which was JavaFX based XML editor for Oracle as Java and the Oracle JDBC actually have okay XML support.
Another Chris, this time a student, worked on a project which ran as a Perforce Trigger which checked all source code when it was committed for comments containing the word TODO. Any matches were pushed to the source-committers linked Wunderlist account to remind them about their unfinished code. An excellent idea I thought.
One of our developers, Laurence, worked on this hard to pronounce project to try and visualise various release stages from Jira, our bug tracking tool. We typically have projects where multiple releases can be at various stages of deployment and testing and this tool was meant to make it all easier to grok at a glance.
Developed by James, one of our developers, YACC was Yet Another Calorie Counter that worked by scanning barcodes on food and drink you consumed and looking up nutritional information online to create a tally of what you’d eaten and drunk. Unfortunately he couldn’t make the demo so he gave me his project and some points on how to demo it on his behalf.
As mentioned in the description of Mustache we use a java web framework called FOXopen at Fivium. John, a support team member turned developer, created a way for us to run R scripts from FOXopen and display the results in the web pages returned. Not only was this one of the most technically complex projects I’ve ever seen at a hack day but the demo for it was amazingly flawless and the project very feature rich!
Ben who created a mug and QR code based login system last year was back this year with another QR code based login system. Only this time it was a slightly more sensible implementation of Two Factor Auth with Time-Based One-Time Passwords for FOXopen.
As mentioned in the XML Edit description most developers use a tool called Toad at Fivium to do most of our Oracle related tasks and unfortunately for us Toad is rubbish. Myself and my usual collaborator Matt decided to team up and create our own version of Toad using NW.js to give us a nicely flexible front end but bridging to Java so we could use the Oracle JDBC to get good XML support and other Oracle Database related goodies. We ended up with something surprisingly fully featured for a hack day and even had time to bake in some nice easter eggs. As this was my project I feel it’s okay to add a link to the source code but be warned that this was very much coded just to get us through the demo and contained all sorts of hacky horrors to make our smoke and mirrors: https://github.com/Palmr/dartfrog (Note that we changed the name at the end from DartFrog to Pepe)
Most hack days I have been to tend to have one or two technical trends on show. For example, at Hacked.io back in 2013 Phillips were debuting their Hue smart lighting system which featured heavily in demos.
At last years Fivium Hack Day there was quite a variety of technology used, no one framework or language seemed to be more popular. This year however Node.js featured as the major player. As we’re mostly web developers it seems that the explosion of work surrounding projects like NW.js (previously known as Node Webkit) and Electron makes using Node an attractive proposition for native-style applications.
Top prize went to Matt and myself for Pepe. Last year I didn’t work on any projects which were up for prizes but this year I felt it was worth a shot and hopefully not too cheeky to organise an event and then potentially get the main prize.
The main prize was a Parrot AR Drone which we accepted on the condition that we race them around the office at some point. We attempted this a few weeks later and unfortunately I don’t think Matt nor myself will be winning any drone races any time soon…
Second place went to Aled for Slobber after many close rounds of voting.
He won a Logitech MX Master mouse for the work put in to re-vamping a tool most staff at Fivium use every day. Since the hack day he has worked more on the project to polish up the user experience and hopefully it will be used by everyone here soon.
Unlike the main two prizes which were given out based on a group vote by everyone for the projects people liked best the mystery prizes were bestowed by Matt F, one of the directors of Fivium who was there for all the demos on Saturday.
Matt and myself won the Business Cat mystery prize for having a project which was the most business-viable project. The prize was The Lean Startup, a book on entrepreneurship and business innovation.
For his exceptionally hacky implementation of Auto Volume Mike won the Cowboy Coding prize which was a fancy cowboy hat and a copy of Clean Code.
For his rather hastily coded Mustache project Pete won the Just Ship It prize which consisted of a rather large Titanic model making kit and a copy of Fail Fast, Fail Often. It should be noted that Pete wasn’t there to receive his prize, hence the photo of him placed on top of the Titanic model.
Chris rounded off the Mystery Prizes winning the Code Monkey prize of Sea Monkeys for his project where he churned out plenty of Java code and had to work with Java FX, which is worthy of a prize in itself, on his XML Edit project.
All in all the calibre of projects this year was far better than I’ve seen at any other hack day. Nobody had a single error while giving a demo and all project ideas initially stated on the Friday afternoon had been developed and then expanded upon by the Saturday afternoon.
Everyone seemed to have a good time doing it again thankfully and I’m sure there will be another post coming next year detailing a third hack day.
And finally, no hack day would be complete without at least one facepalm being captured on film.