Programming and Modeling Tools
Python
Tools:
- Python 2.6.4
- NumPy 1.4.0 and SciPy 0.7.1 (MATLAB-like numerical packages)
- NumPy download
- SciPy download
- Matplotlib 0.99.1 (MATLAB-like visualization package)
- NetworkX 1.0rc1
- Pajek - Program for large network analysis
Guides:
- Beginner's Guide to Python
- Python 2.6.4 Documentation
- Python 2.6.4 Library Reference
- NumPy and SciPy Documentation
- NumPy Tutorial
- NumPy Functions by Category
- SciPy Tutorial
- Matplotlib Screenshots and Sample Codes
- Matplotlib Documentation
- NetworkX Tutorial
- NetworkX Reference
Java
Tools:
- Eclipse IDE
- Frevo - Framework for evolutionary design of complex systems
- A dynamic Graph Library for Java
However, quick visualization in Java is a pain without appropriate tools. There is a nice discussion on Java Scientific Packages similar to SciPy at [1]
In summary, the proposed packages for Java which could be interesting are:
- Apache Commons Math
- Java Numerics
- Colt
- Matlib
- Java Scientific Library
- JFreeChart
- JScience
- jHepWork
See also our detailed report on data visualization in Java.
HTML5
HTML5 is offering a full frame buffer, audio stack, and embedded video. It thus makes it possible to implement powerful browser-based applications that run independently on all operating systems and various different browsers like Chrome, Firefox, etc.
Tools:
- Google Web Toolkit (GWT): a development toolkit for building and optimizing complex browser-based applications
Graph and Network Analysis Tools
JGraphT
JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:
- directed and undirected graphs.
- graphs with weighted / unweighted / labeled or any user-defined edges.
- various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
- unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
- listenable graphs - allow external listeners to track modification events.
- subgraphs graphs that are auto-updating subgraph views on other graphs.
- all compositions of above graphs.
Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.