November 2009
- Began working on making PostGIS 1.5 release ready, fixing and closing many many tickets.
- Began planning for the 2010 New York code sprint for the open source developers of PostGIS, MapServer, GDAL, OGR and other C/C++-based software.
- Began work on Windows builds for PostgreSQL and PostGIS, to understand and support that platform more directly.
- Confirmed Solaris support for upcoming releases of GEOS (3.2) and PostGIS (1.5).
October 2009
- Completed the third stage of the "geography" type implementation for PostGIS. Distance, point-in-polygon, intersection and area tests on the sphere and spheroid.
- Attended the FOSS4G 2009 conference in Sydney, Australia. Delivered very well-received keynote address and an update on PostGIS development.
- Visited Google Australia and presented my FOSS4G keynote to an audience of Googlers.
September 2009
- Completed the second stage of the "geography" type implementation for PostGIS. True geodetic index, supporting features that cross the dateline, poles, etc.
- Prepared keynote presentation for the upcoming FOSS4G 2009 conference.
- Tracked down a performance issue in the new index code and fixed. Performance now exceeds original index implementation.
August 2009
- Completed the first stage of the "geography" type implementation for PostGIS. New disk serialization with support for multiple dimensioned indexes and double-aligned access to coordinates.
- Prototyped n-dimensional indexing system, for the geography type implementation and future support for n-d indexes in PostGIS 2.0.
- Served as the "chief returning officer" for the 2009 OSGeo member and board election process.
July 2009
June 2009
May 2009
April 2009
- Released a new OpenGeo website into the world, after a great deal of work on pulling together a message and new product focus. Look out world, here comes the OpenGeo Suite!
- Invited to provide a keynote address at FOSS4G 2009 in Sydney, Australia.
- Coordinated the OSGeo presence at the Where 2.0 exhibition hall.
- Release manager for the PostGIS 1.3.6 release.
- Prepared a workshop on spatial databases in the web world, for presentation at Where 2.0 in May.
- Traveled to Rutgers University in New Jersey to participate in technical sessions held by the OBIS ocean biodiversity organization.
March 2009
February 2009
- Fixed a long-standing annoyance in loading data into PostGIS, where the back-end complained about deprecated string formats.
- Re-drafted the database updating script to be somewhat simpler in implementation.
- Resolved a PostGIS build problem with iconv (internationalization library) on Solaris and hopefully other platforms with build-in iconv.
- Implemented an ST_GeoHash() function for the 1.4 release of PostGIS.
- Experimented with flex and bison, building a WKT spatial reference system parser in C.
- Fixed small issue to bring the DBF format written by pgsql2shp exactly into compliance with the DBF spec.
- Participated in the OpenGeo organization retreat to Bailey Farms in "upstate" New York.
- Completed preparations for the 2009 Toronto Code Sprint, which will happen early next month.
- Wrote an article for the Open Source Business Resource, to appear in the March 2009 issue.
January 2009
- Completed a basic GUI for shape file loading into PostGIS. Should make teaching courses a little easier.
- Continued organizing work for the 2009 Toronto Code Sprint.
- Integrated new “cascaded union” functionality in PostGIS for big performance gains.
- Improved PostGIS geometry array accumulation code, for more big performance gains.
- Began release process for GEOS 3.1.0.
- Started documentation on PostGIS data alignment transition.
- Drafted an architecture review of the OpenGeo software stack.
- Posted an article about the OpenGeo philosophy of support.
December 2008
- Accepted a full-time contract with OpenGeo as PostGIS expert-in-residence and marketing advisor.
- Evaluated the 2010 FOSS4G bids in my capacity as a member of the Conference Committee of OSGeo.
- Added two new functions to PostGIS for the Metropolitan Airport Commission: a clipping routine based on elevation, and an analysis function that figures out the crossing directions of a pair of linestrings.
- Travelled to Texas to work with a client on Mapserver and PostGIS tuning for their application.
- Wrote a hack-patch to Mapserver for a client to do text rotation for labels in parcel polygons. Not suitable for general purpose use, but helps their use case.
- Fixed an issue in the re-written Mapserver support for PostGIS relating to expression tests on fixed-length strings.
November 2008
- Completed release process for PostGIS 1.3.4.
- Fixed bug in PostGIS prepared geometry implementation, for cases where both the GEOS implementation and native implementation might have state stored in the cache.
- Added new function to PostGIS for 1.4 version, ST_IsValidReason(geometry) to return the reason for a geometry validity failure.
- Completed the missing data RFC, and applied the patch for the 5.4 release.
- Travelled to Lawrence, Kansas and delivered address to 200 attendees at GIS Day. Met with Howard Butler and Steve Lime of the Mapserver PSC.
- Worked on my presentation for GIS Day in Lawrence, Kansas.
- Finished the re-write of the PostGIS driver in Mapserver and committed it back to the code repository.
- Profiled Mapserver looking for performance gains to match Geoserver in benchmarks of PostGIS performance.
October 2008
- Tracked down a critical bug in the prepared geometry implementation and committed a fix.
- Completed integration of “prepared geometry” into PostGIS for 5- to 10-times speed improvements, funded by Zonar Systems.
- Profiled PostGIS and found small memory management enhancement to improve performance by a further 40%.
- Prepared an RFC for Mapserver on configuring missing data behavior at run-time instead of (current behavior) compile time.
- Solicited PostGIS users and the general community for sponsorship support for GEOS, to hire a maintainer and improve performance further.
- Travelled to New York to meet with OpenGeo and talk about GeoServer, PostGIS, and the open source stack.
September 2008
- Home repairs and fixing before the arrival of the winter rains. Painting front and back of house, fixing door seals, replacing mail slot, removing and replacing some rotten boards.
- Further performance work on Mapserver raster handling. Review the performance of AVERAGE re-sampling and options for IPP-accelerated replacements.
- Database performance review for non-disclosable client. Complete the review and polish report document.
- Architecture advice for client on in-vehicle tracking application. What is cheap, fast and easy solution?
- Re-vitalize work on PostGIS performance. Prepared geometry must be ready for prime-time. Other low hanging fruit includes faster buffer and faster unioning.
- Received the Sol Katz Award for Geospatial Free and Open Source Software.
August 2008
- Continued performance work on Mapserver, isolating JPEG-decompression as a major bottleneck and finding a solution.
- Investigation of memory leaks in the prototype "prepared geometry" functionality in PostGIS, getting a testing environment set up.
- Vacation at the Alders Beach Resort in sunny Merville, BC.
- Repairs to the JPEG-decompression optimization work in Mapserver. Necessitated by the non-standard use of reading/writing buffers by the Intel version of libjpeg, requiring small patches in GDAL and GD.
July 2008
- Did a couple of interviews with European GIS magazines, in follow-up to last month's trip to the Netherlands to speak at osgeo.nl.
- Did some Mapserver performance work teasing out places in their installation that could be more efficient and examining where Mapserver is spending its cycles in their workload. Interesting, detail-oriented, work.
- Attended GeoWeb in Vancouver for three days plus an evening meeting of OSGeo BC. Met lots of people and had a grand time. Presented on Mapserver.
- Wrote up my Mapserver presentation for the upcoming GeoWeb conference.
- Worked on a substantial database performance comparison, with PostGIS on one side, and an as-yet-unannounced database on the other. Lots of data prep, loading, and composing interesting SQL.
- Fixed a small bug in Mapserver that I introduced during performance optimizations.
- Enjoyed a week-long trip to Kelowna with the wife and kids. Drove the Coquihala highway over the mountains, left kids with family a couple nights and had dinner, very good.
June 2008
- Did a performance bug hunt for a client, looking at GiST index bindings to an R-Tree and reported bad data access performance.
- Visited the geospatial researchers at TU Delft and discussed spatial databases, and hosting FOSS4G 2010.
- Presented the open source geospatial experiences of British Columbia to a round table session at Rijkswaterstaat.
- Travelled to Delft and delivered a well-received keynote address and workshop to a one-day conference on open source geospatial software.
- Worked on workshop materials and presentation decks for upcoming trip to Delft.
-
Travelled to Edmonton to meet with a (non-disclosable) client and provide some architectural advice.
May 2008
-
Investigated a potential performance bottleneck identified by Geoserver developers, but only found some minor initialization overheads, that were quickly patched.
-
Reviewed current plans for the 2009 FOSS4G conference in my role as the "OSGeo Board Representative" responsible for ensuring the event is financially solid and well-organized.
-
Added a teeny tiny patch to Mapserver to make it go infinitesimaly faster, by in-lining byte-swapping functions and the bit checking in the bit map iterator.
-
Prepared a prospectus for a new teaching event, the "OSGeo Teach-in", and delivered it to the OSGeo board.
-
Travelled to San Francisco and delivered a talk to the Bay Area Automated Mapping Association (BAAMA) on Public Service in the Internet Age.
-
Started on a web-based spatial data management system for a client.
-
Taught a private course in PostgreSQL/PostGIS installation on OS/X to a
student from Seattle.
-
Fixed a small but well-hidden bug in the PostGIS interaction with Mapserver query logic. Mapserver expected MULTIPOINTS to be encoded as one N-point line, and the PostGIS connector was returning N 1-point lines. The fix: deal with both cases properly.
-
Attended an Oracle Technology Summit in Victoria. Interesting to see so many of the geeks of the BC government all in one room at once.
April 2008
-
Started working on a revision of the Mapserver PostGIS driver to use a standard text cursor and generally be a little more maintainable. If I am going to maintain the PostGIS driver, I had best understand it, and a line-by-line review and revision is the best way to achieve that.
-
Nominated and accepted as a Mapserver committer. Very exciting and an honor after many years as a Mapserver user.
-
NDA'ed again for a Texas geological data firm. How long until there is nothing left that I am allowed to D?
-
Provided a fix for a
long-standing
performance issue in Mapserver, which showed up as a speed difference between Mapserver and Geoserver for large shape files. First researched how Mapserver and Geoserver did index access, found potential code problems in Mapserver, ran Mapserver through a profiler, then wrote up my findings. Wrote two patches, one to make Mapserver SHX file access lazy loaded and the other to improve the efficiency of scanning result sets.
-
Wrote an RFC for Mapserver, to add a new "tile oriented" API to allow
Google Maps to include Mapserver layers as overlays using the
tileUrlTemplate option to
GTileLayer.
-
Reviewed spatial architecture plans and provided advice to an ambitious new start-up. NDA? NDA!
-
Tested the upcoming PreparedGeometry implementation for PostGIS 1.4
and noticed a memory leak. Now need to find what part of the code is
actually doing the leaking!
-
Got GEOS incubation process with OSGeo moving again, with a
bootstrap steering committee and site moved to osgeo.org.
-
Wrote a patch for an issue in Mapserver that has been bugging me for a while (three years, according to the issue history). The patch fixes Mapserver to generate more specification-compliant WMS requests when acting as a WMS client.
-
Patched the PostGIS regression system to allow it to handle different versions of GEOS. Closed a half-dozen other bugs and pushed out a 1.3.3 release.
March 2008
-
Travelled to Eugene and spoke to the URISA chapter for Oregon. Presented a four-hour tutorial on web mapping technology, covering Mapserver, OpenLayers, Google Maps and the philosophy of open source to a class of 50. Lots of people from local government attended.
-
Taught a small class from the BC Ministry of Transportation on web mapping technology, Geoserver, Mapserver, OpenLayers, etc. Particular emphasis on the architectures of web mapping, and integrating into their existing enterprise.
-
Travelled to Vancouver to meet with colleagues from Facet Decision Systems and learn what they are up to.
-
Wrote a small patch for Mapserver that allows users to set the cache-control headers on GetMap requests in WMS mode. Should allow Mapserver tiles to be transparently cached in proxies and generally speed up access by tiled clients like OpenLayers.
-
Travelled to Denver to meet with a high-performance database firm and discuss their spatial data analysis extension.
-
Had coffee with Kevin Jardine and talked about GeoBC and the future of government data access. Drank the Kool-Aid. Learned about the Power of Information report (and government response).
-
Researched the meaning of ST_DWithin() and found it doesn't have a meaning! OGC Filter Specification says "The spatial operators DWithin and Beyond test whether the value of a geometric property is within or beyond a specified distance of the specified literal geometric value." But does being "with a specified distance" mean the whole object is within the distance (as in ST_Within()) or just some part of the object is within the distance?
-
Fixed the PostGIS / GEOS version combination problem, somewhat, by creating a proper GEOS version macro and protecting bits of version-specific code within macro blocks. Allows late-model PostGIS to coexist with earlier model GEOS.