Monitorkalibrierung

Bei extensiver RAW Verarbeitung von Fotos auf mehreren Rechnern lohnt es sich schon mal über eine Kalibrierung der Monitore nachzudenken.

Bei mir blieb es dann nicht beim Nachdenken – ich kaufte das X-Rite Eye-One Display II, welches native Mac OS X Software mitbringt und auf Linux mittels Argyll ohne Probleme angesteuert werden kann.

Die Prozedur besteht aus einer Monitorkalibrierung und der Profilerstellung die in einer .icc Datei mündet, die in die Video LUT (LookupTable) eingeladen wird und die Kalibrierung sofort sichtbar macht. Anwendungsprogramme müssen das Profil der .icc Datei auswerten.

Bei der Kalibrierung kann man entweder Zielvorgaben machen – Weißpunkt,Gammawert,Helligkeit – oder die nativen Werte des Monitors nehmen. Bei der Mac OS X Software heisst dass dann Basis- oder Erweiterer Modus.

Profilerstellung

Bei Argyll überspringt man beim interaktiven dispcal Befehl einfach den Menüpunkt mit der manuellen Kalibrierung.

Die Liste der Argyll-Befehle (alle im bin Verzeichnis des Argyll Paketes) lautet (root permission notwendig):

 dispcal -yl -qh monitor
 targen -v -d3 -f500 monitor
 dispread -v -yl -k monitor.cal monitor
 colprof -v -D"monitor" -qh -al monitor

Danach sollte man eine Datei namens monitor.icc haben. Diese muss man einmalig mit

dispwin -I monitor.icc

in den Video LUT installieren. Danach muss man bei jedem session start (z.B. KDE4 Autostart)

dispwin -L

angeben, so dass die Kalibrierung eingeladen (und damit dargestellt) wird.

Glänzender Niedergang

Mit der Einführung der MacBook Pro’s im Oktober stellt Apple nun konsequent seine Monitore auf sog. Glare-Type Displays mit Glasabdeckung um. Erschreckend neu ist zudem die Tatsache, dass man als Kunde keine Wahlmöglichkeit mehr zwischen den neuen Glare und den bisherigen matten Displays hat.
Der Vorteil des Glare Diplays liegt in der brilianteren Darstellung von Schwarz verbunden mit der Erhöhung des Kontrastes. Allerdings kommen öfters – und wahrscheinlich auch bei Apple – sog. TN Displays zum Einsatz, die selbst mit dem erhöhtem Kontrastumfang den besseren IPS– und VA-Panels in diesem Punkt unterlegen sind.
Der entscheidende Nachteil sind aber die Reflektionen die bei den Glare-Type Displays – oder Glossy wie Apple es nennt – besonders stark bei Lichteinfall von hinten oder Punktlichtquellen zutage treten. Dabei ist der Hinweis, dass man den Arbeitsplatz nach Möglichkeit anpassen sollte ein schlechter Witz. Blanker Hohn ist der oft zitierte Satz, dass Gamer wohl keine Probleme mit dem Gerät haben, da diese in abgedunkelten Räumen ihre Augen sowieso zugrunderichten. Dass die Reflektionsproblematik keine Geschmackssache ist, zeigt die Norm ISO 9241-7 (Ergonomische Anforderungen für Bürotätigkeiten mit Bildschirmgeräten), die Glare-Type-Displays als ungeeignet für Büroarbeiten klassifiziert.
Da allerdings privates Arbeiten zuhause nicht schlechter gestellt werden sollte und Lichteinfälle ausser Haus bei Laptoparbeiten noch schlechter zu kontrollieren sind bleibt als einzigste Erkenntnis diejeniege, dass die von Apple propagierten Displays nicht alltagstauglich sind. Die Probleme welche Profis mit diesem Typ von Monitor haben (Farbkalibrierung) kamen dabei noch gar nicht zur Sprache.

Die Entscheidung nur noch Glare-Type (Glossy) Displays einzusetzen stellt nach meiner Überzeugung nicht nur einen Rückschritt in der Technologie dar – es manifestiert eher eine gewaltige Fehlentscheidung kombiniert mit wiederkehrendem Größenwahn von Apple.

Zwar stellt Apple immer noch herrausragende Hardware her, als Kunde gibt es dennoch Alternativen. Zudem gibt es glücklicherweise noch Apple Hardware ohne Monitore und nicht zuletzt stirbt die Hoffnung, dass in dieser Sache das letzte Wort noch nicht gesprochen ist.

