Disclaimer: Ich habe nicht viel Erfahrung am Mac. Wenn ich Quatsch schreibe, bitte berichtigt mich.

Einstellungen für US-PC-Tastatur

Einstellungen für US-PC-Tastatur

Ich versuche jetzt schon seit einer ganzen Weile, mich mit den Eigenarten eines Macbooks zu arrangieren. Einer der größten Störfaktoren dabei war die Tastatur. Nicht nur weil ich sonst an US-Layout gewöhnt bin. Die alten Apple-Tastaturen (nicht die ganz alten, aber wenn ich mein Extended II anschließe muss ich befürchten daß die Putzfrau das entsorgt :-) ) haben ein brauchbares Layout aber nicht die beste Bedienung, bei den neueren hat sich ein Designer offenbar viel Mühe gegeben um die Nachteile von Laptop und Desktop zu kombinieren. Die Reaktion der Tasten ist durchaus OK, aber Form und Layout haben nicht ansatzweise was mit Ergonomie zu tun.

Nun denn: ich habe jetzt eine ordentliche Tastatur angeschlossen. Ohne Ziffernblock, dafür aber mit ordentlicher Mechanik und US-Layout.

Ab Werk kann OS X leidlich damit umgehen. Dass die Alt- und die Kommando-Taste (auch Apfel-, Windows- oder Propeller-Taste) nicht dem Mac entsprechen stört mich nicht. Wohl aber dass ich keine Power-Taste habe. Die braucht man um den Bildschirm zu sperren. Und ich würde manchmal auch gerne weiterhin Umlaute schreiben können. Unter Linux habe ich dafür die Compose-Taste, das ist perfekt. Kann der Mac das auch?

Naja, Lösung für mein Problem — und der Grund für diesen Beitrag — ist vorerst das Tool Karabiner. Das scheint sehr mächtig zu sein, aber ich finde es auch sehr unübersichtlich. Da ich jetzt schon zwei Mal rausgesucht habe wie ich meine Forderungen damit umsetzen kann habe ich die richtigen Einstellungen mal hier als Screenshot hinterlegt. Jetzt ist die Pause-Taste (rechts neben Scroll-Lock) meine Power-Taste, und in Verbindung mit Alt kann ich bei Bedarf Umlaute schreiben.

Erwähnt hatte ich dieses Projekt schon mal, es stammt vom November 2012. Aus mir nicht nachvollziehbaren Gründen habe ich es aber nie vorgestellt. Das reiche ich hiermit nach.

Dass ich ein ausgeprägtes Interesse an Tastaturen habe muss ich hier wohl nicht nochmal betonen. :-)

So finden sich in meiner Sammlung auch zwei ältere Apple-Tastaturen. Zum einen ist da ein — tatsächlich ganz ordentliches — Apple Extended Keyboard II. Gebaut wurden die von 1990 bis 1994, und Enthusiasten zufolge ist das die beste Tastatur die Apple je verkauft hat, sicherlich nicht zuletzt weil da anständige Alps-Schalter drin sind.

Noch origineller — und in meinen Augen ein typisches Apple-Produkt — ist das Apple Adjustable Keyboard von 1993. Typisch Apple? Wie gesagt, in meinen Augen: sie war teuer, und vor allem ist das Aussehen wichtiger als die Benutzbarkeit. Pfeiltasten gibt es zur Not noch ohne die kleine Erweiterung, aber ich persönlich würde weder auf Funktionstasten noch auf Navigationstasten (Anfang, Ende, Seite hoch, Seite runter) verzichten wollen. Und hat man die Erweiterung angeschlossen muss man schon einen ziemlich langen Arm machen um zur Maus zu greifen… :-/

Wie auch immer: ausprobieren wollte ich beide, und da ich selbst bei der Arbeit keinen Zugriff auf einen Rechner habe an dem die funktionieren würden — Apple hat den Apple Desktop Bus 1999 sterben lassen — musste ein Konverter her. Sowas kann man kaufen. Muss man aber nicht.

