Monday, June 23, 2008
Posted on Monday, June 23, 2008 5:02:30 PM (Mountain Daylight Time, UTC-06:00)  Comments [8] | 
Categories: Devt Tools | General

vista I was running into a LOT of weirdness with my Windows Xp installation, so I figured I'd upgrade to Vista 64 instead of futzing with another re-do of Xp.

I've been running Vista on my notebook an home workstation for about 6 months with no issues, and with my MSDN subscription, so it's a no-cost thing - just grab the disk and an authorization code, and let 'er rip.

Hardware Compatibility is one of the first things you should be concerned about when jumping to the 64-bit platform, but we had pre-planned this to some extent. When we built out our development boxes, we followed the "CodingHorror Ultimate Developer Rig" parts list. So other than the quad core CPU, I've got exactly the same box. Since Scott Hanselman has been running Vista 64 for a long time, with few issues (here's a link to his podcast on the Vista 64 Developer Experience) this should go pretty smoothly.

One nice thing about re-paving a machine is you get to clean out all the crud that accumulates over time. So, as I re-built things, I created a list of all the stuff I could not live without.

Vista Components:

  • IIS w/ IIS 6 compatibility
  • Disable User Access Control - secure, but a hassle

Development Tools:

Productivity:

  • Office Enterprise 2007
  • Visio 2007
  • Slickrun  - launcher goodness
  • FolderShare - sync folders across multiple systems
  • Notepad++ - notepad with tabs and syntax hilighting
  • FireFox
    • FireBug - must have for Ajax development
    • FoxMarks - sync bookmarks across multiple systems
    • IETab - runs IE inside FireFox - good for SharePoint

GIS:

  • ArcGIS Desktop (Editor) 9.3 Beta
  • uDig

 

So, .NET developers - what other tools do you install on a fresh box?

Thursday, May 29, 2008
Posted on Thursday, May 29, 2008 4:42:30 PM (Mountain Daylight Time, UTC-06:00)  Comments [1] | 
Categories: Fundamentals | General | Software

In this go round, we'll look at the questions related to Design Patterns...

Design Patterns

The question was "When you hear the term 'Design Patterns' what comes to mind?".

 GOF-Patterns

A majority of people did get that GOF = Gang of Four = Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides the authors of the book "Design Patterns: Elements of Reusable Object-Oriented Software", which describes recurring solutions to common problems in software design. Thick and meaty, it's highly regarded and worth reading if you have the time and inclination. Martin Fowler's site also has heaps of good info, and you're not chopping down trees to read it. However you slice it, using patters will make you a better developer, so dig in.

Pattern Adoption

I guess this one has a call to action for someone to setup a community site to document and evolve some geospatial patterns.

pattern-adoption

If people are interested, I can stand up a wiki at ArcDeveloper.net, but someone else will need to push this forward as I've got a full plate.

Model View Pattern Use

"Rate your use of Model View * Patterns" was the question.

 MVC-Usage

For those not familiar with MV* - this refers to a whole family of patterns, related to the Model-View-Controller pattern (Model View Presenter, Supervising Controller, Passive View), and the main intent of these is to separate business logic, user interface and data communications. Use of these patterns are helpful/ critical in enabling robust unit testing. I'll be writing more about patterns and unit testing in the coming months, but Martin Fowler has a (burly) overview of these patterns. You can also check out the ASP.NET MVC stuff to get the Microsoft take on this, or check out MonoRail, which is part of the Castle Project. And for a change of pace, you could check out Ruby on Rails which is rooted in this pattern.

Inversion of Control & Dependency Injection

Ok, this is really maxing out the pattern / architecture geek factor, but it's worth asking simply because this is another one of those patterns which enable unit testing.

IOC

So, with nearly 75% not knowing what this is... succinctly put, Inversion of Control and Dependency Injection patterns allow you to decouple classes from each other. This allows you to test things independently, which is critical if you want to have good test coverage. I had a series of posts partially written about this while at Sanborn, but I did not get them all polished off before leaving, and since I don't have access to the source code anymore, I'll need to look for opportunities to show some of this. For what it's worth, the ArcDeveloper.net projects both use the Castle Windsor IOC container.

Ok, I'll leave it here for now. Next time I'll finish it up with a look at Build Processes, Unit Testing, Refactoring, API Documentation and some choice comments.

Tuesday, May 27, 2008
Posted on Tuesday, May 27, 2008 10:00:58 AM (Mountain Daylight Time, UTC-06:00)  Comments [1] | 
Categories: Fundamentals | General

Newly refreshed after a week of vacation, I thought I'd start things up with the results of the informal "2008 Geospatial Developer Survey". I'll start by thanking the 320 people who took the time to complete it. Admittedly it was a little rough in spots - turns out that writing good survey questions is tougher than you'd think!

Since there were 30 questions in the survey, I'm breaking this into a few posts. As promised, I will post the results as an excel file with the last post.

Who are you?

I thought I should start off the survey with an easy one - what's your role.

who-are-you

The split across titles was somewhat interesting - almost even between "Analysts who write code", and those who consider themselves "GIS Software Developers", with "Software Engineer" trailing slightly. I see this as a progression from "getting things done" coding towards more "built to last" coding.

Primary Development Language

There were a lot of "other" responses on this one, mainly along the lines of "Mix of languages - VB.NET, VBScript, JavaScript, Python, and others".

The idea of this question was to get a feel for what you most commonly work with. I went through the "others" and tabulated them into the mix. Since there were so many variations in the "other" categories, I collapsed them into one group for the pie chart. Perhaps not surprisingly, .NET was the prominent platform with a 61% share.

 dev-lang 

Here is how the "other" broke out by count of times they were mentioned. I'm pretty surprised that there are still people using VB6 and VBA. While these tools get the job done, the lifecycle for VB6 apps must be coming to a close.

 

dev-other

Who do you Develop For?

Almost a 50-50 split on internal vs external clients. Some people were asking why I asked this. I was interested in seeing any relationships between engineering practices and the client base - would there be more advanced software techniques used for the external clients vs internal? With a 50-50 split, it's not entirely obvious, but I've since downloaded the data into a database and I'll try to split out the data a little more to see how this breaks things down.

clients

Use of ESRI GIS Products

