Oracle's Java 7 auf Mac OS X

Seit Oktober 2010, mit der Übernahme Sun’s von Oracle, hat Apple beschlossen ihre eigene Java-Implementierung nicht mehr weiter entwickeln zu wollen. Vor ein paar Stunden hat Oracle nun das erste Java Release (7u4) für Mac OS veröffentlicht. Ich bin jetzt guter Hoffnung, dass für alle Systeme (Windows, Linux und Mac) von Oracle zeitgleich neue Versionen und damit auch fixes herauskommen.

Java 7 installieren

  1. Java 1.7 downloaden
  2. Heruntergeladene dmg Datei öffnen und den Installer durchklicken
  3. Das JDK sollte nun erfolgreich installiert sein
  4. Nun öffnet man die Java-Einstellungen, welche unter /Programme/Diesntprogramme liegen
  5. Den Eintrag Java 7 SE nach oben ziehen
  6. Jetzt kann man über das Terminal kontrollieren, ob alles funktioniert

Eclipse einrichten

  1. Eclipse öffnen
  2. Preferences (cmd + ,) öffnen
  3. Java -> Installed JREs wählen
  4. Add… Button drücken und MacOS X VM auswählen
  5. Im JRE Home Feld „/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home“ eintragen
  6. Jetzt sollten die JRE system libraries gefühlt sein
  7. Dem JRE name noch beispielsweise „JDK 1.7“ eintragen und Finish drücken
  8. Jetzt kann man das JDK 1.7 wählen

Happy Coding.

ForkLift unter Mac OS X Lion

ForkLift ist ein klassischer file manager für Mac OS X. Habe ihn heut mal wieder nutzen wollen. Jedoch ist die alte Version 1.7.x nicht Lion kompatibel. Apple hat in Lion u.a. zwei Tools entfernt, die ForkLift nutzt. nmblookup und smbtree sind die Übeltäter. Um die nicht die aktuelle 2.x Version kaufen zu müssen, gibt es einen workaround.

  1. Lade das folgende Archiv herunter: http://download.binarynights.com/smb_tools.zip (~ 2,4 MB)
  2. Entpacke den Archivinhalt nach /usr/bin/
  3. Jetzt sollte ForkLift 1.7.x wieder unter Lion funktionieren

Erfolgreich getestet mit Mac OS X (10.7.3) und ForkLift (1.7.8).

Git & Dropbox

Neulich suchte ich ein kostenlosen/freien git repository hoster, welcher für kleine Gruppen eignet ist. Fündig bin ich auch geworden bei z.B. BitBucket, unfuddle, Assembla, ProjectLocker, codebase, Springloops oder einen eigenen Git-Server aufzusetzen (mit DynDNS/NO-IP und gitosis).
Jedoch bin ich auch auf eine andere Lösung getroffen. Die gute alte Dropbox. Sie lässt sich auch für solche Zwecke malträtieren. Dropbox spielt hier das zentrale repository.

Hier ein Beispiel-Setup via Terminal:

# create your local git project
~/yourLocalProjectDir $ git init
~/yourLocalProjectDir $ git add .
~/yourLocalProjectDir $ git commit -m "initial commit"
~/yourLocalProjectDir $ cd ~/Dropbox/git

# create a new git project on your local-Dropbox folder
~/Dropbox/git $ git init --bare projectOnDropbox.git
~/Dropbox/git $ cd ~/projectOnDropbox

# link your local project with the local-Dropbox repository
~/yourLocalProjectDir $ git remote add origin ~/Dropbox/git/projectOnDropbox.git
~/yourLocalProjectDir $ git push -u origin master

Source

Update 2012-10-15
Kleiner aber feiner online Kurs: http://try.github.com/.

Erlang auf Mac OS X installieren

Hier die kurz und einfache Installationsanleitung für Erlang auf Mac OS X (10.7.3):

  1. Das letzte Release hier herrunterladen
  2. Im Terminal folgendes ausführen
    # ggf. in der Verzeichnis Downloads wechseln
    # cd Downloads/
    tar -xzf otp_src_%VERSION-NUMBER%.tar.gz # download entpacken
    cd otp_src_%VERSION-NUMBER% # in das Verzeichnis wechseln
    ./configure # configurieren
    make # bauen
    sudo make install # installieren
    

    %VERSION-NUMBER% – Aktuell ist gerade ‚R15B01‘.

  3. Das war es schon. Mittels …
    erl

    … gelangt man in die interaktive Erlang Console.

Mehr Informationen über Erlang sind hier zu finden:

Happy Coding.

Deklaration von Java Array's

Gestern habe ich das erste mal die Deklaration von einem Java Array in dieser Form gesehen.

int foo[];

Bis dato kannte ich lewiglich die ‚klassische‘ Form.

int[] foo, bar;

Hier gibt es jedoch Unterschiede. Die Klammern können Teil des Typs oder der Variable sein. Sind sie Teil des Typs, so sind alle deklarierten Variablen ein Array.

int[] foo_1d, foo_2d[], foo_3d[][];
// the same as
int bar_1d[], bar_2d[][], bar_3d[][][];

Tricky ist folgender Fall.

int []foo, bar;

Hier ist bar kein int sondern ein int-Feld. Der Compiler verweigern hier eine Zuweisung.

bar = 123;

Also nicht zu schnell auf der Tastatur tippen. Somit lieber den guten Stil wählen und die Deklaration direkt an den Typ setzen.
Happy coding.