A few weeks ago I headed down to Porto Alegre to help out with a Mozilla hack day after BrazilJS. I was around at the BrazilJS event as well, but I only fielded the odd question as most attendees were off at the awesome talks (it was a single-track conference — my favourite kind). As a result, I didn’t exactly know what to expect from the hack day, seeing as it was to be a mix of BrazilJS attendees and folks who heard through the grapevine there’d be a day of hacking. It was also my first time in Porto Alegre (and in Brazil, for that matter) so I had nearly no idea what to expect of the coding scene there.
Well hot damn I was impressed.
I was sent to Brazil pretty last-minute, so speaking at BrazilJS wasn’t possible. But I did get to give a brief talk after Brendan Eich showed off BananaBread — which was basically the perfect segue ever.
Building More Exciting Apps
I spoke for what I remember to be about twenty-five minutes about building open web apps with Mozilla’s kick-ass app templates (mortar, WebGameStub, and sutthisan). I focused specifically on ditching the tired idea of making your first app a grocery list or Twitter client; I argued instead that game programming in HTML5 and JavaScript — especially 2D programming — was within the grasp of many more web developers than it was even a few years ago.
Mozilla’s WebGameStub makes this especially easy; it’s a simple game loop plus a <canvas>
tag that lets a developer get their own 2D game engine started with no extra boilerplate. It even includes a demo game that you can use to bootstrap your own game (which is how yours truly got started). Another Mozilla web developer, Fred Wenzel, was able to build a snake clone and ship it to the Mozilla Marketplace in an afternoon. I added iOS support and touch events easily. Turns out: this stuff isn’t hard at all!
So after I stood in front of a decent-sized audience and spoke in weird English for half an hour to a Portuguese audience, we got hacking.
Of Woes and Wifi
Hundreds — sometimes even dozens — of people storming your wifi just doesn’t work. We got stuck with pretty slow connections for everyone, which meant I was fielding a lot of questions and folks were having trouble getting access to GitHub and the awesome Mozilla Developer Network. I was worried that between my very English help and the crummy wifi it wouldn’t be a very productive hack day. With about three, maybe not quite four hours of hacking behind us, we announced that it was demo time.
Unexpected Turnaround
I was running around the whole day, helping people with JavaScript questions, API nonsense, and whatever else, that I barely got to really see what they were working on. Other groups were a bit secretive of it. But what they turned out from a few hours was totally awesome. My two favourites from the hack day were:
- Telepong: An HTML5 pong game, played against two people on different devices. Looks extra cool on phones and my personal favourite. github.com/ricardobeat/telepong
- Make Bacon: A hilarious way to make delicious bacon. github.com/jesusmercado/WebGameStub/tree/develop/www
There was even a modified version of the demo game included in WebGameStub to be a somewhat Sisyphean version of the original. I got a bit of a kick out of that one.
Make Something Awesome
I did a short demo of the aforementioned Serpent and our own flux-game — the result was an afternoon of games including more than just the highlights I picked out. The takeaway for me was validation of what I was saying to all the hackers in Porto Alegre: you can building something fun, something unique, and something genuinely cool with the APIs and tools provided by the web.
So stop building to-do apps and make the web a more exciting place!