Mozilla Webdev’s Beer and Tell: November 16, 2012

James Long

Every month Mozilla Webdevs get together and give lightning talks showing cool things they’ve been hacking on for work or for pleasure. The November 2012 Beer and Tell was enjoyed by all. Now that Thanksgiving is over and I’m overly stuffed, it’s time to blog it!

A video recording is available at the end of this post, so feel free to skip down to it.


Michael Kelly (mkelly) showed off MagmaForce, a very well-executed and addicting game he made at a hackathon. You must save yourself from the impending mine collapse by grabbing magma balls, shooting them somewhere else, and matching up colors so that they disappear. There are even combos and special balls which dissolve huge amounts of balls in one shot. Be careful opening this game, you might spend a lot of time playing it!

The code is available on github, of course, if you want to take a peek at how it works.

AuroraOS Concept Demo

Scott Michaud, a potential contributor, showed us a proof of concept OS for tablet devices based on web technologies. You can view in here. He calls it “AuroraOS” due to the main screen showing a cool dynamic WebGL-rendered aurora in the background. Note that this is completely different from FirefoxOS and is simply a proof of concept, not an ongoing project within Mozilla.

Pressing “down” brings up a list of tabs, which represent multiple programs, and a button with a menu that allows you to change settings, view history, and perform other system-level tasks. There’s also a neat keyboard that allows you to use your thumb to pull up suggestions of letters, depending on what you’ve already typed. It doesn’t auto-complete whole words, but it simply suggests the next letter according to a probability of what you already typed and what you might want to type.

Scott’s OS contains a few other interactions heavily optimized for touch devices, and a lot of work and thought has gone into it. Impressive — thanks for showing it Scott!

Crimson Twins

Mike Cooper (mythmon) solved our dilemma of what to do with 2 wall-mounted TVs in the Mozilla office. He wrote a node app that connects to IRC, responds to messages containing URLs, and opens them in a browser connected to the app. The browser can display several things in a grid, or one thing can simply take up the whole screen. URLs can be anything from images and videos to real websites. It uses now.js to stream content to the browser. Very cool!

It also features a kill switch, so if you tell the bot “ohshit” it will clear the content in the browser. Additionally, it curates URLs from noodletalk to attempt to keep things clean (we love you ednapiranha!).

Coming to a webdev wall near you!

3d Graphics Experiments

I (jlongster) showed some demos of a 3d graphics engine called Shade that I’ve been working on (my blog post about it is here). It’s a hacky project driven by requirements for a game I’ve been working on for github’s game off.

Shade features a basic 3d scene graph, and a renderer that optimally sorts it and renders it. It attempts to minimize context switches which are expensive in WebGL. It also features the basic needs for a 3d scene: a camera, a mesh loader (.obj format), shader loading and compiling, and various functions for managing the scene. The goal is to be simply and still relatively low-level, while removing most of the grunt work when working with WebGL.

Essentially, it’s a fun project for me to learn WebGL, and might help others learn it too! Obligatory screenshot:

I’m using this to build a first person shooter for the web. Since the Beer and Tell, I’ve also implemented multiplayer networking and a bunch of other stuff! View my blog for more details about it.


Chris Lonnen (lonnen) followed up a previous Beer and Tell demo about leeroy with a utility he wrote called leeroy-rerun. For some context, leeroy is a project that integrates jenkins with github pull requests, which is awesome. It automatically runs tests when a PR is created and posts the results on the PR. However, you can’t rerun tests without making code changes, which makes it difficult if you want to change something else in the environment, like a database.

leeroy-rerun is a python script that lets you rerun tests on PRs without any code changes. Simply run the script from the command line with a URL to the pull requests, and magic stuff happens for you, including a brand new test result. You should use this if you use github’s pull requests!

And that’s it! Thanks for tuning in!