Rubrik-Archiv „Merkblätter“

Raspberry Pi, Edimax EW-7811Un und ein verstecktes WLAN

28.11.2012 Linux, Merkblätter 2 Kommentare

Die Kombination aus Raspberry Pi und dem Nano-WLAN-Stick EW-7811Un von Edimax ist sehr beliebt, weil letzterer mit seiner wirklich kleinen Bauform nicht zu sehr aufträgt und somit gut zum RasPi passt. In den aktuellen Raspbian-Images ist zudem der passende Treiber bereits enthalten, weshalb der WLAN-Adapter direkt „out-of-the-box“ erkannt wird. Die Einrichtung des WLANs ist dann auch eigentlich nicht mehr so schwierig, wenn man die entscheidenden Kniffe kennt. Der Knackpunkt bei mir war, dass sich der RasPi nicht mit dem verstecken WLAN verbinden wollte. Weil ich die Lösung etwas länger suchen musste bzw. der letzte essentielle Hinweis fehlte, möchte ich sie hier gleich mal dokumentieren.

Mit den folgenden Zeilen in der Konfigurationsdatei für die Netzwerkschnittstellen „/etc/network/interfaces“ teilen wir dem System mit, wie und in welches WLAN es sich einbuchen soll.

# /etc/network/interfaces
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "SSID-des-WLANs"
wpa-proto RSN
wpa-pairwise CCMP
wpa-key-mgmt WPA-PSK
wpa-psk "Geheimes-Passwort"

Hier sind insbesondere die beiden Optionen „wpa-ap-scan 1“ und „wpa-scan-ssid 1“ wichtig, damit das Anmeldungen beim WLAN mit verstecker SSID auch wirklich funktioniert. Nachdem man die Änderungen gespeichert hat, kann man die WLAN-Schnittstelle neu starten oder aber man startet einfach den ganze RasPi neu. Der entscheidende Tipp kam übrigens aus diesem Thread im Raspberry Pi Forum.

Saubere URLs I: Aber sicher doch!

17.12.2009 Merkblätter, Netz und Web Kommentieren

Saubere URLs gehören längst zum guten Ton. Zwar werden diese vom „Otto-Normal-Nutzer“ während des Surfens meist gar nicht wahrgenommen, der Vorteil von:
http://www.example.com/de/products/productname-12/details gegenüber:
http://www.example.com/index.php?section=products&show=details&id=12&lang=de wird aber spätestens bei der Verwendung in E-Mails, SMS oder auf Papier deutlich. Selbst dem ein oder anderen Internetausdrucker dürfte hierbei auffallen, dass es eben auf die Länge und die Technik ankommt.

Neben rein ästhetischen und die Optimierung für Benutzer und Suchmaschinen betreffenden Aspekten können saubere URLs auch einen gewissen – wenn auch geringen – Sicherheitsvorteil gegenüber Ihrem Pendant im 90er-Jahre-Stil bieten. Letzterer liefert gegebenenfalls schneller Informationen über den internen Aufbau der Web-Applikation und bietet somit einen zusätzlich Ansatzpunkt für Angriffe, sofern entsprechende Schwachstellen in der Anwendung existieren. So könnte, hinter den oben genannten Beispiel-URLs die gleiche Anwendung laufen, allerdings geht nur aus der zweiten Adresse hervor, dass es sich um eine PHP-Anwendung handelt (Das Wissen über die verwendete Skript- oder Programmiersprache ermöglicht unter Umständen grundlegende Annahmen über den Aufbau der Applikation und könnte daher für einen Angriff relevant sein.). Darüber hinaus offenbart die zweite URL-Adresse über die GET-Parameter gegebenenfalls die Namen der verwendeten Variablen und zum Teil auch deren Funktion innerhalb der Applikation. Sofern im ersten Beispiel die expose_php-Direktive in der php.ini deaktiviert ist, lässt sich ohne Weiteres nicht herausfinden, dass PHP im Spiel ist und ein Rückschluss auf Variablennamen ist nicht möglich.

