I wrote Mapper for several reasons.
One of my interests is Glorantha, a fictional world of myth created by Greg Stafford and friends since 1966. Over the years, various maps of parts of Glorantha have been produced. These are all somewhat inconsistent. I wondered if it were possible to automatically combine the maps, using the best maps of a region where possible, and resolving the inconsistencies, paying due weight to the evidence. Mapper is intended as a program for doing this.
I like intellectual challenges.
I like learning new skills. In this case, the skills are
creating XML documents, including creation of DTDs
See the documentation of the Mapper file format for more information about the Mapper XML application.
manipulation of XML documents using the Document Object Model (DOM) (the Apache Xerces-C++ implementation, in this case)
This manipulation is encapsulated by
the MapDataDocument class
and
the DOM_output namespace.
manipulation of XML documents using Extensible Stylesheet Language Transformations (XSLT)
See the documentation on displaying Mapper data for more information about how XSLT is used with Mapper.
Mapper serves as a demonstration to potential employers of my technical skills, initiative, drive and intellect. In particular
C++ programming, including use of the Standard Template Library (STL)
The C++ source code of Mapper is available on-line for inspection.
software design, using preconditions, postconditions and invariants (also known as programming by contract), demonstrating my disciplined approach
See the detailed design documentation for the preconditions, postconditions and invariants.
automated software building using make and
GNU Autoconf
automated software testing using C++ test drivers and scripts, demonstrating my positive attitude to quality
For example, see
the test driver (test harness) for testing the contents of the minimise namespace.
documentation using XHTML with Cascading Style Sheets (CSS)
This is an XHTML file that has a Cascading Style Sheet
Rather surprisingly, software like Mapper, which calculates positions from inaccurate data, can have practical applications.
Cell phone networks can roughly locate a caller within a cell/sector The FCC in the USA requires that emergency mobile-phone calls are located more precisely. Companies are already selling products that triangulate the positions of mobile phones using multiple distance measurements. Increasing the location accuracy of mobile phones can also have commercial applications.
$Revision: 6.3 $ $Date: 2002/07/06 15:38:35 $