This is another question that I got some flak for - but I think it's relevant in that I'm interested in knowing what my readers are using. 40% of the respondents are only using ESRI. Actually I had thought this would be higher - the idea that 60% of respondents are using some mix of non-ESRI GIS tools is very interesting. I'm sure a lot of that is Autodesk stuff, but there's got to be some MapServer, GeoServer, PostGIS and other open source stuff making an appearance in here. Next year I'll change this one up so we can see the mix of packages being used.

esri-mix

Coding Standards

It's nice to see that most respondents have some type of coding standards.

code-stds

Mostly informal, but that's a start, and if you have a solid team, it's likely all you need. Those folks with out any type of coding standards should really consider setting up something - most languages have some sort of recommendations or conventions. The goal of coding standards is simply to ensure that everyone on your team is writing code in such a way that anyone else on the team can easily tell what's going on. If nothing else - simply using clear names for your variables is a good starting point.

 

Development Life-Cycles

This was interesting, and will require more analysis, but here's how I look at this. 50% of respondents classified themselves as Developers or Software engineers, and just about 50% also fell into Agile or Waterfall. 30% classified themselves as GIS Analysts who Code, and we see about 35% of cowboy coders.

dev-proc

I'll cut things off here for now - next time I'm going to cover some of the more technical questions - design patterns, unit testing etc. I also need to get the data out of survey monkey in a database format so I can use SQL to tease more information out of the results.

Friday, August 17, 2007
Posted on Friday, August 17, 2007 11:59:31 PM (Mountain Daylight Time, UTC-06:00)  Comments [7] | 
Categories: Blogging | General

One way to get a conversation started is to bring up something the entire group has in common - in this case the "G" in GIS... and so the un-conversation continues.

[This started as a comment on Aaron's GISDevCafe, but got longish, and so it's here.]

I agree that there is something of a lack of cohesion and conversation between the various users/bloggers/analysts/forum-ers/managers/conference-ers etc involved in "GIS".  And I think the reason is quite simple - I believe that the GIS "world" is fracturing. Or, looking at it differently - people have been specializing. 

For a long time GIS users were all-around technologists. Pretty much everyone worked directly with data. We all handled weird projections and conversion of strange data formats. Serious thought was put into how to run an analysis because the processing would take so long that you could not simply run it again. Automation was limited but we did what we could and many poor souls took on sed, awk and grep with reckless abandon. Although we may have been using GIS for different purposes, we could all talk about the largely shared experience of "doing" GIS. 

Over the last 5 years, this specialization has been accelerating. I think this is especially prevalent in the developer community, where we have, by necessity, jumped into the software development/engineering pool. Heck we now have our own ESRI conference. The spatial analysis people have headed towards Model Builder / Python land and lived with days of processing time, or gotten all serious and hit it with C++ and GDAL/OGR to get some performance. Data Managers have become DBAs. The meta data crew are now working with Xml and Xslt .  And the web crew have ripped into Xml, REST, Javascript and Ajax. Hell - Google Maps pretty much defined "Web 2.0". Throw in open source & mashups and you've got quite a ruckus just in "online maps".

As for me, I spend much more time reading .NET & software development blogs than PlanetGeospatial or anything from ESRI. Sure the ESRI blogs are good, but they are still very much about the mechanics. I've specialized to the point that I know we can solve the mechanics (sometimes with hacks) but I want to know more about the best way to design the software - for testability, re-use and maintainability. And these topics are never discussed in the GIS "space". Thus, I spend my time and consequently my "conversations" at locations where these topics are discussed. And this same thing is going on all over the place. Specialization is rampant.

Add to that the fact that there are few really "new" core GIS concepts, and the "GIS Community" as a whole has little to talk about - other than ESRI licensing or other "shared experience" items - Google's new re-routing feature etc. We are now a whole set of smaller communities, specialized in our own areas, and united by the "where" of the data we work with. And Aaron put it quite nicely...

I see a microcosm of isolated islands loosely held together by the ocean of Geography

And essentially that's where we are - the "Archipelago of GIS".

Some may see this as "bad", but I don't think so. It's just a function of a maturing Information Technology sector. Back when Databases were the "new" thing I'm sure there were loads of discussions about all kinds of stuff - like normalization and set theory. Do you think DBA's are all yearning for those old days? Nah - I'm thinking they kinda like stuffing Xml documents into tables and being able to use SQL and XPath to query them and still getting response times only dreamed of back in the day.

GIS is merging into mainstream IT, and I for one welcome our new better-paying overlords.

Wednesday, June 27, 2007
Posted on Wednesday, June 27, 2007 9:32:51 PM (Mountain Daylight Time, UTC-06:00)  Comments [1] | 
Categories: General | Productivity | Hardware

While I was out at the ESRI User Conference having a pretty good time talking GIS and software development with all sorts of fun people, my workstation decided that it was jealous, and consequently killed the system disk.

Not apparent reason (power spike, kicking of said system, misc. magnetic fields, UFOs), but upon my return, it was cooked. We tried a few repair options, but it seems that the boot sector was beyond repair, and a new primary disk was on the agenda.

For a while now I've been reading Jeff Atwood's blog - Coding Horror , and his February posting on 10,000 RPM boot disks stuck with me. Quite incidentally, I had also just read Scott Hanselman's posting on "The Ultimate Developer Rig", which also extols the virtues of the 10,000 RPM boot disk.

Since I was now in the market, that's just what I got. Since time was an issue, I had to hit the local bog-box electronics join and paid a little more than would be ideal - NewEgg has the same drive for $169 (after mail-in rebate).

After fighting with the Dell SATA drivers (apparently they were having some issues with their FTP site because the driver I downloaded crashed the windows xp installer! - we had better luck copying the driver from another system), I got the disk mounted, partitioned and the OS installed.

