Two Roads Diverged in a Yellow Wood…

With apologies to the great Robert Frost.

I’ll admit that over the last few months I’ve become something of an open-source convert. I’ve been in the consulting business for about 15 years now and I’ve made through the “holy wars” relatively unscathed (Microsoft/Linux, IE/Netscape/Firefox, Oracle/Everyone else, ad nauseum). I’ve said it before that it’s not religion, it’s technology. I’ve gotten to this particular point in my career with two basic philosophies intact: 1) Nothing big works and 2) I can do whatever you need to do on whatever platform you want with whatever tools you give me; it’s just a matter of “how.”

Most of my GIS consulting work over the years has been with ESRI technologies and it’s served me and my customers well. In general, it works and, more importantly, I know how it works. But over the last couple of years, there has been a disturbing trend with the technology: it’s gotten more complex (nothing big works) and more expensive. When my Federal customers start to balk, I know there’s a problem. In addition, there’s ESRI itself. It is still a privately held company with an owner that’s not getting any younger. Lacking any evidence of a transition plan that maps out how the next 10 to 15 years will go, I’ve begun doing the only responsible thing for my company and my customers: hedging my bets.

Given that most of ESRI’s serious commercial competition imploded years ago (don’t try to debate that with your single-digit-market-share tool of choice), I began paying more attention to open-source products. The approach I’ve taken is to try to piece together an open-source architecture that I would feel as comfortable recommending to a customer as the ESRI architecture. My focus has begun to gel around a core few: GeoServer, SharpMap, PostgreSQL/PostGIS and QGIS. Also key for me is that any client technology must be able to take advantage of Oracle Spatial. It’s not open-source, but it’s everywhere.

Being a programmer from the ArcObjects/ArcSDE mold, the ones I’ve been having the most fun with are SharpMap and PostGIS. As I’ve posted before, I even joined the zigGIS project to enable connectivity between PostGIS and ArcGIS. That’s been the most fun I’ve had in a long time. Probably the weakest link so far is the lack of a really good desktop tool that I could put in front of one of my analysts and say “make a map that looks as good as the ones you make in ArcMap.” QGIS is on the right track but still pretty far from the station. My analysts, thus far, won’t give it a second look.

So how has all of this made me a convert? It’s come down to the simple convenience of open-source. I’m still doing a lot of experimenting. Some of my existing customers are really interested in implementing open-source but can’t quite make the switch yet. So I was playing around with a very simple tool I was trying to build using SharpMap and I just couldn’t get it to work. I figured I had to be doing something wrong so I opened up SharpMap’s source code and examined the class I was using, realized my mistake, and moved on. The power and simplicity of that act, compared to the years of hacking against ArcObjects bugs and documentation, was breathtaking. It’s raised the bar significantly in terms of my expectations of software.

Now to step back from the edge a little: It’s not religion. Most of my customers use, and are committed to, ESRI technology. I’ve had a good working relationship with the company and the people in it. Also, quite frankly, many open-source tools are very immature and unstable. But, as ESRI shifts their focus more to the enterprise market, there will be an increasing number of small of mid-sized users getting into the geospatial game for the first time who will feel priced out. For my part, it would be irresponsible not to be prepared to address their needs with an alternate set of technologies. It will be interesting to see which becomes the road less traveled.

Desktop? We Don’t Need No Stinkin’ Desktop!

I figured I’d pile on here because it seems that a little ganging up may be in order. James and Kirk have posted about the dearth of Desktop sessions at the upcoming Developer Summit.

Kirk also provides a good, specific example of a server-only feature that would be useful, and perfectly possible, in Desktop. One of the big advantages to having a product like ArcGIS Server which, like Engine and Desktop, is built from ArcObjects, is that you can have the same core set of objects to use to build applications in all three environments. Yes, there will be some peculiarities to each platform (especially Server) that dictate some special cases but, really, something like the FeatureGraphicsLayer that Kirk points out should be available in all cases.

ArcObjects is a behemoth and ESRI’s challenge will be not to fork the code base unnecessarily along platform lines. I realize Server is the cool kid on the block right now but Desktop is going to be the workhorse for a long time. ESRI needs to make sure it doesn’t get left behind at the API level.

Free and Closed. Why?

I was IMing with Paolo today and we were discussing his employer’s decision to migrate to open-source. The conversation took a few turns and we touched upon the concept of free closed-source software vice free open-source software. His employer had rejected a free CMS that was not open-source.

This got me into a philosophical frame of mind. I began wondering if, in this day and age, there is any reason to consciously choose to release a software product as a free, but closed-source product? I raised this question a while back with regard to ArcGIS Explorer but now I’m expanding the question. I would love to hear comments on this but I’d like to establish a few parameters:

  1. I’m not interested in delving into the open-source vs. commercial software debate.
  2. I’m not trying to criticize anyone who chooses to keep their source code closed. I’m genuinely curious about the decision process.
  3. I’m not referring to things like “nagware”, demo software with restricted functionality or free products that are really teasers for commercial products (which is what I consider Google Earth to be).
  4. Please keep it civil. We’re all grown-ups and/or professionals.

I look forward to hearing your thoughts.

Derived Geometry Redux

A long time ago, on a blog-hosting site far far away, there was a blog called ArcDeveloper (not to be confused with ArcDeveloper.Net, which came later and did more). That was my first blog. It went in a few different directions. I wasn’t happy with it, so I killed it. There’s nothing to link to now.

Anyway, one of the posts I did on that blog had to do with creating derived geometry classes in .Net. The basic premise is simple: create a class that inherits from one of the ArcObjects geometry classes and then extend it to fit your needs. My application at the time had to do with writing an ArcGIS client for Common Alerting Protocol (CAP) feeds. Continue reading “Derived Geometry Redux”

Standalone IE6

Okay, this really has nothing to do with GIS but I wanted to get this info out there. I have a particular piece of software that I use regularly that involves connecting a device to my PC to exchange information. This software does not work with IE7 yet. Since automatic updates doesn’t really give you any choice in the matter (I love coming down in the morning and finding a new browser), this created a problem for me.

I found the following software that lets you install previous version of IE in standalone mode: I imagine it may have applicability for testing and such but it also solved my problem.

In For a Dime…

…in for a dollar.

I’ve been blogging about zigGIS a lot (more than I had planned to, really). So, today, I joined the project. If you go to the site, you’ll see “bill” listed as one of the project owners. That’s me.

I had a long IM session with Paolo today and there’s a lot to do. It’s an amazing project that has a lot of potential. Not just for PostGIS but other data sources as well. This is my first time joining an open-source project so that’ll be a learning experience for me as well. You can’t be a lurker forever…