Alex Online Today

some experience to be shared

By

$PATH unter Mac OS X

Was ist $PATH
Die $PATH Variable definiert, in welchen Verzeichnissen ausführbare Dateien d.h. per Befehl ausführbare Programme, abgelegt sind, sowie die Reihenfolge in welcher diese Verzeichnisse nach ausführbaren Dateien durchsucht werden.
$PATH besteht aus Einträgen des Systems, die für alle Benutzer gleich sind (systemweit), sowie individuellen Benutzereinträgen (benutzerspezifisch).
Die $PATH Variable gibt es übrigens nicht nur unter OS X sondern auf quasi allen Unix und Linux Systemen und auch unter Windows. Die Funktion ist hierbei allgemein die Gleiche – nur wie und wo $PATH definiert wird ist unterschiedlich. Die folgende Anleitung beschreibt das Verhalten unter OS X 10.5 bis 10.8.

1. $PATH auslesen
Um $PATH zu auszulesen öffnet man ein Terminal Fenster (Spotlight –> “Terminal”) und gibt folgenden Befehl ein:

echo $PATH

Man erhält dann beispielsweise folgende Ausgabe:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/local/MacGPG2/bin:/usr/texbin

2. $PATH Syntax
Die Variable besteht aus einer Aneinanderreihung von Verzeichnispfaden, die durch einen Doppelpunkt “:” getrennt sind.
z.B. sind /usr/bin und /bin Standardverzeichnisse des Systems. Dort finden sich auch Programme wie “echo” -> wie wir es zur Anzeige von $PATH gerade verwendet haben. Wichtig ist folgendes – je früher ein Verzeichnis in $PATH auftaucht, desto höher ist seine Priorität.

Ein Beispiel:
Das Programm echo liegt standardmäßig im Verzeichnis /bin. Wird nun ein weiteres Programm mit dem Namen echo in /usr/local/bin abgelegt, so hat das Programm echo im Verzeichnis /bin immer vorrang, denn bei der Auführung wird beim Auffinden eines passenden Programms im $PATH die Suche abgebrochen. Wenn nun in Zukunft die Programme in /usr/local/bin vorrangig ausgeführt werden sollen, muss man $PATH ändern in etc/paths

3. $PATH systemweit anpassen
Seit Mac OS 10.5 Leopard wird $PATH durch das Programm /usr/libexec/path_helper verwaltet. path_helper wird durch /etc/profile beim Öffnen eines neuen Terminal Fensters ausgeführt.

1. Die Einträge der Datei /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

2. Die Einträge in allen Dateien im Verzeichnis /etc/paths.d/
– Hier hinterlegen häufig Frameworks ihre Pfad-Einträge, z.B. von git oder LaTex
– Diese Einträge werden in Alphabetischer Reihenfolge hinzugefügt
– Eine Datei muss mit einer leeren Zeile enden

Die Dateien sind für gewöhnlich schreibgeschützt und die Verzeichnisse versteckt. Am besten man arbeitet im Terminal:
a) Navigation zu den Ordnern:

> cd /bin

b) Editieren mit vim (sudo für root Rechte)

>sudo vi paths

Nütliche Befehle in vim sind:
i Editieren der aktuellen Zeile
dd Löschen der aktuellen Zeile
i und dd werden mit esc beendet.
:q! Beenden (explizit ohne Speichern der Änderungen)
:wq! Beenden und speichern einer readonly Datei

4. Benutzerdefinierte Einträge in $PATH
Vor dem Öffnen eines neuen Terminal Fensters werden werden die Datein .profile und .bash_profile (in dieser Reihenfolge) im Benutzerordner (~) des aktuellen Nutzers ausgeführt. Es handelt sich um versteckte Dateien (beginnend mit ‘.’) weshalb man sie normalerweise im Finder nicht sieht. Um sie im Terminal anzuzeigen geht man folgendermaßen vor:
a) Navigation zum Benutzerverzeichnis:

>cd ~

b) Anzeigen aller Dateien

> ls -a

Um die Dateien zu bearbeiten, nutzt man am besten wieder vim
c) Bearbeiten mit vim (ohne root Rechte)

vi .profile

In diesen Dateien kann durch den Eintrag

export PATH=$PATH:/newpath

die $PATH Variable für diesen Benutzer erweitert werden. Den bestehenden $PATH stellt man für gewöhnlich vorne an.

By

