======== Timeline ======== This is a rough list of the major tasks I've undertaken over the years at Laser-Scan. .. contents:: Cartographic technologies (1980-1988) ===================================== * Created a coherent company wide set of utilities from a variety of individual programmers' PDP-11 libraries. * Substantial work on Laser-Scan's original PDP-11 based LITES cartographic editor, including extending it to use colour displays, as such technology became available. * Wrote a VMS based digitising system for MCE(RE), and later extended it for OS(GB). At the time, it was cost effective to have multiple digitising tables (20 or more) connected to a single computer, without screens. Many of the ideas in the digitising system were later adopted for LITES2, the second generation cartographic editor. * Liaison officer to OS(GB) for two years, whilst OS developed its in-house digital requirements. * Liaison officer to MCE(RE). * Wrote software to transfer data between CADAM systems on IBM mainframes and INFORMAP systems on VMS, for Wessex Water Authority. * Translated about 5 inches of (mostly) PL/1 printer output into VMS Fortran and DCL, for DMA, to allow production of structured DLG-3 data. * Wrote software to produce output for a variety of plotters, including a very simple testplot facility for VT200 displays. * Worked on an Alvey project (joint with UCL) on 2.5d vision systems, designing appropriate datastructures and writing support code. This resulted in the "Quadtree storage of vector data" paper, describing the use of quadtrees for realistic data quantities (at a time when other papers on the subject just dealt with 512 by 512 matrices). * Substantial work on the VMS LAMPS software suite, including - the windowing, patch, sorting and comparison utilities, - the generic support libraries used across the whole suite, - translators for a wide variety of transfer formats. - a variety of DCL, EDT and Runoff systems to support document maintenance on VMS. - route finding code for MCE(RE), which formed part of the initial basis for the ideas leading to Gothic. GIS development (1988 onwards) ============================== One of the original team of 3 programmers working full-time to develop Gothic, Laser-Scan's GIS (Geographic Information System). * Influential in the decision to use C (and in particular, standard C) as the implementation language. * Introduced the use of Emacs as an editor and LaTeX as a documentation format to the company, and wrote Emacs macros and TeX code to support their use. * Provided experience of Laser-Scan's previous cartographically based systems. * Wrote (amongst other things): - the core storage/persistence modules (most of which have since been rewritten several times, but the module handling references between objects is essentially in its original form). - many of the core utility modules (message handling, collections, general utilities, etc.). - the object-based backup and restore utility. - the initial core support for translating data in and out of Gothic, and specific translators for many formats, including LSL IFF, DXF, NTF (in some forms), Intergraph SIF, TIFF, IIS, ERDAS raster, tabular (CSV) data, DX-90. Further work (1997 and onwards) =============================== These notes are derived from those I wrote for my assessment in November 2002, and cover what I was doing since the previous assessment, in 1997 - i.e., a period of about 7 years. * An investigation of shared library support for Gothic on NT. * Participated in a Y2K project for UKHO. My involvement was in translating various Fortran algorithms to C, including explaining to the customer why it would not be feasible to produce identical numeric results to the old (Fortran) in the new C code (or, indeed, in code using a more modern Fortran compiler on another machine). * Investigated adding support to the LSL IFF text translator for "patches" - discrete areas of higher resolution. This turned out to be an equivalent problem to generalisation (i.e., not solvable with the simple algorithms that could be produced in the timescale), and thus was only partially satisfactory, although it was an interesting project. * Gothic Maintenance and Fixes for various new releases of Gothic. It can be interesting, it can be frustrating, but it has to be done. * Work relating to DTM support for OS. Generally speaking, this was satisfactory, and having an actively involved customer who has particular needs, which they understand, can be very useful. * Some support work for the DFAD/DTED translators. (These are military exchange formats, vector and raster respectively, with headers that contain 36 bit words, 6 bit characters.) This was an odd one, because the project died when the customer decided to get someone else to handle much of the follow-on work. I can't say I take any joy in working on DFAD/DTED. * A small, fast project with specific aims for WhereOnEarth. Much of my work was writing reflexes (methods triggered when objects are manipulated). * Storing NTF metadata, for OS(GB) and EUDL. For part of this I was overseeing another programmer, which was instructive in several ways. This was the first project where I started to keep my progress notes and reports as HTML pages, so that others could easily find them. This seems to me to be a very good idea, and one I have kept up. * Training: FME and Advanced Lull * Writing a report on "DEM refinement". Whilst the topic was interesting, and I believe the final report was useful, it turned out that the customer wanted something rather more ambitious than we had realised (or had been stated). * A small amount of web support for the marketing department, using Python and a CGI-alike. Sensibly, this was only a temporary solution, until marketing obtained special purpose tools they could use independently. * Outputting version tree information as XML. * OGC/GML, OS/DNF, etc. Specifically, acting as an internal advisor on the design of the earlier versions of GML, and one of the company's advisors to OS(GB) on the early development of DNF. * Support for UKHO. It was interesting to be working for a customer again, but my involvement was mainly trying to trace bugs in code written by the customer, and find appropriate fixes. Some of my most valuable input may actually have been to bring other people into the project - perhaps that comes under "learning to know when you *can't* efficiently solve a problem yourself". * Upgraded Python from 1.3 to 1.5.2. Was looking to do another upgrade sometime in 2003. * Attended the 2001 ACCU conference, mainly self-funded out of my 2001 bonus, with one day for LSL interests and one day for my own (which I spent at the UK Python conference which was being held as part of the event). That was very useful in several respects, not least in making it plain that J2EE was not of relevance to LSL. Throughout 2002 --------------- Technical project manager and lead developer for "Java-in-Gothic", a project to embed Java within Gothic, initially for use writing Gothic database methods, but ultimately as a general programming language for use with Gothic. Oversaw one other programmer for about half of this time. 2003 ---- Continued a consultancy and programming role with the Java-in-Gothic project (now taken up enthusiastically by the company), but mainly worked on the a generalisation project for German customers: * Cooperating on the design of an XML Schema to define a parameter file to define some of the generalisation process. * Providing software to load the parameter file directly into Java, using Castor_ * Producing summary documentation of the process methods being written, for the customer. * Producing general test mechanisms for the processes. .. _Castor: http://www.castor.org/ Standards work ============== UK National Transfer Format --------------------------- In the mid-1980s, the UK started a standardisation effort to produce a transfer format for geographic data. The format was initially called NTF, and the work was run by OS(GB). As an interested party, Laser-Scan were sent draft documents as they were produced, and two of us attended the first open meeting, where the semi-final draft of NTF was presented. Subsequent to this, I submitted a lot of comments, both of a technical and proof-reading nature, and then continued to do the same through later versions of the document. In 1988 I was invited onto the NTF Technical Working Group, which had taken over production of the NTF specification. When it became necessary to take NTF to a British Standard (BS 7567), I was asked to be on the technical committee. The first drafts of the standard were assembled by myself in LaTeX, before being reformatted in Word by another member of the committee. As part of my work on the committee, I worked with Dr A. A. Brooks to evaluate the utility of ISO 8211 (BS 6690) in future versions of NTF. I then chaired the working party that produced Part 3 of BS 7567, which provided the ISO 8211 "encoding" for BS 7567 (in fact, Part 3 was essentially written by me, with input from the working party). I was also a member of the raster data working party. ISO 8211 -------- Every 10 years, ISO inspects each of its standards to see if it needs throwing away, updating, or just keeping as is. The decision was made that ISO 8211 needed updating, and the UK was one of the nations with requirements for change. After my work on NTF/BS 7567, it was natural for me to be the UK representative in this work, and in fact the new version of the standard (ISO/IEC 8211:1994) is essentially the work of Dr Brooks and myself. My primary inputs were in the actual rewrite of the document (to make it easier to understand and use), and in the introduction of a simple textual language for describing the contents ("schema") of an ISO 8211 file. CEN TC 287/WG 3 --------------- This was a project to produce GIS data transfer mechanisms for use between European countries. I was invited onto Working Group 3 (dealing with the actual transfer layer) in 1992, because of my ISO 8211 knowledge, my experience with the BS 7567 work, and my general work in GIS. For much of that time I was the only vendor employee on WG 3, and there were not many vendor employees in the TC as a whole. I was a member of Working Group 3 and also of sub-Working Group 3.1, the latter being particularly tasked with the actual physical part of data transfer. I had to leave standards work as WG 3 produced a draft standard (not being able to travel as easily after the birth of our first child). OpenGIS and GML --------------- In the late 1990s, the Open GIS Consortium began to produce GML (Geographic Markup Language), an industry-led approach to geodata transfer. Laser-Scan provided technical input, particularly in the areas of topology and object-referencing. My experience of transfer formats and standards work, and my interest in XML and related technologies, were used in the formation of Laser-Scan's positions. Glasgow University ================== From 1991 through 1998, personal reasons required me to be in Glasgow, where I worked as a Research Assistant in the Topographic Science Department in Glasgow University, fully-funded by Laser-Scan. My primary responsibility was continuing with the development of Gothic, but I also: * Provided support for the department and university in the use of Laser-Scan software, including student projects on 3d visualisation and buzzard/raven nest distribution. * Acted as an advisor on student projects relating to GIS. * Participated in the VMS Managers Group, and the Unix System Support Group. * Installed and supported Emacs and TeX/LaTeX on the University VMS systems. * Worked on a project (the JUGGLE project) to investigate the utility of Java as a programming language for GIS, and the possibility of embedding Java within Gothic. Tony Ibbs, July 2003