Skip to content

Commit 95e60c8

Browse files
committed
separate out the dependencies listing from the readme
1 parent 8184138 commit 95e60c8

File tree

2 files changed

+248
-242
lines changed

2 files changed

+248
-242
lines changed

developer-doc/dependencies.md

+246
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
# Dependencies
2+
3+
## JavaScript Runtime Dependencies
4+
5+
### D3
6+
7+
[D3](http://mbostock.github.com/d3/): manipulating and visualizing documents based on data.
8+
9+
- [repo](https://github.com/mbostock/d3)
10+
- [documentation](http://mbostock.github.com/d3/api/)
11+
- [issues](https://github.com/mbostock/d3/issues)
12+
- [google group](http://groups.google.com/group/d3-js)
13+
- [API reference](https://github.com/mbostock/d3/wiki/API-Reference)
14+
- [Arrays](https://github.com/mbostock/d3/wiki/Arrays)
15+
16+
### JQuery
17+
18+
[JQuery](http://jquery.com/): simplifies HTML document traversing, event handling, animating,
19+
and Ajax interactions.
20+
21+
### JQuery-UI
22+
23+
[JQuery-UI](http://jqueryui.com/): abstractions for low-level interaction and
24+
animation, advanced effects and high-level, themeable widgets, built on top of the jQuery
25+
26+
### Sizzle
27+
28+
[sizzle](http://sizzlejs.com/): CSS selector engine designed to be easily dropped in to a
29+
host library.
30+
31+
### Codemirror
32+
33+
[Codemirror2](https://github.com/marijnh/CodeMirror2): in-browser code editor.
34+
35+
### science.js
36+
37+
[science.js](https://github.com/jasondavies/science.js): scientific and statistical
38+
computing methods.
39+
40+
### dsp.js
41+
42+
[dsp.js](https://github.com/corbanbrook/dsp.js): digital signal processing methods
43+
including functions for signal analysis and generation, Oscillators(sine, saw, square, triangle),
44+
Window functions (Hann, Hamming, etc), Envelopes(ADSR), IIR Filters(lowpass, highpass,
45+
bandpass, notch), FFT and DFT transforms, Delays, Reverb.
46+
47+
### Modernizr
48+
49+
[modernizr](https://github.com/Modernizr/Modernizr): detect HTML5 and CSS3 features in browsers.
50+
51+
Lab Example: [`index.html.haml`](https://github.com/concord-consortium/lab/blob/master/src/index.html.haml#L12)
52+
uses Modernizer to check if the browser implents SVG and re-direct the user to an upgrade
53+
page if the feature is not presnet.
54+
55+
### MathJax
56+
57+
[MathJax](http://mathjax.com/) is a display engine for mathematics that works in all modern browsers.
58+
59+
Lab Example: [`lennard-jones-potential.html.haml`](https://github.com/concord-consortium/lab/blob/master/src/doc/models/md2d/lennard-jones-potential/lennard-jones-potential.html.haml#L23-30)
60+
uses MathJax to display LaTeX formatted math equations.
61+
62+
### OpenSans Font
63+
64+
[OpenSans Font](http://www.google.com/webfonts/specimen/Open+Sans): used for most text display
65+
66+
## Javascript Development Dependencies
67+
68+
### node
69+
70+
- [node](http://nodejs.org/)
71+
- [repo](https://github.com/joyent/node)
72+
- [documentation](http://nodejs.org/docs/latest/api/index.html)
73+
- [debugger](http://nodejs.org/docs/latest/api/debugger.html)
74+
- [issues](https://github.com/joyent/node/issues)
75+
- [google group](http://groups.google.com/group/nodejs)
76+
- [How To Node](http://howtonode.org/)
77+
78+
**[node-inspector](https://github.com/dannycoates/node-inspector)**
79+
- [npm package for node-inspector](http://search.npmjs.org/#/node-inspector)
80+
81+
### npm
82+
83+
[npm](http://npmjs.org/), the Node Package Manager isnow bundled with Node and is
84+
used to specify and manage external node pacage dependencies for a project.
85+
86+
- [repo](https://github.com/isaacs/npm)
87+
- [faq](http://npmjs.org/doc/faq.html)
88+
- [google group](https://groups.google.com/group/npm-)
89+
- [issues](https://github.com/isaacs/npm/issues)
90+
91+
More about using npm for development:
92+
93+
- [Introduction to npm](http://howtonode.org/introduction-to-npm)
94+
- [node_modules in git](http://www.mikealrogers.com/posts/nodemodules-in-git.html)
95+
- [Managing module dependencies](http://howtonode.org/managing-module-dependencies)
96+
- [What do people do for versioning node modules within git?](https://groups.google.com/group/nodejs/browse_thread/thread/9aa563f1fe3b3ff5)
97+
98+
Lab Example: [`package.json`](https://github.com/concord-consortium/lab/blob/master/package.json)
99+
specifies node pakage dependencies for the Lab project.
100+
101+
### RequireJS
102+
103+
[RequireJS](http://requirejs.org) is a JavaScript file and module
104+
loader. It is optimized for in-browser use, but it can be used in other
105+
JavaScript environments, like Rhino and Node.
106+
107+
- [homepage](http://requirejs.org)
108+
- [repo](https://github.com/jrburke/requirejs)
109+
- [RequireJS Google Group](https://groups.google.com/forum/?fromgroups#!forum/requirejs)
110+
111+
Lab Example:
112+
113+
114+
All Lab's modules use RequireJS for dependency management and build process. Its application is widely
115+
described in [this section](#javascript-dependency-management-and-build-process---requrejs).
116+
117+
### CoffeeScript
118+
119+
[CoffeeScript](http://coffeescript.org/) is a language the compiles to JavaScript. Many programmers
120+
find it more expressive and productive. [js2cofee](http://js2coffee.org/) can be used to convert
121+
JavaScript to CoffeeScript. RequireJS Optimizer also can convert CoffeeScript to JavaScrit. So
122+
you don't have to manually do it when referencing CoffeeScript files using RequireJS.
123+
124+
- [repo](https://github.com/jashkenas/coffee-script)
125+
- [issues](https://github.com/jashkenas/coffee-script/issues)
126+
127+
Lab Examples:
128+
129+
1. [`get-md2d-data.coffee`](https://github.com/concord-consortium/lab/blob/master/node-bin/get-md2d-data.coffee)
130+
is a coffeescript program used to run the MD2D engine from the command line and generate data used
131+
for physics validation tests.
132+
2. [`PlaybackComponentSVG`](https://github.com/concord-consortium/lab/blob/master/src/lab/common/components/playback_svg.coffee)
133+
is an object written in CoffeeScript that creates and manages the SVG-based Playback control widget
134+
for the Molecule Container.
135+
3. [`InteractivesController`](https://github.com/concord-consortium/lab/blob/master/src/lab/md2d/controllers/interactives-controller.js)
136+
is an object written in plain JavaScript which references directly CoffeeScript file using RequireJS
137+
(`Thermometer = require('cs!common/components/thermometer')`).
138+
139+
[This section](#coffeescript-files-support) covers RequireJS support of CoffeeScript files.
140+
141+
## Ruby Development Dependencies
142+
143+
### Bundler
144+
145+
[Bundler](http://gembundler.com/) is a Ruby Gem used to express and manage Ruby Gem dependencies.
146+
147+
- [rationale](http://gembundler.com/rationale.html)
148+
- [documentation: Gemfile](http://gembundler.com/man/gemfile.5.html)
149+
- [documentation: CLI](http://gembundler.com/man/bundle.1.html)
150+
151+
Lab Example: [`Gemfile`](https://github.com/concord-consortium/lab/blob/master/Gemfile)
152+
is used to specify all the Ruby Gem dependencies to build and test the Lab project.
153+
154+
### Haml
155+
156+
[Haml](http://haml-lang.com/) is a Ruby Gem that processes HTML expressed in HAML markup into HTML.
157+
158+
- [documentation](http://haml-lang.com/docs.html)
159+
- [reference](http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html)
160+
161+
Lab Example: [`index.html.haml`](https://github.com/concord-consortium/lab/blob/master/src/index.html.haml)
162+
is used to generate the main [`index.html`](https://github.com/concord-consortium/lab/blob/gh-pages/index.html) page.
163+
164+
### Sass
165+
166+
[Sass](http://sass-lang.com/) is a Ruby Gem that provides many powerful extensions to CSS3 and works
167+
by processing files in either [SASS-indented-syntax](http://sass-lang.com/docs/yardoc/file.INDENTED_SYNTAX.html)
168+
or SCSS format (a su[erset of standard CSS3) and generating CSS stylesheets.
169+
170+
- [documentation](http://sass-lang.com/docs.html)
171+
- [reference](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html)
172+
173+
Lab Examples:
174+
175+
1. [`index.sass`](https://github.com/concord-consortium/lab/blob/master/src/index.sass)
176+
is used to generate: [`index.css`](https://github.com/concord-consortium/lab/blob/gh-pages/index.css)
177+
2. [`readme.scss`](https://github.com/concord-consortium/lab/blob/master/src/readme.scss)
178+
is used to generate: [`readme.css`](https://github.com/concord-consortium/lab/blob/gh-pages/readme.css)
179+
180+
### Guard
181+
182+
[Guard](https://github.com/guard/guard) is a Ruby Gem that can efficiently watch for changes on the file system and
183+
automatically start the build process when needed.
184+
185+
- [guard-shell](https://github.com/hawx/guard-shell)
186+
- [guard-haml](https://github.com/manufaktor/guard-haml)
187+
- [guard-sass](https://github.com/hawx/guard-sass)
188+
- [guard-coffeescript](https://github.com/guard/guard-coffeescript)
189+
- [guard-markdown](https://github.com/darwalenator/guard-markdown)
190+
- [guard-livereload](https://github.com/guard/guard-livereload)
191+
192+
Lab Example: Starting Guard with `bin/guard` loads and runs the configuration in [`Guardfile`](https://github.com/concord-consortium/lab/blob/master/Guardfile).
193+
194+
### Thor
195+
196+
[thor](https://github.com/wycats/thor) is a Ruby Gem for building self-documenting command line utilities.
197+
198+
- [documentation](https://github.com/wycats/thor/wiki)
199+
200+
Lab Example: [`cloud.thor`](https://github.com/concord-consortium/lab/blob/master/cloud.thor) are the
201+
Ruby command-line interface scripts for providing access to the
202+
[`AwsLabServer`](https://github.com/concord-consortium/lab/blob/master/script/aws-lab-server.rb)
203+
library for creating and managing AWS cloud servers.
204+
205+
### Fog
206+
207+
[fog](http://fog.io/) is a Ruby Gem for working with many different cloud service providers.
208+
209+
- [documentation](http://fog.io/)
210+
- [repo](https://github.com/fog/fog)
211+
212+
Lab Example: [`AwsLabServer`](https://github.com/concord-consortium/lab/blob/master/script/aws-lab-server.rb)
213+
is a library built on top of fog for creating and managing Lab server instances on AWS.
214+
215+
## Additional Testing Dependencies
216+
217+
### Vows
218+
219+
[Vows](http://vowsjs.org) is an asynchronous behaviour driven testing framework for Node.
220+
221+
- [repo](https://github.com/cloudhead/vows)
222+
223+
Lab Examples:
224+
225+
1. [`axis-test.js`](https://github.com/concord-consortium/lab/blob/master/test/lab/grapher/core/axis-test.js)
226+
is used to test the drag UI logic for interactively re-scaling Graph axes.
227+
2. [`arrays-test.js`](https://github.com/concord-consortium/lab/blob/master/test/lab/arrays/arrays-test.js)
228+
is used to test the utility class for working with regular or Typed Arrays.
229+
230+
### jsdom
231+
232+
- [jsdom](http://jsdom.org)
233+
- [repo](https://github.com/tmpvar/jsdom)
234+
- [issues](https://github.com/tmpvar/jsdom/issues)
235+
236+
## Miscellaneous
237+
238+
### livereload
239+
240+
[livereload](https://github.com/mockko/livereload) is project that has created extensions
241+
for Chrome FireFox, and Safari to provide automatic browser reloading when the HTML,
242+
CSS and JavaScript files are changed on the server. The older version 1 extensions
243+
work with the guard-livereload gem.
244+
245+
- [livereload v1 readme](https://github.com/mockko/livereload/blob/master/README-old.md)
246+

0 commit comments

Comments
 (0)