iTunes 7.7 Debakel

Seit iTunes 7.7 gibt es bei mehreren Usern allerhand Probleme, bspw. mit Umlauten in Liedern usw.

Ich selber kann mit dem Programm gar nichts mehr anfangen.

  •  die bestehende Library bringt iTunes zum hängen
  • eine neue Library erkennt nur noch einen Teil der Lieder
  • Zeitweise werden auch diese Lieder von iTunes als nichtauffindbar deklariert (liegen auf Netzwerkserver)
  • CD’s abspielen klappt nicht immer, wenn die Frage  nach Importieren verneint wird.

Alles in allem ist dieses Update das schlimmste, welches je über die Apple Update  Verwaltung eingespielt wurde, die eingeschobene Version 7.7.1 verbessert den Zustand allerdings – wenn auch nicht 100% zufriedenstellend. Es scheint so als ob das neue iPhone 2.0 Apple’s Softwarequalität momentan nachteilig beeinflusst.

nvidia-settings und die Memory Anzeige

Auf einem MacBook Pro mit einer NVidia 8600M GT Karte die über 128MB VRAM verfügt zeigt das Linux Tool seltsamerweise immer 512MB an.

Auf der  NVIDIA 8600 Tech-Specs Seite kann man auch den Grund erfahren. Es handelt sich hierbei um NVIDIA® TurboCache™ Technology

Hierbei wird dem dezidiertem Videospeicher zusätzlich dynamisch Systemspeicher zugefügt. Man kann davon ausgehen, dass diese Technik nicht in den von Apple angepassten NVIDIA Treibern des MAC OS X Betriebssystem vorhanden ist.  Das würde dann auch die wesentlich bessere Performance der Graphikkarte unter Linux auf einem MacBook Pro erklären.

NVidia-Settings Snapshot

praxis tipps: netstat

netstat ist ein ausgezeichnetes Kommando um sich schnell einen Überblick über alle vorhandene Socket Verbindungen zu bekommen. Hier ist die Zusammenfassung der gebräuchlichsten Parameter des GNU Kommandos welches auf jedem UNIX System zuhause ist:

Parameter Langfassung Bedeutung
-a –all alle aktiven und lauschenden(LISTEN) sockets
-l –listening Zeigt nur lauschende (LISTEN) sockets
-d –directory Zeigt den Directory Eintrag statt dessen Inhalt an
-p –programm Zeigt PID und Namen des verantwortlichen Prozesses (nur eigene)
-i –interface=IFACE zeigt Interface Infos an oder schränkt auf angegebens IFACE ein
-r –route Gibt alle Netzwerkrouten aus
-s –statistics Gibt Statistiken von /proc/net/snmp aus
-u –sort=access Sortiert nach Zugriffszeit (nur im Zusammenhang mit -t)
-n –numeric Verhindert Namensauflösung bei Hostangaben
-t / -u / -w / -x Zeigt Infos über TCP / UDP / RAW / UNIX sockets an

Spiele Benchmark: Linux vs. Mac OS X

Wer ein MacBook Pro hat und darauf 3D Spiele spielt sollte den folgenden Beitrag definitv lesen!

Ich hatte schon seit längerem das Gefühl, dass 3D Anwendungen auf Linux mit den NVidia Treibern wesentlich besser laufen als auf Mac OS X. Das Gefühl musste jetzt mal gemessen werden und zwar mit dem Benchmark von X-Plane 8. Zuerst die Rahmenbedingungen:

  • MacBook Pro (Santa Rosa) Intel CoreDuo 2 2.2GHz, 2GB (PC5300), NVidia 8600M GT 128MB
  • Mac OS X 10.5.2 mit letzen Patches, TFT 1440×900 (24bit)
  • Linux 2.6.24, KDE 3.5.9, NVidia Treiber 169.12, TFT 1440×900 (24bit)
  • X-Plane 8.64, volle Auflösung, texture resoluton high, anti-alias level 2, alle Einstellungen synchron auf Mac OS X und Linux

gemessen wurde mit den Runstring –fps_test=123 (3 digit number bestimmt gewisse Grafikeinstellungen).
Unter Linux mit:

./X-Plane-i586 --fps_test=123

Unter Mac OS X:

/Applications/X-Plane\ 8.64/X-Plane\ 864.app/Contents/MacOS/X-Plane --fps_test=123

(Leider kann man unter Mac OS X keine Runstrings – ausser einem Dateinamen – dem open Kommando mitgeben)

