Digital Rube Goldberg Machine

Last weekend I attended Hackference’s weekend hackathon which has to be one of the best hackathon’s I’ve ever attended! The message was clear “have fun and try something new” which was refreshing since the last few hackathons have really felt very sponsor-focused in London. There really isn’t enough of a focus on developer-heavy hackathons for simply learning new things and showing off what you’ve managed to make in 24-hours.

It was the first time I travelled up to Birmingham for a hackathon and it really was worth it; as always I met plenty of amazingly smart people, worked together with them and built a pretty-much-fully-working hack within 24-hours. I turned up to the event already knowing Saed and Siddharth and joined forces with Mike and Laurence who we happened to be sharing a table with.

Our goal was very ambitious; it was to build a Rube Goldberg Machine of technology using as many APIs, cloud platforms and programming languages as possible to pass through a keyword which we set. The previous world record was 15 and we wanted to beat it.

Seeing as we all came from radically different developer-backgrounds we decided to split up and work on a few things each and figure out how to link them up later on which worked out perfectly fine surprisingly!

We decided to prioritize learning over winning at the hackathon; so we all explored ideas which would give us excuses to learn and build something we had always wanted to, but never had the chance.

Our Rube Goldberg Machine

01SaedAndroid phoneJavaNFC Ring sends user to URL
02SaedOpenShiftPHPWebpage takes input of keyword and emails it via SendGrid reads email and posts keyword as a tweet
04MikeArchlinuxPythonTweet is detected and sends the keyword to systm logs
05MikeArchLinuxnode.jsDetects log and saves keyword to file
06MikeArchlinuxBashFile change detected, starts cluster of 3 VMs with a shared directory
07MikecoreOSBashKeyword is read from network and Sent to etcd
08MikecoreOSBashKeyword is recieved from etcd store, instructs VM3 to http keyword
09ManojMicrosoft Azure.NETKeyword sent to Central US Data Center
10ManojMicrosoft Azure.NETKeyword sent to East US Data Center
11ManojMicrosoft Azure.NETKeyword sent to North Central US Data Center
12ManojMicrosoft Azure.NETKeyword sent to South Central US Data Center
13ManojMicrosoft Azure.NETKeyword sent to West US Data Center
14ManojMicrosoft Azure.NETKeyword sent to North Europe Data Center
15ManojMicrosoft Azure.NETKeyword sent to West Europe Data Center
16LawrenceHerokuHaskellKeyword Encrypted with military level AES-32 encryption
17ManojMicrosoft Azure.NETEncrypted keyword sent to Brazil South Data Center
18ManojLocal PCtacofancyEncrypted keyword is encrypted into a taco recipe
19ManojMicrosoft Azure.NETTaco recipe for kncrypted keyword sent to East Asia Data Center
20ManojMicrosoft Azure.NETTaco recipe for kncrypted keyword sent to Southeast Asia Data Center
21ManojMicrosoft Azure.NETTaco recipe for kncrypted keyword sent to Japan East Data Center
22ManojMicrosoft Azure.NETTaco recipe for kncrypted keyword sent to Japan West Data Center
23ManojLocal PCtacofancyTaco recipe for kncrypted keyword is decrypted from taco recipe
24LawrenceHerokuHaskellkncrypted keyword is decrypted from AES-32
25ManojMicrosoft Azure.NETKeyword is shown on the screen... and the crowed goes wild!
26ManojMicrosoft Azure.NETKeyword is texted via Twilio to my mobile

We even managed to incorporate a hardware hack thanks to Siddharth who programed a LED display to show the stage number as the machine progressed through each level.

We Won! with our almost-nearly-fully-working hack

We also got a really nice mention from Steve Corbet who was the main sponsor at the event in his blog which can be found here.