Then I started to install apps. It took about 2 minutes to install all of Office 2003 (yeah I'm going to switch to 2007 but I have not quite figured out all the ribbons yet!). This seemed fast, but I had not done that in a while, so it was hard to tell. I timed the Visual Studio 2005 install at 14 minutes end to end. And I have done this a few times, and that's a pretty big change from the expected 30-40 minutes. I was going to time the ArcGIS Desktop install, but I was doing a bunch of other stuff (work - how dare it intrude!).

I'll report back again in a few weeks with more info on how this impacts my daily work flow, but so far it's definitely faster.

Oh - and the dead disk? Just the boot sector was fried. I was able to mount it as a secondary disk and pull everything off. Ran chkdsk, had it mark the bad blocks and it's good to go. Now I just need to get an external USB enclosure for a SATA disk, and I'll have a local external back up drive.
Thursday, June 07, 2007
Posted on Thursday, June 07, 2007 10:19:49 PM (Mountain Daylight Time, UTC-06:00)  Comments [6] | 
Categories: Blogging | General | Software

I sat down this evening to write up a post on implemeting the Provider Pattern as another plug-in strategy for your .NET applications, but before I dug into that, I did some blog reading and caught up on the GeoCommons discussion that's been running on James Fee and Steve Citron-Pousty's blogs. I'll delay the technical post and instead throw my two cents into the mix.

My Take...

As someone much more involved in the backend technologies of the GIS space, I think that James (and to some extend Steve) is missing the point. This is not about metadata, quality of data, cartography, geography, democratization, "elitists" or "high-priests". In large part it's not specifically about the tool itself. I believe we are discussing Geocommons for the simple fact that it's another element in the suite of disruptive technologies which are making waves through the geospatial industry.

Disruptive Technology

First it was Google with blindingly fast "slippy" maps based on tile caches. Slam. I would say that pretty much no one in the "established" GIS field saw that coming, or if they did they did a good job of keeping it a secret. In addition to redefining what web mapping was (particularly with respect to performance) they also changed how web mapping applications worked. Enter the javascript API and mashups. While few mashups were particularly useful, it resulted in tens of thousands of people developing and working with geospatial data. As the push-pin map frenzy has been cooling off, we are seeing more complex integrations utilizing open source backend tools to create very powerful platforms. We see greater particpation in open source projects (OpenLayers comes to mind). We see KML beginning to displace both long standing formats and nascent standards. This is a sea change for an industry where the defacto tool prior to 2000 looked like this...


These new "geospatial" developers are not thinking in the "old" ways. They are pushing technology because they don't know things are supposed to be difficult or impossible. And for those of you who may not have seen this yet - check out this video from the TED conference where Blaise Aguera y Arcas (Microsoft Research) discusses and demos SeaDragon & Photosynth. Want to bet this shakes things up in the GIS arena? If you've solved the problems these guys have, throwing projection-on-the-fly into the mix is not going to be that big a deal.

Disruptive Marketing

The industry is changing, and it's not just the technology - it's also the marketing of technology.
Would any of these discussions have occured if FortiusOne simply did a press release about GeoIQ? Or a simple demo page on their site? Heck no. We're talking about this because they created a community site to do what previously required some arkane skills, expensive software and a treasure trove of data. The site is cool, as lots of "sizzle" and yes you can do some "neat" stuff which may or may not have legitmacy/credibility. But that's beside the point. The point here is that FortiusOne has pushed things forward. Heat maps on the fly. A community site to promote the product & service. Very different. Very Web 2.0. And clearly getting lots of attention.

Change from Outside

As far as I can see, GIS - particularly the public consumption side of things - is being re-defined by people from outside the GIS industry. Why is this? Have we all be so insular that no new ideas are being hatched? Are the industry leaders so content with their position that innovation takes a back seat to stability and safe decisions? Have the elitists and priests ignored the Where 2.0 crowd, possibly at their own peril? What do you think?


Wednesday, May 09, 2007
Posted on Wednesday, May 09, 2007 8:19:25 PM (Mountain Daylight Time, UTC-06:00)  Comments [3] | 
Categories: General
With a dull title like that, I'll be suprised if anyone reads this right off the bat! Anyhow -  I've been having some serious stability issues with my home wireless router - a Linksys WRT54G v6 - and thought I'd share what I ended up doing to solve the problem.

When researching the issue, I came across a number of forum posts which basically said the firmware from Linksys is unstable, and that the best solution was to flash the unit to an open source firmware - DD-WRT, based on OpenWRT (read more about it here). Here is an article about how it came to be that Linksys open sourced the firmware for the router (linux GPL license). And here's the DD-WRT wiki.

At this point I was willing to buy a new router I decided to try this  - what the heck!

The actual process of switching from the Linksys firmware to the DD-WRT stuff was very simple - and there is a on-line recipe for this from Bitsum Technologies. I have to hand it to these guys - figuring out how to flash a linux OS into a 2Mb router through 3 steps must be complex, and they have really simplified it. It worked on the first try.

The only issue I had was getting the router newly flashed DD-WRT v23 SP2 micro router to get an IP address from Comcast via DHCP. The solution is very simple - just have the router copy the MAC address from your PC (Setup --> MAC Address Clone). Seems that Comcast will not dish out an IP to the embedded MAC address that the DD-WRT install ships with.

Once installed, you get a new management UI, and some additional features (so I'm told - I'm not enought of a networking guy to tell you exactly what other goodies have been added.)


Since installing this, wireless has been completely stable - so all is well.
Thursday, December 07, 2006
Posted on Thursday, December 07, 2006 4:43:21 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: General
I've been spending a lot of time writing up requirements and use cases and I thought I'd share a technique I've found which really speed things up.

Use Case Template
When I write use cases, I use a standard template, as seen below.



Since a requirements document can contain 100's of these, you want to avoid re-building the template manually, and even copy / paste is a pain because you need to keep jumping back to the blank template.

I wanted an easy way to drop this template into the document right where I was working...

Word AutoText to the Rescue

For this who don't use this feature, it allows you to have word automatically convert text that you type in into other "text". I've used AutoText in Word for years, mainly to convert acronyms into their long form. For example - when I type SDE, it is converted into ArcSDE. Simple.

What I did not know was that you can assign anything to the AutoText - in my case, I have created an AutoText entry that drops in the entire use case template. Here's how you do it...

1) In Word, select something - text, tables - whatever.




2) Now go to Insert --> AutoText --> New


3) This will open a dialog that will assign your AutoText - essentially this is what you type to get the selected text inserted into the document. I use "USECASE"


4) Now, when you are typing in word, and you type in your AutoText, Word ask you if you want to insert the AutoText.

5) Simply hit ENTER and your template drops in place.


It's seemingly little things like this that can make work go much faster!
Monday, October 30, 2006
Posted on Monday, October 30, 2006 9:45:10 AM (Mountain Daylight Time, UTC-06:00)  Comments [2] | 
Categories: ArcGIS Devt | Devt Tools | General