Dank eines japanischen Entwicklers der auf geekhack.org als hasu bekannt ist, auf Github als tmk. Der hat die TMK Keyboard Firmware Collection veröffentlicht. Das ist eine Firmware die auf verschiedenen AVR-basierten Plattformen lauffähig ist, in erster Linie ist das wohl der Teensy 2.0. Die Firmware kann verschiedene Tastatur-Protokolle sprechen. In die eine Richtung natürlich USB, für den Anschluss an einen modernen Rechner. In die andere Richtung unter anderem PS/2, Sun, oder eben Apple Desktop Bus. Dabei bietet die Firmware eine Reihe von Features mit denen man auch alten Tastaturen programmierbare Makros, Media-Tasten oder Maussteuerung beibringen kann.

Leider hatte ich keinen Teensy zur Hand. Wohl aber die Teile um was kompatibles zu bauen, sowie die Ausstattung um eine passende Platine zu ätzen. Also erstmal KiCad angeworfen und ein minimales Schaltbild, sowie ein Platinenlayout gezaubert:

(Die Dateien die dabei entstanden sind bräuchten etwas Pflege, daher veröffentliche ich die hier nicht. Aber mit den beiden Bildern dürfte es nicht schwer sein das bei Bedarf nachzuvollziehen.)

ADB USB Konverter

ADB USB Konverter

Das Resultat ist mit etwa 2x5cm wirklich winzig geworden, aber: es funktioniert!

Mit einem gekauften Konverter hätte man vielleicht auch die Maus benutzen können, aber mal ehrlich: da zieht wohl auch ein hartgesottener Fanboy was modernes ohne Kugel vor. Obwohl: ich hatte vor einer Weile die Gelegenheit mal etwas mit System 7.5 (dem zeitgenössischen Betriebssystem für die beiden Tastaturen) rumzuspielen, und da hat das Adjustable Keyboard deutlich zur Authentizität beigetragen… :-D

Diesen Text habe ich aus dem alten CMS kopiert, ich glaube er war von 2004. Hier nur nochmal damit er nicht vollends verloren geht.

Hierbei handelt es sich um ein Gerät aus eigener Fertigung. Ich habe es im Jahr 2000 gebaut. Im Prinzip geht es um eine Schaltung, die ein Blitzgerät auslösen kann. Und zwar gesteuert durch eine Lichtschranke oder wahlweise ein Mikrofon.

Man kann mit diesem Gerät Vorgänge fotografisch einfrieren, für die das menschliche Auge zu träge beziehungsweise die Reaktionszeit des Fotografen und der Kamera zu lang ist. Das geht indem man den Verschluß der Kamera in einem abgedunkelten Raum öffnet, und einen Foto-Blitz durch diese Schaltung auslösen läßt. Mit einer Belichtungszeit von bis zu einer 100.000stel Sekunde kann der Blitz das Geschehen einfrieren, die Kamera sieht nur den Moment in dem der Blitz leuchtet.

Als sehr Hilfreich in Verbindung mit dieser Technik hat sich der Einsatz einer Digitalkamera erwiesen. Bei meinen ersten Versuchen (‚Ein Keks fällt in eine Schale Milch‘) hatte ich die noch nicht, an dem Abend sind von 36 analogen Aufnahmen etwa sieben Stück ‚was geworden‘.

Was kann es?

Eine Münze fällt in eine Schale mit Wasser

Eine Münze fällt in eine Schale mit Wasser

Es kann wie gesagt durch einen optischen oder akustischen Impuls einen Blitz auslösen. Der optische Impuls wird durch eine Lichtschranke, bestehend aus einem Laser (aus einem Laserpointer) und einer Fotozelle, erfaßt. Der akustische Impuls durch ein Mikrofon.

Die beiden Sensoren verfügen über jeweils eine Empfindlichkeitsregelung. Den optischen Kreis kann man wahlweise direkt steuern lassen, oder über eine Verzögerungsschaltung. So kann der Blitz auch einen Moment nach dem Unterbrechen der Lichtschranke gezündet werden.

Die Auswahl der möglichen Motive ist grenzenlos. Klassische Fälle für die Lichtschranke sind Gegenstände die in Flüssigkeiten fallen, oder die Flüssigkeiten an sich wenn sie durch den Laser plätschern. Mit dem Mikrofon lassen sich zum Beispiel platzende Luftballons oder Glühbirnen ablichten.

