Freedom Universal Keyboard² am Nokia N810

Bei der Nutzung der Bluetooth-Tastatur Freedom Universal Keyboard² am Nokia N810 Internet-Tablet fällt unschön auf, dass die Taste mit den Zeichen <, > und | nicht nutzbar ist. Die Eingabe von | ist damit über das BT-keyboard nicht möglich, wenn es unter Einstellungen/Steuerung/Bluetooth-Tastatur als „Generic 105-key PC“ Bluetooth Tastatur eingestellt ist.

Erste Abhilfe gibt die Einstellung als „Nokia SU-BW“. Man hat dann aber  mit verschiedensten Fehlbelegungen der Tastatur (Abweichung von der Beschriftung) zu kämpfen.

Die Dateien zur Konfiguration der X11-Tastatur-Eingabe sind unter /usr/share/X11/xkb/symbols/ zu finden.

Folgende Änderung macht das Keyboard der Beschreibung entsprechend nutzbar:

$ diff -c pc.orig pc
*** pc.orig    
--- pc  
***************
*** 34,40 ****
      key <LFSH> {      [ Shift_L       ]       };
      key <LCTL> {      [ Control_L     ]       };
      key <LALT> {      [ Alt_L,        Meta_L          ]       };
!     key <LWIN> {      [ Super_L                       ]       };

      key <RTSH> {      [ Shift_R       ]       };
      key <RCTL> {      [ Control_R     ]       };
--- 34,40 ----
      key <LFSH> {      [ Shift_L       ]       };
      key <LCTL> {      [ Control_L     ]       };
      key <LALT> {      [ Alt_L,        Meta_L          ]       };
!     key <LWIN> {      [ less, greater, bar, brokenbar                 ]       };

      key <RTSH> {      [ Shift_R       ]       };
      key <RCTL> {      [ Control_R     ]       };
$

Damit wird die Taste mit den Symbolen <, > und | von ihrer Bedeutung als Super-L(„Windows“)-Taste auf die gewünschte Interpretation umkonfiguriert.

Zusätzlich ist es nett, durch

$ diff -c de.orig de
*** de.orig     2009-01-26 09:14:28.000000000 +0100
--- de  2009-01-26 09:15:04.000000000 +0100
***************
*** 14,20 ****
      key <AE02>        { [         2,   quotedbl,  twosuperior,    oneeighth ] };
      key <AE03>        { [         3,    section, threesuperior,    sterling ] };
      key <AE04>        { [         4,     dollar,   onequarter,     currency ] };
!     key <AE11>        { [    ssharp,   question,    backslash, questiondown ] };
      key <AE12>        { [dead_acute, dead_grave, dead_cedilla,  dead_ogonek ] };

      key <AD03>        { [         e,          E,     EuroSign,     EuroSign ] };
--- 14,21 ----
      key <AE02>        { [         2,   quotedbl,  twosuperior,    oneeighth ] };
      key <AE03>        { [         3,    section, threesuperior,    sterling ] };
      key <AE04>        { [         4,     dollar,   onequarter,     currency ] };
! //    key <AE11>      { [    ssharp,   question,    backslash, questiondown ] };
!     key <AE11>        { [    ssharp,   question,    backslash, bar ]  };
      key <AE12>        { [dead_acute, dead_grave, dead_cedilla,  dead_ogonek ] };

      key <AD03>        { [         e,          E,     EuroSign,     EuroSign ] };
$

dafür zu sorgen, dass die Eingabe von Shift-AltGr-ß ein |-Zeichen (bar) erzeugt. Auf das Zeichen „questiondown“ kann meiner Meinung nach verzichtet werden.

Nettes Hilfswerkzeug für solche Dinge sind die auf dem N810 nicht vorhandenen X11-tools xev und xmodmap, die unter

http://maemo.lancode.de/?path=./diablo/binary

zu finden sind. Klar, dass all diese Dinge auch mit xmodmap zu erreichen sind, aber es fand sich nicht schnell eine Stelle, wo so ein xmodmap-command im system-startup zu verankern wäre. Die oben aufgezeigten config-changes werden jedoch einfach schon nach einem reboot wirksam.

Sonderzeichen vertical bar auf die Tastatur legen

Etwas unhandlich beim Nutzen des N810 Internet-Tablets mit deutscher Tastatur besonders als ssh-client zur Linux-Administration ist, dass das |-Zeichen (bar) nicht direkt zugänglich ist, sondern durch erst Drücken der Chr-Taste auf dem Bildschirm und dann noch erst nach scrollen des visuellen keyboards gedrückt werden kann.

