Mac
Ruhezustand im Coherence-Modus
Auf dem iMac nutze ich Windows im Coherence-Modus. Das bedeutet, dass eine Windows-Anwendung so angezeigt wird, als wäre sie eine native Mac-Anwendung. Natürlich so, wie sie auch unter Windows zu sehen ist, aber eben ohne einen Windows-Desktop im Hintergrund.
Schon seit längerem hat mich gestört, dass sich die Schrift im Quelltextfenster von Visual Studio manchmal extrem vergrößert bzw. verkleinert, wenn man unmittelbar nach dem Aufwachen aus dem Ruhezustand mit dem Trackpad scrollen möchte. Es hat sich gezeigt, dass dies nur passiert, wenn Visual Studio im Vordergrund ist, wenn man den iMac mit Alt+Cmd+Eject in den Ruhezustand versetzt. In diesem Fall führt auch das Drücken von F4 sofort nach dem Aufwachen zum Schließen von Visual Studio. Das Problem tritt nicht auf, wenn eine Mac-Anwendung im Vordergrund ist oder vor dem Ruhezustand der Desktop angeklickt wird.
In dieser Woche bin ich das Problem endlich einmal angegangen und habe den Support von Parallels kontaktiert. Dieser hat sich bei mir eingeloggt und ein paar Sachen probiert, was aber nicht zu einer Lösung führte.
Ein intensives Nachdenken führte mich dann aber zur Ursache dieses Phänomens. Ist eine Windows-Anwendung beim Drücken von Alt+Cmd+Eject im Vordergrund, dann bekommt Windows nur die gedrückte Alt-Taste mit und setzt das entsprechende Status-Flag. Anschließend wird der iMac (und damit auch die Windows-VM) sofort in den Ruhezustand versetzt. Nach dem Aufwachen ist für Windows die Alt-Taste immer noch gedrückt, weil es vom Loslassen der Taste nichts mitbekommen hat. So führt z.B. ein Drücken von F4 zum sofortigen Schließen der Anwendung, ohne dass die Alt-Taste dazu gedrückt werden muss.
Zur Behebung dieses Problems müsste Parallels also das Drücken von Alt+Cmd+Eject erkennen und in diesem Fall auf das Weiterleiten der Alt-Taste an Windows verzichten. Darauf habe ich aber keinen Einfluss und mich deshalb auf die Suche nach einer eigenen Lösung gemacht.
Erforderlich sind dafür nur zwei Programme, die eigentlich auf jedem Mac installiert sind. Mit Karabiner ändert man die Eject-Taste auf F15. Anschließend erstellt man im BetterTouchTool für Cmd+Eject eine neue Aktion Sleep Computer, die hier als Cmd+F15 angezeigt wird. Nun kann man den iMac mit Cmd+Eject in den Ruhezustand versetzen, ohne Windows zu verwirren.
Vom PC zum Mac
Etwas mehr als fünf Jahre ist es nun her, als ich den ersten Kontakt zur Apple-Welt hergestellt habe. Aus dem Wunsch, in die OS X-Programmierung hineinzuschnuppern, ist bis heute leider noch nicht viel geworden. Ich habe zwar mehrere Anläufe unternommen, mit Objective C bin ich aber nie richtig warm geworden. Mittlerweile gibt es Swift und vielleicht auch einen neuen Versuch.
Im Sommer 2011 folgte dann ein MacBook Air. Die ersten Versuche zur Abbildung meiner Windows-Arbeitsumgebung machte ich mit VMware, das kannte ich vom PC. Recht schnell folgte dann aber der Wechsel zu Parallels. Parallels merkt man an, dass es direkt für den Mac entwickelt wird, es passt sich einfach besser in die Umgebung ein. Zur Entwicklung taugte das Air aufgrund des doch recht schwachen Core2Duo-Prozessors nicht so recht. Was aber richtig gut funktionierte, war das Schreiben der Hilfe für SpeedCommander 14. Mit dem leichten Air war es ein Vergnügen, die Hilfe auf der sonnigen Terrasse komplett zu überarbeiten. Das nicht vorhandene DVD-Laufwerk und der fehlende Ethernet-Anschluss fielen überhaupt nicht negativ auf.
Ein Jahr später stellte Apple dann das erste Retina-MacBook vor. Die Annehmlichkeiten eines hochauflösenden Displays kannte ich mittlerweile von iPhone 4 und iPad 3. So konnte ich es kaum erwarten, dies auch im Computerbereich zu erleben. Das MacBook Pro war mit i7-Prozessor und 16 GB RAM leistungsstark genug für die Windows-Entwicklung. Leider waren Windows 7, Outlook 2003 und Visual Studio 2008 nicht wirklich für HiDPI-Bildschirme ausgelegt, so dass ich Windows mit normaler Auflösung betreiben musste. Das betraf damals aber auch etliche Mac-Anwendungen, für die HiDPI ebenfalls Neuland war.
Im Januar 2014 war dann mit dem UP2414Q der erste 4K-Monitor von Dell für PCs lieferbar. Mittlerweile war ich auf Windows 8, Outlook 2013 und Visual Studio 2013 umgestiegen, die auf dem MacBook Pro ziemlich problemlos unter HiDPI liefen. So schien die Zeit endlich reif für einen 4K-Monitor am täglichen Arbeitsplatz. Nach dem ersten Anschließen kam aber schnell Ernüchterung auf. Für die Anzeige von 3840×2160 in 60 Hz musste der MST-Modus aktiviert werden, bei dem sich der Monitor als zwei Monitore mit jeweils 1920×2160 zu erkennen gibt. Ein Bug im Intel-Grafiktreiber sorgte aber dafür, dass linke und rechte Bildschirmseite vertauscht angezeigt wurden. Das würde sich zeitnah nur durch eine zusätzliche AMD/Nvidia-Grafikkarte abstellen lassen. Soweit kam es aber gar nicht.
Ich arbeite unter VMware viel mit virtualisierten Umgebungen. So kann man ohne weiteren Hardwareaufwand schauen, wie sich SpeedCommander auf älteren Windows-Versionen verhält und zur Not auch mal schnell den Debugger zu Hilfe nehmen. Leider ist VMware Workstation überhaupt nicht an die Verwendung in einer HiDPI-Umgebung angepasst. Das führt dazu, dass bei einer 200%-Skalierung die virtuellen Maschinen 1:1 angezeigt werden und somit nur halb so groß sind. Man müsste also in jeder virtuellen Maschine ebenfalls eine 200%-Skalierung aktivieren, um diese halbwegs normal verwenden zu können. Ältere Windows-Versionen sind damit aber hoffnungslos überfordert. Man bräuchte also für ältere Versionen wieder einen zweiten Rechner mit einem normalen Bildschirm. In Parallels lässt sich mit einer einzigen Einstellung festlegen, ob die virtuelle Maschine die native Auflösung verwenden soll oder eine skalierte. Ohne eine solche Option kann mit VMware in einer HiDPI-Umgebung nicht vernünftig gearbeitet werden.
Aber nicht nur VMware machte Probleme, auch einige andere Anwendungen hatten mit dem 4K-Bildschirm Schwierigkeiten. So packte ich den Monitor am nächsten Tag wieder in die Kiste und schickte ihn zurück. Stattdessen holte ich mir einen 27″-Bildschirm mit 2560×1440 Pixeln und fand mich damit ab, dass ein 4K-Bildschirm an einem stationären Rechner für absehbare Zeit ein unerfüllter Wunsch bleiben würde.
Im Oktober stellte Apple dann den neuen 5k-iMac vor. Meine erste Begeisterung wich schnell der Einsicht, dass ein solches Gerät nicht in mein Windows-Arbeitsumfeld passen würde. Die Gedanken ließen mich aber nicht los und ich habe gemerkt, dass ich die Sache aus einem falschem Blickwinkel betrachtete. 5120×2880 ist bei gleicher Bildschirmgröße exakt viermal so groß wie meine bisherige Auflösung (quasi das HiDPI-Optimum) und der i7-Prozessor ist genauso leistungsstark wie mein aktueller Rechner. Die Erfahrungen mit Parallels auf dem MacBook Pro haben gezeigt, dass Windows-Virtualisierungen problemlos funktionieren. Zudem habe ich in den fünf Jahren OS X als angenehmes Betriebssystem kennengelernt, auf dem man sich wohlfühlen kann.
Und so habe ich mir den 5k-iMac bestellt und bin seit November 2014 vollzeitlicher Mac-Benutzer. In den ersten Tagen habe ich noch Outlook 2013 verwendet, bin dann aber recht zügig auf Apple Mail umgestiegen. Über den Zwischenweg Outlook 2011 für Mac und mit Hilfe des OLM File Converters konnte ich alle Mails seit 1997 ohne Verlust übernehmen. Visual Studio 2013 und SpeedCommander laufen in einer Windows 8-VM unter Parallels im Coherence-Modus und integrieren sich so fast nahtlos in die OS X-Umgebung. Zudem habe ich noch weitere virtuelle Maschinen (z.B. Windows XP oder Windows 7) im Einsatz, die sich bei Bedarf im normalen Fenstermodus starten lassen.
Die Arbeit an einem HiDPI-Bildschirm macht extrem viel Spaß. Texte sind gestochen scharf und wirken wie gestanzt. Gerade bei der Entwicklung hat man ja viel mit Texten zu tun. Setzt man sich dann mal wieder an den alten Bildschirm, dann wirkt alles auf einmal recht pixelig.
In den letzten Monaten hat sich nun ein neues Arbeitsumfeld ergeben, das ich nicht mehr missen möchte. Die Time Machine sorgt für stündliche Backups, die dann im Laufe der Zeit zu täglichen Backups der letzten 30 Tage und zu wöchentlichen Backups der letzten Monate konsolidiert werden. Dafür muss man nur eine externe Festplatte anschließen, einen Schalter umlegen und bei Bedarf noch ein paar Ordner (z.b. die kompilierten Zwischendateien) ausnehmen. Alles andere geschieht automatisch. Apple Mail zeigt beim Klick auf eine eMail auch den zur eMail passenden Verlauf ordnerübergreifend an, das erspart häufig ein Suchen. Und muss man trotzdem doch einmal suchen, dann geschieht dies dank Indizierung blitzschnell. Kontakte und Termine werden über die iCloud automatisch auf iPhone und iPad synchronisiert, zusätzliche Anwendungen sind hier nicht nötig. Pages und Numbers haben Word und Excel ersetzt. Nachrichten und SMS kann ich nun direkt am Mac tippen und lesen. Auch das Anrufen und Angerufenwerden ist möglich, ohne das iPhone aus der Tasche nehmen zu müssen. Es funktioniert einfach alles ohne zusätzliches Basteln. Daran muss man sich als gelernter Windows-Anwender aber auch erst einmal gewöhnen und vor allem auch darauf einlassen wollen.
Der Mac Mini von 2009 ist übrigens auch wieder im Einsatz. Aufgerüstet mit Speicher und SSD läuft auf ihm mein TFS2013 in einer Parallels-VM. Mit 10 Watt im Leerlauf ist der Mini äußerst sparsam und vor allem extrem leise. Abends legt er sich schlafen und wacht unter der Woche morgens selbst wieder auf. Über ein VPN kann man auch von außerhalb darauf zugreifen und ist bei der Entwicklung nicht mehr nur auf das Büro angewiesen.
Trotz des neuen Arbeitsumfelds wird sich an meiner eigentlichen Arbeit aber nichts ändern. Die Entwicklung von SpeedCommander für Windows steht selbstverständlich weiter im Vordergrund. Es könnte aber durchaus passieren, dass die nächsten Versionen noch etwas benutzerfreundlicher werden.