Doch ein Mac mini für mich

Heute kam dann der Mac mini wieder zurück von Cyberport. Diesmal auch mit funktionierendem Laufwerk. Als kleine Entschuldigung hat Cyberport die 2GB in meinem Mac gelassen und die fehlenden 512MB für den Mac mini meines Kollegen beigelegt. (Er wollte es selbst einbauen, oder sie hätten ihm den Mac aus seinen kalten toten Händen heraussprengen müssen) Nun klappt alles bestens. Trotz leichter Anlaufschwierigkeiten hat es Cyberport recht gut gemacht. (Danke für die 512MB!)

Kein Mac mini für mich :(

Offenbar möchte Cyberport nicht, daß ich an meinem Arbeitsplatz einen Mac mini stehen habe. Wir bestellten 2 Mac minis für die EDV. Am 15. Sep. kamen sie an. Eigentlich sollten beide Geräte über 1,5GB RAM verfügen, doch es stelle sich heraus, daß eines über 1GB das andere über 2GB verfügte. (Hauptsache die Summe stimmt) Ich hatte das Glück, den Mac mit 2GB zu erwischen, doch das Glück währte nicht lange. Um den Xcode zu installieren, legte ich die Mac OS X-DVD ins Laufwerk und dann passierte nichts. Das Laufwerk schluckte die DVD fröhlich, doch sie tauchte im Finder nicht auf. Auch auswerfen lies sie sich nicht mehr. Alle üblichen Tricks funktionierten nicht. Ich bohrte also etwas tiefer und fand folgendes heraus:

rubidium:~ fastjack$ drutil list
   Vendor   Product           Rev   Bus       SupportLevel

Jupp, kein Laufwerk. Zumindest denkt Mac OS X das. Da aber der Einzugsmechanismus des Laufwerkes funktioniert, scheint das Laufwerk über Strom zu verfügen. Meine Vermutung ist, daß es einfach nicht mit dem Motherboard verbunden ist.

Wir riefen also bei Cyberport an und noch am gleichen Tag wurde der Mac wieder abgeholt. Soweit war das noch durchaus OK. Flotter Service.

Eine Woche später (am 22. Sep.) kommt der Mac mini wieder zurück. Freudig schließe ich ihn an, lege die DVD ein, um endlich Xcode zu installieren und habe das gleiche Problem, wie schon eine Woche zuvor: kein Laufwerk im System.

Was haben die Techniker von Cyberport nun am Mac mini instandgesetzt? Die DVD aus dem Laufwerk herausgenommen? Haben die das Laufwerk mal getestet? Es hätte doch auffallen müssen, daß das Laufwerk im System nicht erkannt wird. Ich bin mal auf die AusredeErklärung von Cyberport gespannt.

Und wieder eine Woche länger warten. Schade, drum.

Dem Hühnchen sein Tastaturlayout

Chicken of the VNCUm per Chicken of the VNC auf einem Windows-Rechner Sonderzeichen, die gewöhnlich die AltGr-Taste erfordern, eingeben zu können, muß man auf dem Mac einfach nur ⌃⌥ (Ctrl und Option) gleichzeitig statt der AltGr-Taste drücken. Dann klappt es auch mit Zeichen wie oder @.

Akku wechsel dich

Ui! Da ist doch der Akku aus meinen PowerBook G4 auch von der Umtauschaktion betroffen. Es hat zwar keine Anzeichen gezeigt, daß es sich bald in ein Häufchen Schlacke verwandeln möchte, aber dann wiederum möchte ich auch kein Risiko eingehen. Glücklicherweise habe ich noch einen Zweitakku, so daß ich auch weiterhin gefahrlos Arbeiten kann.

Nach der Rootkit-Geschichte ist das eine weitere Schlappe für Sony, die die Akkus für Apple geliefert hat. Diese Firma wird mir immer unsympathischer.

ZFS in Mac OS X?

Offenbar gibt es erste Hinweise darauf, daß Apple an ZFS für Mac OS X arbeitet. Bislang ist es nur eine kleine Änderung in einem Include-File. Allerdings mache ich mir keine Hoffnungen, daß Leopard ZFS-Support mitbringen wird. Zumindest nicht in Version 10.5.0. Wahrscheinlicher ist, daß es in nachfolgenden Patches oder gar erst in 10.6 kommt.

(Via OSNews)

Apple hackt der Mighty Mouse den Schwanz ab!

Die Gerüchteküche zur kommenden WWDC ist am überkochen. Ich möchte gar nicht alle Gerüchte hier aufzählen, doch ein Gerücht scheint nun schon jetzt sich bewahrheitet zu haben. Apple bringt endlich die Mighty Mouse ohne Kabel heraus. Engadget hat Bilder der Bluetooth Mighty Mouse bei der FCC entdeckt. Anwender (wie ich), die auf eine kabellose Mighty Mouse gewartet haben, werden also erleichtert aufatmen und ihre Kreditkarte bereithalten. :)

