Archive for September, 2007

Putting REST to the Test

September 30th, 2007 by David Stevenson

I have read a lot about RESTful web services and their benefits over traditional SOAP/WSDL services. Heck, I even did a Q&A in our Geocortex newsletter about it. Well, recently we had an opportunity to design and build a new AVL (Automated Vehicle Location) system that incorporated REST webservices to be consumed by IMF. The process went amazingly well. Conceptualizing and designing the REST URL interfaces was so much easier than designing and implementing a full SOAP API. Designing REST services forces you to think in a more natural way about the entities (Nouns) in the system rather than the actions (Verbs). Implementation and integration was almost as easy as the design as we didn’t need to worry about all the supporting infrastructure of SOAP. I’m not suggesting that REST is the future and that SOAP is dead — it totally depends on the application. However, in this case we tried a new approach and it was a big success. I’ll provide more technical details if anyone is interested.

Geocortex Editing Suite 5.3 Released

September 27th, 2007 by Drew Millen

A few weeks ago I mentioned that our products team was working away on a couple of projects including Geocortex Editing Suite. Yesterday we cut and released Editing Suite 5.3. This release represents a significant development effort and introduces a few cool new features including:

  • Base-data editing allows editors to commit changes against the base data layer (of course, version-based editing is still supported in Editing Suite)
  • Quality Assurance / Quality Control (QA/QC) workflows allow editors to create editing “projects” which persist across sessions and remain locked (restricted from other editors) until they are approved or rejected by a system or data administrator
  • Feature-based locking restricts more than one user from selecting a single feature for editing at any given time

A public link to the Geocortex Editing Suite 5.3 demonstration site is available from our Map Gallery. When logging in to Editing Suite, use the username/password: edit1/edit1.

Great Visual Studio 2005 Add-ins

September 26th, 2007 by Kevin Rintoul

One of the great features of Visual Studio is its support of add-ins. Out-of-the box, Visual Studio is a complete development package, but there are always ways to improve it. This is what add-ins are for. My favorite add-ins are:

TestDriven.Net – I spoke about this great unit testing and code-coverage suite last BLOG post. It is good enough that I thought it is was worth mentioning again.

Collapse All Projects – Our Visual Studio solutions commonly consist of 10-20 projects. When you open a solution in Visual Studio, for whatever reason, Visual Studio’s Solution Explorer insists on expanding each and every one of them. I found that I was spending a disproportionate amount of time, closing them until I found this very useful utility that will close all of them for me from a context menu in Solution Explorer. I’m not sure why Visual Studio did not ship with such a feature (it seems so obvious) but I’m glad Jeff B. was thoughtful enough to write one and share it with us.

The last add-in favourite really isn’t an add-in but a Visual Studio option I discovered the other day. One of the things we do before we check work into our repository is to compare our files with those stored in the repository to ensure what we’re checking in, is really what we intended to check in. The way we do this is to use Visual Source Safe’s compare function, available from Solution Explorer’s context menu The problem is that when our projects contain a large number of files, it can take some time to locate that file, notwithstanding we have the file open in our editor, right in front of us. Visual Studio has an option that will keep Solution Explorer in-sync with the file open in its editor. It is turned off by default, although I think it should be turned on. To turn it on, Go to [Tools] -> [Options] -> [Projects and Solutions] -> [Track Active Item in Solution Explorer].

Push-ups

September 18th, 2007 by Drew Millen

We’re releasing a GUI-based application construction/management app as part of Geocortex Essentials 1.2. Analogous in many respects to SiteManager for Geocortex IMF, we’d been planning to call it SiteManager for Geocortex Essentials. We recently decided the name wasn’t suitable because it goes way beyond managing just “sites”. We renamed it Geocortex Essentials Manager.

Everyone at Latitude is having a tough time getting used to calling Geocortex Essentials Manager by its new name (some more than others). To help reeducate people, the development team has instituted a policy whereby anyone who accidentally calls it SiteManager now has to drop to the ground and do five push-ups (which, for computer geeks, is like ten push-ups to an average adult). Yongzhi is doing more push-ups than everyone else at Latitude combined.

Thinking about cartography and WMS layers

September 15th, 2007 by jade

Web Map Service (WMS) layers allow organizations to incorporate spatial data from other places, and clients are now routinely integrating WMS layers into their ESRI-centric applications. I’m going to discuss a couple of the cartographic issues that can crop up with this.

