Crouching tiger, coding monkey

Virtual virtual debugging or “How I got an ID10T error from Parallels”

Filed under: Debugging — Grant September 28, 2006 @ 10:24 am

Yesterday I was minding my own business when a bug slipped into my queue. We’ll call him, oh I don’t know, Defect #327. (I’ll give you one guess where I got that name from.) It goes something like this:

Defect #327: Windows NT4: Ordinal not found error: “The ordinal 301 could not be located in the dynamic link library WLDAP32.dll”

Apparently this was discovered using a Virtual PC image but everything had worked fine on the test machines that were running NT4 natively. I figured that the Virtual PC image hadn’t been patched up to the right level, but in order to know for sure I had to run it and see. Here is where the craziness begins.

I have two computers at work. One is the wickedly good Macbook Pro that 90% of all of my work is done on. The other is an also wickedly good, but not nearly as cool, Dell GX260 workstation running Windows 2003. Figuring that Virtual PC would run better on Windows than the Intel Mac I wheeled over to the Dell and set about installing it.

I browsed to the network shares, click click open the directory, setup.exe that looks right, click some more, installer starts here we go:

“You are not running a supported operating system. Microsoft Virtual PC 2004 is only supported on Windows 2000 Professional and Windows XP Professional.”

D’oh.

All right, well I couldn’t put XP on that box for other testing reasons, so I figured I would just do a fresh install of NT in Parallels on my Mac. So I start up Parallels, dig around the network room for the NT4 CD, setup the VM, launch the installer:

Ah, error number 4.  Of course.

Shaking a first at the screen I mutter the words of Homer J. Simpson, “Oh cruel fate, why do you mock me?” I mean, how hard could it have been for the NT4 team to anticipate my needs? Shouldn’t they have thought that I would need to do an install on a virtual machine product that hadn’t been invented yet (Parallels), on an OS that hadn’t been invented yet (Mac OS X), on a chip platform that Macs were a decade from running on (Intel)? Hmm, I guess when I put it that way…

Being 0 for 2 in my attempts it was now time to try the crazy scenario, run NT4 in Virtual PC on XP Pro that was running in Parallels on Mac OS X. A virtual virtual OS. Admittedly I had very little hope that this would actually work, but what the hell, I had come this far.
After booting up Parallels with XP and successfully installing Virtual PC it was the moment of truth:

Virtual PC in Parallels

Come on, big bucks, no whammies…

Whammy! Parallels crash report

Kablooey! There’s the surprise of the century. Parallels will crap out if you try to start a Virtual PC virtual machine inside one its virtual machines. Along this same line, other things I have recently discovered is that water is wet and things on a stove tend to be hot to the touch.

Having screwed around enough I finally buckled and installed Virtual PC on one of the QA machines in the lab. Turns out I was right, the latest patch hadn’t been installed to the disk image so that’s why we were seeing the error. And it only took me three real machines, two and a half virtual machines, and one reference to an old game show to figure it out.

Automator: I’ve got the hammer, but I can’t find a nail

Filed under: Apple, Programming — Grant September 21, 2006 @ 8:59 am

One of the lesser talked about Apple applications that I’ve long been interested in is Automator. I first heard about it with the rest of the world in the WWDC 2004 keynote and I remember thinking something like, “That’s nice.”

Later on I happened to watch all the Macbreak videos with Leo Laporte and Apple’s Sal Soghoian to which my reaction was, “Wow. Now that is pretty cool.”

MacBreak 20: Automator Media Browser
Macbreak 14: Automator Photoblog
MacBreak 8: Automator Life Poster
MacBreak 03: Enter the Automatrix

Then, at this year’s WWDC I went to a couple of sessions on Automator and walked away thinking, “Sweet mother of Steve Jobs’ turtleneck, that is cool stuff.” (Alright, that may not have been *exactly* what I was thinking, but you get the point.)

Yesterday I found myself with a bit of a hole in the schedule so I sat down to see if I could rig up something in Automator that might be useful to the Seapine community. Here lies the problem.

I couldn’t think of anything to do with it.

It all worked as advertised, I had workflows that copied junk from one place to another and queried the system configuration into a text file. In the end, however, I had nothing that was going to change my life or anyone else’s for the better.