Sicherlich handelt es sich hierbei nur um „Securiy through obscurity“ und den Daten die vom Benutzer kommen – also neben Cookies und POST-Daten auch den GET-Parametern – sollte man grundsätzlich mit dem nötigen Misstrauen begegnen. Eine zusätzlich Hürde für potentielle Angreifer kann jedoch nie schaden.

Nach diesem mehr oder weniger allgemeinen Vorgeplänkel, schneidet der zweite und letzte Teil der Kurzreihe mögliche Sicherheitsvorteile bei der Verwendung von mod_rewrite im Gegensatz zu einer PHPRewrite-Engine an und setzt sich mit der Frage auseinander, an welcher Stelle in der Webapplikation das Umschreiben der URL denn eigentlich stattfinden sollte.

Lange Zeilen mit einem Shell-Befehl umbrechen

24.10.2009 Linux, Merkblätter Kommentieren

Grade was die Bearbeitungen von Textdateien angeht, gibt es wohl kaum etwas, was man nicht mit einem mehr oder weniger einfachen Shell-Befehl erledigen könnte. Wenn man allerdings erst nach dem Durchbruch der grafischen Benutzeroberfläche die Vorteile von Linux zu schätzen gelernt hat (also wie ich, noch nicht alle der gefühlt fünf Milliarden Befehle kennt), fällt einem auch oft genug nicht sofort das passende Suchwort ein, welches zum entsprechenden Befehl und dessen Beschreibung in den manpages führt. Gut, wenn man nach erfolgreicher Suche die Beschreibung dann für später einfach in seinem Blog ablegt.

NAME
  fold - Jede Eingabezeile an bestimmter Stelle umbrechen

ÜBERSICHT
  fold [OPTION]... [DATEI]...

BESCHREIBUNG
  Brich Eingabezeilen jeder DATEI um (Voreinstellung
  Standardeingabe), gib das Ergebnis auf Standardausgabe
  aus.

  -b, --bytes
    zähle Bytes anstatt Spalten

  -s, --spaces
    Umbruch bei Leerzeichen

  -w, --width=BREITE
    benutze BREITE Spalten anstatt 80

  --help
    gib eine kurze Hilfe aus und beende das Programm

  --version
    gib Versionsinformation aus und beende das Programm

In diesem Fall habe ich den Befehl übrigens für die Aufbereitung von Dummy-Texten benötigt, mit denen ich anschließend die Performance der Indexgenerierung der LuceneImplementierung des Zend-Frameworks in Zusammenhang mit einem Projekt getestet habe. Dazu habe ich Texte des Project Gutenberg von Sonderzeichen und Leerzeilen befreit, um sie anschließend in die Datenbank zu importieren.

Für die Entfernung von Sonderzeichen und Zeilenumbrüchen, eignet sich im Übrigen der Befehl „tr“. So lassen sich zum Beispiel alle Zeilenumbrüche wie folgt entfernen (also durch Leerzeichen ersetzen):

tr \\n ' ' < in.txt > out.txt

Im Gegensatz zu grafischen Editoren, wie gedit oder Geany, die etwas zäh oder unerwartet reagieren, bekommt man auch keine Probleme, wenn sich der Inhalt einer mehreren Megabyte großen Textdatei in einer einzelnen Zeile befindet.

Es wird übrigens wirklich Zeit, dass die eBook-Hardware ihren Kinderschuhen entwächst. Die freien elektronischen Bücher des Project Gutenberg sind nämlich eigentlich viel zu schade, um sie als Dummy-Texte zu missbrauchen. Zumal viele bereits im EPUB-Format vorliegen.

MX Revolution unter Jaunty Jackalope

23.04.2009 Linux, Merkblätter Kommentieren

Nachdem es beim Upgrade von Hardy Heron zu Intrepid Ibex wesentliche Änderungen gab, was die Einrichtung von Komfortmäusen wie der MX Revolution angeht, darf – trotz der vermeintlichen Hiobsbotschaft, dass sich bei Ubuntu 9.04 alias Jaunty Jackalope wieder etwas geändert habe – erfreut festgestellt werden, dass alles beim alten geblieben ist. Bedeutet, dass der hier beschriebene Workaround weiterhin funktioniert und auch das Distributionsupgrade überlebt.

