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
|01||Saed||Android phone||Java||NFC Ring sends user to URL|
|02||Saed||OpenShift||PHP||Webpage takes input of keyword and emails it via SendGrid|
|03||Saed||OpenShift||PHP||Context.io reads email and posts keyword as a tweet|
|04||Mike||Archlinux||Python||Tweet is detected and sends the keyword to systm logs|
|05||Mike||ArchLinux||node.js||Detects log and saves keyword to file|
|06||Mike||Archlinux||Bash||File change detected, starts cluster of 3 VMs with a shared directory|
|07||Mike||coreOS||Bash||Keyword is read from network and Sent to etcd|
|08||Mike||coreOS||Bash||Keyword is recieved from etcd store, instructs VM3 to http keyword|
|09||Manoj||Microsoft Azure||.NET||Keyword sent to Central US Data Center|
|10||Manoj||Microsoft Azure||.NET||Keyword sent to East US Data Center|
|11||Manoj||Microsoft Azure||.NET||Keyword sent to North Central US Data Center|
|12||Manoj||Microsoft Azure||.NET||Keyword sent to South Central US Data Center|
|13||Manoj||Microsoft Azure||.NET||Keyword sent to West US Data Center|
|14||Manoj||Microsoft Azure||.NET||Keyword sent to North Europe Data Center|
|15||Manoj||Microsoft Azure||.NET||Keyword sent to West Europe Data Center|
|16||Lawrence||Heroku||Haskell||Keyword Encrypted with military level AES-32 encryption|
|17||Manoj||Microsoft Azure||.NET||Encrypted keyword sent to Brazil South Data Center|
|18||Manoj||Local PC||tacofancy||Encrypted keyword is encrypted into a taco recipe|
|19||Manoj||Microsoft Azure||.NET||Taco recipe for kncrypted keyword sent to East Asia Data Center|
|20||Manoj||Microsoft Azure||.NET||Taco recipe for kncrypted keyword sent to Southeast Asia Data Center|
|21||Manoj||Microsoft Azure||.NET||Taco recipe for kncrypted keyword sent to Japan East Data Center|
|22||Manoj||Microsoft Azure||.NET||Taco recipe for kncrypted keyword sent to Japan West Data Center|
|23||Manoj||Local PC||tacofancy||Taco recipe for kncrypted keyword is decrypted from taco recipe|
|24||Lawrence||Heroku||Haskell||kncrypted keyword is decrypted from AES-32|
|25||Manoj||Microsoft Azure||.NET||Keyword is shown on the screen... and the crowed goes wild!|
|26||Manoj||Microsoft Azure||.NET||Keyword 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.