Dependencies
JavaScript Runtime Dependencies
D3
D3: manipulating and visualizing documents based on data.
JQuery
JQuery: simplifies HTML document traversing, event handling, animating,
and Ajax interactions.
JQuery-UI
JQuery-UI: abstractions for low-level interaction and
animation, advanced effects and high-level, themeable widgets, built on top of the jQuery
Sizzle
sizzle: CSS selector engine designed to be easily dropped in to a
host library.
Codemirror
Codemirror2: in-browser code editor.
science.js
science.js: scientific and statistical
computing methods.
dsp.js
dsp.js: digital signal processing methods
including functions for signal analysis and generation, Oscillators(sine, saw, square, triangle),
Window functions (Hann, Hamming, etc), Envelopes(ADSR), IIR Filters(lowpass, highpass,
bandpass, notch), FFT and DFT transforms, Delays, Reverb.
Modernizr
modernizr: detect HTML5 and CSS3 features in browsers.
Lab Example: index.html.haml
uses Modernizer to check if the browser implents SVG and re-direct the user to an upgrade
page if the feature is not presnet.
MathJax
MathJax is a display engine for mathematics that works in all modern browsers.
Lab Example: lennard-jones-potential.html.haml
uses MathJax to display LaTeX formatted math equations.
OpenSans Font
OpenSans Font: used for most text display
Javascript Development Dependencies
node
node-inspector
- npm package for node-inspector
npm
npm, the Node Package Manager isnow bundled with Node and is
used to specify and manage external node pacage dependencies for a project.
More about using npm for development:
- Introduction to npm
- node_modules in git
- Managing module dependencies
- What do people do for versioning node modules within git?
Lab Example: package.json
specifies node pakage dependencies for the Lab project.
RequireJS
RequireJS is a JavaScript file and module
loader. It is optimized for in-browser use, but it can be used in other
JavaScript environments, like Rhino and Node.
Lab Example:
All Lab’s modules use RequireJS for dependency management and build process. Its application is widely
described in this section.
CoffeeScript
CoffeeScript is a language the compiles to JavaScript. Many programmers
find it more expressive and productive. js2cofee can be used to convert
JavaScript to CoffeeScript. RequireJS Optimizer also can convert CoffeeScript to JavaScrit. So
you don’t have to manually do it when referencing CoffeeScript files using RequireJS.
Lab Examples:
get-md2d-data.coffee
is a coffeescript program used to run the MD2D engine from the command line and generate data used
for physics validation tests.PlaybackComponentSVG
is an object written in CoffeeScript that creates and manages the SVG-based Playback control widget
for the Molecule Container.InteractivesController
is an object written in plain JavaScript which references directly CoffeeScript file using RequireJS
(Thermometer = require('cs!common/components/thermometer')
).
This section covers RequireJS support of CoffeeScript files.
Ruby Development Dependencies
Bundler
Bundler is a Ruby Gem used to express and manage Ruby Gem dependencies.
Lab Example: Gemfile
is used to specify all the Ruby Gem dependencies to build and test the Lab project.
Haml
Haml is a Ruby Gem that processes HTML expressed in HAML markup into HTML.
Lab Example: index.html.haml
is used to generate the main index.html
page.
Sass
Sass is a Ruby Gem that provides many powerful extensions to CSS3 and works
by processing files in either SASS-indented-syntax
or SCSS format (a su[erset of standard CSS3) and generating CSS stylesheets.
Lab Examples:
index.sass
is used to generate:index.css
readme.scss
is used to generate:readme.css
Guard
Guard is a Ruby Gem that can efficiently watch for changes on the file system and
automatically start the build process when needed.
Lab Example: Starting Guard with bin/guard
loads and runs the configuration in Guardfile
.
Thor
thor is a Ruby Gem for building self-documenting command line utilities.
Lab Example: cloud.thor
are the
Ruby command-line interface scripts for providing access to the
AwsLabServer
library for creating and managing AWS cloud servers.
Fog
fog is a Ruby Gem for working with many different cloud service providers.
Lab Example: AwsLabServer
is a library built on top of fog for creating and managing Lab server instances on AWS.
Additional Testing Dependencies
Vows
Vows is an asynchronous behaviour driven testing framework for Node.
Lab Examples:
axis-test.js
is used to test the drag UI logic for interactively re-scaling Graph axes.arrays-test.js
is used to test the utility class for working with regular or Typed Arrays.
jsdom
Miscellaneous
livereload
livereload is project that has created extensions
for Chrome FireFox, and Safari to provide automatic browser reloading when the HTML,
CSS and JavaScript files are changed on the server. The older version 1 extensions
work with the guard-livereload gem.