Bookmark and Share

This is where I keep software that I have written.


Project Page

MRToolkit provides a simple way to write Map/Reduce jobs for Hadoop.  A basic (bus still useful) applicaiton canb e writtin in a grand total of  9 lines of code.  MRToolkit is implemented in Ruby, and uses Ruby as an embedded domain-specific language.


Project Page

CloudMaster manages a set of job on Amazon's EC2 computing infrastructure.  It provides monitoring, load balancing, and scaling up and down the cluster to meet the response time requirements of the application.  CloudMaster provides built-in policies for stateful and stateless servers, and can easily be extended to incorporate other policies.



LittleScheme is a small scheme interpreter implemented in C++, designed to be embedded in other applications.  Multiple independent scheme interpreters can be instantiated in a single application.  The interpreter can be extended with application-defined types, variables, and primitives.



This is software for the HP 95/100/200 series palmtop computers.  It can be described as a semi-structured database manager, as a note-taking application, or as a information organizer.  It knows how to import and export files from the built-in applications on the HP95.  The HP 100 contained a built-in notepad program, which was not as good Notepad, but which has largely supplanted it.

CV-Newark-Et.jpg (2613 bytes)     CVista       


Vista Pro is a fascinating and amazing program that makes visual images out of maps.  More precisely, given a regularly spaced grid of elevation values, Vista Pro will allow you to make a picture of what that scene might look like from various viewpoints, with trees, or rocks, or snow, or other kinds of surface textures.  You can even make an animated fly-by of the scene.  

The software comes with a set of sample maps, which cover large parts of California, Hawaii, Mars, national parks, and other places of interest.  However, there are lots of areas which are not covered (including the area of New Jersey where I live).  The required elevation data is available from the government free over the internet.  But there are two problems with this data. First it is coarser-grained than the maps that come with Vista Pro (by about a factor of 3: this messes up the vertical scale because it changes the relationship between the horizontal and vertical scales.  Second, the maps available from the internet are formatted differently, and Vista Pro cannot read them directly.  Most importantly, they are too big to be handled conveniently, and have to be subdivided.  Sometimes the area you are interested in spans two maps, and has to be pieced together from segments from distinct files. 

Vista Pro comes with some software that handles some of these problems, but it is difficult to use and cannot handle segmenting and assembling pieces from different maps gracefully.  (I have not figured out how to make it work.)  CVista was written to tackle these problems.  You might want to see my Tutorial for a detailed example of how to use CVista, and what it can do.

CVista can read a compressed file directly, just as it comes from the internet -- you don't have to first uncompress it.  Then it displays a thumbnail of the elevation grid, just as Vista Pro does.  You can select various options for segmenting the map, with the resulting files shown graphically on the thumbnail.  Then you write the result out.  The files are tagged with the correct latitude and longitude so that the read properly into Vista Pro, and do not have to be manually placed.  Finally, you can write the maps at various lower resolutions so that you can build maps of large regions or whole states.  In fact, I downloaded the entire USA and reduced the resolution sufficiently that I could read the whole country into Vista Pro.

By the way, the maps you need to get are USGS 250K DEMs, otherwise knows as "One Arc Second" maps.  they are available from the USGS under the heading "1:250,000-Scale Digital Elevation Model (DEM)".


Eliza is a Java implementation of the classic psychologist program, as faithful to the original 1966 version as possible.  It has its own page.

Graph Traversal

C++ Download

Scheme Download

This program takes a weighted graph, as specified by the links between the nodes and their costs, and produces a list of all ways to traverse that graph from a start node to an end node.  It prints these sorted by cost.  It can be used to determine the shortest driving distance between one point and another.


oGo back to Charles Hayden's Home Page