Archive for August, 2008

Charting a course (literally)

August 29th, 2008 by Steven Myhill-Jones

compass2I returned earlier this week from a kayak trip to The Broken Group. We didn’t take a GPS (long story), and about five minutes into the paddle I whipped out the compass to set our course and realized I’d forgotten the basics of charting a course from so many years ago (things like subtracting declination properly so we didn’t end up in the Sea of Okhotsk). I always carry my compass, but haven’t used it (except as a shaving mirror) in nearly a decade.

Paddling with a non-geographer who I knew would taunt me endlessly if I admitted ignorance of the one thing he’d expect of me given my education and line of business, I reckoned I could probably glean the core concepts as we paddled using various cues on the nautical chart. Without Google access to a quick refresher, it took the first kilometer or so to piece together what I needed (the weather was fine, so there was minimal risk). Fortunately, Bob didn’t seem to notice my unorthodox navigation technique and visibility remained good. In fact, we made it through the whole trip without having to radio the Coast Guard (Canadian or Russian).

Oh yeah, the trip was awesome. A humpback whale surfaced next to our kayaks and everything.

Adventures With Dynamically Cloaked ArcObjects

August 22nd, 2008 by Kevin Rintoul

I ran into an interesting issue this week while working on Geocortex Optimizer. An integral part of Optimizer is a component we’re calling Geocortex Agent which is an environment we created to host our Optimizer modules. Each module running under Geocortex Agent should be able to run under its own set of credentials, similar to a Windows service. Given that Windows has a good API to support thread-level impersonation I thought this would be a straight-forward feature to implement. I found a nice impersonation class that hid a lot of the complexities and as usual, thought I was done just a little too soon.

I wrote a Windows console application and tried to connect to an ArcGIS server from an impersonated thread and was immediately shut down when an E_ACCESSDENIED exception, thrown when I called GISServerConnection.Connect. I did some further experiments and discovered that the credentials of the original host process were being used for authentication instead of the credentials of the impersonating thread. After some head scratching and a few conversations with my co-workers, I decided that the most likely reason for this behavior was because ArcObjects and ArcGIS server were using DCOM for inter-process communication and DCOM used process tokens instead of thread tokens when performing authentication. I came across a note describing how clients making calls via DCOM must call CoInitializeSecurity and enable Dynamic Cloaking if they would like DCOM to use thread tokens by default. This worked like a charm. Thanks Dave!

The moral of my story is simple. Programming security is never as simple as you’d like. When undertaking any tasks where security is involved, be prepared to spend a few extra days to do research, experiments and a few extra dollars for Americanos as you consider your options when diagnosing security issues.

More on San Diego…

August 12th, 2008 by Darin

As Steve noted, San Diego went great this year. Since he didn’t really provide an overview of happenings Geocortex-related, I will.

UCAgenda_ColourAdOur booth was slammed most of time (I love that). I suspect the ad on the back outside cover of the agenda was a contributing factor because our booth location wasn’t that good this year. There was lots of interest in Geocortex Essentials and Geocortex Optimizer.

2008geocortexpicnic2The 3rd Annual Geocortex Picnic went well, with about two-hundred and fifty people joining us for a picnic lunch on Wednesday afternoon. Nobody ended up playing volleyball this year, but we have lots of photos of people sprawled out on the grass. It has been theorized that rousing physical activity lost out to digesting the bbq chicken and tri tip that our caterer (Gibs Ribs) cooked up.

Our Wednesday evening Geocortex Solutions for ArcGIS Server: Current Status and the Road Ahead presentation seemed like it went pretty well. I think Steve’s planning to provide his presentation for posting to the Geocortex Support Center.

Post-San Diego Commentary

August 11th, 2008 by Steven Myhill-Jones

I intended to blog once or twice during the ESRI International User Conference, but found my conference schedule and meetings all-consuming. This was our seventh time exhibiting at the conference, and I think it was the best one yet. ArcGIS Server 9.3 is what we hoped it would be, the new/emerging developer APIs are valuable, and I generally think ESRI is on the right track. I’m excited about the coming year.

