virtualising windows

published 18 Sep 2011

I primarily use OS X Lion on my laptop for menial tasks, as well as development for anything that isn't .NET. For the .NET side of things, I prefer Visual Studio over other available options, and have therefore opted to keep a Windows 7 multi-boot setup. As per my previous post, this does come with some problems when I am trying to make my shared files accessible from both OSes.

Over the last few weeks I have been in an ongoing fight with various partition types, NTFS drivers for OS X (and HFS+ for windows) and am not yet happy with any of these options. Metadata for files is not correctly handled with any of the shared filesystem setups I tested, which leaves messy attribute/metadata files lying around in directories, synced with dropbox and thrown into other people's shared folders.

With the recent release of Windows 8 dev preview, as well as major versions of the two competing virtualisation packages for OS X -- VMWare Fusion 4 and Parallels 7 -- I decided to nuke my dual-boot setup and give virtualisation another try.

I am currently in a state of having six virtual machine images across the two software packages (XP/Win7/Win8) in order to compare performance and stability. My journey still continues, but what I can say so far is:

  • Neither option allow for hardware accelerated video in Windows 8. This seems to be an issue with driver signing/support. Windows 8 is quite chuggy without hardware accelerated drawing, so I don't believe running it in a virtual machine is a great option for daily use or performance testing.
  • VMWare is unstable. In several cases it would lock up at 100% CPU usage with no feedback on the VM.
  • VMWare mouse integration with OS X is not perfect. When entering the VM window there is a 1-2 frame "jump", where the cursor appears in the wrong position on both OSes before synchronising to the correct location.
  • Neither option handles suspending in an optimal way. They both seem to save an image of the *full size* of the block of RAM assigned, rather than only the used portion. If you need quickly resuming VMs, you're best off using the Windows hibernate options as opposed to the VM one.

I am planning on using Parallels for the time being, and testing how usable it is for day-to-day dev work in VS2010 (and VS11 preview). As I do have VMWare still setup, I may do some performance comparisons between them, but Parallels seems to be the better option this round.

Will report back with more detail once I have had some time to form a solid judgement.


visual studio with multiple projects

published 29 Aug 2011

When working with more than one project in a single solution, your working environment can get quite cluttered as you follow references between projects, sometimes with conflicting filenames (think generic things like Program.cs). This can lead to confusion as to where exactly the file you are working on is coming from.

I'd like to introduce anyone who is not yet aware of their existence to the Visual Studio Productivity Power Tools (released by Microsoft). These "Power Tools" are basically previews of new features and improvements which will likely be present in the next version of Visual Studio (vNext!), but Microsoft decided to release early to preview and get feedback.

I'd like to focus on one particular feature offered by this pack, which solves the project differentiation problem I mentioned above:

By enabling the Document Well 2010 option, you allow the PPTs to take over your document tabs and display them using a new (improved) format. The killer new feature here being per-project colour choices for tabs!

The defaults are a bit plain, but changing them only needs to be done once in order to get a really nice looking tab setup.

In this screenshot you can see I have files open from three different projects, grouped by project with clearly distinguishable colours. Also note that I have one tab which is pinned to the left -- another useful feature of the PPTs -- allowing it to always remain visible when many tabs are open.

The Document Well part of the PPTs has far more options to explore than the ones I have mentioned, including custom ordering, allowing multi-line display and scrolling and plenty more tick boxes for the control freak. I actually like the default behaviour of the VS2010 tabs for the most part, so only use the two particular features I have covered in this article.

Definitely worth checking out if you haven't already, along with all the other goodies that come with the PPTs extensions.


coding in colour

published 28 Aug 2011

I spend quite a bit of time setting up my development environment to a perfect state. I define a perfect state as one where I can innovate, create and debug without thinking about -- or being distracted by -- my input/output environment. There are quite a few separate elements I'd like to focus on and share, but this time around let's take a look at colours and syntax highlighting.

While I believe my colour scheme was originally based on another, I have unfortunately since lost its origins. It has been through many revisions over the years, but I have been using it for over a good length of time without any changes, so believe it is at a stable point to release!

You can download my visual studio 2010 colour settings here. Preferred colour schemes are quite a personal thing, so I'm interested in hearing about which parts people like/dislike about this scheme!


local game dev meetup

published 27 Aug 2011

Today I attended and presented at a local game development showcase event run by -- "Show us your Bits". I decided to focus on the process involved with porting osu! to the mobile platform, and the technical decisions and optimisations that consumed a large chunk of the development time.

I also had the chance to talk with more local game developers than I knew existed, and give some eager people a shot at osu!stream :).

The event was recorded so there will likely be a recording of my presentation (and others) available in the future, at which point I'll make sure I link it.  For the time being I'm going to dump my presentation's slides here for public consumption. They may not completely stand-alone, but will give an idea of the stuff I covered. If you are interested in anything in particular, leave a comment and I can go into more detail!

Note that due to the filesize, videos are not included in this web-viewable copy.