Warum?

Ich weiß gar nicht mehr, wie ich damals dazu gekommen bin dieses Gerät zu bauen. Sicher ist nur, daß es eine Anregung aus dem Internet war.

Auf der HiViz-Seite gibt es eine Bauanleitung für Hochgeschwindigkeits-Equipment. Ich habe diese als Anregung genommen, mit ein paar Schaltungen aus den 30x-Büchern (Elektor) verfeinert, und das Ergebnis in ein schickes Gehäuse eingebaut. Letzteres hauptsächlich um meine Verbrechen an der Leiterplatte zu vertuschen… ;-)

Ich habe tatsächlich mehrere Tage mit mir gerungen, aber ich fürchte dass die Vernunft gesiegt hat: ich werde mir wohl keinen PiDP-8/I kaufen. Nicht weil ich keinen haben wollen würde. Einfach weil ich in letzter Zeit eine Menge andere Ideen für Spielzeug habe, und (leider?) sind die meisten anderen sinnvoller… :-(

Was es ist? Nüchtern betrachtet ist PiDP-8/I ein Gehäuse für den Raspberry Pi.

Mit etwas mehr Enthusiasmus ist es die Replik eines Bedienteils einer Digital PDP-8, so wie sie in den sechziger Jahren eingesetzt wurde. Einschliesslich der Kippschalter und der Blinkenlights die seinerzeit für die Inbetriebnahme der PDP gebraucht wurden. Und da es einen offenbar brauchbaren Emulator für den Raspberry gibt kann man mit dem Gehäuse tatsächlich erfahren wie es gewesen ist so einen Rechner zu bedienen — wenn man davon absieht dass Programme vom USB-Stick geladen werden statt von einem Lochstreifenleser… :-)

Ich muss nicht erwähnen dass ich ein Faible für Emulatoren habe. Oder dass ich auch gerne mal auf ungewöhnlicher Hardware programmiere. Wie gesagt: ich habe wirklich mehrere Tage gebraucht um mich von dem Kauf abzuhalten…

Wer mir etwas zu Weihnachten schenken möchte — und das möchten die wenigsten — könnte zum Qwerkywriter greifen. Ich wüsste zwar nicht wo ich so ein Ding ernsthaft einsetzen könnte, aber die Idee finde ich saucool — und nett umgesetzt… :-)

Captain Picard wird in Star Trek: das nächste Jahrhundert als der Inbegriff der Weisheit dargestellt. Das ist mir Gestern wieder in der Folge Der Pakt mit dem Teufel aufgefallen:

Data, from your own experience of performing Ebenezer Scrooge, you’re aware how fear can be a very powerful motivator. […] And in the hands of a con artist, fear can be used to motivate obedience, capitulation, the exploitation of innocent people. And that is what I believe has happened here.

Ich hab’s nochmal in der deutschen Synchro nachgehört:

Data, mit Ihrer Erfahrung den Ebenezer Scrooge darzustellen wissen Sie dass Furcht ein sehr mächtiger Beweggrund sein kann. […] Und in den Händen einer Hochstaplerin kann Furcht dazu benutzt werden um Gehorsam, Kapitulation, die Ausbeutung von unschuldigen Menschen zu erzwingen. Und ich glaube das passiert hier.

Die Folge ist von ’91, und jeder mag für sich entscheiden ob und wie der Satz in die Heutige Zeit passt. TNG ist und bleibt für mich die beste Star Trek Serie.

EDIT: „Hochstaplerin“ hat Picard gesagt weil es in der Serie um eine Frau ging. Gestern habe ich nur den O-Ton gehört, und der hat mich beeindruckt obwohl der Satz da geschlechtsneutral ist.

Fortschritt durch pkill

Fortschritt durch pkill

Letztes Wochenende habe ich wieder mal ein ISO-Image auf eine SD-Karte geschrieben, wie üblich an der Kommandozeile mit dd. Es ging um ein größeres Image, also hatte ich eine Menge Zeit um mich darüber zu ärgern dass ich den Fortschritt nicht sehe.

