May 2009

Album Cover: Icky Thump

"I'm gettin' hard on myself, sittin' in my easy chair."
White Stripes / 300 M.P.H. Torrential Outpour Blues

Using Visual Studio .NET 2003 on Windows 7

May 26, 2009 2:43 PM

The week before last, I finally bit the bullet and decided to replace my embarrassingly slow work computer. Along with the new hardware, I decided I'd make the jump to Windows 7 since I've been having relatively good luck with the new operating system on my work laptop and my main home computer.

After I installed all the essential software (e.g. a web browser, an IM client, etc.), I started getting to the very work-specific software like Outlook, bug tracking software and IDEs/compilers. At my work, we still rely on Visual Studio .NET 2003 to compile the bulk of our code. We've got several components that rely on Visual Studio 2005 and even Visual Studio 2008, but because the majority of our code is compiled with the oldest of the three, there's really no getting around having it installed in order to do real development.

Unfortunately, it wasn't until I was well through the software installation process when I discovered the hard way that support for Visual Studio .NET 2003 was dropped in the Windows Vista time frame. It was at that point that I started debating whether or not I should reluctantly make the downgrade back to Windows XP.

Fortunately, before I decided on taking that last resort approach, I saw a window of opportunity in the new, separately-downloadable feature of Windows 7, Windows Virtual PC. If you've got the hardware to support virtualization, not only does the feature allow you to run a virtual operating system from within Windows 7, but it allows you to take advantage of a free, virtual copy of Windows XP via Windows XP Mode (or XPM). As I said before, the feature is pretty darn cool.

Not only is the feature cool, but in this specific case, it actually ends up being pretty darn practical, too. From within XPM, which has easy access to file shares available in the hosting Windows 7 environment, I was able to install applications that couldn't run in Windows 7. This is where Visual Studio .NET 2003 comes in.

You would think that it would be easy to install Visual Studio .NET 2003 in the virtual Windows XP environment, but you'd be wrong, at least for the Enterprise edition I was attempting to install. One of its prerequisites is the Microsoft FrontPage 2000 Extensions package (which seems a bit ludicrous in itself, but I won't go there). Unfortunately, installing this package actually requires access to the original Windows XP installation CD. But since I was running XPM which installed as a sort of application and definitely not via an actual installation disc, I was, needless to say, stumped.

With a little research, I was able to find that the problem is a known issue and actually affects anyone attempting to add or remove Windows components via the Control Panel. Fortunately for me, I didn't need to wait around for the Windows Virtual PC team to release a new build with a fix, but only because I had immediate access to an .iso image of a Windows XP SP3 installation CD.

Windows XP Mode can be set up to consider any .iso file as a virtual disc in its disc drive. On the main Virtual Windows XP window, I selected Tools, Settings from the menu. In those settings, I selected the DVD Drive section from the left pane. Then, in the right pane, I selected the "Open an ISO image" option and pointed to my .iso file, before hitting OK. If I didn't have an .iso file readily available, I could have also used a physical installation CD on my Windows 7 machine and referred to it similarly in the XPM settings.

After making the virtual drive available to my virtual OS, I was able to successfully install the Microsoft FrontPage 2000 Extensions package. Once that was installed, I finally met the prerequisites for installing Visual Studio .NET 2003 and was then able to install the rest of the application without a hitch.

Computers | Post Comments | View Comments (28) | Permalink

Memorial Day Weekend 2009

May 25, 2009 10:05 PM

In what is beginning to look like a trend, I passed up on the Sasquatch Festival again this year. However, that doesn't mean I didn't have an enjoyable three-day weekend.

Friday night, after work, my wife and I had Mexican food from one of our favorite local Mexican restaurants, and then watched The Godfather Part II. I had seen it before, but had forgotten most of the details. Unfortunately, I fell asleep with about an hour left. My wife finished it, and then woke me up to come to bed.

Saturday morning, I woke up and watched the rest of the movie. After that, I was feeling very productive. I had a long list of chores I needed to do around the house, and because Heidi was very easily entertained, I was able to cross quite a few things off. Once my wife woke up, I had already accomplished quite a bit. However, her watching Heidi allowed me to move outside and start on some yard work. I ended up mowing the lawn in the front yard and the back (which took longer than usual because the last onslaught of rain really gave the grass a shot in the arm), taking care of a bunch of weeds with the weed-whacker, pulling up a bush that was getting out of hand, and spraying some treatment on the driveway to keep the weeds away. When all was said and done, I had spent about four or five hours working in the yard. Before the night was over, I fired up our barbecue grill for the first time since last summer. I had to make sure it worked, since I had invited my brother up for a birthday barbecue the next day.

