Mar 202012
 

A helpful reader (thanks Remo!) suggested I update the sign language fingering Javascript project to display the fingerings on screen without a timeout.  It sounded like a good idea, and I thought it would be a synergistic addition as I’ve been wanting to do some dynamically created impress.JS presentations.  So, I’ve gone ahead and implemented dynamic impress.JS presentations in asl.JS.  As you’ve probably seen from my interactive resume (or its source code),  impress.JS is an open source Javascript library that allows you to create 3d presentations and slide shows in HTML5.

You can see it in action live on my website at http://hunterdavis.com/asljs/, or view the source at its github page here.  With this update asl.JS is fast becoming a modern, and hopefully useful web tool.  Everything still runs on the client in Javascript, and no personal data or strings are ever sent to the server (I don’t even run analytics on the page).  I have quite a few useful features and improvements I’d like to get in there eventually, and I hope that others will find the code useful in their own work.  Incidentally, this has all grown from a project that was essentially a code doodle from a bored hacker.  It just goes to show that even the smallest of contributions to open source can increase in value exponentially over time.  You never know what others will find useful, so get out there and share!

Share
 Posted by at 7:05 pm
Mar 152012
 

The culmination of a great deal of hard work has just been pushed live to the web, and the marketing push will begin.  I am very proud of what I accomplished, and the lengths Miso Media (my former employers) allowed me to push the boundaries of their web strategy.  This is a fantastic piece of technology, and will hopefully be the basis for a great deal of future products and web items.  It should easily integrate into any audio processing system, is portable to essentially any device, and should be standards compliant for many years.  It’s been tested to work on Chrome and Firefox for Mac, Linux, and Windows and requires the Flash plugin for audio input.  (Sadly there is just no getting around this requirement until browsers get with the HTML5 audio program).

Check it out on the official Miso Media Tuner page.

Share
 Posted by at 8:30 pm
Mar 142012
 

As some of you may know, I spent the past 8 months or so working at a great little music startup in Los Angeles called Miso Media.  Though I’m moving forward with my own projects up in Seattle, I look back on the work I created there with a terrific sense of accomplishment.  A great deal of my time was spent porting their proprietary FFT, affine transformation, and pitch detection algorithms to various embedded platforms.  I did some fun stuff with openGL texture transforms and shaders, but the real meat of the work I did was in optimizing for embedded platform efficiency.  As such, the porting of their polyphonic pitch detection algorithms to client-side Javascript became a feasible option and the last bit of my tenure at Miso I spent porting the fruits of my optimization efforts to HTML5, Javascript, and webGL.

While you may have used an iOS or Android strobe tuner, or perhaps a multi-thousand dollar real-life tuner, I guarantee you’ve never seen anything like this before.

Miso Media will be officially launching this HTML5 web strobe tuner on their corporate site before their Shark Tank episode this week.  It uses Flash to provide microphone access until browsers support HTML5 audio in.  For you musicians and vocalists out there, this is huge.  Head over to the web tuner, and use your laptop or PC microphone to tune your instrument on a full stroboscopic tuner in real-time.  Everything happens client-side, with nothing sent to the server and no data usage for users who may be on mobile plans.  There is nothing to purchase, no complex hardware to lug around, and no setup required.

That said, not everybody has Flash and I’m certainly no big fan of Adobe’s business model.  I wrote the web tuner in a completely modular way, with Flash being used for only the most bare minimum of microphone functions.  Because of this, I’ve created a ‘demo’ HTML5 strobe tuner that you can use with audio files.  No Flash is required, but you will need a browser that supports the html5 audio tag (Chrome for now, all other browsers to come soon).  A musician I forwarded this to told me: ‘This is one of the coolest things I’ve ever seen on the web, period.”  I don’t know if it stands up to said proclamation, but I am terrifically proud of my work, and hope you enjoy it.  The code is minified to protect their IP, but my hope is that some future version will be open source as their algorithms change over time.

You can try out the pure HTML5 Strobe tuner here, and you can view it embedded in my impress.JS resume here.

Share
 Posted by at 10:38 pm
Mar 112012
 

As someone who has hired and been hired many times, I’ve seen and written my fair share of resumes.  Clean white sheets tree pulp embossed and inked with the accomplishments of the writer.  What an outdated system!  Worse still are the PDF and Word resumes, emulating the old pulp and ink model.  Ignoring the fact that you can’t convey motion, video, or interactivity in a paper resume, the main downside from my perspective is a lack of open source spirit.  All these resumes floating around and they’ve never taught anyone anything besides a written history of a job candidate.  Bleh.

So I set out to change that.  I’m re-writing my resume as an HTML page with CSS transforms and interactive Javascript and HTML5 elements.  I’ve also released the project as open source on GitHub, so anyone can follow along as I learn more about impress.js, snag the source for their own resume, or just poke around at the guts.  I’ve started preliminary work on the resume, and it’ll get updated steadily as I get more free time.  I realized after the first couple of commits that I’d like to have a live version of the latest code always available online.  Preferably without any interaction or external script wizardry from me.  As it turns out, It’s no easy task to accomplish through the use of GitHub Pages and git submodules.  My resume pulls impress.JS as a Git submodule, but GitHub doesn’t forward links to submodules in Pages.  The end result is that the use of another open source project as a submodule is not a viable option for GitHub Pages sites.  This is unfortunate, but I worked around it using the tools available to me on Bluehost.

First, I ssh’d into my account and cloned my resume repository into a /resume/ directory with

git clone https://github.com/huntergdavis/Hunter-Davis-impressjs-Resume.git resume

Next, in that same SSH shell I created a bash script that could be run with cron that would update this repo every hour:
#!/bin/bash
cd ~/public_html/
cd resume
git pull
git submodule update

Finally, I used the BlueHost control panel to tell my cron script to run every hour.  That’s that!

You can always view my latest impress.js resume at www.hunterdavis.com/resume/

Share
 Posted by at 12:11 am