Heute habe ich einen Tweet gesehen der sagt dass man da in Zukunft eine Option für haben wird. Aber da wurde auch ein Workaround erwähnt den ich noch nicht kannte: mit pkill -USR1 dd kann man dem laufenden Prozess ein freundliches Signal schicken, daraufhin spuckt der seinen aktuellen Fortschritt aus. Wie das aussieht zeigt der Screenshot.

Fortschritt durch Tunnel

Fortschritt durch Tunnel

Eine andere Möglichkeit — optisch schicker, aber man das Tool ist nicht überall installiert — stellt der Pipe Viewer (pv) dar. Da teilt man sein dd auf zwei Kommandos auf und setzt das pv dazwischen.

Technisch ist das vielleicht nicht der optimale Weg, nett ist aber dass man damit universell Pipes überwachen kann, nicht nur für dd. Die Manpage hat ein paar interessante Beispiele.

Eine interessante kleine Aufgabenstellung: ein Skript hat versehentlich tausende von Dateien mit einer verkehrten Extension generiert. Alle Dateien heissen .jpgjpg statt einfach nur .jpg. Gestandene Shell-Benutzer reparieren sowas natürlich mit einem formschönen Einzeiler. Das ist einfach, und eigentlich lohnt es sich nicht da lange drüber nachzudenken. Es sei denn man kommt auf die Idee, das zeitlich zu optimieren…

Im konkreten Fall — es geht um etwa 6000 Dateien — dauert die Optimierung länger als das was an Laufzeitgewinn rauskommt. Wenn wir also schon keine Zeit gewinnen, dann wenigstens Erkenntnis. :-)

Also, mein erster Ansatz ist es intuitiv, alle Dateien zu suchen, für jede Datei den neuen Namen festzulegen und dann umzubenennen. Machen wir eine Trockenübung bei laufender Stopuhr:

Das führt zu einer Laufzeit von erstaunlichen 21,443 Sekunden!

Halbwegs moderne Shells wie die Bash beherrschen Stringmanipulation, dazu muss man nicht zwingend auf sed zurückgreifen. Im TLDP steht wie es geht, so finde ich dort unter ‚Substring Removal‘ den richtigen Ansatz:

Das drückt die Zeit für die gleichen Testdaten schon auf 0,811 Sekunden. Soweit ich weiss haben wir uns damit zwar einen Bashismus eingehandelt, aber das ist heutzutage vielleicht schon egal.

Wenn wir aber schon Kompatibilität aufgeben können wir — schliesslich sind wir in einer hochmodernen Zsh — gleich in die Vollen gehen:

Ich habe noch nie rekursives Globbing (die zsh-lovers-Manpage hat mir verraten wie das geht) benutzt, aber nach nur 0,165 Sekunden war klar: es funktioniert. :-)

Oh, da man hier auch denken könnte dass das Betriebssystem den Dateibaum cached: nein, das ist nicht so. Wenn ich die Einzeiler mehrfach absetze, auch in anderen Reihenfolgen, kommen immer wieder vergleichbare Ergebnisse raus.

Da die effizienteste Methode auch gleichzeitig die am schnellsten zu tippende ist denke ich, dass die — wenn ich auswendig gewusst hätte wie das geht — in jeder Hinsicht die erste Wahl gewesen wäre. Aber ich kenne mich: wenn ich das ein paar Tage nicht benutze muss ich erst wieder recherchieren. Und dann falle ich doch wieder auf das bewährte sed zurück…

Ich habe beim Relaunch der Schatenseite einige Beiträge aus dem alten Typo3-CMS übernommen. Da die Inhalte vermutlich nicht mehr allzu aktuell sind, sie aber doch nicht ganz verloren gehen sollen, habe ich sie chronologisch halbwegs korrekt in den Blog kopiert.

Vielleicht interessiert es ja wen, hier ist eine Liste:

Ein paar andere Texte der alten Schatenseite konnte ich nicht einsortieren, da sie älter sind als der Blog. Die werden dann einfach demnächst neu veröffentlicht.