Bananas Development Blog: share your thoughts

OSX update auf 10.8 und Macports

Wer ein Update auf OSX 10.8 in Erwägung zieht und macports verwendet, sollte wie folgt vorgehen.

- First installed the latest XCode via the Mac App Store
- Downloaded/Installed Mountain Lion
- Launched XCode to agree with the license and to install the XCode command line tools
- xcodebuild -license as root
- Install latest macports version
- port upgrade outdated


Das kann ne weil dauern.

My grandfather is a chimney

A: Since Mac OS X, this operating system is linux based.

B: No, here you can find the refence to mac os x’s kernel: http://en.wikipedia.org/wiki/Mac_OS_X

A: “unix-based”, there you have it

B: unix != linux

A: come on man… dont be so ultra exactly, linux is part of unix family

B: exactly.

based on the assumptions:

- mac os x is based on unix
- linux is based on unix

the statement:

- mac os x is based on linux

is wrong, because is a wrong sillogism.

analogue:

- chimneys smoke
- my grandfather smokes

=> my grandfather is a chimney.

so, if you say that Mac OS X is unix-based, it’s correct, if you say that is linux-based, it’s wrong.


Damit wäre dies auch mal geklärt.

via

Macports ssh/scp vs. OSX ssh/scp

Sollte jemand mal das Problem haben, dass mit der Verwendung von Macports und ssh/scp, die Dialogbox zur Eingabe des Passwortes nicht mehr erscheint, dann habe ich hier die Lösung ( Nach langer Suche und Experimenten ) :

su
cd /opt/local/bin
mv ssh _ssh
mv scp _scp


Das Problem ist folgndendes. Das ssh von OSX verwendet die Dialogbox um automatisch ssh-agent anzusteuern. Nun legt aber Macports den /opt/local/bin Pfad an erste Stelle und somit wird das OSX ssh nicht mehr angesprochen. Das Macports ssh kann das aber mit der Dialogbox nicht. Daher muss das Macports ssh umbenannt werden.

( Ja ich kann su verwenden, denn ich habe aus dem pseudo root nen richtigen root gemacht. Denn sudo nervt. )

via: Leopard, SSH-agent, and a macports gotcha


OSX Terminal müllt sich zu

Hätte Ich nicht gedacht, dass OSX sich so einen "Fehler" einfängt... Aber daran sieht man mal wieder, dass die Zielgruppe von OSX Benutzer sind die nicht mit dem Terminal arbeiten. Schade...

Speed up a slow Terminal by clearing log files

Im Grunde liegt es daran, dass beim starten eines Terminals all die Log Files eingelesen oder analysiert werden. Wenn das aber mit der Zeit sehr viele werden, dann kann das schon mal sehr lange dauern. Leider scheinen auch die normalen Cleanup Scripte nicht zu helfen, die im OSX eingebaut sein sollen.

