Multiple monitors? You should buy VMWare Fusion instead of Parallels Desktop

In a post three years ago, I waxed lyrical about how much better Parallels Desktop was compared to VMWare for the very common task of running Windows on your Mac.

It’s time to take that back.

Parallels Desktop is no longer fit for purpose if you are an advanced user.

How Parallels Desktop broke multiple monitors

In older versions of macOS, virtual desktops spanned your whole set of monitors. Therefore if you had a left and right monitor, switching spaces (or virtual desktops) would switch both, giving you two “Desktops”, Desktop 1 (left monitor A and right monitor A) and “Desktop 2”, (left monitor B and right monitor B). Switching between desktops would switch both screens. The major downside of this was that when applications were run “Full screen” (rather than just maximised), they would go full screen on one monitor and leave the other one completely blank, which was complete madness

In Parallels 11, Parallels supported two ways of rendering full screen on multiple monitors. The first was using macOS’s built in full screen function (more on that in a minute) and the other using a “non-native” method that involved drawing a windowless fullscreen window on top of the whole screen. 

To work around the full screen issue when using multiple monitors, macOS Yosemite introduced the option for displays to have their own “Spaces”. This meant that your left and right monitors have their own sets of virtual desktops. However, this meant that each monitor could be switched desktop independently, introducing say 4 different combinations when you had two monitors and two desktops. This was a context switching nightmare. Most power users turn this off, especially if they are using keyboard shortcuts (CTRL+arrow keys) to switch between spaces because the monitor that would switch would be the one your mouse cursor was over.

The combination of turning off “Displays have separate Spaces” in macOS, and disabling “native full screen mode” in Parallels was the perfect, wanted behaviour that Parallels users of multiple monitors had become accustomed to for many, many years.

Parallels 12 changed all that, by removing the non-native full screen mode option that was working perfectly in version 11, leaving users with no satisfactory multi-monitor display mode.

Users were up in arms:

8 pages of complaints on the official Parallels forum when Parallels 12 launched with this

“Usable” multi-monitor support feature request

Did Parallels listen? Well, only a little. Near the end of version 12’s shelf life they pushed an update out that contained a work around – an option to “switch” all other spaces to Parallels when you clicked Parallels on another space. Sounds great but still doesn’t allow you to switch in and out of Windows on all of your screens at once.

Users were livid. The pithy Knowledge Base article didn’t help either.

Then Parallels 13 came out with no new fixes for this. Parallels was effectively dead for users with multiple monitors.

Other reasons not to use Parallels any more

The push for yearly subscription pricing. You aren’t Creative Cloud guys. The last thing users want when buying a piece of utility software is to set calendar reminders that they are going to be auto-rebilled.

The shovelware and crapware that Parallels pushes on you, even via advertisements with the application that you paid for. Who doesn’t want a subscription to Parallels Remote Access or “Parallels Toolbox”?

Only 9.99 USD a year!!

The resurrection of VMWare Fusion

Back in the day, Parallels spanked VMWare Fusion on performance. They became market leaders and deserved it. I fondly remember running Parallels 4 against a Bootcamp partition on a now clunky old Mac Mini and being pleasantly surprised.

I’ve recently given VMWare Fusion 8.5 a go and I am pleased to say the performance against Parallels for my main use case (Visual Studio on Windows 10) is indistinguishable. It imported my Parallels VM flawlessly. It didn’t pester me to install anti-virus in my Windows 10 VM (something so completely pointless Parallels must be getting kickbacks). There will be a free upgrade to VMWare Fusion 10 this October. And most importantly…

It works correctly with multiple monitors!

Yes, VMWare Fusion 8.5 behaves the same way Parallels 11 used to work.

RIP Parallels Desktop.


Windows 10 on Mac Bootcamp – fixes (Updated)

Update 19th August 2015: Apple have released Bootcamp 6, which fixes all of the below when using Windows 10. If you already have Bootcamp 5 installed, run the Apple Software Update utility to get the latest set of drivers. The only oddity I’ve had with Bootcamp 6 is that is resets your DPI scaling to 200%.

