Jul 18

Tonight I upgraded the drive in my MacBook Pro from the Fujitsu 160GB that came with it to a new 320GB 7200 RPM Hitachi. I was in desperate need of space (thanks to VMware Fusion and my need for 3-4 virtual machines) and felt with the new 7200 RPM drives now available that it was time to pull the trigger.

The install went smooth and quick, thanks to the guides at iFixit (and others). I used SuperDuper to clone the internal drive to the new drive installed in an external USB enclosure. The process went quickly (maybe 3 hours to copy over 120GB of actual data) and soon after I had the upgrade complete.

Here at the details of the upgrade:

Hitachi HTS723232L9A360:
  Capacity:	298.09 GB
  Model:	Hitachi HTS723232L9A360
  Revision:	FC4OC30F
  Serial Number:	xxxxxxx
  Native Command Queuing:	Yes
  Queue Depth:	32
  Removable Media:	No
  Detachable Drive:	No
  BSD Name:	disk0
  Mac OS 9 Drivers:	No
  Partition Map Type:	GPT (GUID Partition Table)
  S.M.A.R.T. status:	Verified
  Volumes:
Macintosh HD:
  Capacity:	297.77 GB
  Available:	186.59 GB
  Writable:	Yes
  File System:	Journaled HFS+
  BSD Name:	disk0s2
  Mount Point:	/

Hopefully that means all is well (I really have no clue). Everything seems to work so far as it did before so I’m a happy camper!

May 06

It looks like VMware has dropped a public beta of VMware Fusion 2.0 to the public. There are too many new features in this release to mention, so I will just share the link:

http://communities.vmware.com/community/beta/fusion

Be sure to check the release notes to see if they impact your work before upgrading to this beta release.

Items of interest I took away from the release notes:

  • Use Fn+M to simulate the non-existent insert key in Windows (hello R#)
  • Multiple display support for virtual machines (hello second monitor)
  • Improved compatibility with Visual Studio (not sure what this is yet)

Be sure to check it out!

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 W2K3×2K5 and one called W2K3×2K8. 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.

Nov 14

While I spend most of mine developing applications with .NET in Visual Studio 2005, there are times when I want to tweak a site built in PHP/MySQL. Since all my sites are hosted on GoDaddy, I don’t have SSH access into the server. This leaves FTP as the sole choice for editing remote content. While a solid practice would be to have a local development environment to text changes, it’s a blog, and it’s just not that important to me if I make a quick mistake. Plus, sometimes you’re dealing with Authorize.NET or PayPal, or FedEx, or another cart-based solution that requires cURL through a proxy.

For editing remote files, I use Cyberduck and TextMate on OSX. Cyberduck handles the FTP interface nicely with a finder-like interface. A quick click and you’re editing the remote file in TextMate. Make your change and save and Cyberduck automatically updates the file on the server. Or at least it did with Tiger.

It seems that some things broke with Leopard in how file update notifications are handled with Cyberduck. If you try to update using the built-in software update, you won’t get anything newer than 2.8 — which doesn’t have the fix. So if you’re using Leopard, you can get this functionality back by installing a nightly build of Cyberduck. It’s a quick install (simply copy to the Applications folder) and you’re back up and running. Do yourself a favor at the same time and turn off the Growl notifications for connection/disconnection to avoid some on-screen spam when saving the file.

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…

Nov 07

In my usual morning loop, I found the following tweaks to enable to Debug menu in Safari. In Leopard, Safari 3 debugging tools have gotten some serious love — I mean serious love. Let’s take a look!

First, you have to enable the debug menu on Safari. In Terminal, enter the following:

% defaults write com.apple.Safari IncludeDebugMenu 1

Once that is done, open safari (if it was running, it may need a restart) and notice the new Debug menu appended to the end of the standard menu. From here, you can open the web inspector and the world just opens up. There is so much stuff in here it’s hard to cover it all, but the features are deep. One of my favorite views is the network view that shows a timeline of the page load to find slow spots:

It’s pretty deep, I like it. I’m going to spend some more time with it, but I figured I would share it with those Mac dudes that are always into cool stuff.

Nov 06

When a hard core computer guru moves to a new operating system there is an initial period of identifying applications on the new OS to replace the tools left behind. On Windows, I typically have a basic set of applications including things like 7-Zip, EditPlus, etc. I’ve been using OSX for almost two months now and I figured it was time to lay down the list of things I find useful on a daily basis on the new platform.

  • VMware Fusion
    My preferred tool for virtual machines, this was the first thing I bought and I use it almost all the time.
  • QuickSilver
    I read a lot about this before I switched, and it has lived up to everything advertised. It works great and a Mac just isn’t a Mac without it.
  • TextMate
    A lightweight editor that doesn’t suck is mandatory and TextMate is a hard core editor in a lightweight package. I’ll be learning this one until the end of time.
  • MarsEdit
    Windows Live Writer is nice on Windows, but it doesn’t run on OSX. I ran through a few other choices, but this one seemed to stick. Excellent integration with Flickr makes it an instant win.
  • Adium
    The best IM client on OSX, period. I also run Skype for its ability to transcend some of the nastiest firewalls.
  • Mindjet MindManager Pro
    The organizational power of the mind map is pretty useful and I used this on Windows for a long time. One of the advantages of MindManager Pro is that the same file can be read/written on either Windows or OSX. I just keep all of my maps on my .mac WebDAV folder and edit them on either platform.
  • Leopard
    This is a mixed bag right now. There are a ton of excellent features but it is still a .0 release. After the first update this one is a no-brainer.
  • Transmission
    You need a BitTorrent client, and I think Transmission is the best one for OSX. It’s open source and a native application. This one might even warrant a contribution or two if you have some spare time to help develop the feature set.
  • VLC Media Player
    The ultimate multi-platform, multi-format media player. Quicktime works great for .mov, but this thing handles everything else — and I mean everything else.
  • Colloquy
    A very nice native IRC client for OSX. Use to visit the ALT.NET chat room.
  • Cyberduck
    You need an advanced FTP client if you’re doing web work and this one fits the bill. It even integrates with TextMate for editing remote files through the file browser.
  • ImageWell
    This is a great lightweight image format converter, size adjuster, cropper, and most importantly easy Flickr uploader. I dig it, you should too.
  • Photoshop CS3
    I tried the simple editors, I tried to live them, but in the end Photoshop is it. I’ve been using PS since 1997 and I honestly could not handle anything else. Fortunately Adobe has a cross-grade program when you can destroy your old media to get a copy in the other OS.

That’s a pretty decent list of stuff. Many items are free, but there are some expensive items on the list as well. Hopefully this will be helpful if you’ve recently switched or are thinking about switching to a Mac. While installing BootCamp and just running Windows is an option (and a must for games), using a VM and having access to all the great applications for OSX is a really nice option.

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!