Since we are hiring, we need to get some more workstations - thus it is time once again to see how much power a couple of grand will buy. If you have recently bought a kickin workstation for ArcGIS Development - I'd love to hear about your experiences...

Planning

Instead of simply specing out a top end box without much idea as to how it would perform, I decided to try and figure our what ESRI would recommend. I started by cracking open the 2006 System Design Strategies white paper from ESRI. I say cracking, but really it was quite a bit of waiting as Acrobat loaded the 289 page document.

Here's the important bit - on page 7-17, the document states that ESRI uses the "SPECInt Rate 2000" as their system comparison benchmark. Conveniently the rates for all kinds of systems are published so you can check things out.

After further digging in the system design document, it turns out there was little in there that I could directly apply to the developer experience i.e. they have not done benchmarking for how fast ArcMap starts, or how fast visual studio is while debugging. So, I decided to check the rating on our current systems, so I'd at least have a relative ranking.

Current Workstations:

Dell Precision 370, 3.8Ghz P4 w/ hyper threading, 3GB RAM, 256Mb dual head video card, ~100GB disk

While not specifically listed, a similarly equipped Acer system with this chip rates a 23.5

While not bad, these workstations certainly could be faster - particularly when starting ArcMap, and running Visual Studio 2005 with large solutions. Thus, I started looking at systems which had a higher Spec rating, and more specifically at the CPU's which had the high ratings.

AMD Athlon vs Intel Core Duo

Obviously there are other factors which make a PC fast, but at the heart of it all is the CPU, so may as well start there.

The top rated AMD chip is the Athlon 64 FX-62, with a 43.7

The top of the heap from Intel is the Core 2 Extreme X6800 at 63.5 with other Core 2 Duo's coming in at 58.7 (E6700) and 53.7 (E6600). Based on this, I figured that we should be able to at least double our workstation performance. The next step was figuring out what is was going to cost.

Looking for Systems

Traditionally we've been a Dell shop, so I started there.

The Dell Precision 390  can be configured with each of the Core 2 Duo chips. For the pricing below, all have 4GB of DDR2 RAM, and 2 80GB harddrives, 128Mb dual head video card, CD/DVD burner WinXp. (For those scratching their heads on the 80GB drives - we really don't need a lot of disk space, as 90% of our projects use ArcSDE as the data store.)

Here are the prices (as of 10/27/06)

  1. Core 2 Extreme X6800: ~$2800 (Spec 63.5)
  2. Core 2 Duo E6700: ~$2350 (Spec 58.7)
  3. Core 2 Duo E6600: ~$2150 (Spec 53.9)

Not bad, but last winter I built a box for home and I've been really happy with it, so I thought I'd check out what I can get from there - GlobalComputer.com.

They have a Systemax system that's build to order - same basic config - 4GB DDR2 RAM, 2 80GB hard drives, 256Mb dual head video card, CD/DVD burner, Win Xp.

  1. Systemax Core 2 Duo E6700: ~$1950 (Spec 58.7)
  2. Systemax Core 2 Duo E6600: ~$1650 (Spec 53.9)

Verdict?

It's hard to say - Dell does have great support, and it's the exact system noted in the Spec ratings, so that's a bonus. That said, is the support really worth the $400-$500 difference? An even better question relates to the cost difference vs. performance difference between the top $2800 system (63.5) and the much cheaper $2150 system (53.9). Is that 10 spec points really worth $650? Or is there just a premium on the fastest chips?

We'll have to make the call next week, but right now, I'm leaning towards the Systemax boxes. We've had great luck with other off-brand boxes (1/2 our servers are SuperMicros) and I'm sure that I can find some other cool stuff to get with the remaining cash.

Thursday, October 26, 2006
Posted on Thursday, October 26, 2006 9:46:32 PM (Mountain Daylight Time, UTC-06:00)  Comments [1] | 
Categories: Blogging | dasBlog | General
I'm not sure what it is about fall, but for some reason I always get an itch to re-design things about now. Thus,  in addition to upgrading to  dasBlog 1.9, I've also re-cooked my look and feel. Although I have not been doing mych web work lately, for some reason my CSS seems to have stuck better than most other things. Besides the time fiddling in photoshop to come up with the look, it only took a few hours to whip up the skin.

Changes:
- More "web 2.0" overall (minus ajax)
- bigger fonts
- change style sheets (Settings section)
- tag cloud
- Nicer comment entry box
- styled comments (you can actually tell who wrote them now!)

Still to come:
- re-skin my actual ASP.NET 2.0 site and add more content (playing with OpenLayers + .NET)
- Contact page with IM and Email info
- addition of LightBox into blog for viewing large images

For those who read this via  an aggregator, here's a peek...


New "web 2.0" look complete with fades and large fonts



and a "tag cloud" - how did I ever blog without one?

I promise to post more ArcObjects goodness shortly - I'm playing doing some enterprise research & design work with ArcGIS 9.2 these days (particularly looking at SDE direct connect + windows authentication),  and we all know that ESRI will cut out my tongue should I talk about anything prior to release.


Tuesday, August 29, 2006
Posted on Tuesday, August 29, 2006 9:20:20 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: Blogging | dasBlog | General
I've been really busy lately, but after seeing a couple hundred posts on Windows Live Writer, I had to try it out.

It's nice and easy to install, and natively supports "dasBlog" - not specific about which version though. I'm running 1.8.5223, which is the latest release from what I can tell. And while WLW picks up the theme, and lets me do all kinds of neat stuff with images and maps, unfortunately, it throws an error when I publish...


This is not exactly useful, but it appears to be an issue with the Blogger API - either who WLW is trying to use it, or how WLW is calling it. The net result is that I can't use it. Oh well, I've been surviving using w.bloggar and the on-line editor.

Apparently it also supports Community Server, so when I find some time, maybe I'll see if it works for ArcDeveloper.net.
Tuesday, May 30, 2006
Posted on Tuesday, May 30, 2006 2:11:07 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: General
Test to see if this correctly cross posts to ArcDeveloper.net

Friday, May 19, 2006
Posted on Friday, May 19, 2006 7:06:10 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: dasBlog | General
I had turned CAPTCHA off in dasBlog, as it was acting flaky running under a .NET 2.0 web site. I expected some spam to creep in, at which point, I'd deal with it. I've been out of town this week, and more or less off line. I just got back to find that I now have 1000's of spam comments! Conveniently, dasBlog stores the comments separately from the content (in the dayfeedback.xml files), so cleaning up is not that big a deal - just find the big ones (50k as compared to the usual 1k) and delete them.

But, I guess it's time to deal with the problem and get this working consistently under .NET 2.0.


Sunday, April 23, 2006
Posted on Sunday, April 23, 2006 12:29:20 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: General
Back at the Developer Summit, I talked to quite a few people about blogs and blogging in general, and many times they would say - "I like to read the GIS blogs, but don't have time to visit each site every day". To which I would suggest using a RSS Reader to automatically aggregate the blogs you are interested in. I also said I would post about this - thus this post.

So - ever wonder what those little and images meant? They are the key to recieving content from web sites with out actually visiting them via a browser. These icons link to RSS feeds. An RSS feed is simply the content (usually blogs or forum postings) in a specific format of Xml. This Xml is readable by - you guessed it - RSS Readers.

There are a wide array of RSS Readers out there - some online (live.com, BlogLines.com) and some are desktop based. Personally, I use RSS Bandit. It's easy to use, it's free, and it's written in .NET. It can also use a variety of methods to synchronize readers on multiple machines (i.e. Home & Work). Finally - since I do travel from time to time, it's nice to have a reader that can be used offline - as in on a plane.

Once you have your RSS Reader, the next step is to load some feeds into it. There are a couple of ways to do this - first would be to visit each blog or discussion forum you are interested in, and load each one into your reader. This is how most people do it. However, there is another option - download an OPML file - which is essentially an Xml file that contains a list of RSS Feeds.

For example - take ArcDeveloper.net - this site has 6 blogs and 13 discussion forums. If you wanted to track everything going on over there, you could manually load up each RSS feed into your reader. Or you could grab the ArcDeveloper.net OPML file which contains all of them.

ArcDeveloper.net.opml (3.87 KB)

That's just a quick run down on using RSS Feeds to simplify your blog reading.
Monday, April 17, 2006
Posted on Monday, April 17, 2006 8:50:54 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: .NET | ArcGIS Devt | General | Team System
Given the drop in GIS interwebs, I guess Spring has come and people, myself included, have better things to do than pecking away at their keyboard in the evening. ;-)