Windows 10 on Bootcamp (Macbook Pro 13 inch, Bootcamp 5.1) has some teething issues as of build 10162.

SSD Powering down problems

You might notice Windows hanging for extended periods of time or blue screening – the SSD is literally powering down underneath Windows. The Bootcamp drivers don’t properly support Windows 10’s powering down of the SSD to save battery. Your Event log might have references to “”Event 129, storahci – Reset to device, \Device\RaidPort0, was issued.” To fix this, you need to disable AHCI Link Power Management and prevent storahci from going into low power mode.

1. Copy and paste the following into a new text file called “enable-hipm.reg” and save it:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60]
"Attributes"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\dab60367-53fe-4fbc-825e-521d069d2456]
"Attributes"=dword:00000002

2. Double click the file to import the records into the registry.

3. Right click on the Battery icon in the Taskbar, select “Power Options”. Click “Change plan settings” under the “Balanced” option. Then click “Change advanced power settings”.

4. Expand the “Hard disk” node and you’ll see “ACHI Link Power Management – HIPM/DIPM”. You need to set the value to “Active” as seen below:

image

5. Create a another regedit file “storahci.reg” with the following content:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device]
"SingleIO"=hex(7):2a,00,00,00
"NoLPM"=hex(7):2a,00,00,00

6. Double click the file to import the registry entries. This stops storahci from going into Low Power Mode.

A restart should then solve the SSD freezing problems.

System Restore, Restore Points and Windows 7 style backups do not work

Again, if you are getting messages such as “check the event log for VSS errors” when trying to backup or create a restore point, and then finding event log messages like:

Volume Shadow Copy Service error: Unexpected error CreateFileW(\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy48\,0x80000000,0x00000003,…).  hr = 0x80070001, Incorrect function.
.

Operation:
Processing PreFinalCommitSnapshots

Context:
Execution Context: System Provider

Then you’ll find that this is another Bootcamp driver problem, specifically the applehfs.sys driver that allows read only access to HFS volumes. You need to disable this from starting up:

1. Download Sysinternals Autoruns and run it as an Administrator.

2. Search for “apple” and you’ll see “applehfs.sys”.

image

3. Disable it by unchecking AppleHFS and restart. You should now be able to create System Restore images and Windows 7 style backups.

Hopefully Apple updates Bootcamp for Windows 10. If I find any other issues I’ll update this post.

Why use a Macbook Pro as a Windows .NET Software Developer (Updated)

Update December 2016: Apple has released a new version of the MacBook Pro featuring the new Touch Bar feature. I do not recommend buying this model.

  • Worse battery life
  • Worse keyboard
  • Touch Bar feature is pretty useless for Bootcamp or virtualization – you will miss the usual function keys
  • USB-C only. Expect to spend 100s on adapters.
  • The original Bootcamp drivers actually physically blew the speakers when running Windows

Luckily Apple still sell the 2015 model without Touch Bar. I would recommend buying one of those.

Original post continues below…

I’ve been using OSX alongside Windows for almost 8 years now. In this post I will outline why a Mac is handsdown the best development laptop you can buy even if you are primarily a Windows or .NET developer. I use a Retina Macbook Pro 13 inch at home and for side projects, plus a Retina Macbook Pro 15 inch at work.

image

Reason 1: You need access to OS X as a professional software developer

If you care about maximizing the value you can provide as a practitioner of building software, you need access to OS X. OS X is the only way to build native iOS applications – and as a .NET developer without access to OS X, you’ll never even be able to use Xamarin to run your C# code on iOS natively. You’ll also miss out on the wider community and the rest of the development world – Javascript, Ruby, Python and Scala developers all use Unix-based operating systems to do their work, not Windows, and most of the time their preferred platform is OS X. If you want to dabble in Ruby over the weekend, or even teach yourself a new skill, OS X on a Mac is the only way to get first class support as most non-.NET/Java developers run their stuff on Macs (a small minority use a Linux distribution to do their work). No laptop other than a Macbook Pro or Air will give you access to this world and you will find yourself increasingly isolated professionally if you can only use Windows.

