Sep 17

VMware Fusion 2.0 was released yesterday and I was anxious to upgrade. Rather than feel the full pain myself, I let brewbie go first. He got it setup and installed and said all was good, so I figured I’d give it a shot.

I was in a VM working on some new code that I had neither saved to disk nor commited to Subversion. I figured I’d live on the edge and just suspend the VM so I could upgrade Fusion. Once Fusion had exited, I downloaded the update and fired up the installer. Less than a minute later version 2.0 was installed and ready to go (no reboot required). I clicked the icon for my 2003 Server VM and it fired up just a few seconds, picking up right where I left off. Needless to say, I was very impressed.

The release notes said that previous VMs should update the VMware Tools to take advantage of the new features available in 2.0 so I went ahead and restarted Windows 2003 (1st time). Once it was back up, the new tools package installed and prompted for another reboot (2nd time). The reboots were amazingly quick and I was back up and running in no time.

Since it was all up and running, I started to configure the new features in Fusion 2.0. There is a new keyboard mapping feature so you can map certain key combinations to work within your VM. It works pretty slick, making it possible finally map a key for INSERT. There is also a new feature to make it so that clicking mailto links in the VM opens the Compose Mail window in Mac Mail. VERY COOL! I was less impressed with the browser linking since it changed my default browser to EverNote (WTF?). I changed it back to Safari and then disabled the feature.

After the short interruption, I felt that it was time to create a new VM for Windows Server 2008. I was following the guide on the Windows 2008 Workstation site to build a workstation-grade installation of Server 2008. Since VMware 2.0 supports things like Shader Model 2.0 with 3D graphics, I wanted to see it work. It took a couple of hours to get everything setup and configured, but the end result was a clean install of 2008 server configured for a workstation environment.

I then installed Steam, and downloaded a fresh copy of TeamFortress 2. I fired it up and it failed. It turns out that the tools by default only enable a certain level of hardware acceleration. I went to the advanced troubleshooting tab and cranked up the acceleration. I could now run everything, including Microsoft PhotoSynth and TeamFortress 2. The frame rate was pretty amazing considering it was running in a VM — seriously impressive actually. I experienced a lot of sound breakup when IO was being performed, so there is still some tweaking to do there I suppose.

Once play time was over, I installed Visual Studio 2008, TortoiseSVN, VisualSVN, Resharper, and updated. I pulled down the latest trunk of MassTransit and built it. The build took 16 seconds, compared to 21 seconds on my 2003 VM. However, when I ran the load test I was surprised to see that MSMQ performance was about half of what it was with 2003 Server. I ran the test a couple of times with the same result. I’m not sure what is at work here, but it seems like MSMQ4 has some different performance numbers than MSMQ3. I’ll do some additional tests and post more on this later. Maybe MSMQ was slowed down to make WCF look better (joking, of course).

In the end, the upgrade to 2.0 was painless – completely painless infact. I highly recommend it to take advantage of all the new features.

Feb 16

This past week I setup a new development environment on my MacBook Pro. As I got into it, I realized that it might be a good idea to share the setup process with others who might be switching to a Mac. Unlike a lot of people that use Windows XP for development, I do all my .NET development on Windows Server 2003. I have always had a firm belief in developing on your target environment.

For this discussion, I will be using VMware Fusion to run Windows. I’ve always been a fan of VMware, and their Mac OS X version continues to impress. There are many slick features in VMware Fusion, including Unity mode and dual-processor support. I’m going to be installing on my MacBook Pro, which is a 2.4 GHz Core 2 Duo with 4 GB of RAM (using the Santa Rosa platform, for full 64-bit memory support). I’m going to install the 32-bit version of Windows Server 2003 since the tools are all 32-bit applications.

I highly recommend getting your installation disks as ISO files (from MSDN, of course). VMware can mount the disk images directly, and they load a lot faster than using the physical media. For the purpose of this installation, you’ll need the following disk images:

  • Windows 2003 Server R2 with Service Pack 2 (disk 1, 2 is not needed)
  • Visual Studio 2005 Professional
  • Microsoft MSDN Library for Visual Studio 2005 (optional)
  • Microsoft SQL Server 2005 Developer Edition

You’ll also need the following downloads:

Creating the Virtual Machine

To create your virtual machine, start up VMware. On the Virtual Machine Library window, select New. On the New Virtual Machine Assistant, click Continue. For Operating System, choose Microsoft Windows, for version, choose Windows Server 2003 Standard Edition. When choosing a name for your VM, I find it helps to pick something that reflects what development will be done. I have two, one called W2K3x2K5 and one called W2K3x2K8. As you might guess, the first has Visual Studio 2005 and the latter has Visual Studio 2008.