Actually I've been crazy busy with my little boy and work. He's learning to hold his head up, and we've just kicked off two more projects at work:

The first is using ArcGIS 9.1 / .NET 2.0 / ArcSDE / Oracle to build a forest managment system, including a Growth and Yeild modelling module (temporal data = fun!). This is in the requirements phase, so it's all about documentation at this point. Thus I'm doing conference calls and writing use cases for the next few weeks.

The other is using ArcGIS Server to create a web service to build on-demand pdf maps for a series based on the 1:100k quad sheets. This one is in the design phase, so it's sequence diagrams, and class models for a week or so.

Once we're past these two documentation phases - then we'll be coding, and I'd expect more technical posts.

Beside these projects, we are also switching over to Team System for all our process managment & source control needs, so I'm sure I'll post some stuff on that. Perhaps tommorrow...

Wednesday, March 15, 2006
Posted on Wednesday, March 15, 2006 10:27:17 AM (Mountain Daylight Time, UTC-06:00)  Comments [1] | 
Categories: General | Security
I recently rebuilt my laptop, and as I was doing this I got to thinking about how to better secure the data I carry on it. My concern is not so much people hacking into it at a public hotspot (although this is a risk), but rather what data may be comprimsed if the it was stolen. Once someone has the physical disk, it's not hard to extract the files. The implications range from trade secrets being released, to your identity being stolen.

The obvious solution is to keep sensitive data encrypted, but doing this on a file-by-file basis is just not realistic. How am I going to manage that for a large collection of source-code, proposals, internal documents, resumes, contract terms, and emails?

After some Googling, I found TrueCrypt - an open-source encryption package creates a vitrual encrypted disk within a file and then mounts it like a real disk. This lets you work with your files as usual, except that they are stored inside an encrypted file on virtual hard drive. Additionally, you can use a variety of encryption algorithms - AES-256, Blowfish (448-bit key), CASTS, Serpent, Triple DES and TwoFish. These are some world class algorithms - the sort of thing that the NSA has problems with.

How it works
Once you intstall TrueCrypt, you can create a volume - which is basically a big empty file where you will store your sensitive data. As this file is being created, it is being filled with random data. Once you copy your data into the volume, it's automatically encrypted.



Performance
Because the algorithm you choose effects performance, TrueCrypt has a built in benchmarking system. This allows you to choose an algorithm which will perform adequately on your system.



Accessing the volume
When you log into windows, before you can access your files, you need to mount your encrypted virtual drive. This is very simple, and only requires that you enter your passphrase.



Once the volume is mounted, you can use it like any other disk. It shows up in Windows Explorer...


And you can double-click files to open them. No plugins etc needed.



The nice thing is that without that passphrase, the files are totally inaccessible (at least for the many years it will take to crack the file) - so even if someone hacks your notebook while at Starbucks, they still can't get into your files. And - should the notebook be stolen, again - the files are safe from prying eyes. Best part - it's free!
Sunday, March 12, 2006
Posted on Sunday, March 12, 2006 5:32:08 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: .NET | General | Software
Just a quick note to anyone looking to get Subversion (open-source version control system) up and running quickly.
 


The simplest, get-it-running-now guide is actually in the TortiseSVN help. There is lots of info in the actual Subversion manual, but it's more oriented to a subversion administrator and describes installing subversion as...
The easiest way to get Subversion is to download a binary package built for your operating system. Subversion's website (http://subversion.tigris.org) often has these packages available for download, posted by volunteers.
That's it. While factually correct, it's not particularly helpful if you have never set it up before. Once I found the description in the TortiseSVN help, it's really quite simple:

Step 1: Install Apache Webserver (msi windows installer)

Step 2: Install Subversion (windows installer)

Step 3: Open beer.

Step 4: Minor config file meddling (help doc shows you what to do line by line)

Step 5: Connect to the repository with your client of choice (TortiseSVN is a good start)

Step 6: Toast yourself for a job well done.