Reason 2:  It’s the only laptop that lets you run OS X and Windows at the same time

Since Apple put Intel chips in their machines, you’ve always been able to run Windows natively on a Mac by creating a second partition using the built-in Bootcamp utility. Since the middle of 2014, this has gotten even better with the introduction of native UEFI support. Gone is the 80s-era BIOS emulation, and now Windows boots just as fast as OSX itself. The Windows 8 startup circle animation even starts rendering before the Mac bootup sound finishes playing.

You don’t have to reboot when you want to use Windows – you can attach that same native partition within a virtual machine using Parallels or VMWare Fusion. That means you can run both OSX and Windows side by side, rebooting into the native Windows partition when you need the full power of the machine. Plus, its really cool to be able to do this:

Swiping between OSX and Windows

(As a side note, I get much better performance out of Parallels Desktop 10 than VMWare Fusion when running Windows 8.1 or the Windows 10 Tech Preview – the Parallels virtual display driver is WDDM 1.2 compatible, rather than VMWare’s WDDM 1.0 compatible version. WDDM 1.0 is from the Vista era.)

Reason 3: Multiple monitor support is amazing

All the Retina Macbook Pros have two Thunderbolt ports, which double up as Mini DisplayPort ports, and an HDMI port. The Retina Macbook Pro 13 inch can support 2 external monitors under OSX, and three under Linux or native Windows. The 15 inch version can support 3 external monitors and the internal screen at the same time. Both these limits can be extended by using USB 3.0 “DisplayLink” adapters or docks at the cost of CPU power and graphics quality. With virtualisation, you can set Windows up to use any number of monitors.

Reason 4: You can test your work on multiple retina display implementations

Both the 13 inch and 15 Retina Macbook Pros have amazing high resolution screens. If you are building web applications, you need to be able to test your work on “retina” displays and this is the quickest way of doing it, without getting a 4K monitor. Most retina displays in the wild are on Apple devices too (iPad, iPhone etc). The ridiculous resolution of the 15 model (2880×1800!) even enables you to test your apps and sites in Windows at up to 200% DPI scaling without an external monitor.

Reason 5: The Apple Store retail support network

Say what you want about the “cult of Mac”, they have retail support available in almost every major city on earth through their Apple Store network. If you need a new charger or accessory, you can walk in and buy one from an actual shop. If you have a problem, you can go in and (sometimes pay for) a repair – not phone an offshore support line and get a box posted to you. Acer, Dell, Samsung etc do not have the meatspace reach of Apple (unless you like to shop at PC World). The thought of having to buy a replacement AC adaptor for a “Acer Aspire S3-392G” machine at short notice is quite scary. If you have a preference for the US keyboard layout, a Mac is the only laptop stocked in retail available with a selection of keyboard layouts – when in Tokyo, Apple were the only people in the whole city that stocked laptops with US keyboards.

Reason 6: The .NET Framework is becoming multiplatform

In case you missed the news, Microsoft have committed to making the core of the next .NET Framework version work on both Linux and OSX, instead of leaving it up to Mono to provide an implementation. This is a direct result of the leaders in the .NET space stretching C# out of it’s comfort zone of Windows and Visual Studio. ASP.NET vNext supports development using Sublime Text on a Mac. The OmniSharp project brings C# support to Sublime text, Emacs and Atom. Visual Studio is not required. From 2016 onwards, I expect ASP.NET vNext to start featuring in C# developer job ads, and they are going to expect you to be able to at least run applications without Visual Studio. Deployment of greenfield applications to Linux servers using Docker containers will start becoming the norm from next year.

In Summary

I haven’t even touched on the other reasons why this is now my preferred setup – the now native SMB 2.0 support in OSX, OneNote finally on Mac, the quality of the keyboards and trackpads – but using non-Apple laptops is painful sometimes. I was once issued the 2nd generation of the fabled Lenovo Thinkpad line of X1 Carbons that got rid of the function keys and replaced them with comedy touch “context sensitive media buttons” (the 3rd gen reversed this bonkers choice). My last two companies have eventually managed to sort out a top of the line 15 inch Retina Macbook Pro as my corporate machine and thanks to the proliferation of Macs in the corporate setting, IT departments are slowly warming up to the idea.

