Meeting Room System

Early 2008

This is some of the first really functional JavaScript I’ve written, for an internal project several years ago.  We were faced with a vendor who wanted $30,000 to do signage for our public meeting rooms, but didn’t have a way for us to automatically updated it.  We purchased a couple of widescreen TVs, had our electronics and carpenters run cable and make armatures.  I spent a few days on the code, to get it to pull from the scheduling system I’d written, and we were in business.  As I review the code today, I can see how much I’ve learned since.  At the same time I saved us close to $30,000, and this code has been running safely for over 4 years and been in the public eye.  I call that a win.

[ Code Sample ]



Find & Replace Project

April 2011

Find & ReplaceMy friend Alex Myers does glitch art, and was working on a performance piece where he’d take a bit of video, rip out all the images, then use standard unix tools to glitch the images.  He then wanted to stitch the images back into a video and have another artist compose music to the video.  Because of the speed of turn around (all of this was done live as part of a performance), none of the traditional imaging tools were working.  So, after we hammered out some assumptions, I wrote some quick HTML5 canvas code for him that would turn those images into a movie at the refresh of a browser.  The code is simple and direct, and doesn’t use any libraries to minimize the dependencies during the performance itself, and from what I heard performed well itself.  (Credited as Joe Tortuga)

[ Project Homepage ] [ Code Sample ]



Games Experiments


With the advent of HTML5 and canvas, the web became an even more open place to do interesting interactive projects.  I have an interest in games, so did several kinds of experiments with them, among them the one pictured to the left.  My friend Corvus Elrod drew the greyscale picture, and using canvas, I’m allowing the user to set the RGB values for each of the primary 3 greys in the image.  The image is read in via Javascript, and is recrafted as the sliders move.  Later experiments allow the user to alter the avatar and the plan was to allow multiple users to travel through a maze together.  This is a work in progress, but an example of the kinds of things I’m working on in JavaScript.



Multiplayer Board Game


A current work in progress, my multiplayer board game library is filled with debug code and in-progress JavaScript. It is possible however for several people to be on the site at the same time, moving tokens around.  The site is backed by CakePHP which allows the game host to create a board or background image, add tokens of various kinds, and share that view to players.  Login is via OpenID, with an intent to leverage Social Media to organize games, or allow them to be imported through a G+ Hangout or similar service.  For now, all the tokens are movable by anyone, but the state updates, and refreshes to all views.  The JavaScript here is a mostly mine, backed with jQuery.  More can be read about the design process on the blog.




Open Source Contributions


I have a few open source software contributions that I’ve collected over the years.  The first of these is the JavaScript MVC project (which was folded into EJS, I believe).  I was having problems with a report, and found a small bug with nested reports in the code, and sent in the fix.  The next was similar, with TwitterTools for WordPress.  The web host I was using was using a 32-bit version of PHP that had a smaller maximum int, causing json_decode to think new statuses were already there (as they had the same,now truncated id).  About the time twitter’s status ids broke the 32-bit barrier, my  website stopped updating.  I found the error, and sent it in.  Finally, I was doing some personal work with Akhibahara, an HTML5 game engine, and decided to complete the documentation on it so that I could figure out how some of it worked (notably the JavaScript package manager).  I forked it on github, and my docs are there for now.  (Credited as Joe Tortuga)

[JavaScript MVC] [TwitterTools] [My Akhibahara GitHub]