John Resig

10th Anniversary of jQuery Today marks the 10th anniversary of the release of jQuery. I announced it back at BarCamp NYC 2006 when I was still in college. It’s incredible to think of how far it’s come and just how many people have contributed to its success. To them I am forever grateful, thank you. Last year I wrote […]
Building an Art History Database Using Computer Vision Since the fall of 2013 I’ve had the opportunity to collaborate with the Frick Art Reference Library Photoarchive, a venerable art history research institution here in New York City. We’ve been especially interested in finding ways of applying computer vision technology to improve art history research. Art history photo archives are an interesting tool used […]
Using Waifu2x to Upscale Japanese Prints In my spare time I’ve been working on a database of Japanese prints for a little over 3.5 years now. I’m fully aware that I’ve never actually written about this, personally very important, project on my blog — until now. Unfortunately this isn’t a post explaining that project. I do still hope to write more […]
Annotated Version of the Original jQuery Release Recently I was prompted by Daniel Lamb to try and find old versions of jQuery for his jQuery Archive project. Thankfully I was able to find one in the Internet Archive from just a couple weeks after its release, in January 2006. I then took that opportunity to put that code online and I used […]
Low-cost .com Domains with Whois Privacy In an effort to be more privacy conscious I’ve been looking to transition to having Domain Privacy enabled on all the domains that I own. As it turns out many domain registrars, including my current one, charge an additional fee for this service. In an effort to save some money I did a price comparison […]
Write Code Every Day Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy. There were a few major problems with how I was working on my side projects. I was […]
Use Project-based Interviews Instead of “GitHub” First, some background: I highly recommend that you read the following two blog posts: by Ashe Dryden: The Ethics of Unpaid Labor and the OSS Community and by James Coglan: Why Github is not your CV. They make some fantastic points and communicate the issues surrounding “Using Github as your CV”. Both of these were […]
Node.js Stream Playground This summer I had the opportunity to attend NodeConf and it was a fantastic experience. I really appreciated how every session was a hands-on coding session: I felt like I walked away knowing how to put a bunch of advice directly into practice. One of my favorite sessions was the one run by James Halliday […]
Gittip at Khan Academy For a while now I’ve been a huge fan of Gittip. I think they’ve created one of the most interesting models for funding Open Source development. One of the missing pieces, for most Open Source developers, is having consistent, reliable, income backing your development. Some developers are sponsored by their work place, others have a […]
Asm.js: The JavaScript Compile Target Like many developers I’ve been excited by the promise of Asm.js. Reading the recent news that Asm.js is now in Firefox nightly is what got my interest going. There’s also been a massive surge in interest after Mozilla and Epic announced (mirror) that they had ported Unreal Engine 3 to Asm.js – and that it […]
WebKit is the jQuery of Browser Engines The news has just come out that Opera is switching all of their browsers (both mobile and desktop) to use WebKit (specifically, Chromium). I’ve seen a lot of gnashing of teeth on Twitter and I feel like I can respond because I use to feel the same way back in 2008-2009. However this is 2013 […]
Fixing Google Analytics for Ghostery As an avid user of Ghostery, which blocks all sorts of tracking scripts, pixels, and other web bugs I frequently run across a surprising issue: The case in which the Google Analytics ga.js script has been blocked from loading (which is intended) but then some critical piece of functionality on the site is broken. The […]
Secrets of the JavaScript Ninja Released Happy news! My book, Secrets of the JavaScript Ninja is finally in stock on Amazon! It’s been available on for over a month now but I think Amazon has been struggling to keep the books consistently in stock. You can get an ePub or Kindle version of the book at I’ve written about […]
Keeping Passwords in Source Control I learned a neat tip from my co-worker, Craig Silverstein (more on Craig joining Khan Academy), recently and I thought others might find it to be useful. It has to deal with the eternal question: How do you store sensitive configuration options (such as usernames, passwords, etc.) in source control? Typically what I’ve done is […]
i18n Module for Node and Express.js As a follow-up to my post from last week on a strategy for i18n and Node.js I’ve published my module for handling internationalization in Node and, specifically, Express.js. The module is now available on NPM and can be installed by running: npm install i18n-2 The code and documentation for the module is available on Github […]