When Sunday morning arrived, I wasn't feeling as productive as the morning before (not sure I will for a while), but I knew I had a lot to do. I made a grocery list to prepare for the barbecue that would follow later in the day, and then drove off to the store. Luckily, my list wasn't too long and I was able to get in and out relatively quickly. When I got back home, I started preparing the food. I marinated the steaks and put them back in the fridge. Then I prepared some handmade burgers with egg, onions and green peppers. We had invited our friend Misty to come by with her twin babies, which are only a week or two older than Heidi, and she ended up arriving before my brother and his girlfriend. Soon after it was a baby fest at our place. Once my brother and his girlfriend arrived, the girls all flocked to the babies and the boys (me and my brother), flocked to the grill. The food ended up being really good, as was the company, and the party ended with some birthday cake and my brother opening some presents (polo shirts from Aeropostale). I was very pleased with how the day turned out, and even more pleased that I was able to do something for my brother on his birthday.

All weekend, my wife and I had been planning on having our babysitter come over today to watch Heidi while we went hiking. We've taken her with us on all other hikes up to this point, but we've started to pick up on the fact that she's not a huge fan. Rather than torture her with another hike, we figured we'd try to give her a break this time around. However, all day Sunday she was in a pretty cranky mood and ended up having a rough day overall. We didn't want to leave her today after a day like that, so we canceled the babysitter and decided to lay low today.

However, once today actually arrived, and the sun was shining, I knew we needed to make the most of it. While my wife and Heidi took a long morning nap, I watched The Curious Case of Benjamin Button (great movie!) and then fired up the grill again to cook my last steak. That ended up tasting excellent, and so did all the leftovers that went with it. Once my wife and Heidi were awake, we decided that we'd take a trip out to Alki and see how Heidi liked the beach.

Harbor and Alki Oh, and how she liked the beach! It was busy down at Alki today, not not as bad as it perhaps could have been. We ended up parking on the eastern end of the peninsula and then walking southward, before turning around and walking quite a distance to the actual beach. Once there, we trudged the stroller through the sand until we found a nice spot right by the shore, put a blanket down to rest on and then watched as Heidi became instantly enamored with the beach. Being the new parents that we are, way more pictures were taken than probably necessary, and after an hour or so in the sand, we packed up our things and made our way back to the car, and then back home.

I can't really think of a better way to have spent the three-day weekend. I know I won't have any regrets as I commute to work in the morning, and it's kind of nice knowing that the reward for such a great weekend is a short work week. Now we've just gotta figure out how we're going to top this weekend next weekend...

Personal | Post Comments | View Comments (1) | Permalink

Yo, 5!

May 23, 2009 11:11 PM

I was easing my daughter into the world of rap music this morning with this video from MC Elmo (check out those dance moves!):

So much better than anything Lil Wayne ever did.

Music | Post Comments | View Comments (2) | Permalink

On Switching to 64-bit

May 08, 2009 6:04 PM

As I mentioned back in March, I've decided to make the switch to a 64-bit operating system, more specifically, Windows 7, on my main home computer. As I've mentioned since then, the transition to 64-bit has been interesting enough to merit a separate blog post from my general impressions of the initial Windows 7 builds. The following is a laundry list of some of the interesting things I've noticed about making the switch to 64-bit:

  • One of the more immediately noticeable things about switching to 64-bit is that there are very few applications that are actually specifically compiled for the architecture. Of my entire arsenal of applications, the only ones I can remember finding off the top of my head are: Internet Explorer (this one comes with the OS and actually comes alongside the 32-bit version), unofficial builds of Firefox, MySQL, the TortoiseSVN Subversion client and 7-Zip.
  • Whereas the typical 32-bit install of Windows houses many of its important DLLs and other files in the System32 folder, the 64-bit version of Windows also has a SysWOW64 folder that serves a similar purpose.
  • Another interesting thing to note is that any non-64-bit apps, which as I pointed out earlier ends up being quite a few, are stored in a Program Files (x86) folder. Only the 64-bit applications are stored in the typical Program Files folder.

Though I'd only file the above observations under "notables," there have been a couple minor annoyances I've encountered along the way as well. For instance, for whatever reason, when I use the latest version of Notepad++ and I utilize the Find and Replace feature, after closing the associated dialog, a transparent version of the window remains on the screen. It only goes away when I restart the application. However, after posting to a forum about the problem, a solution was offered that makes the problem go away (unchecking the "Transparency" option in the Find and Replace dialog).

