Skip to content

Files

Latest commit

95e60c8 · Dec 19, 2013

History

History
246 lines (161 loc) · 10 KB

dependencies.md

File metadata and controls

246 lines (161 loc) · 10 KB

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

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:

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:

  1. 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.
  2. PlaybackComponentSVG is an object written in CoffeeScript that creates and manages the SVG-based Playback control widget for the Molecule Container.
  3. 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:

  1. index.sass is used to generate: index.css
  2. 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:

  1. axis-test.js is used to test the drag UI logic for interactively re-scaling Graph axes.
  2. 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.