When choosing a disk size, be sure to give yourself enough room for your tools and applications, but don’t go overboard. Before I rebuilt my VMs, none of them were over 14GB in size so I chose a size that would give a little room to grow. Now, you could pick something like 40GB and configure the VM to grow the disk file as space is consumed but I prefer to allocate the entire disk in 2GB chunks at creation to get the best performance. I don’t usually use a lot of local space since all of my source code is kept in a remote Subversion repository.

The next screen is the Windows Easy Install. This is an easy way to get the operating system setup without any user intervention. Just make sure your install disk ISO is ready, and enter your name, password, and Windows key. Check the “Make your home folder accessible to the virtual machine” so that you can easily transfer data from OS X to Windows. I make the folder read only, since I don’t trust Windows to write to my home folder. Once the Finish screen displays, uncheck the Start and Install now option since we want to make some tweaks before the OS install begins. You can go ahead and pick your ISO for the installation.

Once the VM has been created, go back to the Virtual Machine Library, pick your virtual machine, and click Settings. We need to tweak a few things before we let Windows install.

  • Battery – I let the guest see the battery status
  • Display – Uncheck since we are not using XP
  • Memory – I give the VM 1492 MB, but you can adjust to taste.
  • Processors – Two (2) virtual processors should be set for installation.
  • Network – NAT or Bridged are the only real options here. NAT is good when you don’t need other machines to have access to the VM, but use Bridged if you want a direct link to the network. If you use NAT, you can get to your Mac from the VM using the .host name.
  • Sound – I like sound, I enable it.
  • Shared Folders – This should be fine based on how the VM was created.
  • USB – I like to be able to use my flash drive in the VM, so I enable this option.

Once the settings are tweaked, go ahead and fire up the VM. Windows should install without any user intervention and after a short time (the install runs super fast from the ISO) you should have a working Windows Server 2003 installation. Once you have it up and you are logged in, it’s time to run Windows Update to get all the latest patches (there will be a ton of them). Go ahead and let them install, and be sure to get the optional .NET 2.0 and .NET 3.0 packages as well.

Now that we have Windows setup, it’s time to take away all the things we don’t need.

  • Disable automatic updates — we can do that when we need to do it.
  • Disable remote access into the machine (no Remote Desktop or Remote Assistance).
  • My Computer, Properties, Advanced, select Adjust for Best Performance for Memory and CPU.
  • Set virtual memory to a fixed size of 1GB.
  • Advanced Startup and Recovery – Uncheck all reporting and set Debugging Information to none.
  • Disable error reporting and turn off critical error notification

In the control panel, we need to tweak a few things as well:

  • Set your time zone and turn off automatic time synchronization.
  • Turn off the screen saver, set the background to none, and make sure Windows Classic is selected for the theme.

In the registry, this tweak really decreases disk access in your VM:

  • HKLM\System\CurrentControlSet\Control\FileSystem
    Add a new DWORD named NtfsDisableLastAccessUpdate and set it to 1.

I also disable the following services:

  • Automatic Updates
  • Error Reporting Service
  • Help and Support
  • Windows Time
  • Wireless Configuration

Remove the following files:

  • All the $whatever$ directories in C:\Windows except for the $hf_mig$ directory.

Add Operating System Components

  • Use Add/Remove Programs, and select the Add/Remove Windows Components option.
  • Add IIS (including ASP.NET support)
  • Add Message Queueing (if you plan to use it)
  • Remove Enhanced Internet Explorer Security
  • Install any extra fonts you use for development, such a Consolas.

It’s probably a good idea to run Windows Update again after adding these features since they’ve likely been patched.

Back Up Your New VM

Now that we have a nice clean system, I recommend you shut down the VM and make a backup copy. Simple copy the Documents/Virtual Machines/YourVMName to an external drive so you can easily create new VMs without doing the Windows install again. If you do so, I recommend using SysPrep to reseal the operating system so all new SIDs are created. Do not make a backup for the purpose of closing after installing SQL Server 2005 since it goes crazy if you change the machine name after it is installed.

Software Installation

I recommend installing Visual Studio 2005, followed by SQL Server 2005. For Visual Studio, if you aren’t going to do any Smart Device programming, I highly recommend you uncheck all those packages from the installer. I would also choose not to install Visual J# for obvious reasons. Once the install is complete, be sure to run it at least once. Then install SQL Server 2005 (running as Local System when asked). If you don’t care about SQL 2000 support, don’t bother with the compatibility sort orders and just pick Latin from the top. Once both are installed, go ahead and install VS2005 Service Pack 1 and SQL Server 2005 Service Pack 2.

At this point, you have a pretty basic system with the needed applications. If you’re going to do any work on open source projects, you will need Subversion, TortoiseSVN, and NAnt. Many recommend VisualSVN, but I have never used it so I can’t comment but I’ve heard good things. When downloading applications to install, I recommend pulling them down using Safari into your Downloads folder. Then in your VM, go to the “on my Mac” share and run the installers from your shared folder. I never download anything inside the VM unless I absolutely know it can be trusted (which is pretty much never).

