Tips&Tricks
Memory Profiling mit LLVM/Clang
16.05.2009 11:15
Nachdem ich schon öfters über den Static Analyzer „LLVM/Clang“ gestolpert bin, wollte ich ihn auch mal auf meine iPhone App HappyDayz! ansetzen. Nebenbei habe ich diesen kleinen Artikel verfasst indem ich die Verwendung beschrieben habe. Ihr werdet - so wie ich - überrascht sein, was da alles zum Vorschein kommt. Nun schaue ich mir die problematischen Codestellen im Detail an ... Happy Fixing!


Safari und schöne Lesezeichen Trenner
21.03.2009 13:00
Vor gut einem Jahr bin ich vom Firefox auf den Safari umgestiegen und habe es bisher noch nicht bereut. Eine Kleinigkeit hat mich allerdings schon immer ein wenig gestört: Die Bookmarks können im Safari visuell nicht voneinander getrennt werden.
Abhilfe schafft hier das kostenlose Safari Plugin Glims. Das verwende ich schon seit vielen Betas, aber diese Funktion ist mir erst jetzt aufgefallen. Mit dem Ergebnis (siehe Screenshot) bin ich sehr zufrieden! Warum kann das der Safari nicht von Haus aus?
Und wie funktioniert es? Als erstes muss Glims installiert werden. Dann legt man in Safari einen neuen Bookmark an (⌘ + D) und gibt als Namen einen oder mehrere Bindestriche „-“ ein. Das wars! Über die Lesezeichenverwaltung von Safari können die angelegten Trenner per Copy/Paste dupliziert und an den passenden Stellen platziert werden.
Da man die Adresse des Lesezeichens in Safari nicht komplett löschen kann und ich auf „saubere“ Trenner stehe, habe ich diese in der Bookmarks.plist direkt gelöscht. Die Bookmarks.plist findet Ihr unter „HDD ➠ Benutzer ➠ $USER ➠ Library ➠ Safari“.

Abhilfe schafft hier das kostenlose Safari Plugin Glims. Das verwende ich schon seit vielen Betas, aber diese Funktion ist mir erst jetzt aufgefallen. Mit dem Ergebnis (siehe Screenshot) bin ich sehr zufrieden! Warum kann das der Safari nicht von Haus aus?
Und wie funktioniert es? Als erstes muss Glims installiert werden. Dann legt man in Safari einen neuen Bookmark an (⌘ + D) und gibt als Namen einen oder mehrere Bindestriche „-“ ein. Das wars! Über die Lesezeichenverwaltung von Safari können die angelegten Trenner per Copy/Paste dupliziert und an den passenden Stellen platziert werden.
Da man die Adresse des Lesezeichens in Safari nicht komplett löschen kann und ich auf „saubere“ Trenner stehe, habe ich diese in der Bookmarks.plist direkt gelöscht. Die Bookmarks.plist findet Ihr unter „HDD ➠ Benutzer ➠ $USER ➠ Library ➠ Safari“.

Tastatursteuerung angepasst
31.12.2007 13:29
Vor über einem Jahr bin ich privat von einer Windows-Büchse zum Mac gewechselt. Das Einzige was mich immer noch am Mac stört ist die unterschiedliche Cursorsteuerung per Tastatur. Die Windows/Linux typische Steuerung ist bei mir nach Jahren in Fleisch und Blut übergegangen. Da ich beruflich den ganzen Tag mit Java unter Linux entwickle und den Cursor sicherlich ein paar tausend mal pro Tag hin und her scheuche, ist es für mich fast unmöglich mich daran zu gewöhnen bzw. einen Schalter umzulegen je nachdem vor welchem Rechner ich sitze. Das muss sich ändern ...
[Zum Artikel]
[Zum Artikel]
CVS und binäre Dateien
09.12.2007 12:34

Ich habe meine wieder in meinem Home-Verzeichnis abgelegt und sie hat momentan folgenden Inhalt:
*.nib -k 'b'
*.tiff -k 'b'
*.gif -k 'b'
*.png -k 'b'
*.pdf -k 'b'
CVS und ".DS_Store"-Dateien
09.12.2007 11:16

Meine "~/.cvsignore" sieht momentan noch so aus:
# ignore the build directories
build
# ignore the .DS_Store files
.DS_Store
# ignore the IB temp files
*~.*
CVS mit Xcode 3.0
07.12.2007 16:25