Really, quite easy - and thus there is no excuse for not using a source control system!
Posted on Sunday, March 12, 2006 1:13:08 PM (Mountain Daylight Time, UTC-06:00)  Comments [0] | 
Categories: .NET | General | Software
When I started writing software, like many other GIS developers, I was working in a vacuum. I was the only VB developer in our shop, and I knew few other developers. If I had a problem, I had to hope I could find a solution in a book, or just solve it myself. Narry a mentor to be found.

Times have changed, and the internet now provides a wealth of "How-To" type information for developers. What's still difficult to find are discussions which review the "pros & cons" of a set of options - kind of "best practices" tempered by reality. These are the sort of discussion that you would have with a mentor, and from which you take away more than simply a solution - you gain knowledge. Happily, I find that there are some blogs that can fill this role.

Just this afternoon, I ran across a bunch of posts which exemplified this. I found some serious discussions about some topics I'd been working with this last week - Object Relational Mapping in .NET, and the choice between using dynamic SQL, or Stored Procedures in a data access layer.

Ward Beeker's blog on Code Generation has a post linking to a post by Clemens Vasters (of dasBlog, and now Microsoft). Having spent the week working in relative isolation looking at O/RM options, and finding most of them either overly complex or unable to map 1-to-M tables into contained collections in a parent class, it was nice to see that other much more distinguished developers are also somewhat skeptical of the promise or O/RM. Anyhow, both the post and the comments were very enlightening.

Once I had decided on how to actually generate my classes from the data model (I chose to use RapTier because it uses a very light weight model, which does not rely on other code - unlike NHibernate or the MS Ent Data Access block), I still had to decide if I should use stored procedures or dynamic SQL to communicate with the database. Again - I found a bunch of postings on both sides of the issue.
What's really cool is that in reading the posts, I got insights that only come from people who have tried a lot of options, and have summarized their results. From reading these, I think I'm going to go with the Dynamic SQL. I'm doing this for the simple reason that if there is a need to change the model, there is only one code change to make.

It is my hope that I can provide similar help and insights on GIS development to the people who read my postings on ArcDeveloper.net or this blog.

Wednesday, March 01, 2006
Posted on Wednesday, March 01, 2006 6:55:47 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: General | Software | Web Mapping
Just saw this over on Omar Shahine's blog, and had not noticed it on the GIS feeds. This thing is very cool. Data coverage is limited to downtown San Francisco and Seattle, and the usability is a little "eh" at this point,  but I like it better than A9's option, but I just noticed that you can bookmark a location at A9, but not on this version of the Local. In any event, Microsoft is really getting their browser-based-map-thing game on.

Posted on Wednesday, March 01, 2006 6:34:17 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: General
On Saturday, we had our first child - Kai! He & Jill are doing fine, and we're all trying to get used to each other. Fun fun fun!

I'm taking a little time off, and blogging will be (even) slower for a while (I am working on some more articles for ArcDeveloper), but I hope to see you all at the Developer Summit in Palm Springs on the 18th. I hope to have had a fill night of sleep by then!



Wednesday, February 22, 2006
Posted on Wednesday, February 22, 2006 8:04:17 AM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: dasBlog | General
This is weird. On my development system, the Captcha images show up when adding comments into dasBlog. However, on this live site, they do not. No errors, but also no images. I have no idea what's gone wrong, and I don't have a lot of time to track this down now.

Thus, comments are likely down for a while.

UPDATE- Banged around in web.config a bit, and re-started IIS, and it's working again.
Tuesday, February 21, 2006
Posted on Tuesday, February 21, 2006 3:04:42 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: dasBlog | General
Just updated the blog skin to keep with the theme on the main part of the site. With this, I think I'm finally done with the main parts of my site update - still adding content into the main area, but most of the picky CSS / photoshopping is complete.
Saturday, February 11, 2006
Posted on Saturday, February 11, 2006 5:00:29 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: .NET | ASP.NET | General
It seems that I've managed to get it all sorted out, and more or less working. I've found a couple of glitches related to the photos area of the site (the URLs are not properly formed - odd because it worked on my home system), but other that that, things are now running under 2.0.

Check it out at http://www.davebouwman.net

Anyone who was using my .com address will have some issues, but I'll have that forwarding shortly.

Next thing (besides getting the photos working) - extend the theme into my blog.

Sunday, February 05, 2006
Posted on Sunday, February 05, 2006 1:33:13 PM (Mountain Standard Time, UTC-07:00)  Comments [2] | 
Categories: General | Software
Just a quick note about a very cool Task list package that I've been using for a while now - ToDoList from Abstract Spoon.

This is a great little tool - first off it's freeware, so that always helps. Second - it's simple. It's not trying to be eveything to everyone, an integrate with other stuff. It's just a task list, done right. That said, it has some nice features:
  • Contains multiple task lists (i.e. different projects)
  • Task priority, due date, est to complete
  • RTF task description / comments area - which can contain graphics  - very hepful for tracking bugs
  • Task timer - see how long it actually took you - helps  improve estimation
  • Ability to share task lists (file share only from what I can see)
  • Written in .NET UPDATE Matt pointed out that it's C++. Not sure why I assumed it was .NET
Anyhow, it's been really handy to track tasks as we wait to migrate over to Team System
(more on Team System another time...)

Posted on Sunday, February 05, 2006 1:22:47 PM (Mountain Standard Time, UTC-07:00)  Comments [2] | 
Categories: .NET | General | ASP.NET
I had some more time this weekend, and have made some more progress on changing my site to ASP.NET 2.0. Overall, I must say that ASP.NET 2.0 rocks. As with most Microsoft development tools, it has  it's own somewhat weird way of doing things (I'm mainly talking about the theming & skinning stuff here), but if you play along, things are incredibly easy. Particularly simple is the Object Data binding. While I could not use it because I'm persisting data in XML files, and my constructors require the path to the XML file be passed in, if you are using a database, and have a parameterless constructor on your data objects, you can bind the control to the class/method without writing anything in the code-behind. Nice!