Nachtrag 16:00Uhr: Nun gibt es sogar auf der Apple-Page die schnurlose Mighty Mouse zu bestaunen und zu bestellen. Leider bislang nur im US-Store. Der Deutsche Store wurde scheinbar noch nicht entsprechend aktualisiert.

Nachtrag 19:00Uhr: Immer noch keine Wireless Mighty Mouse im Deutschen Apple-Store. Verdammt, meine Kreditkarte brennt mir hier schon ein Loch in die Tasche!

PostgreSQL auf Mac OS X selbstgebaut

Dies ist eine Anleitung, um PostgreSQL auf Mac OS X Tiger zu installieren. Diese Anleitung ist größtenteils an diese Anleitung angelehnt, doch an einigen Stellen weiche ich davon ab, wo es mir sinnvoll erschien. Ich habe sie für mich und meinen Arbeitskollegen geschrieben, doch ich hoffe, daß sie sich auch für andere als hilfreich erweist.

Es gibt viele Anleitungen, die beschreiben, wie man PostgreSQL auf einem Unix-System installiert. Mac OS X ist im Grunde ein solches. Doch es bringt ein zusätzliches Verzeichnis-Layout mit sich, was sich hierfür eher anbietet. Nach der Installation befinden sich alle Dateien von PostgreSQL in /Library/PostgreSQL. Zusätzlich werden die Binaries sowie die Man-Pages nach /usr/local symlinked, damit man diese einfach von der Kommandozeile benutzen kann. (/usr/local/bin werden die meisten im $PATH haben). Zum Schluß landen die Datenbanken selbst in /Users/Shared/PostgreSQL. Alle Schritte wurden auf einem Powerbook mit G4-Prozessor durchgeführt, sollten jedoch auf den neuen Intel-Macs genauso funktionieren.

Die folgenden Schritte setzen voraus, daß Xcode auf dem System installiert ist. Ansonsten wird es schwierig, PostgreSQL zu kompilieren.

Installation von PostgreSQL auf Mac OS X