Damit das SCM benutzt werden kann, muss es erst einmal in Xcode eingerichtet werden. Dazu geht man erst mal zu den SCM-Einstellungen: "Xcode | Preferences | SCM".
In dem Reiter "Repositories" habe ich - um an dem Beispiel von heute Morgen zu bleiben - folgendes in das Feld "Root:" eingetragen: ":ext:hansi@213.55.44.33:/cvs". Xcode parst den Feldinhalt und trägt die Werte in die entsprechenden Felder ein. Die Methode "ext" verwende ich wegen dem SSH-Zugriff. Das Feld Passwort und den Port konnte ich leer lassen. Im Feld "Tool:" steht "/usr/bin/cvs". "Use RSH instead of SSH" ist nicht aktiviert.
In dem Reiter "SSH" steht als Key der Pfad zu meinem privaten Schlüssel "~/.ssh/id_dsa". Im gleichen Reiter habe ich auch noch die "Passphrase" von heute Morgen eingegeben.
Sind alle Daten korrekt eingegeben, dann zeigt dies Xcode in dem Reiter "Repositories" mit dem grünen Punkt und dem Text "Authenticated" an. In der Xcode Menüleiste kann nun über "SCM | Repositories" auf das existierende CVS-Repository zugegriffen werden.
SSH und CVS im Terminal
07.12.2007 11:22

Bsp. Linux Benutzer : hansi
Bsp. Linux IP : 213.55.44.33
Bsp. Linux SSH-Port : 12345
Ohne Passwort-Eingabe auf den Linux-Rechner zugreifen
Wenn ich mich bisher auf meinem Linux-Rechner anmelden wollte, musste ich "slogin -p 12345 hansi@213.55.44.33" eingeben und mit dem Benutzer-Passwort bestätigen. Die folgenden Schritte ermöglichen schon einmal das Anmelden ohne Passwort:
- Auf dem Mac das Terminal öffnen
- Nun muss der private sowie der öffentliche Schlüssel generiert werden. Dies geschieht durch Eingabe von "ssh-keygen -t dsa". Den Speicherort für die beiden Dateien einfach per Eingabetaste bestätigen. Die "Passphrase" muss dabei nicht eingegeben werden, ist aber sinnvoll! Im Anschluss sollten in dem Verzeichnis "~/.ssh" die beiden Dateien "id_dsa" und "id_dsa.pub" vorliegen
- Der öffentliche Schlüssel "id_dsa.pub" muss nun unter dem neuen Namen "authorized_keys2" in das "~/.ssh"-Verzeichnis des Linux-Benutzers kopiert werden. Dies geht über den Befehl "scp -P 12345 ~/.ssh/id_dsa.pub 213.55.44.33:.ssh/authorized_keys2". Die Port-Angabe "-P 12345" brauche ich nur, weil der SSH-Daemon nicht auf dem Standard-Port 22 läuft.
Ohne Eingabe des SSH-Ports zugreifen
Damit nicht immer der SSH-Port eingeben werden muss, nutzen die SSH-Tools die Konfigurationsdatei "~/.ssh/config". Sie muss allerdings erst noch mit einem Editor angelegt und gefüllt werden. Die Konfigurationsdatei bekommt folgenden Inhalt:
Nun kann ich mich mit "slogin hansi@213.55.44.33" ohne Eingabe des Ports oder eines Passwortes auf dem Linux-Rechner anmelden. So sollte das sein!Host 213.55.44.33
Compression no
Port 12345
CVS Zugriff
Ich greife nur auf das CVS-Repository meines Linux-Rechners zu und möchte das auch so komfortabel wie möglich haben. Dazu gibt es zwei Möglichkeiten.
Man trägt die CVS-Umgebungsvariablen (CVSROOT und CVS_RSH) in die Datei "~/.profile" ein oder man erstellt die Datei ".MacOSX/environment.plist". Die ".profile"-Variante hat den Nachteil dass diese dann nur innerhalb einer Terminal-Sizung gesetzt sind. Bei der zweiten Variante können auch andere Anwendungen als das Terminal diese benutzen. Ich habe mich für die zweite entschieden. Dabei enthält diese plist-Datei folgenden Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CVSROOT</key>
<string>:ext:hansi@213.55.44.33:/cvs</string>
<key>CVS_RSH</key>
<string>/usr/bin/ssh</string>
</dict>
</plist>
Im Terminal kann nun nach einem erfolgreichen "cvs login" das CVS wie gewohnt benutzt werden. So langsam geht es voran!

