TimelineSetter
Nice tool for generating interactive timelines. The project is also a particularly good example of great documentation from the annotated source code thought to the website itself.
It is a command-line utility that takes a specially-structured CSV file as input and outputs standards-compliant HTML/CSS/JavaScript. It supports any span of time from minutes to years, and supports multiple parallel event series in a single timeline. It can handle custom descriptions and even arbitrary HTML in each event “card.” It creates fluid embeds that will look great at any width.
Moment
A lightweight javascript date library for parsing, manipulating, and formatting dates.
Does exactly what it says on the tin, plus it has a lovely website with great docs and unit tests. The great thing about this library is that it doesn’t modify the native Date object which means it’s safe to use in libraries and extensions.
I’ve also been using XDate which does exactly the same thing but is a little more comprehensive with support for formatting and parsing various standards.
Mocha
Another JavaScript unit testing framework by the author of Expresso. This one appears to take the best bits of Jasmine and improve on them; especially with regard to handling of asynchronous tests which are clunky in Jasmine to say the least and the ability to run on both the client and server.
Mocha is a feature-rich JavaScript test framework running on node and the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases.
Looks like theres a little way to go with the browser reporter, and you’ll need your own assert library (perhaps assert?) but it looks like a strong contender.
Chrome Developer Tools Documentation
Useful resource for understanding how to use some of the more esoteric features of the Chrome developer tools. The blog posts on finding memory leaks is particularly useful as are the pages on the profile panel.
iPhone 4S hompage explained
A bit old now but a great little demo showing how Apple created the animations on their iPhone 4S homepage.
Building a Slimmer jQuery
An interesting decision by the jQuery team to begin work on slimming down the codebase by deprecating and finally removing unused features. The focus seems to be on removing ambiguous and rarely used code either by eliminating it entirely or moving it into plugins.
Along with our continuing push for higher performance, our priority for upcoming versions is a smaller gzipped file size. It’s hard to do that when every new feature or bug fix must also preserve all existing features and behavior. So today, we want to start a conversation about slimming down the jQuery API by deprecating some features.
I think this is a great move I’d love to see some of the lesser used features removed in favour of a smaller file size. Ideally at the end of it the ability to compose your own build using only the features you require in a similar fashion to Ender.
Writing Modular JavaScript
Fantastic article/essay from Addy Osami on structuring your JavaScript and the tools are available in the past/present/future.
When we say an application is modular, we generally mean it’s composed of a set of highly decoupled, distinct pieces of functionality stored in modules.
[…] In this article, we’re going to look at three formats for writing modular JavaScript: AMD, CommonJS and proposals for the next version of JavaScript, Harmony.
Lightning.js
Interesting new library from Olark for writing JavaScript APIs that are designed to be embedded in external sites eg. analytics, help boxes and other widgets.
Globals, prototypes and mismatched library versions can cause lots of compatibility headaches for third-party code.
With LightningJS, all of that third-party code lives in its own separate window context. If the code needs to do DOM manipulation, it still has access to the original document via window.parent.
It has a small footprint and a clean API, worth looking into.
happen
happen wraps the createEvent DOM API to make real event mocking in-browser palatable.
Tiny little library for firing mouse events manually.
The web IS a network of hyperlinked documents. It’s not its origins. It’s its present, and its future. Please let it be its future.Andy Hume