Office Update…

Posted by Dave Bouwman | Posted in Hardware, Life | Posted on 18-12-2007

3

Just a quick update on getting our office setup. In the last post on Building our Rigs, we were still in Chris Spagnuolo’s house. We have since moved into our "temporary" space while our final home is being built-out (more on that as the plans get finalized and construction starts!)

So let’s take a look around. As I noted before, we all have 3 monitor setups. It’s as good as you’d think. The workstation itself seems really fast, and the other guys have been really happy with the performance while developing. I’ve been traveling and setting up servers and the network so I’ll report back when I’ve had a chance to really beat on it.Office-003-blog

As you can see I’m currently rocking the Home Depot desk. We’re still waiting for our Ikea desks to arrive, but a sheet of plywood and some sawhorses work quite well.  Since we went with the very economical Ikea desks we could afford Herman Miller Mirra chairs. Besides being a little less expensive than the Aeron, these are 96% recyclable. We gave these a test run at Rally when we visited them a while back.

Speaking of recycling, setting up an office generates an awful pile of waste from the packaging. We’re trying to recycle what we can, but these two bags are full of Styrofoam and other non-recyclable plastics. This pile is just from the packaging for the chairs, the printer and some other misc office supplies.Office-002-blog

We have been able to put some of the cardboard boxes to some good use… Office-006-blog

We’ll get a rack once we move to the new space, but for now our servers have to make do with what we’ve got. Speaking of servers, we got Dell PowerEdge’s with Xeon LV chips – they are supposed to use significantly less power than the standard Xeon chips. We are running 3 physical machines for now.

Our the File Server / Domain Controller and the SQL / Oracle servers have a single Quad Core Xeon CPU, and ~500GB RAID5.

Our App Server has two Quad Core Xeons, 8GB Ram, and two 15k disks. We’ll be running AGS and IMS on the base OS, and other stuff as needed in VMs.

We just barely got them up and running last week, but I can say this – they be FAST. And just disregard that tangled mess that is supposed to pass for a "built in networking panel". We”ll be keeping an eye on whoever is wiring up the new space for us, and ensure that we get a patch panel rather than another one of these!

Our server room also does double duty as a separated recycling storage area. Separating this stuff before you take it to the recycling center makes it so much easier.

Office-007-blog

So that’s about it for now. After the new year we’ll be getting a serious firewall so we can start hosting demo sites, and other fun stuff. Construction build out will start mid-January.

Virtual Earth 3D in Winforms

Posted by Dave Bouwman | Posted in .NET, Microsoft Spatial | Posted on 13-12-2007

0

Got up a little early today and had some time to mess around. I had been reading about Virtual Earth 3D, and decided to see if it the control could be added to a Winforms app. I found a rough how-to from this blog, and it took a little more meddling to get things working, but it definitely does work.

ve3d-test

Since the SDK is not actually released yet, it’s going to take some stumbling around the API to do useful stuff with it, but think about what this and SQL 2008 are going to allow us to build!

Agile = Good, Agile Dogma = Bad

Posted by Dave Bouwman | Posted in Agile | Posted on 07-12-2007

2

Many people jokingly refer to the “cult” of agile. But the reality is that to outsiders, many Agile teams, particularly those doing Scum, seem to have the messianic zeal of cult members. I think this is just fine, and really no different than the zeal you see from Ruby on Rails converts. These people are simply excited about having found something that really works for them, and they want to tell you about it. This becomes problematic when a dogma emerges – where you start to see semantic arguments which boil down to “I’m more agile than you because X.”

What I’ve seen this week at the Agile Development Methodologies conference is an underlying theme which more or less boils down to:

Agile = good, Dogmatic Agile = bad

Although this seems obvious, it’s the sort of thing that’s worth repeating because we are starting to see more people engage in “Are you Agile[tm] Enough” debates on blogs and forums. This is dogma rearing it’s ugly head. If you happen across these threads, ignore them – they are irrelevant at best and detrimental at worst. Quite simply they are missing the point. The successful groups realize that silver bullets do not exist – agile or otherwise. There simply is no methodology which works for all teams in all situations. The key is to apply the agile concepts to your situation. Try some techniques – keep what works, drop what does not. Inspect and Adapt. But just be sure to leave the dogma out of it!

Mozy.com Backups

Posted by Dave Bouwman | Posted in Productivity | Posted on 02-12-2007

1

A month or so ago I was dumping another 2GB of photos and videos of my son Kai off our cameras and decided that I needed to get a more robust backup strategy – we’ve been using digital cameras since 2001 – I’d hate to lose it all!

