Recent Articles

Subscribe

The Problem

I was attempting to upgrade a few workstations at work from Esri’s ArcGIS 9.3 to 10.0. The workstations are running Windows 7 32-bit on Dell OptiPlex 790s, and are otherwise pretty basic setups.

After uninstalling ArcGIS 9.3, I proceeded to install 10.0. Just towards the end of the MSI install — the “publishing product information” phase — the install would completely halt and lock up. Even after leaving the installer for an additional hour didn’t show any change. I manually ended the installation process, and attempted the install again (after letting the MSI installer repair the failed installation) with the exact same result. Huh?

Skip ahead to a few hours later after much troubleshooting and retrieving/analyzing of logs, I had learned that the MSI installation was failing with error 1935. From Microsoft:

This problem occurs because of a registry handles leak. The leak causes an out of resource exception. Therefore, the installation fails.

Okay, well, I can’t say that I’m surprised. For anyone who has ever installed/uninstalled an Esri ArcGIS product and watched the installer spend 10 minutes writing to the registry, you’ll know what I’m talking about.

It turns out that the Windows registry has a size limit, and because of the leak that is occurring during the installation, the ceiling of that size limit is being hit. The solution, although not classy, is to increase the size limit of the registry.

The Solution

So the Windows registry has a size limit, but how to increase the size of it? In pure Windows fashion, from within the registry itself:

Automating installations is a good thing. It means that the installations are consistent across multiple installations, there’s (by necessity) documentation for later reference of what and how something was installed, and automatic, unattended installations scale really well. If you’re doing it more than once, you should be automating it.

There are two ways to specify installation parameters for an unattended install of SQL Server 2012:

Easily, specifying a configuration file that contains all of your configuration parameters:

Setup.exe /ConfigurationFile="ConfigurationFile.ini"

I much prefer the second method of provided a configuration file as I don’t have to remember all of the required parameters and I know my parameters are correct. Most of the time all I have to do is take a previously used configuration file, tweak a few lines, and I’m good to go.

Creating a Configuration File

You have a few different options for creating a confirmation file: You can create it from a previously existing one you may have or an example one provided by someone else, make your own from scratch (you may want to reference the Microsoft documentation, or opt to have SQL Server 2012 Setup create it for you. There isn’t much too it, as it’s just a plain-text INI file. Read more

Recently, for reasons that aren’t much fun to talk about, I had my car stereo replaced. I bought and installed the Alpine CDE-123 head unit, and because sometime in the future my car will be going to my fiancée who lately does more driving than I do, I also purchased the KCE-400BT Bluetooth add-on kit. (Last year, here in British Columbia, a law was passed that prohibits the use of cell phones while driving.)

It all installed great with no issues at all. It was very easy to pair my BlackBerry Bold 9780 up with it, and worked like a charm. Making calls, receiving calls, and even streaming music from my phone via Bluetooth. Then I did something foolish: I turned the car off. Silly me. When I later was back in my car the next day, I watched my phone as I turned the ignition and seconds later my phone showed that it successfully made a connection to the KCE-400BT. All seems normal. I attempt to make a phone call from the head unit itself and it shows me a message that says “No Unit.” Weird. That didn’t happen yesterday. After much testing and fussing, I consistently get the following results: Read more

Who has heard this scenario before from a friend, family member, or co-worker?

Them: “Hey, so my computer was making this weird ticking noise and then this morning it said it couldn’t find the hard drive.”

You: “Uh-oh. It sounds like your hard drive is toast.”

Them: “Can you fix it?”

You: “Sure. I’ll pick up a hard drive after work. We’ll have to reisntall everything though. No big deal though, because you have a backup, right?”

Them, after a brief pause: “Um, no. I’ve been meaning to do that.”

Suddenly a not so painful task has turned into a matter of life and death. It’s imperative that you get that iTunes collection and picture of Aunt Agatha from the last family reunion back. Too bad there wasn’t a backup. Read more

A couple of weeks ago I finally purchased all of the components I needed to upgrade my main computer. My old one from a couple of years ago (AMD Athlon 64 X2 5600+ processor, 4 GB of RAM, 7200 RPM HDD) wasn’t bad for some simple programming or other “basic” tasks, but it was lagging behind when trying to run multiple virtual machines plus perform any of those “basic” tasks. After holding out for a while, waiting for the Sandy Bridge i7 processors to launch, I finially made the necessary purchases: Read more

As everyone’s well aware, creating unattended scripts for Windows is really useful, and any time spent upfront making answer file easily pays for itself in the long wrong (even if the only thing it does is fill in the product key for you). When building answer files for operating system such as Windows 7 and Windows Server 2008, you need to write in the name of the image (from the WIM file) you want the installer to use. In some cases this is pretty straight forward, but in other cases an image file can actually have many images in it. For example, Server 2008 R2 has all of these images in its install.wim file: Read more

One thing (or maybe more correctly, three things”) that I’ve really been looking at for awhile now has been getting a triple monitor setup at home. It’s slowly becoming common knowledge that having a dual screen setup can increase productivity, so my thinking is two screens good, three screens better. The price for panels now are getting much cheaper too across the board and are pretty affordable until you start looking at the 30″ models (How long until I look back on this as say, “Wow. Thirty inch monitors used to cost $500!?”). Read more

From Joel Spolsky and the team at Fog Creek Software comes FogBugz, probably the best bug tracking software package available.

FogBugz manages projects, tracks bugs, and even tells you when you’re going to ship. It includes an issue tracker, advanced project management and scheduling, a wiki, and customer support features like email routing and discussion groups. It is completely extensible with plug-ins and an XML API, and integrates with all major version control systems.

Other than just tracking bugs (which it does a great job of), it also supports wikis and discussion groups and tracks customer emails. I have to say though, that the coolest feature of FogBugz would have to be their use of evidence based scheduling: FogBugz tracks how you fix bugs and implement features and will report if you are on schedule to meet your release date, and what your probable release date is.

The Student and Startup edition has only one limitation that you can only have two users. In most cases, if you’re reading this, that’s probably not an issue at all. Other than that, it is a fully working version of FogBugz OnDemand (their online, Fog Creek hosted service).

The Student and Startup edition of FogBugz can be found here. It can take a little bit of digging around on the site to find, but it’s there.

I’ve been thinking for a while now about writing about some really good free tools for developers just starting out and micro ISVs, as well as students. The truth is, there are some very decent tools out there. You just have to sift through the pile of costly alternatives. Hopefully, it’ll be a little easier if some of the items are pointed out for you.

The following “snippit” (a bit long, but meh) will retrieve your application’s GUID (which can normally be found in the AssemblyInfo file). Great for referencing your application in the event that the name might change or any other time you need to uniquely identify it.

About

Although a late-comer to the blogging word, Matt figured that it’s better to be late than never. Starting this blog mainly as an electronic notebook, Matt figured that rather than keep his findings to himself, others would hopefully find benefit to it as well.