Unter beiden Systeme wurde 3mal gemessen und dann gemittelt. Hier die Werte für die 3 Phasen die X-Plane ausgibt.

System Phase 1 [fps] Phase 2 [fps] Phase 3 [fps]
Mac OS X 4 9 9
Linux 8 33 34

Die Flugsimulation läuft tatsächlich mehr als 3mal schneller unter Linux! Sicherlich hängt es mit dem Treiber zusammen, welcher unter Mac OS X direkt mit dem Betriebssystem ausgeliefert wird, während unter Linux der Original NVidia Treiber installiert werden kann.
Dieser verfügt natürlich auch über eine Temperaturkontrolle die die Karte ab einem Threshold drosselt. Während des Benchmarkes fuhr NVidia’s PowerMizer sofort in den höchsten Performance Level 3 (470 MHz GPU,635 MHz VRAM).

Weiterhin fuhr ich auf diesem Rechner unter Linux noch den Benchmark von X2-The Threat:

Testlauf 1: 34.086 fps
Testlauf 2: 33.947 fps

Leider kann ich diese Werte nicht direkt vergleichen, da X2 auf Mac OS X nur auf PPC läuft. Die Werte erscheinen aber ebenso hervorragend, wenn man mal X2 auf einem PPC-Mac sieht.

praxis tipps: iostat

Glücklicherweise gibt es auch eine Kommandotool um den I/O Durchsatz zu verfolgen, welches auf allen Plattformen verfügbar ist (unter SuSE Linux das Paket sysstat installieren).

iostat verfügt über einen statischen Output, sowie über ein Trackingmodus. Unter Linux wird dazu einfach als erster Parameter das Sekundenintervall angegeben, unter Sun Solaris dagegen nach dem Parameter -x, unter Mac OS X nach -w

Das Ergebniss wird tabellarisch angezeigt. Wichtig sind dabei die Felder tps (transfers per second) sowie die Durchsatzraten (entweder in kiloByte oder MegaByte angebbar).

Zudem wird immer auch die CPU Belastung (user,system,idle) protokolliert.

WPA2 und Apple AirportExpress

Nachdem ich mein WLAN Netzwerk von WEP auf WPA umstellte und zumindest anfänglich alles klappte, stellte mein AirportExpress nach einer gewissen Zeit den Dienst ein.
Dieses Spiel ging zweimal so – kurioserweise trat der Fehler immer erst nach ein paar Tagen ein. Zufällig staß ich auf folgenden Artikel, bei dem ebenfalls eine Inkompatibilität zwischen Apple Airport Produkten und einem Speedtouch Modem beschrieben wurde.

http://www.qdsl-support.de/archive/index.php?t-13262.html

Die Lösung, die bei mir ebenso zum Erfolg führte war ein Downgrade der Airport Express Firmware auf Version 6.1.1

http://www.apple.com/support/downloads/airportexpressfirmware611formacosx.html

Auf der Downloadseite der aktuellen Firmware (6.3) steht, dass WPA2 einen Macintosh Computer mit Aiport Extreme benötigt. Da sich in meiner Konfiguration der AirportExpress Client in einem bestehenden Netz einklinkt ist nicht die Kompatibilität zum Apple Rechner sondern in erster Linie zum primären AccessPoint (funkwerk bintec R232bw) wichtig. Dort ist zur Absicherung aber folgendes eingestellt.

WPA Einstellungen

Während die AiportExtreme Karte des Macintosh kein Problem hat, scheint diese Einstellung das AiportExpress Gerät aus dem Konzept zu bringen.

Im Fehlerfalle meldete das Syslog des AccessPoint immer wiederkehrende disconnectsfailed authentifications – und wieder connects. Ein „reboot“ (Aus- und Einstecken des AirportExpress) brachte nix – nach einem hartem Reset ging’s wieder ein paar Tage gut, bis diesem Problem erneut auftrat.

Eine dauerhafte Lösung ist bisher nur das Downgrade der Firmware – vielleicht kommt ja noch ne bessere Lösung…

CalDAV

eMail gehört schon seit langem zu den selbstverständlichsten Dingen auf jedem Computer. Daneben wird aber ein zentraler Kalender immer mehr ebenso zu einer Selbstverständlichkeit, welche in der Implementierung im Netzwerk aber wesentlich problematischer ist.

Denn im Gegensatz zu den eMail Standards wie POP3/IMAP4 gab es bei der Kalenderverwaltung lange Zeit keinen (Industrie)Standard. Dies nutzte in erster Linie dem Platzhirschen Microsoft mit seiner Groupwarelösung Exchange Server / Outlook Client.

