.bash_history: Duplikate löschen und vermeiden

Duplikate löschen:

Danach bash neu starten.

Duplikate zukünftig vermeiden (Quelle: wie oben, oder mit Erklärung hier), kommt unter OS X aber in die .bash_profile:

Eclipse: JPDA Port (nachträglich) herausfinden

Ich habe einige Play-Anwendungen im Terminal laufen, plus einer weiteren in Eclipse. Die in Eclipse würde ich gerne debuggen, wozu play eclipsify einen entsprechenden Launcher “Connect JPDA to myapp.launch” anlegt. Der Launcher enthält einen Port “0”:

Nun ist der Port (ich glaube, “0” wählt den default 8000, aber das kann falsch sein) nicht erreichbar, vielleicht ist er durch die Anwendungen im Terminal belegt. Vielleicht wählt “0” auch jedes mal einen zufälligen Port, ich kann das gerade nicht gegenprüfen. Wie auch immer, der Punkt ist:

Beim Start der Anwendung gibt es eine Ausgabe im Log à la

Listening for transport dt_socket at address: <port number>

Läuft die Anwendung lange genug, sehe ich diese Ausgabe aber nicht mehr – wie finde ich nun den Port heraus? Unter OS X wie folgt: Zuerst suche ich in der Aktivitätsanzeige alle “java”-Prozesse:

Uns interessiert derjenige, der zu Eclipse gehört (diese Ansicht wird per Doppelklick auf den Prozessnamen geöffnet):

Die Liste der “geöffneten Dateien und Ports” ist recht lang, aber der Eintrag sticht durch seine Kürze hervor: Voilà, der gesuchte Port.

PS: Man kann den Logger von Play natürlich auch so konfigurieren, dass es die Ausgabe in ein File schreibt, siehe hier (via). Hier brauchte ich aber die Möglichkeit den Port herauszufinden, ohne die Applikation neu zu starten.

Slightly related: Den Prozess, der auf Port (z.B.) 80 hört, findet sich per

” -t” listet die Prozesse auf (Quelle), um sie an kill übergeben zu können:

sudo kann optional sein.

Raspberry Pi einrichten

Vor inzwischen auch schon wieder einigen Monaten habe ich mir einen Raspberry Pi bestellt (Danke, Tobi!) – jetzt bin ich dazu gekommen, ihn auch mal anzuschließen 🙂 Für’s grundsätzliche Setup sind einige Dinge zu wissen:

Das Board kommt (bzw. kam in meinem Fall) ohne irgendeinen Zubehör. Man benötigt aber mindestens:

  • Eine SD-Karte. Es funktioniert wohl nicht jede, also Obacht. Laut Quick start guide tut es eine Class 4 Karte mit mindestens 4 GB. In meinem Fall funktionierte eine 8GB SanDisk Extreme (Class 10).
  • Stromversorgung über Micro USB (nicht zu verwechseln mit Mini-USB!), und wir reden bei “Stromversorgung” von “mindestens” 700 mA! Der Quick start guide sagt “Do not attempt to power your Raspberry Pi by plugging it into a computer”, und das würde ich unterschreiben, falls ihr euern Computer (bzw. dessen USB-Anschluss) nicht grillen wollt. Ich benutze ein USB-Netzteil vom Kindle meiner Freundin zusammen mit einem Ladekabel meines Handys.
  • eine USB-Tastatur, bei mir eine vom Mac.
  • Einen Monitor/TV/… mit HDMI-Eingang! Bei mir ein Panasonic TX-P42GW30.
  • ggf. eine USB-Maus.
  • ggf. eine LAN-Verbindung.
  • ggf. ein Gehäuse. Ich habe vorerst keines, aber wenn das alles wie gewünscht funktioniert, hole ich mir eins.

Zuerst muss das Betriebssystem auf die SD-Karte installiert werden; im Folgenden die Anleitung für OS X (Sorry, Thore). Dazu gibt es auf der offiziellen Seite verschiedene Downloads; für’s erste habe ich das empfohlene Raspbian “wheezy” image in der Version vom 18.9.2012 verwendet. SD Karte eingesteckt, und im Terminal mittels