Way more annoying, however, was learning that the official version of Google Chrome is nothing short of unusable on 64-bit Windows 7. Fortunately, there is kind of a solution, as long as you're willing to use a cutting edge build of the browser. I've covered that in more detail over at Browsersphere.

Overall, though, I have to say that switching to 64-bit has been relatively painless. If it has anything to do with the performance I'm getting out of my computer, then I'm more than happy with the switch. It's also nice knowing that I can upgrade from a few megabytes of memory to a few hundred. Admittedly, though, I don't see myself making that jump anytime too soon. ;)

If I come across any other interesting notes or oddities about running a 64-bit operating system, you know I'll be sharing it here. In the meantime, though, I wouldn't hesitate to recommend making the switch to anyone, especially if his or her computer's got the specs to really exploit it.

Computers | Post Comments | View Comments (2) | Permalink

Thoughts on the Windows 7 Betas

May 02, 2009 1:59 PM

Since one operating system upgrade obviously isn't enough, I plan on upgrading to Windows 7 RC very soon. As mentioned previously, I've been running the 64-bit version of Windows 7 Beta build 7048 on my main computer, Skywalker. Even before that and since then, I've been using the initial Beta build, build 7000, on my laptop at work.

As alluded to back in March, I've been keeping track of all the issues, bugs, annoyances and pitfalls of the beta builds so that I could blog about them here. Hopefully this will prove informative for anyone who's considering giving Windows 7 a try, but mostly it's just a way for me to track all of the issues I've encountered and see if they've been addressed once I've upgraded to the Windows 7 RC build.

First and foremost, I'd be remiss not to point out that the builds I've been using at work and at home are stable. Build 7048 is much more stable than build 7000, but I haven't experienced any form of data loss on the latter. The main issue I noticed in build 7000 that went away in 7048 was the Blue Screen of Death. I saw a few of those on my work laptop, but actually haven't seen them since and certainly haven't seen them on build 7048. But I'm getting ahead of myself...

Windows 7 Beta Build 7000

The following are issues I've encountered with the 7000 build:

  • The aforementioned Blue Screens of Death.
  • At times, when using Firefox, the entire operating system shell would flicker in really ugly rainbow colors.

Windows 7 Beta Build 7048

Because I've spent a much higher percentage of time using build 7048 (since it's installed on my main computer at home), I've encountered many more issues. However, this list doesn't suggest that these issues aren't present in the 7000 build. In fact, they most likely are.

  • I've noticed frequent messages that say something along the lines of "(Application Name) has stopped working..." and "Trying to find a solution..." This appears to be how Windows 7 addresses program hangs or crashes, but very rarely does it do anything useful for me, the user. I usually just hit "Cancel."
  • On several occasions, the taskbar has gotten into a seemingly frozen state, in which the application icons are no longer animated and the time display seems to be completely hosed. However, in a few instances, the taskbar still remained usable nonetheless.
  • I noticed that at some point between builds 7000 and 7048, the button on the start menu to shut the operating system down was renamed from "Shut Down" to "Shut down." Regardless, having a shut down button directly on the start menu without having to navigate a menu to shut the computer down is a nice improvement.
  • Unlike previous versions of Windows, this version seems to lose its credentials to network shares rather frequently. In Windows XP, I could restart a computer on the network, and it would retain its credentials to shares on that restarted computer and allow me to view them without having to re-authenticate. Unfortunately, in build 7048 it appears that re-authenticating isn't even an option. I've always had to log out and back in to access the share again.
  • One of the most critical and most annoying bugs I've encountered is the loss of all network connectivity while attempting to transfer files over the network. When I first installed build 7048, I still had my old PC on the network and wanted to just transfer important files from one to the other. I ended up having to resort to a USB stick instead because the network kept getting hosed and I'd have to actually restart the computer to make the problem go away.
  • Another annoyance occurs when trying to save a file to a new folder. If you create a new folder, give it a name, and then double-click on the newly named folder, you get an error message saying "Folder New Folder does not exist." Of course it doesn't. I just renamed it! But anyway, the workaround is to either click away from the renamed folder and then double-click on it, or to just try a second time.
  • I noticed that when you SHIFT-DELETE a folder to permanently delete it, bypassing the recycle bin, it takes a few seconds before it actually disappears. The first few times this happened, I thought maybe it wasn't working.
  • Aside from the network connectivity problem, the other issue I really hope has been addressed in the RC build is the fact that it takes so long to generate the Programs menu in the start menu. The start menu comes up just fine, but if you click on "All Programs," it can sometimes take up to 30 seconds to render the programs list.