Java 1.7 auf Mac OS X 10.6 – Snow Leopard

Leider braucht Apple immer ein bisschen Zeit um die neuste Java Version für Mac OS X zu veröffentlichen. Das reicht für den normalen Anwender zwar vollkommen, aber als Entwickler hat man unter Umständen durchaus das Bedürfnis, eine aktuelle(re) Version zu nutzen. Für Windows gibt es von OpenJDK regelmäßig aktuelle Binary Releases der neusten Entwicklungen. Den BSD Port von OpenJDK muss man sich selbst kompilieren. Da es mich ein bisschen Zeit gekostet hat und in der deutschen Blogosphäre nichts zu dem Thema zu finden war, will ich mal nicht so sein und euch an meinem Wissen teilhaben lassen:

Grundlage für den Artikel ist ein Beitrag von Sam Pullara und ein etwas älterer von Stephen Bannasch und einige Mails von der BSD Port Development Mailingliste

Als Grundlage für das Kompilieren von Java 1.7 habe ich den SoyLatte BSD Java Port von Langdon Fuller verwendet. Dabei habe ich prinzipiell die Scripte von den oben genannten Artikeln übernommen.
Hier wird in einfachen Schritten erklärt, wie man den Sourcecode des BSD Port Projektes per Mercurial (mit Forest Extension) auscheckt. Ab und an sind die aktuellen Versionen auf dem Repository allerdings nicht 100% lauffähig, dann sollte man eine ältere Version ausprobieren. Ausserdem ist es sehr hilfreich der Mailingliste zu folgen.
JIBX wird übrigens nicht mehr benötigt und kann übersprungen werden.

Sam Pullara schlägt auf seinem Blog folgendes Buildscript vor, welches bei mir gut funktioniert hat.

build.sh

env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin \
make \
CC=gcc-4.0 CXX=g++-4.0 \
ALT_BOOTDIR=$SOYLATTE_HOME \
JAVA_TOOLS_DIR=$SOYLATTE_HOME/bin \
ALT_FREETYPE_HEADERS_PATH=/usr/X11R6/include \
ALT_FREETYPE_LIB_PATH=/usr/X11R6/lib \
ANT_HOME=/usr/share/ant \
NO_DOCS=true \
HOTSPOT_BUILD_JOBS=1

Kompilieren hat hat ca. eine halbe Stunde auf meinem Macbook G1 gedauert. Mit einem aktuellen Gerät sollte das wesentlich schneller durch laufen. Auf meinem JBoss laufen mit Java 1.7 neuste Java Features die ich zur Dateiverarbeitung nutze. Hier bietet die neuste Version von Java einige Erleichterungen.

By

Magic Mouse nagt an meinen Nerven!

Oder HowTo: Magic Mouse resetten!

Ich bin eigentlich wirklich zufrieden mit meiner Magic Mouse. Immerhin hat der erste, beigelegt Satz Batterien fast 2 Monate gehalten. Und ich bin sicher kein Gelegenheitsnutzer. In den letzten Tagen hat mich mein Macbook jedoch wiederholt darauf hingewiesen, dass der Strom bald aus sein wird und heute war es dann tatsächlich vorbei. Ich hab mir natürlich gleich neue Batterien besorgt (Bzw. besorgen lassen…danke @j_eichler) und dachte damit wäre das Problem erledigt für die nächsten 2 Monate doch – weit gefehlt.

Leider lies sich die Magic Mouse mit neuen Batterien nicht wiederbeleben (ja nein die Batterien waren richtig herum eingelegt…). Selbst bereits abgehärtet durch mehrfache üble Meldungen über defekte Magic Mäuse, hatte ich mich schon damit abgefunden, morgen dem Gravis Store in Karlsruhe einen kurzen Besuch abzustatten um die Maus ersetzten zu lassen.

Aber selbst ist die Mann, dachte ich mir, muss man doch mal schauen ob man da nicht etwas machen kann.
Eine Anleitung bewahrt man ja als echter Könner sowieso nicht auf, also hies es raten: Wie zur Hölle resettet man ein Gerät das abgesehen von einem Ein/ Aus Switch keine Tasten hat?

Nach langem rumprobieren hab ich die Lösung dann aber doch gefunden: Und jetzt exklusiv hier auf meinem Blog und nur für euch in bestem Beipackzettel-Deutsch:

========
Das Gerät mit der Lauffläche nach Oben in der Hand halten und die große Maustaste mehrere Sekunden gedrückt halten, bis die Indikationsleuchte oberhalb des Ein/Aus Schalters wiederholt aufleuchtet.
========

Das wars, danach sollte die Maus wieder funktionieren. Wenn nicht: pech gehabt.

Wünsche noch ein schönes Wochenende!

By

Howto: Flickr

Hattet ihr auch schonmal das Problem, viel zu viele Photos an viel zu vielen Stellen liegen zu haben? Früher habe ich Photos für’s “Internet” oft einfach auf meinen privaten Webspace geladen, gerade für große Bilder war dort aber bald kein Platz mehr, ausserdem fehlte mir eine Möglichkeit den Überblick zu behalten.

Da ich und meine Freundin über einen längeren Zeitraum nicht in USB-Stick-Wurf Reichweite leben werden, haben wir uns entschieden, Photos in dieser Zeit Online zu verwalten. Das wird kein Beitrag über die verschiedenen Möglichkeiten, deshalb kürze ich hier ab. Nach kürzerer Erwägung haben wir uns für einen Pro Account bei FlickR entschieden. Dort bekommt man für 17,30€ im Jahr Speicher und Traffic ohne Limit. Die Dateigröße für Bilder ist jedoch beschränkt auf 20 MB.
Ich dachte mir ich schreibe hier mal, wie letzten Endes die Bilder zu FlickR und wieder zurück auf unsere Computer wandern.

Meine Freundin nutzt ein Dell Studio Notebook mit Windows 7 und eine Cannon IXUS 80. Ich arbeite auf einem Macbook 13″ und photografiere mit einer Casio EXILIM 10.1MP. Ausserdem mach ich manchmal Photos mit meinem iPhone. Zumindest die beiden Kompaktkameras machen recht ansehnliche Bilder die man gerne in voller Auflösung online stellt.

Auf dem Mac nutze ich iPhoto zum Verwalten der Bilder. Für den privaten Gebrauch ohne professionelle Hintergedanken eine gute Lösung. Meine Bibliothek liegt übrigens in einem Sparseimage und ist Passwort geschützt. Um meine Photos direkt aus iPhoto online zu stellen kommt das kostenlose Plugin FFExporter zum Einsatz. Nach einer kurzen Freischaltung bei FlickR lädt es anstandslos einzelne Bilder oder ganze Photosets zu FlickR. Hierbei ist es eine große Erleichterung, dass man auch gleich Alben anlegen kann.
Ich unterstelle das FlickR meine Bilder ausreichend schützt und speichere alle als “privat”. Bei Bedarf schalte ich dann einzelne Bilder auf “public” so dass sie jeder sehen kann.

Hier mal ein Screenshot:

Windows 7 hat mich für diesen Anwendungsfall mit einer standard Funktion überrascht. Man kann dort direkt aus dem Explorer Bilderalben mit FlickR synchronisieren. Für diesen Anwendungsfall ist soweit also kein weiteres Tool notwendig.

Der Rückweg:

Leider bietet FlickR keine standard Lösung für den Download der eigenen Photos, auch nicht für bezahl Kundschaft. Über die angebotene API ist es jedoch möglich Photoalben zu downloaden. Für den Mac hat sich bei mir das Java Tool FlickrEdit bewährt. Bisher lief es stabil auch bei großen Photoalben durch, einziges Problem ist, dass es sich manchmal nach dem letzten Bild aufhängt. Da der Download jedoch vollständig durchgeführt wurde, ist es ein erträgliches Manko.

Auf der Windows Welt lädt meine Freundin mit Downloadr.
Bisher gab es auch dort keine Probleme.

Beim Verwenden der Tools ist mir aufgefallen, das FlickR mit dem Pro Account auch wesentlich mehr Bandbreite für den Upload bietet.

Mit dem iPhone lade ich Bilder übrigens mit einer kostenlosen Version der App FLICKIT direkt über das 3G Netz. Hier bin ich besonders froh, dass die App bei Verbindungsproblemen nicht gleich aufgibt. Es ist möglich direkt Photos zu schießen und hochzuladen, aber auch das Uploaden aus der der Gerätebibliothek funktioniert einwandfrei.

Zuletzt sei dann noch erwähnt dass ich die öffentlichen Photos von meinem FlickR Account hier auch in der Seitenleiste anzeige. Leider habe ich noch nicht heraus gefunden wie man die Photos aus einem bestimmten Album anzeigen kann.