Tatsächlich ist das Produkt aber für viele Netzwerke ein Overkill, kostet doch etwas Geld und ist Clientseitig nur gut auf Windows nutzbar – äusserst dumm für ein UNIX zentriertes Netzwerk.

Seit März 2007 scheint gibt es aber für diesen Fall einen absoluten Exchange Killer

CalDAV / RFC 4791

Um was geht es dort:

  • CalDAV operiert aussschliesslich mit Daten im iCalendar Format (ics)
  • Im Gegensatz zum simplen ics over HTTP, kann CalDAV den Zugriff auf die Kalenderresourcen limitieren und greift molekular auf alle einzelnen Einträge in einem iCalendar zu
  • Diese Technik wird als Erweiterung von WebDAV implementiert.

Somit steht CalDAV in bester UNIX Tradition – keep it simple. Endlich lassen sich auf UNIX (aber auch Windows) Plattformen Kalenderinformationen beliebig austauschen und verwalten. Was folgt ist noch eine Auflistung der möglichen Clients und Server:

CalDAV Clients:
  • Mozilla Sunbird / Lightning (Thunderbird plugin)
  • iCal (ab Mac OS X 10.5)
  • Novell Evolution
  • KDE Kontact (wahrscheinlich ab KDE 4.1 )
CalDav Servers:

Qt Programme als Universal Binaries erstellen

Natürlich ist es kein Problem auch Qt Programme als UB’s (Universal Binaries) zu erstellen. Allerdings ist es unter Qt 4.x wesentlich einfacher als unter Qt 3.x, weswegen ich die Vorgehensweise kurz getrennt darstelle

UB’s mit Qt 3.3

Rein theoretisch kann man auch hier beide Zielplattformen (ppc und i386) auf einer Maschine erstellen, was aber zusätzlichen Aufwand erfordert. Einfacher ist es binaries für die beiden Plattformen auf einer passenden Maschine zu erstellen und später zusammenzufügen. die 64bit Targets (ppc64 bzw. x86_64) spielen hier übrigens keine Rolle, da Mac OS X 10.4 sowieso keine 64bit GUI Programme unterstützt.

Das Hauptproblem bei Qt 3.3 ist, dass die Qt Library selber nicht als UB vorliegt oder out-of-the-box erstellt wreden kann. Daher muss man auf jeder Zielplattform diese Library erstellen.

Danach erstellt man sein Programm und/oder seine Libraries/Frameworks auf jeder Maschine. Am Schluss legt man auf jeder Maschine ein Build-Verzeichnis i386 und ppc an, kopiert die Binaries rein und führt Sie mit dem lipo Befehl zusammen, bspw:

lipo -create  build/i386/test build/ppc/test -output test.app/Contents/MacOS/test

mit dem file Kommando sieht man, dass das neue test Binary nun 2 Plattformen unterstützt:

file  test.app/Contents/MacOS/test

test.app/Contents/MacOS/test: Mach-O universal binary with 2 architectures

test.app/Contents/MacOS/test (for architecture i386): Mach-O executable i386
test.app/Contents/MacOS/test (for architecture ppc): Mach-O executable ppc

UB’s mit Qt 4.x

Hier ist das Sache wesentlich einfacher. Wenn man das Toolkit mit dem -universal Flag übersetzt hat man ein UB fähiges Qt Framework. In seinem .pro File muss man dann nur noch

QMAKE_MAC_SDK=/path/to/MacOSX10.4u.sdk
CONFIG+=x86 ppc

angeben um ein fertiges Binary zu erzeugen. Im Hintergrund schleusst Qt einfach die -arch Flags an den g++ Compiler weiter.

weitere Hinweise:

gfortran unterstützt in der eigentlichen Fassung diese -arch Flags noch nicht. Hier gibt es allerdings einen weiteren experimentellen Fork der das schon kann:

http://r.research.att.com/tools/

Um die Qt Bibliothek mit dem eigenen Programm auszuliefern muss der install_name (Linux: soname) geändert werden, dies ist hier am Bsp. von Qt 3.3 dargestellt:

..für die Qt Library selber

 install_name_tool id @executable_path/../Frameworks/libqt.3.dylib 
demo.app/Contents/Frameworks/libqt.3.dylib

und für das Programm:

install_name_tool -change libqt.3.dylib 
@executable_path/../Frameworks/libqt.3.dylib 
test.app/Contents/MacOS/test