The secondary goal of this little project (improving my C#) is also coming along - probably just enough to make the VB.NET code I write Monday thru Friday a mess of { }'s and ()'s and ;'s... ;-)

Other Site additions:
  • Album Manager - create/edit/delete albums if you are logged in as Admin
  • Album & Photo viewers
  • Presentations section with content I've presented at various conferences
  • Bookshelf section where I'll keep breif overviews of books I've been reading (technical and fiction)
  • Small tweaks to the master page & css
I've uploaded the latest version to here - http://www.davebouwman.net/sandbox

Next up - getting dasBlog to play nice under a .NET 2.0 application folder.

Monday, January 30, 2006
Posted on Monday, January 30, 2006 8:26:08 AM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: .NET | General

I had some time over the weekend, and made a bunch of progress...

I overcame the styling issues by simply using themes, and apply styles to the menu via the properties. This was much easier than trying to sort out how to use CSS directly. Perhaps I'll go back to that once I'm a little more experienced with these controls.

Next up was adding in Membership & Roles. I want to be able to manage much of the content with out opening Visual Studio, so I need to support logins. I also want to have non-public photo albums, which means I need some roles for the logins. Of course I could just use the SQL providers, but I also want to avoid a database on this site. Thus, my plan was to look for an example Membership Provider, and re-work it to use an XML file for persistance. Conveniently, Microsoft actually has a sample Read Only XML Membership Provider . And they did the Role provider as well. Thanks! That made things go much faster.

Then it was on to integrating the Free Text Box. Again, this was so simple that it suprised me. Now, when I login, I can edit the content on the front page. Ta-dah!

From here, I jumped into the photos section. My plan is to upload the photos into folders on the web server, and then "register" the folder with the application. The registration process will create a "view" version of the photo, as well as a thumbnail. These will be persisted as files on disk to lower the CPU load when viewing the photos (no dynamic thumbnailing).

Rick Strahl had some handy code that does the image re-sizing part. Then it came to persisting the photos into an XML document. For this, I cooked up a simple little set of objects which contain the PhotoCollection, and can be serialized to XML. I left things at a point where I can register a folder via the web page, and it will correctly re-size all the images, and write out the XML file.



Next up - displaying the photos...
Wednesday, January 25, 2006
Posted on Wednesday, January 25, 2006 10:01:13 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: .NET | General
I thought I'd share how this little project is going through a number of postings. The main goal of this evening's work was to transfer the design from photoshop into ASP.NET, which I managed to accomplish in just over 3 hours. At this point, I've cut up the images, created the page framework, jammed this into a master page, built out a set of empty content pages and hammered out a stylesheet. Whew.

For the most part, things went pretty smoothly. I may as well state this now - up until today, I have not done anything with ASP.NET 2.0 - I attended a half day launch event, and from that and simply fiddling around, sorted out the main parts of Master pages. However, when I have a content file in a sub-folder, for some reason the master page does not get attached/injected. Ah! As I type this, I get it - the problem is that the stylesheet is linked as "main.css", which of course is not pointing to it's real location of http://localhost/main.css if the page is in http://localhost/somefolder. So, writing this blog just helped me!

The Menu control is also somewhat baffling. Attaching it to the sitemap was easy enough (think I saw that demoed), but styling it is a dog. I've kludged it together for now, but still need to add Hover styles. It's nice that the control exposes a zillion properties for all kinds of styling, but what I really want is an easy way to apply the style from a linked sheet. Specifying cssClass seems to work to some extent, but I need more info.

At this point, I think I need a book - at least it will make things go faster.

For anyone interested, the site as it stands is at http://www.davebouwman.net/sandbox

Maybe it's just my wireless connection, but it seems pretty slow to me - especially as compated to this blog page, which is doing a lot more "work". I may have to ask to be moved to a faster server. Again.


Monday, January 23, 2006
Posted on Monday, January 23, 2006 10:41:30 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: General | .NET
I've started working on a new version of my site. My reasons are two-fold:
1) Learn ASP.NET 2, and
2) This is not really a "site" per-se. More a loose collection of pages with a blog. Time to consolidate!

I started by looking at the Personal Web Site started kit that you can get from ASP.net. While this is a neat starter kit, it's got way too much overhead for a simple site - storing photos in SQL rather than the file system?? Membership? I guess the idea was to show concepts more than an streamlined personal site. Anyhow, here are my general goals for this little endeavor:

No Database
While I'm sure that the whole SQLExpress-just-upload-the-file-and-it-will-work thing is great when you have a dedicated server, I've got shared hosting. So, I'm going to use XML files to lower the load, and hopefully have the site load faster. Mix in some caching, and it ought to scream. This works really well for dasBlog, so it should work for the very simple site I'm going to cookup.

XHTML Compliant
This should be fun. I'm lucky if I can get a single posting to be compliant, so building an entire site should be a real learning experience.

All C#
While I do think that there is nothing "lesser" about VB.NET, and I do the vast majority of my coding with it, it's always good to keep my curly brackts and semi-colons in check.

Open Source
Once it's up and going, if you like it, I'll post the code for the main framework. Seems only fitting as I'll be leaning heavily on the community for tips and tricks.

Better Design
Not sure if I have the time/patience to go for a rounded-corner look, but at a minimum, I want have a nicer design. Not that I don't like what I've got going on, but I was really just learning CSS when I did this. I like what I did on ArcDeveloper a lot more.

That's it for now. Right now I've got the graphic design done, and will start in on the master page over the next few evenings.
Sunday, January 08, 2006
Posted on Sunday, January 08, 2006 12:50:29 PM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: General
While my trusty old (2001) Micron is still good for email & surfing, it just could not handle Visual Studio 2005 + SQL + IIS. So it was time to get something new. Of course I wanted fast, cheap, quite and small. I went to a local computer store that does custom systems, and they were willing to hook me up with a loud, tower, mid-range box for ~ $1000. Of course for a couple of hundred more, it could be quiter, with a better CPU... Ummmm. no.

Enter TigerDirect.com - Long story short, I hooked up a Shuttle XPC, with an AMD Athlon 64 (3700), 1GB of 3700 DDR Ram, 160GM of disk, card reader, DVD+-R/RW/CD-R/RW, 128Mb ATI something card for ~$700. And it's quite (can barely hear it when there is no other sound in the room), small (8" high, 8" wide, 12" deep), and for the price - really fast.

I had been hesitant about going the total DIY route, but I just could not stomach spending about $600 more just to have someone set it up. So, if you are considering building their own box (and saving a bunch of cash), I highly recommend doing it. The only thing that was at all complex was determining how much power the system would need. Handily, digg had a link to a really cool power calculator. Just select the parts you're going to be running, and it will tell you what size power supply you'll need.