Aside from all the user interface improvements that are well-documented elsewhere, there are some nice little touches to be found in the beta builds as well. Here are a few:

  • When transferring files, either from your PC to a USB stick, or from a digital camera to your PC, etc., if you move to other windows, you can still track the progress of the transfer via the taskbar. The icon in the taskbar is highlighted green (at least in my current desktop theme) from left to right according to the percentage completed. So if a transfer is halfway done, the left-most half of the icon in the taskbar shows up green. I love this feature.
  • Another great feature also involves file transfers. If you attempt to transfer a file that is currently in use to another location, Windows 7, rather than letting the transfer fail, will let you know which application is currently using the file. This allows you to address the issue in that application and then continue the file transfer attempt.
  • Being able to have full control over which icons are visible in the system tray and how each system tray application is allowed to notify you of new messages and events is a huge step up over previous versions of Windows as well.

The fact that I've been using the 64-bit version of build 7048 has presented it's own quirks and interesting tidbits, so I'll be covering those in a separate post soon. In the meantime, this is a pretty good state of affairs as far as my experience with the Windows 7 beta builds goes.

Computers | Post Comments | View Comments (1) | Permalink

From Hardy to Jaunty

May 02, 2009 1:36 AM

Tonight's spur-of-the-moment upgrade from the Hardy Heron (8.04 LTS) version of Ubuntu to the latest and greatest Jaunty Jackalope (9.04) version (with the required intermediate upgrade to Intrepid Ibex (8.10)) was interesting, to say the least.

I wasn't aware that notifications of new releases of Ubuntu are not made available to users of LTS versions unless they explicitly enable the notifications. I figured that out via these instructions. Once I had enabled the notifications, I was presented with the option of upgrading to Intrepid Ibex. That took a little while, but true to previous upgrade experiences, I was informed of all the configuration changes that were needed and presented with the option of keeping the existing configurations or upgrading to the latest, recommended defaults. Due to watching the latest episode of Breaking Bad at the same time, the upgrade to Intrepid Ibex took a little over an hour.

The only glitch I had time to notice after the upgrade to Intrepid Ibex was its apparent inability to recognize its own version information. I was only an Intrepid Ibex user for a few minutes, though, before I was on the upgrade path to Jaunty Jackalope, which was just released about a week ago.

The upgrade process was humming right along when out of nowhere I lost my ability to use my mouse and my keyboard. I dug through my closet to find an old PS2 keyboard to plug in, but that made no difference. I tried numerous times to re-insert the USB cables of the mouse and keyboard, but to no avail. At this point, I started to panic, because there was a prompt on the screen, waiting for my input, and I knew I was smack dab in the middle of the package update/installation process. After a few minutes, relying on memories stored deep down in the darkest depths of my brain, I thought to try the CTRL-ALT-F2 combo. Strangely enough, this combination worked, and brought me to the command line prompt.

My panic hadn't subsided, though. I knew that the upgrade process needed to complete or I was going to be in some kind of half-breed operating system state from which only the geekiest of Linux geeks could escape. This is where the beauty of having multiple computers comes in. I was able to search relentlessly for any information that could potentially rescue me from the predicament in which I found myself.

One thread convinced me I should be editing xorg.conf to get the keyboard and mouse recognized again. After editing that file, I was able to get Gnome to start up in "low graphics mode." However, my keyboard and mouse still were not working and I was therefore unable to confirm the dialog letting me know I was in that mode. Worse yet, after this point I was unable to return to the command line at all. Faced with no other apparent alternative, I resigned myself to a hard restart of the computer. Ouch.

Once I was back at the command prompt after the restart, a comment at Reddit seemed to indicate how I could kick off the distribution upgrade process from the command line (since I still couldn't get a good Gnome session started). However, when I tried to run the first suggested command:

sudo apt-get install update-manager-core

I was presented with a message from the console stating that I needed to run the following command to complete a previously unfinished upgrade:

sudo dpkg --configure -a

You can imagine my relief when, after running this command, I saw a continuation of the packages being installed, only from the command line this time and not as part of the Gnome environment. When the upgrade process seemed to be finished, I ran sudo reboot, hoping that all would be back to normal once the system restarted.

All did return to normal after the restart. Gnome fired up, I was able to log in via the graphical interface, and after a slight delay (presumably because it was the first time launching the user interface after the upgrade), my desktop finally appeared. It wasn't long, though, before I started noticing an error dialog related to the Tracker feature, specifically related to the Indexer used for desktop searching. I couldn't get that dialog to go away for the life of me, and a little research showed that the issue is pretty prevalent among Jaunty Jackalope users. Based on a suggestion in a forum post, though, I was able to address that problem with the following commands:

sudo apt-get install tracker tracker-utils --reinstall
tracker-processes -r

Now I'm at a point where Jaunty Jackalope is up-and-running on my computer and things seem to be working. I guess I'll have a better idea if that's the case once I've had more time to use the new version. In the meantime, I suppose I can thank my lucky stars that the Ubuntu gods took mercy on me tonight.

Computers | Post Comments | View Comments (6) | Permalink

A Review of Depeche Mode's 'Sounds of the Universe'

May 01, 2009 11:53 PM

'Sounds of the Universe' Album Cover Maybe posting a positive review of Depeche Mode's latest album, Sounds of the Universe, after only two minutes of listening was a bit hasty. But that's what Twitter is for, right? :)