If you have any questions about how I use the above, drop me a line in the comments or send me an email and I’ll be happy to respond.

Windows .NET Development on Mac OSX

I use Windows at work so for some variety I have moved to a Mac at home. The 2010 Mac Mini is a decent little machine with the RAM upgraded to 4GB.

For Windows development you need Visual Studio, which means running Windows on your Mac. Bootcamp is one way of doing this, but then you lose all the benefits of OSX as your host OS. The secret is of course Parallels Desktop which allows you to run Windows virtualized on your Mac.

Using Parallels Desktop for Windows Development

It took a couple of tries to get this working decently.

  • Install Parallels Desktop
  • Get a Windows 7 32bit ISO image from MSDN (or a retail copy of course)
  • Set up a new Virtual Machine, specifying your Windows 7 ISO to install from

Screen shot 2010-12-16 at 9.19.16 PM.png

  • Select “Like a Mac” so the application integration gets automatically set up
  • IMPORTANT: For best performance, place the virtual machine on a separate drive. I get good results with an external USB2.0 Hard Drive but Mac Pro owners can put this on an internal disk. The built in hard disk of the Mac Mini is only 5400rpm which will be a real bottleneck when running OSX and Windows off the same disk. (You can of course use Parallels to run Windows off your Bootcamp partition – this will be slow too if the partition is on the same physical disk as OSX).
  • Allow Parallels to install Windows automatically. It will select the default settings during installation and input your product key. You will eventually end up with a nice Windows 7 desktop inside a Parallels window.

Screen shot 2010-12-16 at 9.27.33 PM.png

  • Parallels will automatically map your Desktop, Documents, Pictures, Music and Download folders to Windows’s equivalents, meaning you will see the same files on the Mac and Windows desktops.
  • Install Visual Studio 2010. You can mount the ISO in the Parallels Virtual Machine settings. A couple of restarts (of the VM) later and it is installed.
  • You will notice that running applications in the Windows VM show up in the Dock. You can even right click and pin the applications to the Dock. Parallels will start the virtual machine and launch the application.
  • Click the Coherence button in Parallels and Windows will be integrated with OSX. Launching Visual Studio 2010 from your pinned dock icon will give you Visual Studio 2010 with the same appearance and window behaviour as a standard Mac app:

Screen shot 2010-12-16 at 9.34.30 PM.png

  • You are now ready to develop Windows applications from OSX. Parallels has GPU acceleration so even WPF applications are not too bad.

Advanced Tips

  • Give the Windows 7 Virtual Machine enough RAM, but not enough that OSX will start paging. With 4GB of RAM, you can afford to give the VM 1GB. Remember: you are only going to run Visual Studio on Windows 7. All your other apps; browsers, Photoshop, Skype etc, will run in OSX.
  • Activate the “Pause Windows when no applications are open” setting under Applications in the Windows 7 VM settings. This means that the virtual machine will pause and give the memory back to OSX when no applications are running.
  • Be aware that your Documents folder on Windows is now a network drive, with all the security differences this brings. .NET will be strict about this in some cases (I hit this problem when running a custom content processor for XNA, which cannot be loaded from network drives) If you hit security problems, you need to set the \\.psf\ network drive to FullTrust for .NET. Run this command from a command prompt in Windows and restart Visual Studio:
C:\Windows\Microsoft.NET\Framework\v2.0.50727> CasPol.exe -pp off -m -ag 1.2 -url \\.psf\* FullTrust
  • Make sure that while you backup your Documents folder and Visual Studio projects with Time Machine, don’t backup the drive that the Windows Virtual Machine hard disk is on or you will run out of backup space very quickly. Parallels also has an option to make sure that this does not happen.

 

Updated: Japan iPad 3G is NOT “not exactly” SIM-locked – Jobs says so

