June 2007 - Posts
As I mentioned a few weeks ago, there is a lot of excitement in the Microsoft developer world around the recent release of Silverlight 1.0 and 1.1 alpha. While excitement is plentiful, a good overview with examples is a little bit harder to find. To help you out, two of my co-workers recently gave a presentation on Silverlight to the Chicago .Net Users Group (CNUG). This presentation includes a broad overview of what's included in Silverlight, some code samples, a look at the developer experience and some ideas about how Microsoft plans to promote this new technology. In a pleasant convergence, a screencast of this presentation is available on Clarity TV, a new section of our homepage that uses Silverlight to deliver video content.
In terms of live instruction, I'm looking forward to the upcoming San Diego Code Camp here in America's Finest City (and one time home of Ron Burgundy). The Code Camp is a community organized event with speakers drawn from the community leading sessions of the latest and greatest in .NET. It takes place June 30th and July 1st at UCSD. I'm hoping to attend sessions on: XNA, the Dynamic Language Runtime and WPF. I heard good reviews of it last year and it being free to attend is a nice selling point as well.
I've been working a lot with virtualization products recently, which is a great way to try out an OS or particular configuration if you don't have a bunch of extra computers available. However, I always keep my eyes open for deals on secondary machines and there have been some real good ones recently. As Intel prepares to cut prices on its line of chips, vendors are apparently trying to clear out their old inventory.
For the do it yourselfers out there, Arstechnica has a new guide to building a budget PC. For $500 you end up with a pretty powerful multi-core machine. For the lazier among us, Dell has been running some deals on its lower end Dimension PCs. Recently there has been an AMD dual core machine for around $250 (without monitor) and today there is a Core 2 Duo machine (again no monitor) for around $350 shipped. So if you are in the market, now seems like a great time to pick up a relatively cheap second computer that is actually quite powerful. I check slickdeals every day and they keep on top of the latest deals, particularly from Dell. Happy bargain hunting!
Ubuntu: Options, Options, Options
After a few more nights of playing around with my install of Ubuntu I have learned a decent amount about Linux. I had the pleasure of easily installing* and switching between three different window managers. For now I'm using XFCE, a lightweight manager that comes packaged as the Ubuntu variant Xubuntu because it runs the fastest in my virtual machine. I also briefly looked at about 5 or 6 different MP3 players and got to bungle my way enough menus and control panels to understand there wasn't much about my desktop or system that I couldn't configure exactly the way I wanted it. I read newsgroup postings about how use my screen's measurements to adjust the appearance of my fonts to perfection. I got my desktop configured decently well, but still felt a little unsatisfied. I thought I didn't have a good reason to, but then I remembered a book I read a while ago, The Progress Paradox by Gregg Easterbrook^.
One of the main themes of his book is that there is often a disconnect between how well we think we doing at something and how well we really are doing. Of particular relevance to me was the idea that in some of these situations, we feel unhappy because we have so many choices that we don't trust ourselves to have made the best one. So if there are 500 cable channels and you are watching something you like, you may be unhappy because you're worried you are missing something else you'd like more on another channel. So, to apply the parallel, if I see that there are around a million ways to customize my Ubuntu install, I may feel unsatisfied with my current configuration, because I might be able to come up with a better one if I try again tomorrow. Easterbrook is right to lament this kind of feeling as irrational, but it is certainly a good motivator to keep trying new things.
During these past few nights of using Ubuntu through VirtualBox on my Macbook running Vista' , I also got to observe the following phenomena:
Windows Live Writer Gets Angry (but then takes a timeout and cools down)
I have been having issues with Windows Live Writer (what I use to write blog posts), ranging from it always setting off UAC warnings even if I set it to run as admin, to occasionally locking up Vista, to sometimes just making the whole screen go blank. Thanks to Joe Cheng from Microsoft for suggesting that I copy all of the installed files into another directory and then run Writer to avoid UAC. It worked; it doesn't really make me happy that it worked since it seems of kind of kludgy, but you can't argue with the results. Also, I was using Beta 1 and after upgrading to Beta 2, my other problems have disappeared and Writer is much better behaved. Overall it is a nice and free piece of software, especially Beta 2.
VirtualBox Gets Lonely, Demands All Attention
Speaking of behaving, VirtualBox, while it has performed admirably overall, developed the occasional habit of routing all keyboard input to the virtual machine even when it was minimized. Even after connecting and reconnecting my keyboard, VirtualBox still held a tight grip over my interaction. I solved this problem by rebooting my real machine and it has not reoccurred since. In fairness to VirtualBox, this behavior occurred when the old version of Writer was open, so maybe the two were collaborating.
* Literally just "sudo apt-get install kubuntu-desktop" and I had KDE. Excellent.
^ Easterbrook is also the author of the excellent Tuesday Morning Quarterback NFL articles on ESPN.com.
' I couldn't help myself, I just had to mention that this was my configuration
After taking a break for a day or two from the fun of making VirtualBox and Ubuntu play nice, I started up again with the goal of fortifying my install into something more useful than just a clean install. I managed to get stymied by VirtualBox again, as I struggled and ultimately failed to setup a shared folder between Vista and my Ubuntu VM.
Although this feature seems like a pretty baseline one for a virtualization product, currently the support for it in VirtualBox is primitive. You have to use the command line to manually setup a shared folder for the VM in the host machine (Vista), then go into Ubuntu and mount the shared folder yourself via the command line. This approach was well explained in the manual and worked, except for when I tried to copy files in and out of the folder, which caused Ubuntu to hang. It is hard to tell who was at fault here, me, Ubuntu, VirtualBox or even Vista. Vista at this point was preoccupied trying to stop me from using Windows Live Writer Beta, which apparently needs administrative rights to let you blog.
With that avenue temporarily blocked, I moved on to trying to grab some more applications. Ubuntu comes loaded up with a decent set, but of course I wanted to see how the install/remove process was handled (graphically, not via the command line). The short answer is remarkably well. Ubuntu has its own built in update manager and add/remove programs utility, both of which worked just as you would expect.
However, I was really impressed by Automatix2, a really slick application installer. Not only did it point me to free codecs to enable MP3 playback, I quickly found some other nice extras, including an install for extra Windows style fonts that aren't installed in Ubuntu by default. Once I picked what I wanted, the installation process ran nicely by itself, which allowed me to watch Trevor Hoffman get save 499 for the Padres and digest the fact that the Padres are now 10 for 11 in one run games this year; a scary stat for you baseball fans out there.
Beyond a Padres win, I was thrilled to start up my newly installed Eclipse and see that PyDev, the plug in for Python development was installed already. I got that configured, took another snapshot of my VM and ended the day much happier with part 2 of my Ubuntu experience. Next up, another shot at those shared folders.
Some people are storm chasers, chasing after spectacular storms for photographs, thrills or science. Chasing storms can be a long and uneventful process of driving around to find the storm, punctuated by brief, thrilling and dangerous encounters with the storm itself.
I have jumped out of a plane (with a parachute), but driving into a tornado is past my comfort level. As a computer geek though, I do find myself occasionally chasing after trouble of another sort, new operating systems. I get the itch to try an OS I've never used before and I end up slogging away for hours to get it up and running. This meant a lot of bricked computers, as I didn't always prepare for each new OS, I just let it fly. From my Apple IIGS growing up to PCs in college, I've had a remarkable ability to foul up computers by doing a sloppy OS install.
Along the way I learned a way few lessons about installing a new OS, perhaps best summarized in four rules:
- Use a virtual machine to test out operating systems
- See Rule #1
- OK, if you really want to ignore the first 2 rules, back up your data first!
- Have another working computer around to use for looking up answers online if you get stuck
Rule #2 has a special place in my heart, as I had a bad habit of fragging my PC in college trying to install esoteric variants of Linux or things like BeOS. So, I was thrilled when virtualization software became mainstream and I could hack away at a new OS without harming anything else.
My latest target for installing and messing around with is Ubuntu 7.04. I've tried a few of the earlier versions and heard the latest one was definitely worth a look. Further illustrating my desire to break my own rules, I spent a decent amount of time thinking about making Ubuntu the third option in a triple boot setup with OS X and Vista on my Macbook.
I jettisoned this idea, but, just to keep the record complete and accurate, I did try the Live CD out on my Macbook.I quickly got a kernel panic (kind of a more benevolent version of the blue screen of death) due to a problem with the IO-APIC. The kernel panic kindly recommended the right incantation to utter to get around the problem, and I moved on. Ubuntu found most everything, but this was getting irrelevant since I was going to be using a virtual machine anyway.
In the spirit of trying new things, I decided to use a virtualization product I didn't have much experience with, innotek's VirtualBox. VirtualBox was great. It was very easy to use and seems snappy enough. By the end of the afternoon, I had a nice install of Ubuntu and was pretty happy about it.
Before I was victorious, I did encounter some issues along the way. So in the spirit of rule #4 and meeting my quota of words for this blog post, here is a brief outline of what I did:
- Created a new fixed size 8GB virtual machine in VirtualBox, selected Linux 2.6 as the OS type
- Went to the settings of the virtual machine and mounted the CDROM drive and USB
- Started the virtual machine with the Ubuntu CD in the drive
- The automatic partition utility kept failing, so I went to manual mode and created a 6 GB ext3 partition mounted on \, then a 2 GB swap partition
- After that the install went smoothly and I took a snapshot (with VirtualBox) of my progress once I logged in successfully
- I got all the available updates from the update manager, rebooted, another snapshot
- My resolution was capped out at 1024 x 768 so I installed the "Guest Additions" the VirtualBox provides by mounting the provided iso file, going to the terminal, navigating to the cdrom and "sudo sh ./VBoxLinuxAdditions"
- I rebooted and still could not bump my resolution, although the other features of the Guest Additions were working, so I took another snapshot
- After some looking online, I edited my xorg.conf (basically a graphics config file), "sudo nano xorg.conf" in the /etc/X11 directory
- I added "1280 x 1024" in the display settings area, in front of the other listed resolutions
- Another reboot and this time x crashed, obviously not pleased with my modifications
- After some more research online, I tried to reconfigure the graphics by running "sudo dpkg-reconfigure -phigh xserver-xorg"
- Within the reconfigure utility, I selected vboxvideo (VirtualBox's video driver) as my video driver and 1280 x 1024 as the max resolution
- Another reboot and I had 1280 x 1024. I quickly took another snapshot and thought I was done, instead I realized something was missing, my mouse pointer! I could move the mouse around and by context sensitive help windows figure out where my mouse was, but I could not see it
- I reverted back to my previous snapshot and was relieved to see my mouse reappear
- I tried "sudo dpkg-reconfigure -phigh xserver-xorg" again, thinking that maybe I missed something the first time
- I did not and once again x was crashing. So I used the CTRL-ALT-F1 combination to get to a terminal and used diff to compare my old xorg.conf file to the new one. Problem solved, as I found the the reconfigure utility had changed my mouse device from "vboxmouse" to "mouse". I switched it back, rebooted and had my 1280 x 1024 and my mouse pointed. Another snapshot and I was really done