Ten fun projects to improve your hacking skills

These pages are the support information for my “10 fun projects to improve your hacking skills” talk on the RailsWayCon 2010 in Berlin. Here you can find additional information, links and code for all the projects.

News

Update on 4th of June: I added some links – There’s still a lot of info missing – I will try to update as much as possible on this until next week, since I will be on vacation for a few weeks after that.

The badges and how to get them

During the RailsWayCon presentation I promised to come up with “real badges”. These will most likely be standard buttons with a custom design. I have a colleague who’s got a button press, so this will be feasible.

To claim a badge, send the description, photos, links to videos and such things to me. Don’t forget to include your postal address.

A note on open source

Although it will not be mandatory to claim your badges, I would highly recommend to release all software and hardware designs you do to complete one of the ten projects as open source.

Project #1: Tworld Cup

Quest: Build a web application that shows twitter „matches“ alongside the real WoldCup matches.

Skillset

Proposed technology stack

Ruby, Sinatra, Twitter-Gem, CouchDB.

Achievements

Infos

Project #2: Hackday

Quest: Participate in a Hackday, RailsRumble or any other 24-48 hour long coding challenge.

Skillset

Proposed technology stack

Caffeine, Sleeping Bag, Paper, Rock, Scissors

Achievements

Infos

Project #3: RetroJS

Quest: Recreate the first video game you ever played in HTML5 and Javascript.

Skillset

Proposed technology stack

HTML, Javascript, maybe jquery.

Achievements

Inspirations

Project #4: Texas Estimate‘em

Quest: Build an application to remotely play planning poker using WebSockets

Skillset

Proposed technology stack

node.js, HTML, Javascript (jquery)

Achievements

Infos

Project #5: SoundTest

Quest: Create an Autotest plugin (or a CI-Server plugin) that sonically signals the quality of your code using PD.

Skillset

Proposed technology stack

Ruby scripts, OSC library, PureData.

Infos

As I said, I will try to come up with a basic PureData sketch that will allow you to start with some basic sound capabilities already in place to smooth out the rather steep learning curve of PureData. Stay tuned.

Achievements

Project #6: Dashboard

Quest: Build a large dashboard displaying important metrics (Whatever that means to you) using HTML, SVG and Redis.

Skillset

Proposed technology stack

Sinatra, Redis, Raphael.js

Achievements

Infos

Please note that Raphael is just one possibilty to create such graphics. There are also Libraries that use the canvas element to draw graphs instead of SVG.

Project #7: Back to the Desktop

Quest: Build a desktop application that controls an aspect of one of your rails web applications.

Skillset

Proposed technology stack

Rails, MacRuby/hotcocoa or QTRuby, RubyFX etc.

Achievements

Project #8: Rube Tweetberg

Quest: Build a Rube Goldberg machine that starts or that‘s started by a tweet or other forms of electronic messaging.

Skillset

Proposed technology stack

threads, duct tape, marbles, inclined planes, USB devices

Achievements

Infos

The hardest part here (apart from building the rube goldberg machine) is to create physical action to start the machine. So the other way round is much simpler (sending a tweet at the end of the machine), since physical input exists in form of a mouse button or the space key of a keyboard. So the “starting the machine with a tweet” definitely will give you higher merits. :)

Project #9: BuildLight

Quest: Build a hardware representation (e.g. stoplight) of your build status.

Skillset

Proposed technology stack

#{buildserver}, Arduino, Relais, Stop light, etc.

Achievements

Infos

Please note that I know that this is nothing especially new or innovative, people have done this kind of stuff literally for ages. Still I think it is really important to build it by yourself. We (at mindmatters) even considered at one point to use the project kickoff phase to let the team build it’s build indicator itself. Also I’d like to add that the possibilities of the form of signalling are actually endless.

Project #X: TouchySubject

Please note that at this time, Project#X is more or less a placeholder, I’ve yet to come up with a good specific idea for it.

Quest: Build something with a multitouch/tangible interface

Skillset

Proposed technology stack

iPad, iPhone, Android, Reactable, whatever

Achievements

Search