There is a massive hullabaloo about Softbank’s exclusive deal with Apple for the 3G iPads here. Currently, you cannot get a 3G iPad without going through Softbank and signing up for a data plan (either 2 years or some terrible 4,000 yen per 1GB “offer”). This is in stark contrast to the fantastic deal Americans get in the US with AT&T.

Softbank appears to be announcing to the press that there will be a “SIM Lock” (SIMロック).

http://plusd.itmedia.co.jp/mobile/articles/1005/10/news030.html

ところが、5月8日にソフトバンクモバイルが公表したiPad販売に関する情報では、日本国内のソフトバンクショップやソフトバンクケータイ取扱店で販売されるiPadのWi-Fi+3G版は、ソフトバンクモバイルの3Gネットワークでしか使えないように、SIMロックがかかっているというアナウンスがあった。

“According to information released by Softbank on May 8, iPad wi-fi+3G models sold from Softbank shops will be SIM locked so that they can only connect to Softbank Mobile’s network.

I think they are lying. I don’t believe that the devices are SIM locked in any way. The only “lock” is that you must sign up to Softbank to get one, and they won’t sell you a microSIM for an international model.

Mobileinjapan.com reported a response from Steve Jobs stating that

Actually, the version of iPad sold in Japan does accept international SIMs.

I decided to email him myself and I got a reply:

image

An email reply from Jobs appears to be a rite of passage for bloggers now – I have replied asking for clarity but he doesn’t appear to get into conversations unless you are really interesting (which I’m not).

Based on the reply above, are we meant to believe that they have developed a new SIM-locking system that unlocks your device when you leave Japan? Of course they haven’t, that would be stupid. If the devices are SIM-locked, then international microSIMs simply would not work in them. Therefore, they are not SIM-locked.

What I believe Jobs is referring to by “locking” is that you can only buy a 3G iPad after “locking” yourself into Softbank. Docomo and E-mobile (both with networks that would support the iPad) are now unable to sell wireless plans. Not because of any technical reason, but because they cannot sell the iPads themselves, and all 3G iPad owners will be locked into 2 year contracts.

This is why I don’t think the iPads are SIM locked – simply because they don’t have to be. Normal Japanese phones have carrier specific settings built in (access points, MMS gateways etc) with no way of changing them so switching a SIM card would never work. Softbank must be very scared of the prospect of the market opening up like Europe.

Update: Well, he replied.

image

Not exactly SIM-locked? What does that mean? Maybe they HAVE developed a new SIM locking system that uses the GPS to determine the country you are in, or iTunes unlocks the device when you insert a non-Japan microSIM.

Another update: The Softbank Sucks blog appears to think that there is a software lock on Japanese iPads (possibly all iPads?) that is only active when the SIM Mobile Country Code is Japan’s. Meaning, if the SIM is a Japanese SIM, it must be a Softbank SIM. Absolutely appalling if true. The only way Docomo would be able to get around it is if they lied about the country code on their SIMs.

Mail.app and iPhone encode Japanese as Korean

The latest of ridiculous bugs I have found after my switchover to Mac is that Korean takes precedence over Japanese when “Automatic” is selected as the encoding on Mail.app. It literally sees Japanese text as Korean and encodes emails as ISO-2022-KR (Korean) if both Japanese and Korean are selected under Languages.

200807271725.jpg

Try it yourself: make sure both Korean and Japanese are in the Languages list (so they show both show up in Mail.app’s Message > Text Encoding) and send an email containing Japanese text when encoding is set to “Automatic”. View the full message source and see that it encodes the message as ISO-2022-KR, not ShiftJIS or UTF-8 which it should. You have to completely remove Korean from the list if you want to use Automatic encoding, or manually select the encoding yourself every time. I cannot find a setting to force an encoding (er, UTF-8) on every email you send.

This is not a problem if the recipient is a PC/Mac user since the mail client will sort it out – but sending mails to a Japanese phone, which obviously has no idea what to do with Korean text encoding (and can’t suss out that its actually Japanese text) means that the lucky recipient gets 文字化け、mojibake, jumbled garbage.