den mount point (“Einhängepunkt“) herausgefunden, der bei mir “/dev/disk2” ist. Nun muss man das Image auf diesen mount point schreiben – ich empfehle, hier Vorsicht walten zu lassen, und das Image nicht aus Versehen auf die Systempartition zu schreiben 🙂 Folgendes Kommande

sollte es tun (Quelle). Anmerkung: Eine “Resource busy”-Meldung umgeht man, indem man im “Festplatten-Dienstprogramm” die Partition auf der SD-Karte deaktiviert (Quelle). Nicht “auswerfen”, sonst bekommt man ein “Operation not supported”. Die Karte darf von OS X nicht verwendet werden, muss aber weiterhin unter “diskutil list” aufgeführt werden! Das Schreiben des Images wird eine Weile dauern, bei mir eine gute viertel Stunde.

Dann wird das gute Stück mit Tastatur (und Maus) bestückt, und an’s TV angeschlossen, schlussendlich kommt Strom. Das sollte es im Wesentlichen tun, um den Config-Screen zu sehen zu bekommen:

Dort gibt’s Folgendes zu tun (Quelle):

  • info: blabla 🙂
  • expand_rootfs: Per default werden nur 4 GB verwendet; dieses Tool vergrößert die Partition beim nächsten Reboot auf die volle verfügbare Größe, was durchaus einige Minuten dauern kann! [Anmerkung 1, 5]
  • overscan: Soll schwarze Balken auf dem Bildschirm vermeiden – führt bei einem Flachbild-Fernseher aber nur dazu, dass man die Bash (eigentlich am unteren Bildschirmrand) nicht mehr lesen kann^^ Ich musste das Seitenverhältnis des Fernsehers ändern, um die Bash sehen zu können. Beim nächsten Reboot ggf. einfach wieder disablen [Anmerkung 1, 4]
  • configure_keyboard: Achtung, das Erzeugen der Liste dauert ein paar Sekunden! Dann kann man Tastatur (“Apple Aluminium Keyboard (ANSI)”), plus -Layout (“Other”->”German”->”German”->”Right Alt”->”No compose key”->”No”) auswählen. Das Speichern dauert wieder einige Sekunden [Anmerkung 1, 2, 4]
  • change_pass: Wer das Passwort ändert will [default siehe Anmerkung 6]
  • change_locale: Voreingestellt ist “en_GB.UTF-8 UTF-8”. UTF-8 ist schon OK, aber spaßeshalber habe ich trotzdem mal “de_DE.UTF-8 UTF-8” gesetzt. Achtung, das Erzeugen der Liste und das Speichern dauern ein paar Sekunden!
  • change_timezone: “Europe”->”Berlin”
  • memory_split: Ändert das Verhältnis der Speicherzuweisung zwischen Hauptprozessor und Grafik. Bis auf Weiteres will ich keinen Desktop starten, deshalb wähle ich 240/16.
  • overclock: Will ich bis auf Weiteres nicht
  • ssh: (De-)Aktiviert SSH-Zugriff über’s Netzwerk. Klingt interessant, bis auf Weiteres aber deaktiviert
  • boot_behaviour: Desktop automatisch starten?
  • update: Erlaubt ein Update via Netzwerk.

Anmerkungen:

  1. “Finish” erreicht man über Pfeil links/rechts; danach wird man gefragt, ob man rebooten will.
  2. Mit ESC kann man den Config-Screen verlassen, und die bash öffnen – Achtung, dann wurde nicht gespeichert! Aber in der bash kann man das neue Tastaturlayout ausprobieren 🙂
  3. bash: Mit “sudo shutdown -r now” rebooted man, mit “sudo shutdown -h now” fährt man das System runter (Quelle). Auf der Default-Tastaturbelegung ist “-” auf dem deutschen “ß” 🙂
  4. bash: “sudo raspi-config” öffnet den config-screen erneut. Achtung: Man sollte später möglichst keine Einstellungen mehr ändern!
  5. bash: “df -h” zeigt die Partitionsgrößen an (Quelle)
  6. Default-Login ist “pi”/”raspberry”
  7. Der HDMI-Ausgang zeigt nur Bild, wenn das Kabel schon beim Booten angeschlossen war

Und last but not least: Neue Software kann man per apt-get installieren – wenn man LAN hat^^

Remap Caps Lock in OS X