Auch wenn der beschriebene Weg recht gut funktioniert und mit ein wenig Übung wahrscheinlich sogar schneller erledigt ist, als den proprietären Treiber unter einem proprietären Betriebssystem zu installieren und dieses anschließen auch noch neu zu starten, ist es dennoch wünschenswert, dass die Unterstützung zeitgemäßer Mäuse ein Standardfeature moderner Linuxdistributionen wird. Diesem Anliegen sollte man zum Beispiel bei Ubuntu Brainstorm Nachdruck verleihen, indem man für die entsprechende Idee abstimmt.

Da es viel einfacher ist sich ein Feature zu wünschen, als es in die Realität umzusetzen, möchte ich an dieser Stelle allen Linux- und den ganzen anderen Open-Source-Entwicklern für ihre hervorragende Arbeit danken.

MX Revolution unter Intrepid Ibex

14.11.2008 Linux, Merkblätter 10 Kommentare

Die folgenden – für Nicht-Mauspuristen – unschönen Worte findet man seit dem 14. September auf der ehemaligen Entwicklerseite von btnx.

… Ubuntu Intrepid Ibex, which is to be released in October, breaks the foundations that btnx was built on. It seems that the kernel input event pipes can no longer be read. It is most likely related X.Org v.7.4. This means I will stop all development of btnx. …

War die Button-Extension von Olli Salonen damals noch der anwenderfreundliche Mausdompteur, zwingt einen nun das Release der neusten Ubuntu-Version 8.10 alias Intrepid Ibex zur Suche nach alternativen Möglichkeiten. Abgesehen davon, dass diese Alternativen bei weitem nicht so komfortabel sind wie btnx, haben sie auch den ein oder anderen Nachteil. Um die Funktionalität meiner MX Revolution, die ich mit btnx erreicht habe, auch unter Intrepid Ibex herzustellen, habe ich einige der Möglichkeiten kombiniert und nachfolgend zusammengefasst (damit ich später nicht danach suchen muss):

Desktopwürfel mit der Daumenwippe drehen

Erfreulicherweise erkennt Ubuntu 8.10 die Daumenwippe der MX Revolution. Wie sich mit Hilfe von xev herausfinden lässt, wird das Bewegen der Wippe nach Vorne als Button13 und nach Hinten als Button15 erkannt. Über den CompizConfig-Einstellungs-Manager (compizconfig-settings-manager aus den universe-Paketquellen) können dann beim „Rotate Cube“-Plugin die Buttons für die beiden Drehrichtungen festgelegt werden. Da hier nur bis Button9 ausgewählt werden kann, muss die Eingabe über die Edit-Schaltfläche vorgenommen werden.

Laufverhalten des Scrollrads

Zu meinem Erstaunen ist die Funktionalität des Scrollrades standardmäßig so wie ich es haben möchte. Das Scrollrad schaltet ab einer gewissen Geschwindigkeit automatisch in den Freilauf. Wenn es sein muss, lässt sich allerdings über das, auch in btnx integrierte, Tool revoco, das Verhalten des Scrollrads noch weitreichender steuern. So kann, neben unterschiedlichen Geschwindigkeiten abhängig von der Drehrichtung oder der Festlegung einer anderen Maustaste für den Wechsel zwischen freiem und „gerastertem“ Lauf, seit Version 0.5 auch der Batteriestatus abgefragt werden.

Suchtaste als mittlere Maustaste

Da sich die Suchtaste leichter drücken lässt als das Mausrad, ist es bei MX Revolution-Besitzern beliebt, die Suchtaste als mittlere Maustaste zu nutzen. So auch bei mir. Um dies zu erreichen, muss in einem ersten Schritt die Tastenbelegung für Suchen gelöscht werden, da sich sonst die Tracker Suche öffnet, wenn die Suchtaste betätigt wird. Dies lässt sich leicht über System » Einstellungen » Tastenkombinationen bewerkstelligen.