I should preface this by stating that I had a kludgy “local replica” strategy. Basically a power shell script which dumped deltas from my home workstation to my home server, as well as an external drive. While that’s good enough to ward off critical failures in hardware, it really does not address theft, fire, or other serious natural disasters. For that you need off-site backups.

Enter Mozy.com. I have to give my co-worker Mike Juniper props for giving me the little shove I needed on this. The price was certainly right – $5 a month for unlimited storage, but I was concerned about how unlimited Mozy’s unlimited really was. Mike had uploaded 12GB without issue, so I took the plunge and see if I could jam all 36GB up there. And while it took about a week to get it all up there, it’s been working very smoothly.

mozybackup

For home users it’s ridiculously easy to setup. Your backups appear as a drive in File Explorer. Getting a file back is just drag and drop.

mozyfiles

In fact this is working so smoothly that we are likely going to use Mozy Professional for offsite backups in our new office. This is set it and forget it software and Sit sure beats setting up cryptic backup software and slogging tapes back and forth!

Agile Development Practices Conference

Posted by Dave Bouwman | Posted in Agile | Posted on 29-11-2007

0

I’m super excited about attending the Agile Development
Practices Conference
in Orlando on December 5th & 6th.

In addition to showing a serious commitment to agile practices and software
quality on the part of DTS, what I really think is cool about this
event is that it will dig into some of the more technical aspects – testing
strategies, automated builds, refactoring etc. Since these things are
challenging when applied to regular .NET development, I’m especially interested
to get some ideas on overcoming some of the extra challenges the ArcGIS stack
adds into the mix (i.e. using mocks & fakes for a large interface based
API like ArcObjects)

And getting a chance to hear people like Scott Ambler, Roy Osherove, Mike Cohn, Tom and Mary Poppendiek, and Andy Hunt talk about agile development
should be great. I just picked up a new laptop today, so I expect to be
taking copious notes and likely more than a few blog postings while at the
conference. Hope to see some other GIS people out there as well!

ESRI Adopting Agile…

Posted by Dave Bouwman | Posted in Agile, ESRI | Posted on 28-11-2007

2

Just read an article on GISUser.com (also at GISCafe) about ESRI bringing on Dirk Gorter (formerly with Symantec) as new Director of Product Management. Here’s a quick quote:

Gorter’s focus is on implementing a product management process that is similar to the agile product development process commonly used by software development teams.

This is great news! Hopefully ESRI will be talking up agile as they go through their own changes. This level of exposure is sure to help raise awareness of the benefits of agile development within the broader geospatial industry – maybe we’ll see some ESRI people at the Agile Development Practices conference next week!

Serialize Geometry for Unit Testing

Posted by Dave Bouwman | Posted in .NET, ArcDeveloper, Unit Testing | Posted on 28-11-2007

0