Nachdem du die Quelltexte von PostgreSQL (in meinem Fall ist es PostgreSQL 8.1.3) ausgepackt hast, wechsel in das Verzeichnis mit den Quelltexten. Der Anfang ist der übliche GNU-Dreisatz.

  1. ./configure --prefix=/Library/PostgreSQL --enable-thread-safety \
     --with-krb5 --with-bonjour --with-openssl
  2. make

    (nun ist etwas Zeit für einen Kaffee oder ein anderes Getränk)

  3. sudo make install
  4. Ich habe mich entschieden, die uid/gid 73 zu benutzen, da diese frei war. Dies muß bei späteren Mac OS X-Versionen nicht unbedingt der Fall sein, und es tut im Grunde auch jede andere uid/gid, solange diese bislang frei war. Die Gruppe und der Benutzer legst du mit diesen Befehlen an.
    sudo niutil -create . /groups/postgres
    sudo niutil -createprop . /groups/postgres gid 73
    sudo niutil -createprop . /groups/postgres realname "PostgreSQL Users"
    sudo niutil -createprop . /groups/postgres name postgres
    sudo niutil -createprop . /groups/postgres passwd "*"

    An dieser Stelle kannst du noch dich selbst zur Gruppe postgres hinzufügen. z.B:

    sudo niutil -createprop . /groups/postgres users fastjack

    (hier solltest du deinen Login-Namen einsetzen, außer du meldest dich auch als „fastjack“ an)

    sudo niutil -create . /users/postgres
    sudo niutil -createprop . /users/postgres uid 73
    sudo niutil -createprop . /users/postgres gid 73
    sudo niutil -createprop . /users/postgres name postgres
    sudo niutil -createprop . /users/postgres realname "PostgreSQL User"
    sudo niutil -createprop . /users/postgres shell /bin/sh
    sudo niutil -createprop . /users/postgres home /Users/Shared/PostgreSQL
    sudo niutil -createprop . /users/postgres passwd "*"
    sudo niutil -createprop . /users/postgres expire 0
    sudo niutil -createprop . /users/postgres change 0

    Falls du lieber mit einem graphischen Tool arbeitest, kannst du den NetInfo Manager (befindet sich bei den Dienstprogrammen) benutzen.

  5. Mac OS X sollte die Gruppe und den Benutzer direkt erkennen. Ein kurzer Test mit „sudo -u postgres id“ sollte folgende Ausgabe bringen:
    uid=73(postgres) gid=73(postgres) groups=73(postgres)Wir können also diesen Benutzer nun verwenden.
  6. Jetzt sollte das Verzeichnis mit dem frisch installierten PostgreSQL noch der Gruppe der PostgreSQL-Benutzer zugänglich gemacht werden. Dies ist nicht unbedingt nötig, doch ich wollte da ganz sichergehen.
    sudo chgrp -R postgres /Library/PostgreSQL
    sudo chmod -R g+r /Library/PostgreSQL
    sudo chmod -R g+x /Library/PostgreSQL/bin/*
  7. Lege nun die Symlinks für die einzelnen Binaries in /usr/local/bin an, sowie die Man-Pages in /usr/local/man. Falls die Verzeichnisse in /usr/localnoch nicht existieren, lege sie vorher an.
    cd /Library/PostgreSQL/bin
    for FOO in /Library/PostgreSQL/bin/*; do
    sudo ln -s $FOO /usr/local/bin/${FOO#$(pwd)/}
    done
    cd ../man/man1
    for FOO in /Library/PostgreSQL/man/man1/*; do
    sudo ln -s $FOO /usr/local/man/man1/${FOO#$(pwd)/}
    done
    cd ../man7
    for FOO in /Library/PostgreSQL/man/man7/*; do
    sudo ln -s $FOO /usr/local/man/man7/${FOO#$(pwd)/}
    done
  8. Zsh-Benutzer werden sollten an dieser Stelle einmal rehash aufrufen, damit die Shell die Binaries in /usr/local/binfindet.Ergänzung: Sollten es beim erstellen der Symlinks zu Fehlermeldungen kommen, so könnte es sein, daß die Verzeichnisse /usr/local/bin, /usr/local/man/man1 oder /usr/local/man/man7 nicht exisitieren. Lege diese dann an und führe das Skript zum erstellen der Symlinks erneut aus.
  9. Nun wird es an der Zeit, auch eine Datenbank anzulegen, oder einen Cluster, wie es im PostgreSQL-Slang heißt.Wie ich bereits am Anfang erwähnte, soll die Datenbank in /Users/Shared/PostgreSQL liegen. Dazu muß das Verzeichnis erst existieren. Lege das Verzeichnis mit folgendem Befehl an.
    sudo mkdir -p /Users/Shared/PostgreSQL
    sudo chown postgres:postgres /Users/Shared/PostgreSQL

    Und jetzt initialisiere die Datenbank mit initdb.

    sudo -u postgres initdb -U dba -A md5 -E UTF8 -W -D /Users/Shared/PostgreSQL/data

    Nun sollte erstmal ein Haufen Zeilen über den Bildschirm huschen. An einer Stelle wirst du nach dem Passwort für den Admin (in diesem Fall habe ich den Admin „dba“ genannt) gefragt. Gib dort ein Passwort ein, aber vergiß es hinterher nicht!

    The files belonging to this database system will be owned by user "postgres".
    This user must also own the server process.
    
    The database cluster will be initialized with locale C.
    
    creating directory /Users/Shared/PostgreSQL/data ... ok
    creating directory /Users/Shared/PostgreSQL/data/global ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_xlog ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_xlog/archive_status ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_clog ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_subtrans ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_twophase ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_multixact/members ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_multixact/offsets ... ok
    creating directory /Users/Shared/PostgreSQL/data/base ... ok
    creating directory /Users/Shared/PostgreSQL/data/base/1 ... ok
    creating directory /Users/Shared/PostgreSQL/data/pg_tblspc ... ok
    selecting default max_connections ... 50
    selecting default shared_buffers ... 300
    creating configuration files ... ok
    creating template1 database in /Users/Shared/PostgreSQL/data/base/1 ... ok
    initializing pg_authid ... ok
    Enter new superuser password: Hier das Passwort eingeben
    Enter it again: und hier nochmal wiederholen
    setting password ... ok
    enabling unlimited row size for system tables ... ok
    initializing dependencies ... ok
    creating system views ... ok
    loading pg_description ... ok
    creating conversions ... ok
    setting privileges on built-in objects ... ok
    creating information schema ... ok
    vacuuming database template1 ... ok
    copying template1 to template0 ... ok
    copying template1 to postgres ... ok
    
    Success. You can now start the database server using:
    
        postmaster -D /Users/Shared/PostgreSQL/data
    or
        pg_ctl -D /Users/Shared/PostgreSQL/data -l logfile start
  10. Damit der Server auch ein Log anlegt, was uns bei Problemen hilfreich sein könnte, mußt du noch ein Verzeichnis in /var/loganlegen. Der postgres-Benutzer muß Schreibrechte für dieses Verzeichnis besitzen. Dies geht am besten mit diesen Befehlen:
    sudo mkdir /var/log/pgsql
    sudo chown postgres /var/log/pgsql

    Damit sollte das Verzeichnis für den PostgreSQL-Server beschreibbar sein, damit dieser uns seine Befindlichkeiten mitteilen kann. Falls du ein anderes Verzeichnis verwenden möchtest, so muß der Pfad entsprechend in der launchd-Konfigurationsdatei aus dem nächsten Schritt auch geändert werden.

  11. Nun könntest du zwar den Server, wie oben beschrieben, starten, doch dies würde nur bis zum nächsten Reboot halten. Da muß was dauerhaftes her. Dazu braucht Mac OS X Tiger eine Konfigurationsdatei für den launchd. Meine sieht so aus. (Im Grunde ist sie unverändert aus der Anfangs erwähnten englischen Anleitung)
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"  "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict>     <key>Label</key>     <string>org.postgresql.postmaster</string>     <key>OnDemand</key>     <false/>     <key>ProgramArguments</key>     <array>         <string>/Library/PostgreSQL/bin/postmaster</string>         <string>-D</string>         <string>/Users/Shared/PostgreSQL/data</string>         <string>-c</string>         <string>redirect_stderr=YES</string>         <string>-c</string>         <string>log_connections=YES</string>         <string>-c</string>         <string>log_directory=/var/log/pgsql</string>         <string>-c</string>         <string>log_filename=postgres_log</string>     </array>     <key>ServiceDescription</key>     <string>PostgreSQL Server</string>     <key>UserName</key>     <string>postgres</string> </dict> </plist> 

    Speichere diese Datei als org.postgresql.postmaster.plist und kopiere sie dann nach /Library/LaunchDaemons. Hier auch direkt zum herunterladen.

    Diese Datei benötigt Mac OS X in /Library/LaunchDaemons, damit der PostgreSQL-Server beim booten mitgestartet wird. Von Hand kann nun der Server mit folgenden Befehlen gestartet werden:

    sudo launchctl load /Library/LaunchDaemons/org.postgresql.postmaster.plist
    sudo launchctl start org.postgresql.postmaster
  12. Der Server sollte nun eigentlich laufen. Ein ps ax | egrep "post(master|gres)"sollte ungefähr folgendes Bild ergeben:
      1825  ??  Ss     0:00.29 /Library/PostgreSQL/bin/postmaster -D /Users/Shared/PostgreSQL/data
    -c redirect_stderr=YES -c log_connections=YES -c log_directory=/var/log/pgsql -c log_filename=postgres_log
      1827  ??  S      0:00.02 postgres: logger process
      1829  ??  R      0:00.08 postgres: writer process
      1830  ??  S      0:00.00 postgres: stats buffer process
      1831  ??  S      0:00.01 postgres: stats collector process

    Der Server läuft also. In /var/log/pgsql sollte sich nun auch ein Logfile wiederfinden. Schau darin nach, ob auch alles reibungslos gelaufen ist. Sollten sich Probleme ergeben, so ist das Logfile die erste Anlaufstelle, um Hinweise zur Lösung zu finden. Mein Logfile sieht so aus:

    LOG:  database system was shut down at 2006-05-03 08:22:15 CEST
    LOG:  checkpoint record is at 0/33E75C
    LOG:  redo record is at 0/33E75C; undo record is at 0/0; shutdown TRUE
    LOG:  next transaction ID: 567; next OID: 10793
    LOG:  next MultiXactId: 1; next MultiXactOffset: 0
    LOG:  database system is ready
    LOG:  transaction ID wrap limit is 2147484148, limited by database "postgres"

    Wir können also eine erste Kontaktaufnahme zum Server wagen. Da wir beim initdb keinen Benutzernamen als Datenbankadministrator angegeben haben, ist der Name des Datenbankadministrators „postgres“. Um also als Datenbankadministrator eine Verbindung zur Datenbank aufzubauen, gib folgenden Befehl ein: psql -U dba template1. PostgreSQL sollte nun nach dem Passwort fragen, was wir beim initdb (s. Punkt 9) festgelegt haben. Nach erfolgreicher Authentifizierung, sollte uns der Prompt des Komandozeilenclients für PostgreSQL begrüßen:

    Welcome to psql 8.1.3, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help with psql commands
           \g or terminate with semicolon to execute query
           \q to quit
    
    template1=#

    Da wir noch keine eigenen Datenbanken angelegt haben, wird sich die Beispielquery auf eine unspektakuläre Addition beschränken. Gib am Prompt folgendes ein: select 1+1; (Das Semikolon darf hier nicht weggelassen werden). PostgreSQL sollte nun so antworten:

     ?column?
    ----------
            2
    (1 row)

    Damit ist klar, daß 1 + 1 = 2 ist, und daß PostgreSQL rechnen kann.

  13. Die folgenden Schritte sind optional und eher für Anfänger empfohlen, um sich ein wenig mit PostgreSQL vertraut zu machen. Fortgeschrittene können den Rest getrost überspringen.Nun wollen wir erstmal eine neue Datenbank anlegen, in der wir auch arbeiten können. Du solltest nicht versuchen, Datenbanken in der template1-Datenbank anzulegen. Diese Datebank wird als Vorlage bei jedem „create database“ benutzt. Alles was in dieser Datenbank also angelegt wird, wird in jede neu erstellte Datenbank kopiert, was nicht unbedingt gewünscht ist.Eine neue Datebank kann man entweder von der Shell mit „createdb“ oder im PostgreSQL-Client mit „create database“. Da wir noch im PostgreSQL-Client (hoffentlich) drin sind, können wir also schnell eine Datenbank mit create database testdb; anlegen. Der Client sollte dies mit einem „CREATE DATABASE“ bestätigen. Wechsel nun zu dieser Datenbank mit \connect testdb. Der Prompt sollte nun den Namen der neuen Datenbank anzeigen.
  14. Legen wir also nun eine Tabelle in unserer neuen Datebank an.
    create table testtable
    id serial,
    somestring varchar(20),
    primary key(id)
    );

    PostgreSQL wird nun einige Meldungen ausgeben und zum Schluß mit „CREATE TABLE“ bestätigen, daß eine neue Tabelle angelegt wurde. Hier gibt es einige PostgreSQL-Besonderheiten zu beachten (besonders für MySQL-Umsteiger). PostgreSQL wandelt Tabellen- und Spaltennamen standardmäßig in Kleinbuchstaben um, wenn sie nicht nicht explizit in doppelte Anführungszeichen setzt. Hätten wir also „create table TestTable…“ geschrieben, wäre trotzdem nur eine Tabelle mit dem Namen „testtable“ angelegt worden. Wollten wir tatsächlich eine Tabelle „TestTable“ anlegen, so hätten wir „create table "TestTable"…“ schreiben müssen.

  15. Die Tabelle ist im Augenblick noch leer. Fügen wir also ein paar Datensätze ein.
    insert into testtable (somestring) values ('foo');
    insert into testtable (somestring) values ('bar');
    insert into testtable (somestring) values ('baz');
    insert into testtable (somestring) values ('qux');
  16. Um die Daten auch wieder aus der Tabelle herauszuholen, führen wir select * from testtable;aus. PostgreSQL sollte mit dem Inhalt der gesamten Tabelle antworten.
     id | somestring
    ----+------------
      1 | foo
      2 | bar
      3 | baz
      4 | qux
    (4 rows)

Damit läuft PostgreSQL nun auf auf deinem Mac. Jetzt kannst du es mit sinnvollen Daten füllen.

Nachtrag: Folgender Alias für die Shell hat sich als recht nützlich erwiesen: alias pg_ctl='sudo -u postgres pg_ctl'.

XeTeX und typographisch korrekte Anführungszeichen

Um typographisch korrekte deutsche Anführungszeichen in einem Dokument zu bekommen, benutzt der erfahrende LaTeXer meist \glqq und \grqq (German Left Double Quote bzw. German Right Double Quote) aus dem Babel-Paket. Dies funktioniert auch mit XeTeX. Aber die meisten werden XeTeX nicht aus Spaß verwenden, sondern aus einem ganz bestimmten Grund. Dieser ist meistens fontspec. Fontspec erlaubt es, die OpenType-Schriften von Mac OS X in einem LaTeX-Dokument zu verwenden. Hierzu muß man jedoch XeTeX verwenden.

Hier ergeben sich nun einige Probleme bei der Benutzung von \glqq und \grqq. Bei der ersten Verwendung einer dieser Zeichen, spuckt XeTeX zusätzlichen Zeichenmüll in der Dokument aus. Dies ist natürlich inakzeptabel. Ich habe mich mit dem Autor des fontspec-Pakets in Verbindung gesetzt, um dem Problem auf die Spur zu kommen. Er meinte, daß das Babel-Paket einige häßliche Dinge tut, die XeTeX dann ins Straucheln bringen, und daß dieses Paket (vermutlich von ihm selbst) entsprechend umgeschrieben werden müßte.

Um nun doch noch die typographisch korrekten Anführungszeichen und OpenType-Fonts zu bekommen gibt es jedoch noch einen Weg. XeTeX versteht Unicode, und darin sind die Codes für „ und “ festgelegt. Man kann diese also direkt in seinen LaTeX-Source eingeben. Auf dem Mac bekommt man diese Zeichen durch folgende Tastenkombinationen (Deutsches Tastaturlayout vorausgesetzt):

„ (früher \glqq)
Option – ^
“ (früher \grqq)
Option – Shift – ^
‚ (früher \glq)
Option – s
‘ (früher \grq)
Option – #

Die Tastenkombinationen lassen sich nicht so leicht merken wie die LaTeX-Befehle, doch sie erfüllen ihre Funktion. Sie funktionieren natürlich auch in anderen Mac OS X-Anwendungen.

P.S.: Wenn ich so zurückblicke und mir anschaue, welche Klimmzüge nötig waren, um mit fontinst Type1-Schriften in teTeX einzubinden, so ist fontspec geradezu eine Offenbarung.

Nachtrag: Da XeTeX standardmäßig Unicode versteht, ist das inputenc-Paket unnötig. Es führt sogar zu einem Fehler, wenn man es trotzdem einbindet.

Nachtrag 2: Für all diejenigen, die über Google bei mir landen, weil sie XeTeX für Windows oder Linux suchen: XeTeX gibt es nur für Mac OS X.

Nachtrag 3: Inzwischen gibt es wohl auch XeTeX auch für Windows. (Danke Anne)

Windows auf dem Mac, richtig gemacht

Nachdem Apple gestern sich mit dem Boot Camp nicht gerade mit Ruhm bekleckert hat, zeigt heute Parallels, wie man es richtig macht. Die Beta der Parallels Workstation ist eine virtuelle Maschine, in der man (unter anderem) Windows installieren kann. Damit entfällt das lästige hin- und herbooten. Als Bonus kann man nicht nur Windows (in den unterschiedlichsten Versionen) booten, sondern auch Linux, FreeBSD, Solaris und OS/2 incl. seines Nachfolgers eComStation. Genau das hätte ich von Apple erwartet. Aber möglicherweise könnte ja Steve Jobs sich entschließen, Parallels aufzukaufen :)