Archive for November, 2009

Design Patterns For User Interfaces

November 24th, 2009 by Kevin Rintoul

We’re working hard the next version of the Geocortex Essentials installer and it is progressing really well. We’re building a reusable installer framework that will make it easy to recreate not only the Essentials installer can be used for future Latitude products as well.

An important part of our installation framework is a post install step – an application that is run after the program is installed so that the user is able to configure various aspects of the newly installed application. The post install step is mostly user interface – the one thing that I claim complete incompetence at. It’s not that I don’t enjoy working on UI but there are so many others that are better at it than I am. I’ve always felt that it is important to bloom where you’re planted. My roots are firmly planted firmly in server-side dirt.

I’ve had the pleasure of working with a very good, technically competent graphic artist at Latitude but not as much as I’d like to. Like all good people, he is about 150 percent over committed and not always available, no matter how much I beg. When I do get to work with him, he always makes me look really good. My question up until today has been “What do I do when he is not available?”. I think I found the answer in the form of an excellent book on UI design called “Designing Interfaces” by Jenifer Tidwell.

The content in “Designing Interfaces” is presented in a format very similar to the seminal book on Object Oriented Design Patterns by Gamma, Helm, Johnson and Vlsside. Readers who are programmers will immediately appreciate this approach. For those of you not familiar with design patterns, a design pattern is a reusable solution to a commonly occurring problem. One example of a UI design pattern is “One-Window Drilldown” which shows how to allow easy navigation within your application when your screen real-estate is limited. Another is “Wizard” which explains how to help less than technical users complete a series of complicated steps with a high probability of success. An important aspect of this book is that it explains when not to use a UI design pattern even though you might be tempted to. For example, sophisticated users are often put off by “Wizard”. Interestingly there is also very good coverage of patterns that we often use in GIS applications including “Data Tip” and “Local Zooming”.

I just discovered this book the other day but I really believe that it will become an important resource on my bookshelf.

Field Data Types

November 24th, 2009 by Stephanie Blazey

Have you ever tried to join data in ArcMap only to find that the field you are trying to join on does not appear in the drop down menu?

join_field2

Chances are your field data types do not match. For example, if one of your joining fields is type “Text” and the other is type “Double”, ArcMap does not recognize a match between values in those fields. Text will be read as a string of characters (which can include numbers), and Double will be read as a numerical value. A text number does not equal a numerical number as far as ArcMap is concerned.

The simple solution is to convert the field data type in one of your datasets to match the other, and then you should be able to join them.

Are the nulls getting you down?

November 23rd, 2009 by S Woods

I love taking data and making it useful for people. One of the mini projects I’ve been working on over the past year is taking our SQL Server data and turning it into useful dashboards in Sharepoint for our Project Managers to analyze their projects. I’ve written several posts on things I’ve learned about Sharepoint to do that, but I have not discussed some of the things I’ve learned about working with SQL Server.

One of the things a lot of people don’t realize about data is that it’s very black and white with really no grey areas. Human beings can see things that computers can’t. A human can see a blank space as a zero. A computer sees a blank space as NULL. What’s null? Well, to a computer, null is tantamount to falling into a bottomless pit. There is no end, only black space. This is a great example of how humans are smarter than machines! Preventing the nulls in the first place would be a sign of true smarts, so if you’re running into null problems, check your column settings in Sharepoint and/or SQL Server to make sure that you don’t allow nulls and maybe to set a default value of 0. But that won’t solve the nulls that are already there or maybe you don’t have access to the column set up. In that case, you’ll need a way for the computer to understand your nulls.

I did some trial and error and some looking around on the internet, but what I came up with was pretty cool. Instead of trying to pretend a null wasn’t a gaping void, I just use this: ISNULL(dbo.tTableName.ColumnName, 0) to tell it to change any null it finds to a zero. It works beautifully – now all my calculations come out with numbers instead of complaints!

Next on my list as a pesky sort order problem. Computers don’t know how to read digits unless you tell them explicitly. I had set up a column that was coming in to Sharepoint from SQL Server that listed the value of “Month” by number to work in descending order. It turned out that this meant my column was being sorted from left to right by the digits. Much to my dismay, they were coming out like this:
9
8
7
6
5
4
3
2
1
10
11
12

I puzzled over this one for a while and tried a few things, but it turned out that what I really needed to do was to change the “type” so that I could add a leading zero (if the type is “number” then leading zeros get dropped automatically), and limit the characters to 2 from the right so that the double digit numbers wouldn’t lose the second digit. This did the trick: RIGHT (’0′ + CONVERT (varchar, DATEPART(mm, DateColumnName)), 2). Now my results look like this:
12
11
10
09
08
07
06
05
04
03
02
01

These two little phrases made my months turn up in order and banished the nulls. I hope they might come in handy for you too! Data can never be too tidy or well-behaved.

Geocortex Essentials 2.1.1 Maintenance Release

November 17th, 2009 by Drew Millen

Today we’re announcing the release of Geocortex Essentials 2.1.1. This is our first official maintenance release. At the release of 2.0, the products team decided that we needed a way to deliver defect resolutions to customers quickly. Previously we would create patches, but patches have their own set of problems:

  • Installation of a patch involves manual steps
  • The version of the assemblies packaged with a patch are the same as the version of the release (the only way to determine if someone has a patch installed is by the timestamp and file size of the patched assemblies)
  • Creation of a patch requires overhead

So, maintenance releases will allow us to deliver defect resolutions in a product release. The idea is that we will be able to frequently release maintenance versions of our Geocortex Essentials software. You can distinguish a maintenance release from a major or minor release by looking at the software version number – we will increment the build number for maintenance releases, the minor version number for minor feature releases, and the major version number for major releases (look here for more on version numbers).

Supporting the idea of frequent maintenance releases is the development of our new installer which will support in-place upgrades as well as the traditional side-by-side installation so that applying the fixes in a maintenance release will be easy. Look for the new installer in early 2010.

To determine if a maintenance release contains resolutions to defects you are experiencing, consult the release notes. Geocortex Essentials 2.1.1 and the release notes are available on our support center.

More Info on Tool Errors and Warnings with 9.3

November 6th, 2009 by Stephanie Blazey

ArcGIS Desktop 9.3 help offers a new section on Tool errors and warnings, which can be a great help when you receive an error code but are not sure what it means. Search for your error code, or navigate through the 9.3 help index (under Geoprocessing tool reference) for a list of error codes from 1 to the infamous 999999. They offer a description and solution for each error code which can help get you on your way faster. Don’t forget to search the ESRI Support Center User Forums as well if you are still stuck – chances are someone else has experienced the same issue and you can pick up some tips.

tool_errors