Eine kleine Anpassung in der Datei

/usr/share/X11/xkb/symbols/nokia_vndr
$ diff -c rx-44.orig rx-44
*** rx-44.orig 
--- rx-44      
***************
*** 156,162 ****
      key <AC09>        {       [       l,              L,              parenright,     parenright      ]       };
      key <AC11>  {     [       udiaeresis,     Udiaeresis,     question,       question        ]       };

!     key <AB01>        {       [       y,              Y,              EuroSign,       EuroSign        ]       };
      key <AB02>        {       [       x,              X,              asciitilde,     asciitilde      ]       };
      key <AB03>        {       [       c,              C,              asterisk,       asterisk        ]       };
      key <AB04>        {       [       v,              V,              ampersand,      ampersand       ]       };
--- 156,163 ----
      key <AC09>        {       [       l,              L,              parenright,     parenright      ]       };
      key <AC11>  {     [       udiaeresis,     Udiaeresis,     question,       question        ]       };

! //    key <AB01>      {       [       y,              Y,              EuroSign,       EuroSign        ]       };
!     key <AB01>        {       [       y,              Y,              bar,    bar     ]       };
      key <AB02>        {       [       x,              X,              asciitilde,     asciitilde      ]       };
      key <AB03>        {       [       c,              C,              asterisk,       asterisk        ]       };
      key <AB04>        {       [       v,              V,              ampersand,      ampersand       ]       };
$

sorgt dafür, dass Fn-Y nach dem nächsten reboot statt dem €-Symbol ein |-Symbol schreibt. Das €-Zeichen ist nach wie vor über die Bildschirmtastatur (durch Chr einblendbar) verfügbar.

Thunderbird-Addons für “Profis”: Nostalgy

Teil 2 der Reihe Thunderbird Addons für Vielbenutzer

Mail, die man nicht archivieren möchte kann man einfach aus der Mailbox mit der Taste „D“ löschen und landet danach am Anfang der nächsten Email. Auf diese Art lässt sich eine volle Mailbox schnell duchlaufen und reduzieren. Leider geht das mit Mail, die man aufheben will nicht so leicht. Um Email zur Archivierung in Unterordner zu verschieben, muss man meist zur Maus greifen, was häufg lästig ist.

Mit dem Addon Nostalgy kann man auch diese Aufgabe bequem auf das Keyboard verlegen. Das lohnt sich insbesondere, wenn man viele Email bekommt, die man lediglich lesen und anschließend archivieren muss. (Die Möglichkeit, diese dann gleich per Filter in die passenden Ordner sortieren zu lassen, habe ich persönlich als nicht sinnvoll empfunden. Was bereits im Archivordner liegt liest man meistens gar nicht mehr…). „Thunderbird-Addons für “Profis”: Nostalgy“ weiterlesen

Wurmbefallenes Windows weiß waschen

Mit Schädlingsprogrammen befallene Windows-Systeme sind eine echte Pest. Auch im Uninetz tauchen solche Systeme immer wieder auf.

Die richtige Methode zur Problembehebung ist natürlich eine Neuinstallation. Leider gibt es aber auch Situationen, in denen das – zumindest temporär – nicht möglich ist. Hier wird man dann versuchen müssen, das System mit Hilfe von Virenscannern und Anti-Spyware-Programmen zu säubern. Angesichts der heutigen Vielfalt von Malware und der Frequenz, mit der immer neue Varianten erscheinen, hat man dabei jedoch häufig selbst bei der Verwendung mehrerer unterschiedlicher Programme schlechte Karten, wirklich alle unerwünschten Komponenten zu erwischen. Daß man dazu ein von Live-CD gestartetes Rettungssystem verwenden muß, ist ja ohnehin klar.

Eine weiteres Problem sind Hinterlassenschaften, die auch nach dem Löschen von als infiziert eingestuften Dateien zurückbleiben. Da wird dann beispielsweise die Windows-Firewall deaktiviert und eine Gruppenrichtlinie gesetzt, die ein einfaches Reaktivieren verhindert, oder die Einstellungen für die automatischen Updates von Windows werden unbrauchbar gemacht, so daß das System spätestens beim Entdecken der nächsten Windows-Sicherheitslücke gleich wieder infiziert werden kann.

