Eco-Tools Technical Details

Hardware

The current server is a rack-mount design from Penguin Computing. It has a single AMD Opteron 250 and 2GB of RAM, and runs Linux. The hardware and software is administered by University Computing Services at NJIT, more specifically, by Andy Malato.

Historical note: Eco-Tools started out on a 350 MHz G3 “Blue and White” Macintosh! It wasn’t fast, but the fact that I could take a (then) eight-year-old computer, install the very latest operating system, web-server and servlet software, as well as a package as complex as Mathematica, and produce a stable, fully-functioning Eco-Tools server, all while knowing very little UNIX, is amazing! Kudos to Apple. After that it moved to a marginally faster 1.25 GHz G4 eMac for its public debut. If I still had to administer the server myself, that server would still be a Mac!

Software

Eco-Tools is powered by Mathematica 5 and webMathematica 2 (amateur edition) by Wolfram Research.

The site is developed on a Mac using BBEdit and Adobe GoLive.

Site Code

The Eco-Tools site uses cascading style sheets (CSS) for both inline styles and page layout. All code conforms to the W3C “HTML 4.01 Transitional” standard.

The use of CSS (rather than tables) for layout is one area in which compatibility with older browsers is sacrificed in favor of ease of development and maintainance. If you want to see the power of CSS, visit www.csszengarden.com.

Calculation Code

The Mathematica code used in each Eco-Tool is provided in two forms: as a Mathematica Notebook, which can be read and executed by anyone with access to Mathematica, or just read with the free MathReader application, and as a PDF file of that same Notebook.

The Notebook front end is one of the advantages of using Mathematica as a calculation engine, because the code itself, fully-formatted annotation of that code, actual analyses, and any graphics produced by those analyses, can all be included in a single file. This makes it easier for a non-programmer to ‘read’ the code than with just about any other programming language. And with the ‘automated package-making’ feature, that exact notebook is the one that provides the code package that actually does the calculations. Thus there is no lag between code updates and documentation updates.