BitNotice #16 – XMPP statt WhatsApp unter Android

BitNotice #16 - XMPP statt WhatsApp unter Android

(23 MB) 00:17:15

2014-02-27 21:45 🛈

Schon in meiner Ranttime hatte ich erwähnt, dass XMPP (Jabber) als freies und dezentrales Protokoll aus technischer Sicht wesentlich abhörsicherer, leistungsfähiger und ausfallsicherer als andere Messenger sind – doch wie sieht es in der Praxis aus.

Hinweise:
=========

– Vergessen zu erwähnen: In der Verschlüsselungsbranche hat sich das Konzept etabliert, dass ein sicherer Algorithmus offen vorliegt sodass unabhängige Prüfer die Funktionalität des Systems sicher stellen können – die Sicherheit soll im Passwort stecken und nicht darauf beruhen, dass schon keiner herausfinden wird wie der Algorithmus funktioniert.

Links zum Video:
================

Öffentliche XMPP-Server:
————————

http://www.jabber.de/register/
https://web.jabber.ccc.de/
https://xmpp.net/directory.php

Xabber XMPP-Client
——————

http://www.xabber.org/
https://play.google.com/store/apps/details?id=com.xabber.android
https://github.com/redsolution/xabber-android

ChatSecure XMPP-Client
———————-

https://chatsecure.org/
https://play.google.com/store/apps/details?id=info.guardianproject.otr.app.im&hl=en
https://github.com/guardianproject/ChatSecureAndroid

BitBastelei #84 – Was ist „Arduino“

BitBastelei #84 – Was ist "Arduino"

(14 MB) 00:16:56

2014-02-23 11:00 🛈

Folien: http://lug-myk.de/dokuwiki/arduino

Arduino: http://arduino.cc/

LED-Cube: http://www.instructables.com/id/led-cube-8x8x8/
Garagenöffner: http://www.megunolink.com/garage-door-opener/
Wetter-Lampe: http://codeduino.com/projects/games-gadgets-toys/arduino-powered-lamp-projects-weather/
Mülleimer: https://www.youtube.com/watch?v=WklEZL8GA0I

BitBastelei #83 – 12V-LED-Umbau

BitBastelei #83 - 12V-LED-Umbau

(107 MB) 00:09:38

2014-02-16 11:02 🛈

Wieder mal eine LED – diesmal auf Grund der schon vorhandenen Fassung ein 230V-Modell – doch am Ende sollten 12V fließen…

BitBastelei #82 – Maus-Taschenlampe

BitBastelei #82 - Maus-Taschenlampe

(85 MB) 00:22:50

2014-02-09 11:00 🛈