Das häufigste Problem in dieser Hinsicht sind jedoch Manipulationen an den Netzwerkeinstellungen, um die Benutzer infizierter Rechner auf irgendwelche Phishing-Sites umzuleiten. Der Klassiker sind dabei sicherlich Manipulationen an der Datei %windir%system32driversetchosts. Da wurden dann gerne mal die Update-Server und Websites von Antivirenherstellern geerdet oder auch beliebte Angebote wie ebay.de umgeleitet. Diese Änderungen werden von Anti-Virus-Programmen mittlerweile aber meist erkannt. Sehr beliebt waren eine Zeit lang auch Eingriffe in den Netzwerkverkehr über Winsock-LSPs, wogegen aber zum Glück auch ein Kraut gewachsen ist. Inzwischen werden gleich ganz andere Geschütze aufgefahren.

Etwas weniger versiert, aber nach meiner Beobachtung derzeit weitaus weiter verbreitet, sind direkte Manipulationen an den Windows-eigenen Netzwerkverbindungen (also z.B. der „LAN-Verbindung“ oder der „Drahtlosen Netzwerkverbindung“). Da wird dann in den Eigenschaften von TCP/IP konfiguriert, daß zwar die IP-Adresse per DHCP bezogen werden soll, aber die Adresse des DNS-Servers wird manuell eingestellt – auf einen manipulierten DNS-Server der Phishing-Banden, versteht sich. Diese Vorgehensweise ist schon ziemlich clever: Bei einem einfachen ipconfig sieht alles OK aus, denn dort sieht man die Adresse des DNS-Servers nicht, und zunächst scheint im Netzwerk auch alles normal zu funktionieren. Nur die Webseiten, die man zu Gesicht bekommt, sind halt oft genug nicht die Originalseiten, sondern von den Phishern nachgemachte Seiten, bei denen die eingegebenen Paßwörter gestohlen werden. Statt eines einfachen ipconfig muß man also ipconfig /all verwenden und kontrollieren, ob die eingestellten DNS-Server die richtigen sind (im UKLAN sind das diese hier).

Natürlich gibt es noch viel mehr Dinge, die man auf einem einmal kompromittierten System kontrollieren müsste – von Backdoorprogrammen über Rootkits oder manipulierte Dienste bis zu geänderten Passwörtern oder neu angelegten Benutzerkonten. Die eingangs erwähnte Neuinstallation ist daher auf jeden Fall die beste Variante, die man wenn irgend möglich auch beherzigen sollte. Aber für die Fälle, in denen eben nicht neu installiert werden kann, sollte man zumindest die hier genannten Manipulationsmöglichkeiten kennen und überprüfen, ob Sie auf dem „gereinigten“ System vorliegen.

Thunderbird-Addons für „Profis“: Quicktext

Da es für Thunderbirds eine schier unübersichtliche Menge AddOns gibt, stelle ich mal die drei vor, die ich persönlich am wenigsten missen möchte:

Quicktext erlaubt es Antworten „aus der Dose“ direkt im Entwurfsfenster von Thunderbird einzufügen.

Wenn man konsequent immer wiederkehrende Antworten als Template abspeichert, spart man nach einer Weile eine ganze Menge Arbeit. Interessant ist hier auch das Feature, dass man in den Templates Variablen einfügen kann, an deren Stelle z.B. Namen des ursprünglichen Schreibers, Datum oder der Inhalt der Zwischenablage eingefügt werden kann.

Wie funktioniert das?

„Thunderbird-Addons für „Profis“: Quicktext“ weiterlesen

Python 3000 erschienen

Selten wurde das neue Release einer Programmiersprache so kontrovers diskutiert wie bei Python 3000 (auch „Py3K“ genannt). Und das hat seinen Grund, schließlich ist die neue Version in einigen häufig genutzten Bestandteilen inkompatibel zu den Vorgängern. Die Wandlung der „print“-Anweisung hin zur Funktion ist wohl das berühmteste Beispiel, aber darüber hinaus gibt es weitere wichtige Änderungen, u.a.:

  • viele Methoden und Funktionen liefern statt Listen nun Iteratoren oder „Views“ zurück (z.B. map, filter, dict.keys)
  • syntaktische Änderungen, z.B. beim Exception Handling („as“ statt Komma)
  • Unicode ist nun der Standard zur Zeichenkodierung (siehe das „Unicode-Howto“)
  • Divisionen liefern nun Fließkommazahlen, keine abgeschnittenen Integers
  • „old-style-classes“, also Klassen, die nicht von einer Basisklasse abgeleitet wurden, sind nicht mehr erlaubt
  • einige Funktionen und Methoden wurden umbenannt („raw_input“ wurde zu „input“) oder komplett entfernt („has_key“, „file“)
  • neue nützliche Helfer wie die „with“-Anweisung oder das „multiprocessing“-Paket sind hinzugekommen

