Thursday, 2 August 2012

Working on a Mac

I previously wrote about being in a state of expectation while waiting for my Mac to arrive. There is a bit more of a story to this plus it has been a bit of a journey settling into the Mac environment.

Nearly two months ago I decided I wanted a laptop for development so I could use it away from my desk. I have a pretty good setup in my office so this is a machine to use when I have to be somewhere waiting for the kids to do whatever they are doing (sailing, fencing, orchestra etc).

I considered my options and thought if I went Mac I could use it for iPhone/iPad etc development, I could run windows stuff on it and the Mac seems to be an amazing hardware platform. Plus it is Unix under the covers so I can tinker with stuff I otherwise would have run on Linux.

I did some homework and decided I wanted a 17 inch Mac so I would get roughly the same screen real-estate as my desk. It would have as much RAM as I could pack into it (8GBs) and as big a drive as I could sensibly afford. The SSDs were out of the question both in terms of cost and capacity.


I  started setting up the 17 by this point and had installed Parallels (as it is better than VMWare fusion), setup my account, connected it to my Gmail etc accounts, installed perforce, Eclipse and dabbled with XCode. Overall it was all going quite well the hardware is a thing of beauty although the system is a bit quirky coming from a PC. I had a Windows 7 dev VM running, an XP test VM, a 2008R2 VM with a DB running and all was well. It gets a bit creaky with all the VMs running as OSX needs some RAM too and 8GBs is pushing it for all that but it was Ok.


What I didn't check before purchasing were the rumors regarding new models as less that a few days later WWDC happened and Apple announced the new Retina Macs. They only come in 15 inches even though they have the crazy high-res. Overall I thought I would stay with what I had. I played with a Retina Mac at a Mac store a couple of days later and discovered the SSDs they ship with are *seriously* quick (500MB/s). Also they can be expanded to beyond 8GBs and the cost of a 16GB unit with a faster processor was about the same as what I spent on the 17. Ok I give up - I backed everything up and took the 17 back (within my 14 days) and ordered a Retina model.

When I received the new Mac (after a couple of false starts) it was relatively easy to bring everything back. You can't set it up from the time machine backup as it is a different machine and just doesn't recognize the backup. What you have to do is run the migration tool to bring it all back but this will bring back the older user account. At this point you probably went through the basic setup and created another account with the same name as your old account so of course it gets confused and wants to rename your old account. Instead I ditched the new me, created an 'install' account, ran the migration as restore and when it was done logged onto my old me account and ditched the install account. It brought pretty much everything back including installed apps, VMs, data in my home directory and system options. Pretty slick job overall.

The Retina display is strange in that it seems to lie to the applications about the resolution and if they don't know any better it renders at half the resolution. Any text rendered by the system is rendered at full resolution and any Apps that know about the Retina display use it to render images etc at double res.

This means that Chrome looks shit as it renders the fonts and images at half-res (fonts in particular look decidedly fuzzy). There is a Chrome Canary that you can run which uses the new font rendering code and looks much better but it ran badly enough that I stopped using it. It didn't seem to remember my tabs when i closed it and frequently hung and lost its mind.

Also, for all intents and purposes you have a 1440 display except the fonts and some images look exceptionally smooth. The effect of this is you can't stuff more onto the display so when I remote into home it all looks squashed and DevStudio is decided squashed.

To pack more in you can get the system to fake an alternative res but it isn't ideal. What it does is it renders into a buffer using double the fake res and then scales (using the graphics card) to the final retina res. The problem is that 1440 is the only integer divisor of the base res offered so you unfortunately have to kiss goodbye to the super smooth you get in the native res as a result. It isn't incredibly bad however and the extra real-estate is worth the speed penalty.

Settling in to working on a Mac took some time. The biggest headache is the keyboard. Mac laptops have no delete key, no home/end or page up/down key. You can get the effect of home/end using fn right/left. I still occasionally hit ctrl-left to go to the previous word to find it jumps me into the dashboard. Alt left does this on the Mac.

Lack of delete is particularly vexing under windows as to delete a file or hit ctrl-alt-delete you have to go fn-backspace (or fn-ctrl-alt-delete).

A lack of Page up/down is not so bad if you use either fn-up/down but also the two finger scrolling is quite efficient.

It took me a while to discover I can enable right click in the system preferences. Before that I was doing odd thing to bring up context menus in windows. Now I am using right-click in finder as well since there actually are useful context menus on lots of things!

The function keys are odd as by default they are the brightness, volume etc buttons. If you actually want the function key you have to hit fn-f1 etc. Again I swapped this in system preferences so now to change the brightness you have to use the function key. Also I found that you can disable Mac hotkeys when inside parallels which seemed to help with some keyboard weirdness.

The dock is weird. You open something and then you hit the red X to close it but it doesn't go away! It hangs around unless you tell it to *really* go away using the cmd-q. Also launching apps is odd - I never know where to look. It is either in the dock or you can go to finder and go to applications and find the program OR you run this launchpad thing and find it there although not everything goes into launchpad.

Windows get lost frequently as you generally can't just click the icon in the dock as that is likely to spawn another one. They have this mission control thing that shows you all your windows grouped by app but it is too annoying to use in anger (like the 3D ctrl-tab thing in windows - not worth it).

Access windows shares is a breeze generally. I had some issues with wifi dropping out and having to reconnect all the time but since I installed an update this seems to have gone away.

I had to install a codec pack to get my video collection to work but that wasn't too bad.

I found you can download a remote desktop application from Microsoft for accessing machines via RDP. This works pretty well except it seems to crash for time to time when you close a connection. It looks pretty good though and is fast enough. Again the keyboard map is a bit weird.

I got my Retina mac about 3 days before Mountain Lion came out. I of course immediately downloaded it and generally it is running Ok. The notifications bar thing is useful although it isn't clear to me why I can tweet from there but can't see other peoples tweets.

I have a VPN remote access server running now on one of my server VMs and I can PPTP from the Mac back into my home network. This works very well - I nearly forget I am not directly connected sometimes.

So far so good - compile times under Windows 7 are pretty good but not blistering as I had quietly hoped.

Overall it is going well!