Arbor, Mug, I, Ristretto

2011-01-14 00:00:00 +0000 by Alex R. Young


Arbor (GitHub: samizdatco / arbor) by Christian Swinehart is a
graph visualisation library that uses jQuery and web workers. It
provides a layout algorithm and graph organisation for building things
like this: Atlas demo.

Arbor has a particle system which manages the state of the simulation:

sys = arbor.ParticleSystem();
node = sys.addNode('mynode', { mass:2, myColor:'goldenrod' });

Arbor's API seems pretty easy to learn, so if you'd like to present data in a novel way or create some kind of
simulation it's worth checking out.


Mug (GitHub: timcameronryan / mug) by Tim Cameron Ryan is a JavaScript compiler for the JVM. The benefits
according to the author are:

He also says the Mug compiler is written in Clojure, a language which I
enjoy getting time to use. Take a look at
compiler.clj if you're interested in what that might look like.


Michael Donohoe at the New York Times has released their open source
Emphasis library (GitHub: NYTimes /
). This library makes it
possible to "deep link" to specific article text -- double tapping the
shift key displays paragraph icons which can be clicked to highlight a
paragraph. Selecting a paragraph or a sentence within it updates the URL
hash with parameters that can be used to share the highlight.

This library requires Prototype. To see more open source code from New
York Times, take a look at the New York Times GitHub


I by Rob Robbins is a dependency manager with defer and async support. The name leads to some memorable
API method names: I.amDefined, I.require, etc.

The library comes with some Ruby tools to read source and generate
dependency files.


Ristretto by Adrien Friggeri is another dependency management tool with concatenation which can be
installed with npm. It can be used with JavaScript or Coffee. What made
this interesting to me is it allows developers to use CommonJS modules
and then write out a browser-friendly file.

If you've been following our Let's Make a Framework Series you'll know
I made a simplified CommonJS module-based testing system, but getting
modules to behave in a browser was tricky to say the least. Adding
support for CommonJS modules to Ristretto seems like a smart move.