Its even worse on the iPhone

If you ever decide to turn Korean keyboards on in the Language settings, or switch to Korean, iPhone appears to add Korean to the Languages list when choosing its own encoding. However, you cannot change the encoding manually on iPhone, or ever remove Korean from the list, even if you then disable Korean input.
The net result? You can never send Japanese mails to Japanese mobile phones ever again on your iPhone, until you do a full system restore. Which I am now doing. If you reply to a mail that was sent to you in ShiftJIS, the iPhone is at least clever enough to reply in the same encoding type but you are SOL if you want to compose a new one.
Rubbish. Windows Mobile has an option to “always send mail as UTF-8”. I wonder how many iPhone users in Japan have fallen foul of this?

iPhone O2 – how to fix the image compression

O2 in the UK butcher images while using GPRS/3G/EDGE – seriously effecting the iPhone. Images are recompressed to horrendous levels – look at the App Store here:

photo.jpg

As you can see, the Facebook and Super Monkey Ball banners have been recompressed. This effects webpages aswell – meaning downloading new wallpapers or browsing Flickr is a waste of time. However, if you change the username for the O2 access point under Settings > General > Network > Cellular Data Network to “bypass” from the default “vertigo” like so:

photo.jpg

The compression is now turned off! Now the “whole internet in your pocket” is actually the whole internet in your pocket.

photo.jpg

iPhone improvements for the UK and Japan

El Reg is reporting that O2 has been told by Apple not to release sales figures until Apple say so.

UK carrier O2 has confirmed that Apple has placed it under a gagging order to prevent it from publicly revealing how many iPhone handsets it’s sold to date.

The company’s head of media relations, Simon Lloyd, told Register Hardware that it’s a stipulation within the company’s sales agreement with Apple that O2 can’t release any such details until the Mac maker says so.

Lloyd would only say that O2’s UK iPhone sales in the two weeks up to Christmas period were “in line” with its expectations.

This is because the iPhone is completely bombing in the UK. Being in a University environment (where students always like tech gadgets), the only iPhone I have seen in the wild is an unlocked hacked-to-bits US model. The iPod Touch is undoubtedly a sound investment at just shy of £200 if you want a taste of “next gen” touchscreen interfaces and you are far better off buying an iPod Touch for the fancy new iPod bits and getting a free phone on a cheaper contract. You would have to be a complete mug (or rich fashionista) to buy an iPhone at £269 and be locked into an 18-month contract with O2 at £35 a month.

If the iPhone actually did half the things standard UK mobiles have done for years, it would maybe be an acceptable high-end phone model, but its not. The US mobile industry is a couple of years behind ours (people import our Nokia N95s for instance) so the iPhone looks like a fantastic bit of kit in the US.

The funniest thing is that the iPhone will be on DoCoMo in Japan soon – and it will need a complete feature overhaul to be even classed as a ケイタイ (keitai, mobile phone) out there, let alone here. To work in the Japanese market, Apple need to add:

  • 3G support. GSM/EDGE/GPRS do not exist there.
  • MMS support for their mobile email with emoticons (絵文字, emoji). Without emoticons, users will get gibberish when recieving mails from “proper” mobile phones in Japan.
  • Java application downloads for iAppli
  • Flash Lite for the on-demand games that are springing up on the Japanese mobile internet
  • QR barcodes. Apple should be pioneering these in the rest of the world already with their clout, but aren’t. The possibility is enormous here – in a music magazine, a QR code could be next to a new album review: the user scans it and can buy it from iTunes immediately over the air, no text input required. This happens in Japan already for all sorts of mobile content – Apple could be making this popular everywhere.

The Japanese text input is already programmed and is damn good on the iPod Touch, so that doesn’t need doing. Stuff like IC chips aren’t required, so its only those five points that I cannot see Apple surviving without. Windows Mobile phones released in Japan on Softbank now get an application for MMS with emoticons because the original models were seen as pretty basic without it.

Sort it out Apple!