Now that I've had more time to digest the band's twelfth full-length album, I really shouldn't have been so quick to judge. Though the album starts strong with "In Chains" and its excellent wah-wah effects, similar gems are too few and far between on the album. If you're one of those types who buys songs individually rather than the entire album, here are the essential tracks from the album:

  • 01 - In Chains
  • 04 - Fragile Tension
  • 06 - In Sympathy
  • 07 - Peace
  • 08 - Come Back
  • 10 - Perfect
  • 13 - Corrupt

Even that list of tracks is generous. "Peace" doesn't immediately strike me as a great Depeche Mode song, but when I picture the big crowd at Lollapalooza this year singing along, it actually makes sense. It's one of those singalong anthem kind of tracks. Furthermore, any weaknesses of the song are more than made up for by the insane high note Dave Gahan hits at the tail end of the "I'm going to light up the world" lyric...twice. Plus, I love the lyric "There is a radar in my heart I should have trusted from the start."

Despite whatever song from the aforementioned list you or I might think is the best on the album, there is no doubt that any of them would have made a better first single than 'Wrong'. In fact, the title of that song is pretty descriptive of that choice. "Come Back" had such a familiar feel to it that I could have sworn it was a cover, but it turns out it's an original. Either that or "In Chains" would have been my choice for the first single.

In the end, it's clear that Sounds of the Universe is a better album than Exciter could have ever dreamed of being. It doesn't have an obvious hit like Playing the Angel's "Precious," and doesn't hold a candle to Ultra, but it's got a decent selection of solid Depeche Mode songs that make the album worth buying despite its weaknesses.

Music | Post Comments | View Comments (1) | Permalink

My First Python Experience

May 01, 2009 7:34 PM

Despite stumbling into Python territory in the past, I wrote my very first Python script today. Rather than opting for Hello World (does anyone actually write these?), I dove in head first and created a script that parsed an Excel file (.xls), using the Python package xlrd, and used cell contents from the file to output an XML file.

Despite not having a single source of documentation, it only took me a few hours to get a working script put together. Dive Into Python is great if you want a good introduction to the language, but when it comes to practical things like if statements, for loops and efficiently concatenating and formatting strings, I found I had more luck with the good ol' Google command line (e.g. "for loops python").

A few things I learned the hard way (i.e. I tried to do them using habits from other languages and they just didn't work) were that there is no pre- or post-increment support in Python and that functions have to be declared in Python before they are used. That latter realization is hard to come by. I couldn't find a single page covering functions in Python that spelled this out clearly. That combined with the "NameError" you get when you don't follow this rule is unintuitive enough to make this issue a lot harder on newbies like myself than it should be. However, once you grasp the fact that functions are treated like variables in Python, it all starts to make sense.

One thing I've heard over and over in regard to Python is the fact that it is so strict about indentation. But seriously, once you start writing a Python script, it's second nature. If you're any good with other scripting languages, you've probably been doing this already anyway.

Overall, I was impressed by the language. It didn't feel like the same learning curve of Perl, most likely because of the lack of all the $, $@ and $_ types of "features." Parts of Python seem like they were changed just to be different (e.g. the aforementioned incrementing issue and the use of None instead of null) and without any real rhyme or reason, but I'm still just a newbie so maybe those types of things will become clearer to me once I've had more experience with the language.

The important takeaway is that I do intend to get more experience with the language. Even as a total newbie, I was able to generate a semi-complex script in a few hours. The script is readable, fairly compact, and just works. That's what you want from any scripting language in your tool belt. I'll likely be posting more thoughts on Python here in the future as my experience with the language broadens.

Programming | Post Comments | View Comments (2) | Permalink