Anschließend werden die Programme xbindkeys aus dem gleichnamigen Paket und xte aus dem Paket xautomation benötigt. Mit dem üblichen „sudo apt-get install xbindkeys xautomation“ ist das auch schnell erledigt. Nun muss noch eine entsprechende Konfigurationsdatei namens .xbindkeysrc im Heimatverzeichnis des Benutzers angelegt und mit dem richtigen Inhalt gefüllt werden. Sofern keine anderen Einstellungen vorgenommen werden sollen, enthält die Datei die folgenden zwei Zeilen:
"xte 'mouseclick 2'"
  c:0xE1

Die erste Zeile gibt an, welches Programm ausgeführt werden soll (in unserem Fall soll das Programm xte einen mittleren Mausklick simulieren) und in der zweiten Zeile wird die auslösende Taste angegeben (Der obige Hexcode steht dabei für die Suchtaste). Mit „xbindkeys -n -v“, lässt sich die Konfiguration testen. Der Parameter „n“ teilt xbindkeys dabei mit, dass es nicht im Hintergrund gestartet werden soll und mit „v“ wird auf den gesprächigen Verbose-Modus umgeschaltet. Läuft mit der vorgenommenen Einstellung alles zufriedenstellend, sollte man für xbindkeys noch einen Autostarteintrag anlegen (diesmal ohne Parameter), was leicht über System » Einstellungen » Sitzungen zu realisieren ist.

Fazit

Es ist zwar etwas Handarbeit notwendig, aber Ubuntu 8.10 bringt bereits viele Voraussetzungen mit, die für die Konfiguration der MX Revolution notwendig sind. Die Daumentasten für „Vor“ und „Zurück“ im Browser funktionieren übrigens out-of-the-box. Der Workaround für die Suchtaste lässt sich auch verschmerzen, wenn man davon ausgeht, dass man die Einrichtung nicht täglich vornehmen muss. Dennoch sollte dies nicht davon abhalten, bei Ubuntu Brainstorm für eine vernünftige Unterstützung zeitgemäßer Komfortmäuse abzustimmen.

(e)ps-Dateien für pdfLaTeX aufbereiten

16.04.2008 Merkblätter 1 Kommentar

Will man in seinen LaTeX-Dokumenten Vektorgrafiken im (e)ps-Format verwenden und das Dokument mit pdfLaTeX direkt als PDF ausgeben, hat man das Problem, dass pdfLaTeX nicht mit (e)ps-Dateien umgehen kann. Um die Grafiken dennoch nutzen zu können, muss man sie vorher in PDFs umwandeln. Neben der einer manuellen Konvertierung per Ghostscript, bei der in einem ersten Schritt die Größe der Ausgangsdatei ermittelt:

gs -q -dNOPAUSE -sDEVICE=bbox input.eps -c quit

und anschließend mit diesen Informationen die Datei mit den richtigen Abmessungen ins Zielformat:

gs -q -dNOPAUSE -sDEVICE=pdfwrite -dDEVICEWIDTHPOINTS=400 -dDEVICEHEIGHTPOINTS=300 -dAutoRotatePages=/None -sOutputFile=output.pdf input.eps -c quit

konvertiert wird, gibt es auch das nette Kommandozeilen-Tool epstopdf, das direkt in der richtigen Größe konvertiert. Bei Ubuntu Gutsy Gibbon befindet sich epstopdf im Paket texlive-extra-utils. Durch das Einbinden des gleichnamigen Packages über

\usepackage{epstopdf}

kann die Konvertierung von eingebundenen eps-Dateien auch automatisch während des Übersetzungsvorgangs des LaTeX-Dokuments erfolgen. Sofern man die Grafik aber nicht ständig ändern muss, spart man durch einmaliges Konvertieren und Einbinden des fertigen PDFs bei jedem Übersetzungsvorgang Zeit.

Zum Seitenanfang