Since it was first released, I’ve been very candid about my perspective on ArcGIS Server 9.2 (that it was the future but not quite ready for prime-time). This has caused consternation among some, but I always defended my position because our customers count on us for advice about technology and timing.

I’ve always contended that, regardless of new capabilities, the majority of ESRI customers will be reluctant to move from ArcIMS to ArcGIS Server until the shift doesn’t involve any significant steps backward from ArcIMS. There have been two main aspects to this; comparable performance and comparable functionality.

I think I can now see the tipping point. Aside from the general improvements in 9.3, during the plenary on Monday afternoon, ESRI announced that the new rendering engine for ArcGIS Server (which everyone was expecting as part of 9.4) would ship as part of ArcGIS Server 9.3 Service Pack 2 in January or February 2009. Even though you can actually do lots to improve performance (Mapservice/application tweaking and pre-rendering), this is big news for organizations that have been awaiting improved performance that doesn’t require much rearranging of the furniture.

As for the latter aspect (functional parity), the complementary use of Web ADF and the new developer API’s allow/will allow functionality, ease-of-development, and ease-of-use to be taken to the next level. We’ve been working hard over the last twenty months to be prepared with comparable and/or superior functionality (relative to ArcIMS-gen technology) in time for ESRI’s release of comparable performance. And we’re nearly there.

Bottom line… things are falling into place. Last year, we talked mostly with people who wanted to learn more about ArcGIS Server. This year, we talked mostly with people serious about getting going with ArcGIS Server. I predict 2009 will be remembered as being a significant year in the widespread transition from ArcIMS to ArcGIS Server.

ArcGIS API for Flex

August 3rd, 2008 by David Stevenson

The JavaScript/REST APIs have been generating lots of buzz, but I think the (really) new Flex API is awesome too and will garner lots of attention at ESRI’s International User Conference next week. Check out the samples:

http://resources.esri.com/arcgisserver/apis/flex/index.cfm?fa=samples

ESRI has clearly been hard at work on this, and it seems pretty slick. I can’t say for sure yet, but I’d guess that a lot of the work that was put into ArcWeb Services was leveraged, and it appears to offer most of the functionality needed to build a basic site with Flash.

We’re doing plenty of work to incorporate emerging technologies like this into Geocortex Essentials in an agnostic way, but for 2.0 we’d planned to concentrate on leveraging the heck out of the JavaScript/REST APIs alongside Web ADF. But the more I play with this, the more I want to cover the Flex API right away too. It’ll be interesting to see how people react to this next week; this will help guide our decision.

The value of data (even the historical stuff)

August 2nd, 2008 by Steven Myhill-Jones

Our friends at the Oklahoma County Assessor entered ESRI’s GIS in Action video contest. The folks at OK County Assessor are one of our customers that I most admire. They’re passionate about what they do, they’ve got their priorities straight, and they get things done.

Their video reminds me of working with historic map data from where I live. Back in 1998 I was at a map library and found a stack of aerial photos of Victoria from 1928. I got permission to scan them and did some rough georeferencing of them using a recent Victoria ortho. It was absolutely fascinating to see how much Victoria had changed in seventy years. In fact, comparing the landscape between 1928 and 1998 profoundly changed the way I think about growth (especially in our region).

When ArcIMS was released a couple years later, I couldn’t get permission from the copyright holder (a government agency) to make them available over the web through an ArcIMS service (on a volunteer basis no less). I guess someone got worried about the massive opportunity cost associated with losing out on licensing revenue associated with sepia aerial photos from 1928. Not that they had any model for licensing them even if someone did want them. I love my country, but our misguided geodata policies have impaired decision-making in the places we live. Things are slowly improving, but we need to be aggressive in changing the geospatial data status quo in cases where it is quietly failing us.