Tonight added a few more projects to the ArcDeveloper Subversion repository up at Assembla (http://svn2.assembla.com/svn/arcdeveloper).

Since the goal of the ArcDeveloper.net open-source projects is to streamline unit testing for the ArcGIS developer, the logical place to start is with a methodology for passing geometries into tests.

The code that’s up there handles geometry serialization / deserialization. In addition to a set of classes which handle the “work”, it also includes 3 ArcMap tools:

  1. Serializing selected geometries to a file,
  2. Serializing a sketch to a file, and
  3. Drawing serialized geometries on screen so you can be sure you captured the right thing.

It also has a simple example showing how to write tests using this methodology.

I’m not going to go into a full-blown “how to” at this point, but the general flow goes like this:

  1. Use the tools in ArcMap to create serialized geometry files
  2. Add these files into your Test assembly as Embedded Resources
  3. Pull the geometries out of the test assembly when the tests are run.

This allows you to store all sorts of complex geometry scenarios without being reliant on particular spatial data sets residing at fixed locations – the data is embedded into the test assembly.

I will be posting a much more detailed “how to”, as well as adding content into the ArcDeveloper.net wiki.

Backlog Items

These will be added into TRAC when I get time, but here’s the quick list

  • Enable serialization of entire features
  • Add tests for the actual utility classes themselves
  • Improve the messaging
  • Make the Extension be a “JIT” extension so it’s easily enabled/disabled
  • Better exception handling (currently just MessageBoxes)

Project Status

If you are interested in following along with what’s happening on the project, I’ll be posting finer grained information on the “project flow” page, which like all good things has an RSS feed.

Data Transfer Solutions: My New Home

Posted by Dave Bouwman | Posted in .NET, Agile, Blogging, careers | Posted on 27-11-2007

3

Yesterday we sent out a press release via Chris Spagnuolo’s GeoScrum blog. Thus, I think it’s now ok to say that my entire team and I are now with Data Transfer Solutions.

DTS_small_web 

The team is super excited about the new opportunities this change brings (the blazing workstations, “green” servers and build out, IKEA workstationsgreat chairs, and a strong interest in adopting agile methods doesn’t hurt either!).

On the technology front, we are still sticking with .NET and ESRI for the most part. We expect to be doing much more web work than in the past, and with the release of Visual Studio 2008 and .NET 3.5 this will be very cool. I expect we’ll be working with ArcGIS Server / tile caches on the back end, as well as Virtual Earth and Open Layers for the client UI. Mix in some unit testing, and it should be lots of fun.

We’re also going to be adding some new capabilities – specifically Agile Consulting and Coaching. This is still in the early stages so I’ll be posting more about it as things develop, but I’m very excited about some things we have planned, and the opportunity to share our experiences, methodologies and practices with others.

I’ll wrap this up by saying that I’m also very excited to work with the existing DTS development team. Although I’ve only met a few of them, and only very briefly, but their depth and breadth of skills are pretty amazing – I heard that someone wrote some ArcGIS Desktop tools using Boo (scratching your head – here’s a hint: Boo is a Python-like scripting language for the ECMA CLR implementations such as .NET and Mono.)  I think they will be keeping us on our toes!

I’ll be posting more about starting up an office, and getting things rolling over the next few weeks. Some tasks on our current backlog - order & setup some servers, get a firewall (advice welcomed!), move out of Chris’s living room into our “temp” space, finalize the build out plans for our “real” space… fun!

Building the Rigs

Posted by Dave Bouwman | Posted in Hardware, Productivity | Posted on 26-11-2007

0

The Build

For details on building out a system, read Jeff Atwood’s posts re: building the Hanselman box (Part 1, Part 2, Overclocking). Since our parts list was virtually identical, his detailed photos and descriptions we’re awesome. Here are just a few shots of us putting stuff together.

chris-jeff

Jeff & Chris putting the stock heat sinks on the motherboards. The Scythe heat sinks were back ordered, so we’re going to wait until they arrive to overclock things…

mb-heatsink

Board ready to go into the case…

mb-case

Here’s a motherboard mounted just prior to the initial boot to make sure it’s all setup correctly.

install

By the end of Thursday, we had 4 systems built out, and the OS installation started.

On Friday we got our MSDN licenses and received our ESRI Developer Network kits. From there, we got the OS installed on 4 systems, and started running torture tests using Prime95. One of the systems has some stability issues (we’ll tear it down Monday when we build up the final system) and it looks like one of the WD Raptors was flaky. Other than that all is well, and everyone had quite a bit of fun. The next “big” thing is getting into a “real” office – but that will have to wait until after Thanksgiving.

ArcDeveloper Source Code: Visual Studio Templates

Posted by Dave Bouwman | Posted in .NET, ArcDeveloper, Visual Studio 2005 | Posted on 20-11-2007

1

In the last post, I said I’d post shortly so - here’s the skinny on the code that’s currently in the ArcDeveloper Assembla repository.

The VSTemplates Project

Back in September I posted about using MSBuild to package up Visual Studio Item templates. I’ve uploaded this code into the repository, and it’s ready to roll. The templates are setup for ArcDeveloper projects (i.e. an MIT license, “ArcDeveloper” etc.), but you can easily modify this and re-run the MSBuild script to create a set customized for your company / team.

At this time, there are just 3 templates – class, interface and non-COM class – with both C# and VB.NET flavors. I’ve got ideas for others, and will be adding more as they come up in my development.

Running MSBuild

If you have edited the templates, you’ll want to run the ArcDeveloper.Templates.Build file. Here’s how you do that:

  1. Edit the .build file so the SolutionDir and BuildFolder are correct for your machine.
  2. Open a Visual Studio Command Prompt
  3. cd to the folder with the .build file
  4. run msbuild arcdeveloper.templates.build

The build script will zip up the templates (as required by Visual Studio) and drop them into the BuildFolder. In order to have Visual Studio pick these up, you need to tell it where your Item Templates are. Go to Tools –> Options and select the Projects and Solutions item. Set the User Item Template location.

vs-settings

Now when you add an item to Visual Studio, you’ll have some additional options

vs-items

Get It!

If you just want the templates, you can download them from here: http://www.assembla.com/spaces/files/arcdeveloper

If you want to be able to build the templates, grab the code from Subversion: http://svn2.assembla.com/svn/arcdeveloper