You will notice that I didn’t install any “fearware” such as virus or spyware tools. That’s my style, I don’t really care to slow down my system with things of that nature. I maintain a tight VM and rarely introduce anything from the outside so it’s my choice. Your mileage may vary.

And before I write another word, you should install Resharper and start on your path to becoming a Resharper Jedi.

Wrap Up

I hope this post has been helpful for those looking to setup a development VM. I’ve found that using Leopard OS X for everything but development to be a pleasure compared to the applications available for Windows.

Jan 11

MacWorld 2008 is coming next week and as expected, the blogs are alive with the sound of rumors. From new product announcements and existing product refreshes to the discontinued and ignored products, it is always a fun time of year. With Apple’s explosive 2007 that brought us the iPhone, the iPod Touch, a new iMac, and the latest iteration of OS X Leopard, the expectations have been set pretty high.

In 2007, the iPhone was the star of the show. What started as Apple’s entry into the mobile space ended up as a redefinition of customer expectations in the mobile phone market. It’s easy to predict a 3G iPhone in 2008, but that’s almost too easy and fairly minor compared to the software upgrades that could allow the iPhone to further dominate the segment. The only other hardware change I expect to see on the iPhone is larger capacity (16GB or 32GB, flash-based of course).

In 2008, while other manufacturers continue to try and catch up, I expect Apple to continue redefining how consumers use their iPhone. The iTunes Mobile Music Store (something I use way more than the iTunes Music Store experience on the computer) is a great example of how an existing business can leverage the mobile platform. Existing brick-and-mortar players like Starbucks could offer a web front end to their order process, allowing customers to order drinks from the couch without leaving their friends. This would even offer some interesting payment methods, such as allowing PayPal or another form of e-currency to pay for transactions.

Speaking of wireless features, Leopard added support for A2DP/AVRCP over Bluetooth, and it would seem to be an easy feature to add to the iPhone. Forget the simple task of syncing content with iTunes, I want full .Mac synchronization on the iPhone. Sure, it would be great to sync with iTunes, and it’s likely that iTunes would be the pipeline, but .Mac exists, has a synchronization client in Leopard, and should be fairly easy to port to the iPhone. One way or another, I think wireless sync would be a great next step for the iPhone.

In the notebook space, I’m betting on a completely new mobile platform for 2008. The specification upgrades that occurred in 2007 were interim steps to maintain the continuity from the PowerPC platform into the Intel world. Now that everything from Apple is Intel, it is time to refresh the design. From the bottom end MacBook to the top of the line MacBook Pro, I’m betting Apple will revamp the entire lineup. With Apple wanting to go green, it’s likely that we will see a near complete switch to aluminum, titanium, and glass (although the glass doesn’t seem very likely given the demands placed on a notebook system).

There is also a lot of hints that we might see a revolutionary touch pad that would include multi-touch and other iPhone like features. This would seem to make more sense than a touch screen, given a 13.3″ touch screen might be a bit risky this early after the iPhone. Either way Apple wants to continue to lead the industry in touch interfaces, so they may try to jump even further ahead of the competition.

The Mac Mini is either getting a redesign or being discontinued. Lacie has discontinued their Mini Hub (which was a real nice unit that slid right under the Mac Mini) so they either know the form factor is changing or they are no longer available. My guess is that it will go away, the 20″ and 24″ iMac are the desktop kings right now. The only other idea in this segment would be a new headless home server with a hefty 750GB or 1TB drive, support for backing up notebooks running Leopard wirelessly via time machine, and maybe a built-in Airport Extreme style router. Apple has already proven it can build a cheap Mac that runs OS X, so why limit fixed function devices like a router to a custom OS when it can use its bread and butter, rock solid OS X.

The Mac Pro just got upgraded (specifications only) so it’s unlikely to see any time on the MacWorld 2008 stage unless it’s a product lineup slide. It’s so far off my radar anyway, I don’t think it is in any way part of Apple’s consumer product plan. The iMac may see some processor upgrades and maybe a professional 30″ variant, but that’s just guessing since the new aluminum iMac is already a winner, one that can’t be even touched by Gateway or Dell.

One More Thing

The Apple TV is a turd that is seriously due for some polish. Recent news seems to indicate that we are certainly going to get iTunes movie rentals. They had better be in HD, and they had better have the same or better terms than the XBOX 360. I can get full HD movies on the 360 for around $5, so that’s the bare minimum. Add something to differentiate the iTunes offering and they’ll likely have a winner. Will it get people to buy the Apple TV? I doubt it, but they need to do something to make this segment work.