Vorweg #1: Dieser Eintrag ist zu 100% geklaut von Mac OS X Hints! Aber ich muss das Prozedere unbedingt für mich selber backupen.

Vorweg #2: Ja, man kann Caps Lock auch in den Systemeinstellungen (Tastatur -> Sondertasten) ummappen – aber nicht beliebig.

Also: Man sollte Caps Lock erst mal mit Bordmitteln (siehe oben) auf irgendwas mappen, meinetwegen CTRL. Dann erscheint die Taste in der unten beschriebenen Datei, was die Arbeit erleichtert. Dann öffne man ein Terminal und:

  1. navigiere cd Library/Preferences/ByHost
  2. kopiere die Datei, die mit “.GlobalPreferences” beginnt, in’s eigene Homeverzeichnis: cp $FILE ~/keys-binary.plist
  3. konvertiere das Ganze in eine XML: plutil -convert xml1 -o ~/keys-xml.plist ~/keys-binary.plist
  4. öffne die XML, und suche nach com.apple.keyboard.modifiermapping
  5. Dort finde man ein Wertepaar*, bestehend aus HIDKeyboardModifierMappingSrc (=Tasten-ID) und HIDKeyboardModifierMappingDst (=ID der Zieltaste)
  6. Man ändere die Zuweisung nach eigenem Gusto, speichere, und konvertiere zurück: plutil -convert binary1 -o ~/keys-binary.plist ~/keys-xml.plist
  7. Man kopiere zurück: cp ~/keys-binary.plist $FILE
  8. und logge sich 1x aus.

Danach ist alles bene 🙂

*PS: Die Tasten-IDs lauten:

Caps Lock 0
Shift (Left) 1
Control (Left) 2
Option (Left) 3
Command (Left) 4
Keypad 0 5
Help 6
Shift (Right) 9
Control (Right) 10
Option (Right) 11
Command (Right) 12
Kernel Panic 16

PPS: Das Ganze unter Windows.

PPPS: Nein, ich weiß nicht, was “Kernel Panic” für eine Taste ist

OS X: Versteckte Dateien auf Knopfdruck anzeigen

Für OS X gibt es einen Terminal-Befehl, um versteckte Dateien anzuzeigen, den ich persönlich mir nie merken kann:

Außerdem gibt es noch das ominöse Tastenkürzel, um versteckte Dateien nur in Open- und Save-Dialogen sichtbar zu machen (WTF?):

CMD+Shift+.

Eine einfache Methode kenne ich nicht (korrigiert mich!). Allerdings gibt es da noch dieses Widget für’s Dashboard, das versteckte Dateien auf Knopfdruck anzeigt.

UPDATE für Lion: http://www.apfeltalk.de/forum/content/2354-liontweaks.html

OS X “Lion” nervt mit Trackpad Gesten

Vielleicht schreibe ich noch einen längeren Eintrag zum Thema Lion, mal sehen. Was mich aber akut extrem nervt(e), ist die Tatsache, dass Apple einfach Trackpad-Gesten gestrichen hat. Ich weiß nicht, wie ich die Hirnverbranntheit darin begreiflich machen soll, andererseits hat sich Apple noch nie um den gesunden Menschenverstand geschert, Stichwort Flash. Anyway: Die Lösung ist für’s erste BetterTouchTool. Dort sind übrigens auch (globale oder auf ein Programm begrenzte) Gesten für Maus, Tastatur und Apple Remote möglich!

OS X: Seitenleiste zurücksetzen

Manchmal passiert es, dass man manuelle Einträge in der OS X-Seitenleiste (rot markiert) nicht mehr löschen kann. Dann muss man ~/Library/Preferences/com.apple.sidebarlists.plist löschen und den Rechner neu starten (den Finder neu zu starten hat bei mir nicht gereicht)

Achtung: Dabei gehen auch alle Einstellungen der Seitenleiste verloren!

Firefox 4 an OS X-Optik anpassen

Pünktlich zum Launch von FF 4: Eine Anleitung zum Entfernen der Favicons, verschieben des Close-Buttons, Stylens der Adress-Bar und der Suche, etc:

das Ganze kommt nach

~/Library/Application Support/Firefox/Profiles/xxxxxxx.default/chrome/userChrome.css

via