DailyJS

DailyJS

The JavaScript blog.


Tagdependency
Featured

graphics visualization jvm dependency

Arbor, Mug, I, Ristretto

Posted on .

Arbor

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

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

  • Mug is faster than Rhino, favoring static compilation rather than a runtime interpreter.
  • Minimal overhead. Standard library mug-js.jar is ~150kb.
  • Mug's goal is that compiled code be as similar to Java as possible, and easily debuggable.
  • Mug uses CommonJS modules as its compilation units, allowing your code to be shared between Mug, node.js, RingoJS, and other implementations.

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.

Emphasis

Michael Donohoe at the New York Times has released their open source
Emphasis library (GitHub: NYTimes /
Emphasis
). 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
account
.

I

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

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.