I thought about setting up my build process in Automator, but I already that automated. I looked into seeing if there was any way to integrate Surround SCM into Xcode with it but found no dice there as well. I even considered using it to query against TestTrack with SOAP to produce an RSS feed of newly entered defects but that felt like too much work for the time I had. (Plus it felt like a reach, like I’m gonna make this thing do something dagnabit.)

I’m sure at some point I’ll use it to package up a bunch of pictures or Quicktime movies of the kid to keep the grandparents off my back, but for the moment I’ll just take my hammer and wander the halls. A modern day John Henry if you will. Well, maybe not, but at least a Don Quixote who’s stopped by Home Depot.

Why a blog?

Filed under: Fans — Grant September 13, 2006 @ 9:32 am

So yesterday I was working away when who should show up at the Seapine mother ship but Jeff Amfahr. He had the fortune (or curse depending on your point of view) to work with a bunch of here at the now defunct Digineer.

Naturally, this lead to a mini reunion of sorts with about ten of us standing around, cracking jokes, and generally being unproductive. A funny side note is that each time a new ex-Digineer person walked up to join in they said nearly exactly the same thing:

“How did you get in?/Our security must really suck around here.”

Good Times.

Anyhow, Jeff eventually brought up this blog and asked how it was that I got started doing it and why none of the other Digineer people had one. The group quickly came to a consensus of opinion:

1. I’m apparently the only one that can actually write in English
2. I’m also the only one that has figured out how to use that spell checker thingy.
3. I really don’t do much around here anyhow so I may as well write a blog

This is all well and good, and may even be true, but what I learned was that someone from outside of Seapine actually reads this thing. That means that I can now go to Rick and renegotiate my blog contract Donald Trump style.

Bustin’ a cap in Open Source

Filed under: Music — Grant September 11, 2006 @ 9:44 am

The other day I ran across an mp3 of Richard Stallman singing the The Free Software Song.

My therapist appointment has been scheduled for early next week.

A great sidebar was what the mp3 genre was listed as when it was imported into iTunes. Here’s the screenshot:

rms_itunes2.png

A truer classification has never been made. (Or not.) Here’s the direct link to song itself but be warned you’ll never get that two minutes of your life back. Ever. There’s also a chance that you’ll bleed from your ears and it’s possible that you entire head might just explode.

Read: Don’t blame me if you listen to it.

The Maytag man and memory deallocation

Filed under: Garbage Collection — Grant September 8, 2006 @ 1:26 pm

So the other day I was at home minding my own business when my wife asked me one those homeowner kinds of questions where your initial reaction involves profanity.

Wife: “Where is all this water coming from?”

Me: “Dammit”

Turns out it isn’t the biggest deal in the world, the washing machine’s drainpipe is draining too slowly for the pressure coming out of the washing machine pump. Thus, once the pipe is saturated the water has nowhere to go but backwards and all over the floor. What’s probably going on is that there is some kind of partial blockage somewhere that my snake can’t reach. And it is because of this that some lucky plumber is going to make some money.

Admittedly this doesn’t have anything to do with technology, although I could spin some crazy analogy of internet bandwidth being like a drainage pipe and when the internet gets clogged by a giant lint ball that soapy water spills all over your wireless network. But, let’s be honest, that would be lame.

What I was doing at the time when I got this lovely news was reading up some Objective-C stuff and thinking about how in Leopard/Xcode 3.0 Apple is adding garbage collection to Obj-C. But what is really weird is that this moment of laundry mishap was the beginning of several GC sightings over the last few days.

The last couple of weeks I’ve been working on an internal web application that is written in ASP.NET with C# and its GC-ness. Also a number of blogs I normally read have brought it up lately. And then, just now, after having a conversation which lead to a link, to another link, to another, I ended up at JWZ’s old rant about GC.

One could probably spin this into being some sort of sign, although everyone knows that true signs only come in the form of thunderclaps. Well, and the occasional toasted cheese sandwich.

For me, I’ll just have a plumber come out and collect the garbage from my pipe… wait, collect the garbage, another sign. Oh dare to dream that the lint ball will look like something. I can see my eBay riches now.