Hier noch mal der Befehl fals der Artikel mal offline gehen sollte:
rm -rf /private/var/log/asl/*.asl


OSX Tools: dtrace

DTrace is a performance analysis and troubleshooting tool that is included by default with various operating systems, including Solaris, Mac OS X and FreeBSD. A Linux port is in development.


Damit kann man eine Menge über das System erfahren und was denn gerade so alles aktiv ist.

Ein man -k dtrace gibt eine Liste aus, was es alles an Befehlen gibt:
bitesize.d(1m)           - analyse disk I/O size by process. Uses DTrace
cpuwalk.d(1m)            - Measure which CPUs a process runs on. Uses DTrace
creatbyproc.d(1m)        - snoop creat()s by process name. Uses DTrace
dappprof(1m)             - profile user and lib function usage. Uses DTrace
dapptrace(1m)            - trace user and library function usage. Uses DTrace
diskhits(1m)             - disk access by file offset. Uses DTrace
dispqlen.d(1m)           - dispatcher queue length by CPU. Uses DTrace
dtrace(1)                - generic front-end to the DTrace facility
dtruss(1m)               - process syscall details. Uses DTrace
errinfo(1m)              - print errno for syscall fails. Uses DTrace
execsnoop(1m)            - snoop new process execution. Uses DTrace
fddist(1m)               - file descriptor usage distributions. Uses DTrace
filebyproc.d(1m)         - snoop opens by process name. Uses DTrace
hotspot.d(1m)            - print disk event by location. Uses DTrace
httpdstat.d(1m)          - realtime httpd statistics. Uses DTrace
iofile.d(1m)             - I/O wait time by file and process. Uses DTrace
iofileb.d(1m)            - I/O bytes by file and process. Uses DTrace
iopattern(1m)            - print disk I/O pattern. Uses DTrace
iopending(1m)            - plot number of pending disk events. Uses DTrace
iosnoop(1m)              - snoop I/O events as they occur. Uses DTrace
iotop(1m)                - display top disk I/O events by process. Uses DTrace
kill.d(1m)               - snoop process signals as they occur. Uses DTrace
lastwords(1m)            - print syscalls before exit. Uses DTrace
loads.d(1m)              - print load averages. Uses DTrace
newproc.d(1m)            - snoop new processes. Uses DTrace
opensnoop(1m)            - snoop file opens as they occur. Uses DTrace
pathopens.d(1m)          - full pathnames opened ok count. Uses DTrace
pidpersec.d(1m)          - print new PIDs per sec. Uses DTrace
plockstat(1)             - front-end to DTrace to print statistics about POSIX mutexes and read/write locks
priclass.d(1m)           - priority distribution by scheduling class. Uses DTrace
pridist.d(1m)            - process priority distribution. Uses DTrace
procsystime(1m)          - analyse system call times. Uses DTrace
runocc.d(1m)             - run queue occupancy by CPU. Uses DTrace
rwbypid.d(1m)            - read/write calls by PID. Uses DTrace
rwbytype.d(1m)           - read/write bytes by vnode type. Uses DTrace
rwsnoop(1m)              - snoop read/write events. Uses DTrace
sampleproc(1m)           - sample processes on the CPUs. Uses DTrace
seeksize.d(1m)           - print disk event seek report. Uses DTrace
setuids.d(1m)            - snoop setuid calls as they occur. Uses DTrace
sigdist.d(1m)            - signal distribution by process. Uses DTrace
syscallbypid.d(1m)       - syscalls by process ID. Uses DTrace
syscallbyproc.d(1m)      - syscalls by process name. Uses DTrace
syscallbysysc.d(1m)      - syscalls by syscall. Uses DTrace
topsyscall(1m)           - top syscalls by syscall name. Uses DTrace
topsysproc(1m)           - top syscalls by process name. Uses DTrace
weblatency.d(1m)         - website latency statistics. Uses DTrace


Mehr Details und Beispiele gibt es hier.

SourceTree VCS Client

Endlich ein VCS Client für OSX der funktioniert und dazu noch für umme ist:

SourceTree works with both Mercurial and Git repositories, and with Subversion servers. Why switch between tools when you can use one for them all?

SourceTree


Jedenfalls besser als gitbox und Giti

via

Macports und ports.tar.gz manuell herunterladen

Wenn alle Stricke reißen und ein port -d sync nicht zu dem Ergebnis führt das man erwartet, kann man sich die ports.tar.gz Datei auch manuell herunterladen ( http://www.macports.org/files/ports.tar.gz ) und diese nach /opt/local/var/macports/sources/www.macports.org/files/ kopieren und dann via tar -xvzf ports.tar.gz entpacken. Nun muss nur noch der Index erstellt werden.
cd ports und via portindex den Index neu erstellen.

Danach sollte wieder alles so funktionieren wie gehabt.

Macports hinter einer firewall ohne selfupdate

Es gibt ja die Möglichkeit Macports hinter einer Firewall + Proxy zu verwenden, selbst wenn der rsync port nicht zur Verfügung steht.

Macports FAQ
Dort den Abschnit Alternatives for syncing the ports tree without rsync

Danach holt man sich den aktuellen Tree mit port -d sync

Das ist ja alles wunderbar, aber das damit der Befehl port selber nicht aktualisiert wird steht nirgends.... Denn der Befehl port selfupdate geht einfach nicht.

Das Rätsels Lösung ist das aktuelle DMG von macports.org herunter zu laden und dann einfach drüber zu installieren...

Toll nicht ?

Textmate Shortcuts

Wer mit Textmate arbeitet, der sollte sich folgenden Artikel mal anschauen/durchlesen.
Even after six years, TextMate is still considered by many to be the best code editor available for Mac. The reason why is simple: it’s incredibly powerful, and offers features that even the newest editors don’t yet offer. Add a robust plugin/bundle community on top of it, and you get one heck of a code editor.

Essential TextMate Shortcuts, Tips and Techniques

Git GUI Client für OSX

Ich bin ja eher der Terminal tipper aber manchmal freut man sich doch über ein GUI.

Bisher sind die Git clients für OSX eher dünn gesät. Also die die nichts kosten und auch funktionieren.

Nun bin auf gitti gekommen und bin bisher sehr zufrieden. Endlich mal ein Client der auch funktioniert und fast alle CLI Befehle unterstützt.

Wer sich damit nicht zufrieden gibt, der kann hier und hier sich ein Bild machen was es sonst noch so gibt.


Macports perl +threads

Wenn man via Macports Perl installiert ist die Option +threads nicht dabei.

Wenn man nun Perl neu installiert:
port upgrade --force perl5 +threads

sind die Module leider nicht mehr kompatibel.

Dies kann man wie folgt lösen ( an dem Beispiel von DBD::Mysql ) :
port upgrade --force p5-dbd-mysql +threads


Dabei sollte man sich nicht wundern warum da so viel und so lange was gemacht wird. Da wird sehr viel neu installiert !

Google Suche zu diesem Thema


10 MacOSX Anwendungen die man verwenden sollte

Ten Mac OSX Applications I couldn't live without
Firefox 4 + Pentadactyl
Aquamacs
iTerm 2
Quicksilver
KeyRemap4MacBook
(...)


ogg Dateien in iTunes

Tja, iTunes ist leider nicht allmächtig....

Damit man die Dateien wenigstens abspielen kann, aber nicht die Tags bearbeiten, gibt es für iTunes ein Plugin:

http://xiph.org/quicktime/
Xiph QuickTime Components (XiphQT) is, in short, the solution for Mac and Windows users who want to use Xiph formats in any QuickTime-based application, e.g. playing Ogg Vorbis in iTunes or producing Ogg Theora with iMovie.


Jetzt nur noch einen gescheiten Tag Editor finden...



Ordner zusammenführen im Finder OS X

Tja, da kann man schon auf die Nase fallen und zwar feste...

Kopieren im Finden von einem Ordner.

Beispiel:
. Ordner mp3 mit vielen Unterverzeichnissen ( Interpret / Albenname )
. Eine CD mit der selben Struktur mit zusätzlichen Alben oder sogar Interpreten

Öffnet man nun zwei mal den Finden und möchte mit dem Vorgang "Ich kopiere mal die MP3s von der CD rüber" seine Sammlung abgleichen, dann wird man ein böses Erwachen haben.

Wenn man nun auf der CD alle Interpreten die was neues haben auswählt ( sprich Ordner ) und diese dann in das Zielverzeichnis kopiert ( in dem ja auch schon solche Ordner befinden ) wird man ja gefragt ob man das Ziel überschreiben möchte, da es ja schon vorhanden ist.

Nun wird aber im Finder ein Ordner als einzelnes Objekt gehandelt. Wenn so ein Objekt schon vorhanden ist, dann wird dieses nicht überschrieben sondern ersetzt !!!

Nun überlegt mal was das für die MP3 Sammlung bedeutet.......

Jup alles was auf der CD war ist nun im MP3 Ordner, ABER *tada* so wie es auf der CD war. Alles zusätzliche was sich schon auf der Festplatte ( Ziel ) befand ( also das Album X im Ordner Y was nicht auf der CD war ) ist gelöscht !!!
Ja gelöscht !!!

So ein bullshit; das auch noch ohne Vorwarnung !!!!

Auf den anderen Systemen wir der cp Befehl gleich interpretiert, nur Apple muss da ein eigenes Süppchen kochen und das bei einem grundlegenden Verhalten. Nix gegen neues aber bestehendes so zu verbiegen geht schon mal gar nicht....

Apple Support Thread dazu



Abstrakt könnte man das mal an diesem Beispiel veranschaulichen:

Man fährt an die Tankstelle, da das Benzin zur neige geht.
Es ist noch eine gewissen Mange X im Tank. Also nicht leer.
Nun möchte man seinen Tank füllen.

    Nun kann man sich die Zapfanlage bzw. den Vorgang mal als Kopiervorgang vorstellen. Denn die Zapfanlage wird ja immer wieder gefüllt. Somit könnte man das so sehen, als kopieren wir den Treibstoff und nehmen ihn nicht weg. Damit haben wir unseren Kopiervorgang.

Nun erwartet man doch von diesem Vorgang, dass sich der neuen Treibstoff Y zum dem jetzigen Treibstoff X dazugesellt oder ? Also dass X+Y=G.
Würde man das aber nach Finder manier machen wäre G=Y ohne X.

Würde man dieses Verhalten absichtlich wollen, dann würde man doch vorher den Tank ausleeren damit X weg ist, oder ?
Aber wenn ich das nicht mache, dann erwartet man doch, dass X noch da ist und nicht weg.....


Sollte man das nun nicht wollen und nicht mit dem Terminal machen wollen, dann kann man sich das Tool Forklift anschauen. Aber selbst da muss man aufpassen. Darüber geht das mergen auch nur wenn man es über die queue macht !

Mac Terminal und Keyboard Shortcuts

Schöne Sammlung von Keyboard Shortcuts für das Mac Terminal und die Arbeit mit Mac OSX

- Cycle through history in linux/mac terminal ( Mirror )
- Mac OS X Keyboard Commands ( Mirror )
- Top 15 Terminal Commands for Hidden Settings in Snow Leopard ( Mirror )
- A Crash Course in Using the Mac Terminal ( Mirror )