Kombinieren wir alte Folgen: Freihand-Spielzeug-Hacking (#6) und Taschenlampen (#3) hatten wir schon – diesmal gibt es alles Zusammen. Aus einer alten PC-Maus und ein paar Komponenten aus der Restekiste entsteht eine nerd-taugliche Taschenlampe.

Inhalt:
00:13 – Einleitung
01:13 – Aufbau einer Maus
04:34 – Aufbau eines Mikrotasters
05:33 – Funktion eines Flip-Flops (bistabile Kippstufe)
07:59 – Funktion der Latch-Ähnlichen Schaltung
12:35 – Zusammenbau, Test und Stromverbrauch
19:35 – Redesign & Abschluss

Schaltplan: EagleCAD
Simulation: LTSpice

Die endgültige Schaltung müsste eine Art von Latch sein

Linux: Single-Thread-Programme auf Multicore-Rechnern parallelisieren

*Auf Uhr tipp* Dauert mal wieder lange, das berechnen – kein Wunder, denn die Software, welche ich hier einsetze, kann nur einen einzigen CPU-Kern nutzen. Wäre doch schön, wenn man so Aufgaben beschleunigen kann, oder?

In meinem Fall heißt die „Bremse“ Tesseract, ein open source OCR-System um eingescannte Dokumente in Text zu verwandeln. Bisher fütterte ich jede Seite nacheinander an das Programm um im Anschluss eine zusammengesetzte PDF zu generieren. Eine einfache Beschleunigungslösung wäre es mehrere Seiten parallel zu starten, aber dazu ist einiges an Logik notwendig – ich möchte nur bis zu einer maximalen Anzahl an parallelen Prozessen haben (CPU-Kerne) und benötige die Info wann alle Prozesse fertig sind. Viel Scripting für ein bisschen Geschwindigkeit – und unnötig, denn es gibt ein Passendes Tool: GNU parallel von O. Tange aus „;login: The USENIX Magazine, February 2011:42-47„.

Das Tool ist unter Arch nicht vorinstalliert, findet sich aber im Community-Repo. Der Aufruf ist ähnlich zu xargs – in meinem Fall sieht der Befehl so aus:

parallel -j 8 \
tesseract {} {.}.hocr -l deu hocr \
::: ${files}

In der ersten Zeile wird bestimmt, dass maximal 8 Prozesse zugleich gestartet werden. Danach kommt der Aufruf der Software. {} wird durch den Dateinamen ersetzt, {.} durch den Dateinamen ohne Endung. In der dritten Zeile wird nach dem Trennzeichen (:::) die Dateiliste mitgegeben – in meinem Fall in einer Variable, es kann aber auch direkt per Globbing gearbeitet werden („::: /tmp/out*“).

Der Grundprozess parallel blockt dabei so lange, bis alle Unterprozesse beendet sind – perfekt für meine Anforderung. Durch diese kleine Änderung ist bei mehrseitigen Dokumenten die Verarbeitung um ein vielfaches schneller.

Das Tool ist dabei natürlich nicht auf OCR beschränkt, auch bei anderen Programmen, welche man auf mehrere oder aufteilbare Quellen loslässt, kann es verwendet werden. Ein gutes Beispiel wäre das Umwandeln von Bildern in einer Batch:

parallel -j 8 \
convert {} {.}.png \
::: ./*.bmp

OpenVPN: Kein automatischer Restart nach Verbindungsabbruch

Kurze Verbindungsunterbrechung und weg war er, mein VPN-Tunnel. Soweit nichts besonderes, aber eigentlich sollte OpenVPN die Verbindung automatisch neu aufbauen. In der Praxis funktionierte das Ganze bei mir leider nicht, der Tunnel verschwand einfach, der zugehörige Prozess war nicht mehr auffindbar. Im Log zeigte sich folgendes:

[…server…] Inactivity timeout (--ping-restart), restarting
TCP/UDP: Closing socket
/etc/openvpn/down.sh tap0 1500 1576 …ip… 255.255.255.0 restart
WARNING: Failed running command (--up/--down): could not execute external program
Exiting due to fatal error
/bin/route del -net …gateway… netmask 255.255.255.255
ERROR: Linux route delete command failed: could not execute external program
/bin/route del -net 0.0.0.0 netmask 128.0.0.0
ERROR: Linux route delete command failed: could not execute external program
/bin/route del -net 128.0.0.0 netmask 128.0.0.0
ERROR: Linux route delete command failed: could not execute external program
/etc/openvpn/down.sh tap0 1500 1576 …ip… 255.255.255.0 init
WARNING: Failed running command (--up/--down): could not execute external program
Exiting due to fatal error

Nach kurzem Nachdenken klare Sache: OpenVPN gibt bei Angabe von user/group in der Config nach der initialen Verbindung seine Root-Rechte auf und läuft im spezifizierten Userkontext weiter – und der darf nicht an den Routingtabellen oder Netzwerkgeräten herumfummeln. Die Lösung: Der OpenVPN-User muss rechte zum setzen von Routen behalten oder OpenVPN unter einem höher privilegiertem User laufen.

Scanner-Button unter Arch Linux

Gesehen habe ich sie schon oft, die Hardware-„Scan“-Tasten diverser Scanner – einen wirklichen Sinn haben sie für mich nie ergeben, sind doch üblicherweise Scanner und Tastatur nicht sonderlich weit voneinander entfernt. Nun habe ich für ein autonomes Scansystem einen Raspi ohne Monitor mit Scanner und Scripten verknüpft – wäre praktisch, wenn ich mir jetzt noch die Scan-Taste nutzbar machen könnte, oder?

Das Zauberwort schien erst „scanbuttond“ zu lauten, welches für Arch im AUR verfügbar ist – andere Distributionen scheinen ebenfalls großteils Pakete bereit zu stellen. Nach der Installation kann man mit dem Befehl

scanbuttond -f

prüfen, ob der Scanner unterstützt wird: Das Programm startet kommentarlos im Vordergrund, sollte beim Drücken des Scan-Knopfes jedoch eine passende Meldung erzeugen. Sollte – in meinem Falle leider nicht. Auslöser ist vermutlich die neuere libusb, welche scanbuttond das Gerät nicht finden lässt.

Nach kurzer Recherche fand ich im Arch-Forum den Verweis auf scanbd – ebenfalls im AUR – welches noch aktiv entwickelt zu werden scheint. Die Einrichtung selbst ist in der Arch-Wiki beschrieben. In der Hoffnung dass mein Gerät sofort funktioniert wird der Daemon mit folgendem Befehl gestartet:

scanbd -d 7 -f

Die Ausgaben sind etwas chaotisch, jedoch ist definitiv mein Scannermodell zu erkennen und auch beim Drücken der Scan-Taste ist etwas passendes zu sehen:

scanbd: trigger action for scan for device fujitsu:fi-4120Cdj:13715 with script test.script
[…]
scanbd: append string fujitsu:fi-4120Cdj:13715 to signal scan_begin
scanbd: now sending signal scan_begin
[…]

Entsprechend der Anleitung werden die Dateien kopiert (cp /etc/sane.d/* /etc/scanbd/sane.d/), in /etc/sane.d/dll.conf alles bis auf „net“ gelöscht und in /etc/sane.d/net.conf der Server „localhost“ aktiviert. In /etc/scanbd/sane.d/dll.conf wiederum wird „net“ gelöscht.

Der Scan-Button ist bereits mit /etc/scanbd/test.script vorbelegt, der Einfachheit halber habe ich nur den Inhalt der Datei durch meine Befehle ersetzt. Es wäre auch möglich die zahlreichen Zusatztasten meines Scanners zu nutzen um so bereits einen Speicherort o.Ä. zu definieren oder z.B. den Scan bereits beim einlegen des Papiers zu starten, aber ich belasse es erst mal beim Standard. Unter Arch sollte man nach der Konfiguration noch das Debuglevel in /etc/scanbd/scanbd.conf senken, ansonsten wird das Systemlog durch die sekündlichen Prüfroutinen gut gefüllt.

Dank der kleinen Bastellösung kann ich nun „ohne PC“ scannen – Papier rein, Knopf drücken und der Raspi übernimmt automatisch das einscannen, OCR und archivieren mit (zumindest meistens) brauchbaren Metadaten – der Feinschliff kann dann später am PC erfolgen.

BitBastelei #81 – Mini Gigabit Switch

BitBastelei #81 - Mini Gigabit Switch

(24 MB) 00:11:46

2014-02-02 11:00 🛈

Irgendwo hat man immer zu wenig Anschlüsse – doch was taugen billig-Switche als Ersatz für eine zusätzliche Leitung?

Nerd Inside