When a user switches on a WMS layer, the map viewer requests the data directly from the WMS which returns a map image back to the user’s web browser. The map viewer stacks the various image layers from the different data sources one on top of the other. Normally this would result in only the top image being visible to the user, but the map images can take advantage of the concept of transparency; that is, areas of the map image that contain no data can be made transparent, allowing the images lower in the stack to show through.
While the image stacking method mentioned above works is simple enough, there are situations where it yields unsuitable cartographic results. Annotation can be especially problematic, as a feature’s label may have been placed at exactly the same spot as the label for a different feature from a different WMS data source. Since the WMS layers are raster images, there is no way for different WMS servers to perform label collision detection and reconciliation, which is done for WMS layers drawn from the same data source. Multiple labels drawn at exactly the same location will be illegible.

In addition to the annotation problem, there is a potentially more important issue whereby polygons (district boundaries, for example) that are symbolized with a solid fill color are completely opaque to WMS layers from data sources further down on the image stack. A common internet cartography technique is to symbolize a polygon with a partially transparent fill color, allowing features underneath the polygon to show through. For example, a floodplain feature may be symbolized with a partial transparent fill, allowing all of the land features to be seen through the feature. The end result is a tinge of color across the floodplain area with little effect on the visibility of the coincident features. However, output map images compiled from different sources don’t provide transparency options that are well suited for web environments.
So… when integrating WMS layers from various sources into your mapping application, it is important to consider how they will appear to end users. WMS layers can be a convenient way to enrich an ArcIMS/ArcGIS Server application, but are of diminished value if cartographic representation issues detract from the effectiveness of the final map.

Great .Net Developer Tools

September 12th, 2007 by Kevin Rintoul

I’m constantly amazed at the quality of developer tools available for .NET. My three favourite tools are:

1. Visual Studio 2005 Professional

2. TestDriven.NET

3. CruiseControl.NET

Subversion revision control system is a close fourth but we don’t use that here … yet.

Visual Studio is simply better than any development environment I’ve ever used. Its editor is very good. The integration with third-party add-ins is excellent. Its IntelliSenseTM is a great time saver, and the environment is highly configurable. There are other third-party development environments available for doing .NET development but most shops I know use Visual Studio. I can understand why.

TestDriven.NET is a suite of tools that allow developers to write, execute and maintain unit tests. For those who are not familiar with unit tests, a unit test is code written to automatically test code. The idea is to develop unit tests in parallel with your production code and then execute these tests as you develop and change your code over time. When you change code, simply execute the unit tests again and if the tests pass, you can be pretty sure that you haven’t introduced any new issues. When used in conjunction with a code coverage utility such as NCover , the probability of writing really reliable code and keeping it that way increases dramatically. On our soon-to-be released Essentials Manager project, we’ve seen the power of unit tests first-hand. We encountered very few problems with code we wrote that had accompanying unit tests, but the outcome was different for code we wrote without unit tests.

CruiseControl.NET is one of those tools that you don’t know you need until you begin using it. Many development shops have automatic daily builds which is good, but CruiseControl.NET takes that idea to the next level. CruiseControl.NET sits quietly in the background and monitors your source code repository and whenever anyone checks anything into it, it kicks off your automatic build and reports any errors it finds. Everyone on your development team is notified when an error occurs and the name of the offending developer is displayed prominently. The peer-pressure for that developer to quickly remedy the problem is substantial. CruiseControl.NET takes only about an hour to setup and once running, you’re likely never to suffer a broken build again.

Geocortex Essentials Beta Almost Ready

September 7th, 2007 by Drew Millen

We’re wrapping up development on Geocortex Essentials 1.2. Beta 1 should be ready for distribution in a week or so.

Let me know if you want to participate in the Beta Program. Geocortex Essentials Manager is going to make life way easier for a lot of organizations trying to get ArcGIS Server online. Here’s a preview screenshot of the Layer List management component:

GEM_LayerList2

GPS & New York City Taxi Drivers

September 5th, 2007 by Steven Myhill-Jones

cabIn New York City, a significant number of taxi drivers have gone on a 48-hour strike to protest (in part) mandated GPS in their cabs (the NYC Taxi & Limousine Commission will track and log vehicle activity).

Aside from the backlash itself being noteworthy, most AVL-type systems that I’m aware of track organizations’ own vehicles/assets. The TLC is the agency responsible for licensing and regulating, which makes this scenario a bit different, does it not?

GPS & New York City Taxi Drivers

September 5th, 2007 by Steven Myhill-Jones

cabIn New York City, a significant number of taxi drivers have gone on a 48-hour strike to protest (in part) mandated GPS in their cabs (the NYC Taxi & Limousine Commission will track and log vehicle activity).

Aside from the backlash itself being noteworthy, most AVL-type systems that I’m aware of track organizations’ own vehicles/assets. The TLC is the agency responsible for licensing and regulating, which makes this scenario a bit different, does it not?