Actual assembly is trivial compared to setting up a home theater system. From opening the boxes to logging into XP it took less than 2 hours.

Now to update my site to .NET 2.0!
Thursday, January 05, 2006
Posted on Thursday, January 05, 2006 6:25:19 AM (Mountain Standard Time, UTC-07:00)  Comments [2] | 
Categories: General
The New Year has rung through, and we're all getting back to work again. Unfortunately I've been lagging behind a little due to a mighty head cold. Uggh.

Regardless, we've got a bunch of cool projects coming up, which should generate some good posts both here and on ArcDeveloper. Right now I'm just finishing up two Geoportal projects, and will post some screen caps and URLs when they are finalized (one is public, the other internal to the US Forest Service).

We're also working on a very burly geoprocessing system that will produce "fire risk" maps - this is a derivative project that spun off our work on the Souther Wildfire Risk Assessment (SFRAS) project (GeoWorld Article). We're building this as a command line batch processing tool, designed to be intergrated into an image processing workflow. The modelling involved is very complex - elliptical filters, external fire science dlls, and some fun grid math. Thankfully Joe Berry is helping us with that aspect of things.

After that we're going to spend some time working with the ESRI .NET ADF and Image Server as part of the 9.2 beta programs - should be very interesting. Then the new projects hit. And somewhere in there we are going to have our first child!! So, things are going to be moving pretty fast for the next few months, but I'll try to keep a steady stream of relevant posts coming out.
Wednesday, December 14, 2005
Posted on Wednesday, December 14, 2005 11:57:33 AM (Mountain Standard Time, UTC-07:00)  Comments [0] | 
Categories: ArcGIS Devt | .NET | General
A friend sent me interesting article on the future of GIS & Spatial Information Managment (SIM) over on GeoCommunity. The article presents the results of an IDC study on the industry, and their 5-year forcast.

Interesting quote #1:
"From enterprise areas like master data management to Google Maps, SIM technology is becoming pervasive," said David Sonnen, IDC's consultant for spatial information management.


It's the pervasive that I find interesting, or rather this is what I've been thinking & saying for a while now (see this presentation I gave at CSU on the same idea). The integration with business processes will be tight, and ad-hoc analysis will be less common (i.e. less analysts). And who is going to build & maintain these systems? Developers.


Quote #2
SIM's migration from a specialty technology to a broad enterprise resource poses both threats and opportunities for geospatial, IT infrastructure, Internet, and business analytics vendors.
So, assuming that IDC has done their homework, there is or will soon be a large community of software developers, engineers, architects and all the other sub-species of software professionals jumping into the geospatial pool. Will the community be able to accomodate them? Will ESRI be able to effectively reach out to this group? Or will Oracle / Microsoft / Google / Open Source be able to better address the needs of this emerging community, and bypass the GIS power houses?

Additionally, the structure and discipline of mainstream software engineering will soon be shaking up existing GIS shops. Having a development process will become more important, as will automated unit testing, agile processes and project managment processes. Some groups will evolve and thrive, while others will not. I also think it's a sign of a maturing industry which has worked really hard to bring their technology to a place where it can be intergrated with the main stream.

Thoughts?
Tuesday, December 13, 2005
Posted on Tuesday, December 13, 2005 10:50:42 PM (Mountain Standard Time, UTC-07:00)  Comments [4] | 
Categories: ArcGIS Devt | .NET | ESRI | General
After posting my description of the ESRI Developer Group meeting, I got to thinking about the term "Developer" or "GIS Developer", and what that entails. At the meeting, which was specifically called a "Developer User Group", many if not most people said they were using VBA. And they came to the "developer" user group.

While this does not fit my definition of a "developer", does it fit yours?
Personally, I think a "developer" is someone who writes software for a living. They study how to write code that's robust, stable, maintainable, re-usable and efficient. They are worried about usability. They have a development process. They are professionals. It's what I do, and what my co-workers do. And what a lot of other people do. And as GIS becomes more widespread and integrated into the enterprise, more people from the main stream "developer" community will be tacking the "GIS" on the front.

I'm interested in hearing what other developers think it means. Are you a GIS developer if you code VBA tools? If you whip up some Python scripts? How about a model? Or is there a step up when you hit COM? Or is there some other threshhold? If you are presenting to "GIS Developers" where should the bar be set in terms of assumed knowledge?
Posted on Tuesday, December 13, 2005 10:38:11 PM (Mountain Standard Time, UTC-07:00)  Comments [3] | 
Categories: ESRI | .NET | ArcGIS Devt | General
I was excited when I heard about the "Denver ESRI Developers User Group Meeting" down at the ESRI Denver offices. So, today, a colleague and I drove 50 miles down there to attend. Since ESRI seems to be trying to beef up their outreach to the "Developer" community (release of ESRI Developer Network, the Developer Summit etc), I had high hopes for this event.

After taking our seats, and a couple of introductions, the presenters put up the Agenda slide (paraphrased as I did not take detailed notes)
Section 1: Developer Resources
- online help
- support.esri.com
- EDN site
Section 2: Building a Tool
- develop a customization for ArcMap in a COM language

We packed up and left after about 5 minutes. It just was not worth our time. In my mind, what they presented today is about as basic as you can get as a "developer" working with ESRI tools. This is stuff you should cover in the first hour or two of doing development with ArcObjects and ArcMap. If this was a "Intro to ArcGIS customization" seminar, this would be fine, but it's a "Developer User Group" - we expected more. While I knew that they were not going to touch on automated generation of Geodatabase schemas via XML or other esoteric topics, I had hoped that they would at least show off what can be done if you dig a little deeper - class extensions & object inspectors, ArcEngine applications, ArcGIS Server web services etc. Nope. Basic ArcMap.

Before I go any further, I think that the content of the meeting was perfect for most of the audience. When asked who was currently using VBA to customize ArcMap, the majority put up their hands, so an intro to COM customization is not too far off for them.

However, if this is an indication of ESRI's understanding of the "developer" community expectations, it raises some serious concerns for me. Particularly for the Developer Summit. At this point, I'm putting my plans to attend on hold until some sort of agenda is posted so we know what we're getting with this. W