Eine komplette Liste der Änderungen findet man unter: http://docs.python.org/dev/3.0/whatsnew/3.0.html. Zusätzlich sollte man beachten, dass die kürzlich erschienene Version 2.6 bereits einige Backports von Python 3000 beinhaltete, sofern diese kompatibel mit Python 2.x waren. Die (entsprechend langen) Release Notes zu Python 2.6 findet man unter: http://docs.python.org/dev/whatsnew/2.6.html

Wer seine bestehenden Skripte auf Kompatibilität zu Python 3000 prüfen möchte, kann dies unter Python 2.6 mit dem Kommandozeilenparameter „-3“ tun. Wer seine Skripte automatisch in Python 3000 portieren möchte, kann hierfür das Tool „2to3“ verwenden. Häufig ist manuelles Nacharbeiten aber dennoch erforderlich.

Passwortmanager in Browsern sind unsicher

Heise berichtet über einen Browser-Test mit erschreckenden Ergebnissen. Ich habe den Test selbst mit Safari und Firefox 3 durchgespielt. Wenn man das sieht, sollte man eigentlich auf die Verwendung dieser Manager verzichten. Andererseits verwende ich viele unterschiedliche Passwörter (auch aus Sicherheitserwägungen) und kann mir kaum für jede Website das jeweilige Passwort merken …
Man muss hoffen, dass die Browserhersteller hier reagieren.

Logfiles: zeitliche Verteilung von Fehlern schnell sichtbar machen.

Ein schnelle Kommando-Sequenz, die bei der Analyse von Logfiles nützlich sein kann:

Taucht eine Fehlermeldung (oder eine ungewöhnliche Meldung) im Logfile auf, dann ist die Frage wie die zeitliche Verteilung dieser Fehler aussieht:

grep $SUCHBEGRIFF /var/log/$LOGFILE | cut -c 1-9 | uniq -c

ergibt eine Ausgabe in der in der ersten Spalte die Anzahl der Vorkommnisse und in dahinter Datum und Uhrzeit stehen. Damit kann man schnell überblicken, ob der Fehler sporadisch auftritt oder zu einer Uhrzeit gehäuft. Je nach Wahl der Cut-Grenzen, kann man in Stunden- oder auch 10-Minuten Intervallen schauen.

Perl und Unicode

Obwohl ich eigentlich ganz gut verstehe, wie Unicode in seinen verschiedenen Ausprägungen funktioniert, war mir (und ist zum Teil noch) ein Rätsel, wie Perl damit umgeht. In der Vergangenheit hatte ich vornehmlich das Problem, dass Skripte obskure Unicode-Fehlermeldungen an Stellen produzierten, an denen ich garantiert nicht mit Unicode arbeiten wollte. Ursache ist die Verwendung eines Unicode-Locales unter Linux, z.B. das bei uns standardmäßig eingesetzte „de_DE.UTF-8“. Dafür benutze ich seit einiger Zeit diesen Quickfix:

if (defined $ENV{"LANG"}) {
exec 'env', 'LANG=C', $0, @ARGV unless $ENV{"LANG"} eq "C";
}

Damit wird das Skript garantiert im Locale „C“ ausgeführt.

Jetzt hatte ich zum ersten Mal eine Situation, in der ich wirklich Unicode benutzen wollte. Es ging darum, Umlaute im Input in die Umschreibung „ae“ etc. umzuwandeln. Mein erster Versuch dafür war grundsätzlich richtig:

$input =~ s/ä/ae/g;

Das funktionierte aber nicht, d.h. die Umlaute blieben erhalten. Nach etwas Suchen habe ich gefunden, dass man das Pragma utf8 setzen muss, wenn solche Zeichen im Skripttext auftauchen. So funktioniert es also:

use utf8;

$input =~ s/ä/ae/g;

NB: das setzt voraus, dass das Skript mit einem UTF8-fähigen Editor geschrieben und gespeichert ist.