So those are my thoughts, take them for what they are worth. I guess we’ll find out on Tuesday what Jobs has in store for us this year!

Nov 13

In a shocking turn of events my wife, having reached a breaking point with her 1-year old Dell laptop, decided to accept a new 20″ iMac as a replacement. My MacBook Pro, having been the lone AppleTalker on the network, welcomed the new addition with a heartfelt “BonJour!” It turns out that the new member of the family sports the same 2.4 GHz CPU as the MacBook Pro, but came up slightly short on RAM. Nothing a quick trip to NewEgg couldn’t fix with the addition of an extra 2GB stick to bring the total up to three.

Out of the box the machine handled like a Tiger, but within an hour had advanced with Leopard like reflexes. Moments later, the new machine reached out to the new .mac account to synchronize all her settings with the interwebs. The MacBook pro, sensing the desire to share information, enabled his fast user switching to allow easy selection of user accounts. On either machine, my wife and I can quickly jump to our account and have our settings immediately available (mail accounts, bookmarks, keychain of web site passwords, etc.). This should make travel nice, since we’ll also be able to jump Back to Her Mac while away if we need to snag any pictures for the family.

The road has been pretty trouble free so far. A slight configuration problem with IMAP on Gmail caused Mail to dump out some nasty remarks, but tweaking the settings on the server made all happy again.

At the same time, I threw a Lacie Ethernet Big Disk (1TB) on the network to store all of our shared files (over 280 GB of lossless audio and movie files), plus at least another 100GB of photos, plus back of files of tons more stuff. This should allow me to reduce the footprint of the single remaining Windows machine significantly. I’m thinking very soon a Mac Mini running Leopard OSX Server might be joining the household to round out the remaining slot.

Now to reformat the old laptop and get it up on eBay…

Oct 26

Quite a few of us are outside the Tulsa Woodland Hills Apple Store waiting for the gates to open on Leopard.

photo.jpg

Oct 24

Apple will be releasing version 10.5 of the OSX operating system Friday night. Called Leopard, the new version of the Mac operating system contains 300 new features. You can read all about it on the Apple site, so I’m really not going to go into it here.

Amazon is offering it for pre-order at $109 (a $20 discount).

Local Apple stores are doing a launch party at 6 PM (local time I presume) with free t-shirts and all the hype that is Leopard. Of course, the gold RTM is already available on the torrent sites, but I’m not one to risk such illegal behavior — even if I’ve already paid for it.

I’ll likely install it once I get it. I’ve read that all the stuff I use works without a hitch. VMware Fusion, my Windows XP Boot Camp gaming partition, it’s all supposed to just work so I’m excited. I’m actually very glad I bought my Mac before Leopard so I could first get comfortable with Tiger.

Party On!

Sep 14

Wow, today is going to be a long one. Last night, I went to see EOTO play. EOTO is a spin-off of the now defunct String Cheese Incident. It was a solid 2-hour techno show, but not the hard house or trance that I’ve heard so much about. It was more trip-hop or something like that, very cool stuff. The drummer played for two hours straight without a break — pretty wild.

The MacBook Pro continues to evolve. Post Fusion install I’ve gotten all my development tools installed, including Resharper, TestDriven.NET, TortoiseSVN, and NAnt. So far everything seems to be working great. I’ve yet to install PowerShell (so I can have my NIX command-line goodness for the Windows box). I pulled down the trunk of Castle and got it to build as well. I had to create the Test & Test2 databases on my local instance of SQL Server 2005 in order for all the tests to complete.

It looks like I’ll be giving a presentation on MonoRail at the TulsaTechFest 2007. It will be an introduction to building a web site using MonoRail and Brail. MonoRail is part of the Castle Project and provides a MVC (model-view-controller) framework within ASP.NET. MVC is a solid pattern for building web applications that is a significant improvement over the page-based WebForms model. MonoRail embraces web standards allows applications to be built based on controller logic and helps facilitate the separation of concerns. It’s good stuff, I can’t wait ot talk about it.

Did I mention that I’m old and staying out until 2 AM at a live show is painful the next day? Where is the Tylenol again? Strange that I can stay up until 3 AM playing with a new computer and not feel fried the next day but this was… different.

Oh yeah, Peggle Extreme is part of the pre-order package for TeamFortress2 on Steam. I highly recommend it as a fun diversion! Speaking of TF2, I’m all set for the beta that starts on Monday. I can’t wait to play the game, I hope for some cool in-game video recording (with FRAPS or otherwise) next week. I wonder if voice-chat is built into the game? Things I don’t know — they are plentiful today it seems.

I got my iPhone store credit, $100, fast and easy from Apple. I guess this means a trip to the Apple store is coming soon.

Oh, and today’s post is an experiment in link diarrhea to see how long it takes this post to go up!

Sep 12

Oh yeah…

picture-1.png