CodeBork | Tales from the Codeface

The coding blog of Alastair Smith, a software developer based in Cambridge, UK. Interested in DevOps, Azure, Kubernetes, .NET Core, and VueJS.


Project maintained by Hosted on GitHub Pages — Theme by mattgraham

A couple of weeks ago, I successfully sold one of my old bassoons that I no longer play, which provided me with a tidy sum to make some purchases I’d been after for a while. Top of the list was a new laptop, and after some searching around, and due consideration, I decided a MacBook Pro was the model for me. I already had an iBook G4 that I bought five years ago whilst at University, and it served me well during that time. It coped - just - with Eclipse and I was happy dev-ing Java and PHP on that machine for my dissertation and fun for a few years. I love OS X as an operating system: its focus on simplicity and usability produce results that are second to none and its reputation is well-deserved. The build quality of the machines is always superb: the fact that my iBook is still mostly usable five years later, in spite of its obsolete PowerPC processor and twentieth-century complement of RAM, is a testament to that. Apple’s focus on product design is legendary, and they get so many of the little things right as well as the big things: the mag-safe power cord is a great example of one of the little things, and the multi-touch trackpad is an inspired example of one of the big things.

I looked at netbooks and the vastly cheaper price did appeal to me: I have friends running Atom-based PCs with Vista or Windows 7 (Starter edition only), and both are happy with them. However, as portable as netbooks are, the smaller screen put me off, particularly given that in this new widescreen world we have traded vertical space for horizontal. This also put me off the 13” MacBook Pro, which, whilst being about as portable as a netbook with a whole stable of extra horses under the hood, still didn’t have sufficient screen real estate for my needs. Furthermore, the build quality didn’t seem as good, even on the better brands such as HP: there’s a lot of plastic in these models.

I settled on a 15” MacBook Pro, for two reasons: screen size and sheer power. The current 13” MacBook Pro runs a Core 2 Duo at 2.5GHz, plus or minus .2 depending on your budget; the 15” models run the new Nehalem chips under the guise of the i5 or, if you have serious cash, the i7. The Core 2 Duo is an older architecture, though: as great as it was when it was released three years ago, Intel’s new Nehalem architecture is seriously impressive, and this post by tested.com claimed a performance improvement of ~24% in the 15” over the current 13”. With much of my development work now done in Visual Studio 2010, my intention was always to run VS in Parallels desktop, and so the extra power would go a long way.

The 15” model also comes with Apple’s proprietary GPU-switching technology that pair’s Intel’s integrated graphics chipset with an NVidia mobile chipset to give extra performance when you need it. Having just remembered that Valve have recently released a Mac version of Steam, along with a number of big titles like Half-Life 2 and Portal, this turns out to be a great asset. I don’t think I’m going to have any free time now!

[img_assist nid=147 title=MacBook Pro 15” desc= link=none align=center width=399 height=220]

The 15” model can be fitted with one of three different screens: the standard glossy 1440x900 screen, or a high-res 1680x1050 screen in either glossy or matte anti-glare style. I opted for the standard screen: the higher resolution would have been nice, but isn’t essential; the standard resolution offers plenty of screen real estate. The glossy screen is great for working on: the colours look amazing, really vivid and saturated. The image is sharper than I thought possible. As a result it also excels at movie playback, although the reflections from the glossy finish can be a little distracting in darker scenes. The matte screen (observed on a 17” MacBook Pro in-store) looked slightly washed out in comparison, but there were no reflections at all.

The multi-touch trackpad is an inspired design choice, making a sometimes annoying utility an integral and essential part of the operating system experience. The entire trackpad is the one button Macs are so famous for, meaning that I can click anywhere at all (although it is easiest at the bottom of the trackpad). Gestures are supported in addition to the usual drag-a-finger-across-the-trackpad-to-move-the-cursor operation: I can scroll in windows vertically and horizontally using two fingers on the trackpad; a three-fingered swipe left or right moves backwards or forwards in the application respectively (e.g., the previous page visited in a web browser; the next page in a document; the next track in iTunes). Pinch-to-zoom, familiar from the iPhone is supported in any application that has a zoom feature (Photoshop; iPhoto; Word/Pages; Safari/Firefox; etc.). Two-fingered rotate is supported in photo-editing applications, etc. (i.e., where the application has a rotate function).

OS X has advanced quite a lot since I last upgraded my iBook, which shipped with Panther. I bought the upgrade to Tiger a year or so after purchase for no other reason than I needed a newer version of Java for my dissertation (thank you, Apple.) and the big feature of this release was Spotlight. The iBook was never really powerful enough to make this a useful feature: both indexing and search were too slow. Leopard came along in 2007 with new features like Spaces, Stacks and a new Dock. Snow Leopard is primarily a performance release, with no major UI improvements or innovations.

I think it is, however, Parallels Desktop, with which I am most impressed. Parallels Desktop is a type 2 hypervisor which means that it runs virtual machines on top of a host operating system, in this case Mac OS X. This has some drawbacks in terms of performance and security: the hypervisor has to abstract the virtual machines over the host operating system, adding an extra layer of processing; furthermore, if the host operating system is compromised by malware or a direct attack, the virtual machines are potentially compromised also. Type 1 “bare metal” hypervisors that run in place of an operating system do not suffer these drawbacks: the virtual machines are abstracted directly over the hardware (offering better performance) and the virtual machines tend to be isolated in all senses from the hypervisor meaning that they cannot compromise the it and the hypervisor can be ringfenced from the big bad world.

[img_assist nid=146 title=VS2010 on OS X desc=So wrong it’s right. link=popup align=center width=400 height=250]

Parallels suffers the potential security problems of type-2 hypervisors (although the operating system difference between host and guest may help shield the guest from these problems), and by rights should suffer the performance hit as well, but I am utterly blown away by Parallels’ performance on this machine. Visual Studio, IE8 and PowerShell all run at speeds indistinguishable from native execution. Similarly to Windows 7’s XP Mode, Parallels’ “Coherence” display view seamlessly integrates the applications in the virtual machine into the host operating system so that the experience is unified. I can launch Visual Studio from the Dock or the Finder, and it runs directly on my desktop and not inside another window. Closing the applications can be accomplished in the usual manner, or the virtual machine can be suspended, allowing you to start where you left off when you next open the application.