Some cool things in the code:

* GeneticParameters.java

Operators are loaded using dynamic class loading.  This uses the
reflection API to find all class files matching a specific query (in
this case, all non-abstract classes implementing ELOperator), load and
instantiate them.

StreamTokenizer is used to parse human readable configuration files
(*.gp).  These have a Java-like syntax with comments, blocks, and
variable assignments.

* GeneticConsole.java

BooleanFieldAdapter and DoubleFieldAdapter use the reflection API
(java.lang.reflect) with the Swing MVC (Model-View-Controller)
architecture to create data bound controls.  That is, these connect
GUI objects to a field of a class *by name*, so they will work with
any class.

OverlayIcon shows how to create composite Icons procedurally (as
opposed to rendering a new icon).  This is very memory efficient and
has a negligible impact on performance.

