Other People’s Code

It’s something of a running joke that, you hand existing code to a developer, that developer will stay up all night completely re-writing it. I wish I could say it was completely a joke but, not only have I seen it happen numerous times, I’ve done it.

Counter-intuitively, some developers find it easier to use an existing application as a storyboard for a re-write rather than simply digging into the existing code. This is because programming is not only an extremely mental activity, it is quite psychological as well. When you are asked to take over existing code, as has happened to me a few time recently, you are not only learning the code, you are are also become familiar with how the previous developer(s) approached problem solving. You must train yourself to think like the previous developer in order to understand their approach.

Continue reading “Other People’s Code”

Personal Geospatial Workflows, July 2016 Edition

It’s hard to believe, but I last touched upon this topic over two years ago, when my family and I were living in our between-houses rental. One of the goals I had when building our current house was to create a space where I could more effectively work from home. To that end, I have a dedicated office that I’ve been working toward optimizing for my technical work.

One advantage of a dedicated space, which I did not anticipate ate the time, is compartmentalization. One of the dangers with working at home is the blurring of the boundary between work time and personal/family time. In our old house, I definitely felt that as I was working from the dining room table. Now, I can more effectively shut the door and step away. I’m not perfect at doing that, yet, but I am getting better.


As a consultant doing federal work, I don’t get to work off-site all the time. I’ve been fortunate, however, to have worked a few projects over the past couple of years that have allowed it, so I’ve taken advantage of it as much as possible.

Continue reading “Personal Geospatial Workflows, July 2016 Edition”

CartoDB Is Now CARTO

The company formerly known as CartoDB announced today that it is rebranding to the name CARTO. This change is intended to indicate a stronger focus on enabling location intelligence and analytics within its platform by adding new tool designed to allow data analysts to analyze, visualize, and publish without the in-depth knowledge of SQL, CSS, and Javascript that has been traditionally required to to perform such tasks.

Continue reading “CartoDB Is Now CARTO”

Publishing GeoPackage to GeoServer Using QGIS

Recently, I had the occasion to attempt to generate an OGC GeoPackage from QGIS and publish it using GeoServer. The use case was fairly straightforward. I had been given data in GML format and needed to publish it. For many valid reasons (such as lack of spatial indexing), GeoServer does not natively support publishing GML data. As a result, I need to convert it to something that GeoServer did support.

QGIS opened and displayed the data easily and, from there, I could export it into any number of formats. (Or I could have used OGR.) The feature attributes had very long names and I didn’t want to lose that richness by exporting to shapefile. I was trying to keep my server-side life simple, so I was hoping to avoid setting up an RDBMS data store for this purpose. It was then that I noticed QGIS supports exporting to GeoPackge, so I decided to give it a go.

For purposes of this post, I am using a shapefile of building footprints of Leonardtown, Maryland. The process is the same for a GML file, however.

As shown below, you initiate the process like any other by right-clicking and choosing “Save As…” in the context menu.


Continue reading “Publishing GeoPackage to GeoServer Using QGIS”

Esri User Conference 2016

Aside from a day at the Esri Federal GIS Conference, I’ve been laying fairly low from geo industry events for about the past year. There’s no single reason for that; it’s been more that a combination of things like work deadlines or family happenings have taken priority over conflicting conferences and events. I’ve generally been watching from afar, finding tweet streams and their attendant embedded links to be particularly effective.


I had been considering heading out to San Diego for the Esri user conference this year. It’s the largest gathering of geospatial people in one place every year. Even if you are not an Esri user and can’t attend the event itself, it’s worth going and being in the vicinity as 15,000 geographers descend on San Diego. Even Mapbox is getting into the game on this.

Continue reading “Esri User Conference 2016”

Revisiting Two Old Friends: ArcGIS and PostGIS

Back in the dark old days of ArcSDE, when it first started to support PostgreSQL/PostGIS as a back-end data store, I did a series of posts about how to work with it. Of course, working with PostGIS in ArcGIS was a theme of the early days of this blog, through my association with zigGIS. Although it’s been the case for a while, I’m feeling a bit happy today that it’s now as simple as this to work with (vanilla, non-geodatabased) PostGIS in ArcMap. (Post continues below the GIF.)


You might ask “Why not just work in QGIS?” and you would have a valid question. QGIS is a perfectly fine desktop PostGIS client. As a matter of fact, I went almost two years without a functioning copy of ArcMap and using QGIS as my primary desktop tool (which is why I’m exploring the capabilities of ArcGIS 10.4 now). Sometimes, projects dictate what tools you need to use. The data-level interoperability implied by the support shown above has me thinking about hybrid workflows to allow shops (especially small ones) that have need for final products to end up in an Esri stack to still exercise a measure of choice with regard to tools. It may be time to re-tool that old series of posts for the state of GIS tools circa the middle of this decade.

A Week in the Life of a Geotech Omnivore

Earlier this week, I posted the above tweet. To explain the variety I referred to, here is a partial list, in no particular order, of the tools I’ve worked with in the past week.

  • Node
  • TileMill (Yes, I still use it)
  • ArcMap
  • QGIS
  • Python
  • ArcGIS Server
  • GeoServer
  • C#
  • WMS
  • SOAP (!)
  • Windows Communication Foundation
  • JavaScript
  • Python
  • PostGIS
  • Microsoft SQL Server
  • SQL (Spatial and non-spatial for the above platforms)
  • Leaflet
  • GeoJSON
  • X.509 certificates

Continue reading “A Week in the Life of a Geotech Omnivore”