OCR revisited

Zwar liefert Finereader die besseren Ergebnisse und obendrein noch ein Layout für die Scans, aber für eine lokale Suche nach einem PDF reicht auch ein bischen weniger, so dass man sich die Ausgaben bei ABBYY für jede einzelne Seite zumindest teilweise sparen kann.

Unter einem Debian 9:

sudo apt-get install poppler-utils ocrmypdf tesseract-ocr-deu

Details und weitere Konfigurationsmöglichkeiten, Batch-Skripte und mehr sind hier zu haben. Ich setze ocrmypdf bisher gezielt auf einzelne Verzeichnis an mit diesem Einzeiler:

for i in $( ls *.pdf ) ; do ocrmypdf --skip-text -l deu --deskew --clean --rotate-pages --clean-final $i - | pdftotext - $i.txt ; done

Das ergibt dann TXT Dateien mit zu über 95% richtig erkanntem Inhalt, wenn die Vorlage gut ist. Presst man PDF-Faxe und ähnlichen Mist durch die tool chain, dann kommt leider weitaus weniger Brauchbares hinten raus – aber zum Wiederfinden auf der lokalen Platte mit recoll reicht es.

Falsches Userhome im LDAP

Nach Beendigung des Klassenarbeitsmodus auf einer LD vergisst diese gelegentlich, die richtigen Pfade zurück in den LDAP Baum zu schreiben. Meldet sich der Benutzer danach an, erhält er ein Homeverzeichnis, das dem aus dem Klassenarbeitsmodus entspricht

homeDirectory: /home/dynamic/Benutzer/lehrer/_Klassenarbeiten_/InfKA2

und kommt an seine eigenen Dateien nicht mehr ran. Außerdem hat er keinen Zugriff auf die Tauschverzeichnisse.

Einfachster Weg: Den LDAP Baum in eine Datei kippen

ldapsearch -U admin > ldap-tree

Den Dump dann mit grep und Freunden nach „Klassenarbeit“ durchsuchen und die Fundstellen zusammen mit den betroffenen Benutzern inklusive username notieren.

Auf einem Client jxplorer installieren (der sich in den Ubuntu Repos befindet) und sich mit diesem mit dem LDAP auf dem Server verbinden. Der anzugebende LDAP Server ist hierbei die IP des Schulservers / LD-Servers (also z.B. 10.16.1.1), als Benutzer nehmen wir den ldap-admin, dessen genaue Bezeichnung / DN wir aus dem gerade exportierten LDAP Baum nehmen können

cn=ldap-admin,dc=kvfg,dc=tue,dc=schule-bw,dc=de

Verwendet man für diesen das Passwort des admin (Administrator), dann erhält man nur lesenden Zugriff. Schreibenden Zugriff bekommt man mit dem Passwort, das in

/etc/ldap.secret

liegt.  Hier dann im Bäumchen users unter

homeDirectory: /home/dynamic/Benutzer/benutzername

eintragen – und nicht den Eintrag aus ldRealHomeDirectory übernehmen, der nur den Serverpfad enthält. Auf dem LD-Server ist der Pfad oben ein Symlink.

Am Ende des Prozesses noch durch die Homeverzeichnisse – auch den ver-symlinkten Teil unterhalb von /home/dynamic – durchsehen und nach evtl. noch bestehenden Symlinks auf das ehemalige Klassenarbeitsverzeichnis suchen. Diese löschen.

HSK alpha II

Der Zugang zum „Dachsschluf“ ist nun so hoch und breit, dass ich flach auf dem Bauch liegend wie auch seitlich durchkomme und viel weniger blaue Flecken abbekomme. Nach einer Stunde Arbeiten an der Erweiterung war bei mir aber die Kraft erst einmal zu Ende – also lief ich noch ein wenig die Hänge hoch und runter und suchte die Umgebung der HSK ab. Dabei fand ich das Deckenloch für den Eingang der HSK. Das sieht auf dem Bild größer aus, als es ist.

Auf Grund der beschränkten Kraftressourcen muss ich mir die Arbeit für die nächsten Schritte einteilen: Es reicht immer nur für rund 1 Stunde auf dem Bauch liegend buddeln und Dreck wegkratzen – dann will mein Kreuz eine längere Pause.

Beim nächsten Anlauf kommt also die zweite Engstelle im „Dachsschluf“ dran und erst beim übernächsten Mal geht es dann ins Neuland.

Evil Penguin (beta)

Janis 3D-Drucker musste ich ausprobieren und sitze nun an einem Entwurf für einen richtig bösen Pinguin zum Stecken. Aktuell sieht er so aus, wie im PNG Bild oben.

Meine toolchain ist: Entwurf in Inkscape (weil ich damit leidlich klar komme), Export nach openSCAD mit Hilfe dieses Plugins und aus openSCAD dann die STL erzeugen, die mit Cura von Janis gesliced wird.

Meine von Janis in Blender noch einmal optimierte (die Bauchlinie des Pinguins war für den Druck zu dünn gezeichnet) Machbarkeitsstudie von gestern und damit mein erster Entwurf steht hier schon.

Die SVG sowie die hieraus erzeugten SCAD und STL Dateien und auch die optimierte Version für Blender sind hier zu haben [ZIP] [125kb]

2017-06-12_penguin-evil-dow

Noch wackelt er ein klein wenig, weil ich die Stecker nicht richtig dimensionierte (oder diese noch hätte mit Sandpapier nachschleifen müssen) – aber der Anfang ist gemacht.

Update 15.06.

Inzwischen spiele ich an einem 3D Modell des evil penguin. Dank einer Einführung von Janis traute ich mich an Blender und hab inzwischen das Gefühl, dass ich noch nie vor einer Tastatur saß. Blender ist am Anfang hartes Brot. Aber der Pinguin nimmt Formen an.

HSK alpha I

Gestern zwängte ich mich also durch die erste Engstelle in den Teil der HSK, der ab jetzt Dachsschluf heißt. In der zweiten Ausbuchtung nach der zweiten Engstelle befand sich nämlich auf der linken Seite ein verlassenes Nest.

Die beiden anderen Fortsetzungen habe ich aufgegeben. Die sind schlicht zu eng.

Insgesamt eine ziemliche Quälerei, das Loch. Eindeutig Elsachbröllerfeeling – auch was die Zahl an Schürfungen und blauen Flecke heute angeht. Die im Dachschluf oft weniger als 30cm zwischen Boden und Decke werden durch Anhäufungen von Boden (immer noch Humus und Erde, aber zunehmend fest) in dem leicht ansteigenden Gang fast plombiert. Man muss sich also entscheiden, in welche Richtung man den Kopf gedreht haben will und kann diese Ausrichtung bis zur nächsten Kuhle in der Decke / im Boden nicht ändern. Rechts und links hat man ein wenig Platz, so dass keine Platzangst aufkommt, jedoch nicht so viel, dass man sich für den Rückweg drehen könnte. Also rückwärts wieder raus, was in der ersten Engstelle dann zu heftigen Flüchen führt, weil man auf dem Rückweg die Arme schon in der Engstelle verkeilt hat und sich trotzdem irgendwie „den Hang hoch“ schieben muss. Also windet man sich Zentimeter um Zentimeter der Eingangskammer entgegen.

Aber hinten geht es weiter. Der sich leicht nach links (?) wendende Gang wird dabei noch ein wenig flacher bzw. die Bodenwellen aus Erde nehmen an Häufigkeit zu, jedoch der leichte Luftzug bleibt.

Jetzt müssen die blauen Flecke abheilen – dann kommt der nächste Anlauf.

Haldenhofhöhlen

Für Bodman-Ludwigshafen sind in Openstreetmap Höhlen eingezeichnet.


View Larger Map

Dort hat es keinen Kalk. Da ist alles Sandstein / Molasse. Da ich am Dienstag vor Ort war, ging ich nachsehen – im festen Glauben, da hat sich jemand eine Scherz erlaubt. Aber tatsächlich: Löcher im Fels!

Die Höhle auf der linken Seite nenne ich auf Grund ihrer Form mal „Haldenhofabri“, auch wenn es sich bei dieser um eine menschliche Grabung handeln dürfte.

Immerhin hat sie zwei kleine Fortsetzungen unbekannter Länge.

In Ermangelung der richtigen Ausrüstung bekroch ich nichts, sondern peilte nur einmal mit dem Disto in Richtung Berg.

Die im Plan bei OSM rechts gelegene „Höhle“ ist ein von Hand aus dem Fels gemeiselter Keller von gut über 20 Meter Länge.

Der kastenförmige Gang ist zu Beginn noch übermannshoch, wird dann aber, je weiter man dem Gefälle in den Berg hinein folgt, niedriger.

Der Gang biegt leicht nach links ab, nähert sich also dem Haldenhofabri und scheint in einem rechteckigen Kellerraum zu enden.

Da sich ungefähr an der Biegung Regenwasser zu einem mehr als knöcheltiefem See gesammelt hat und ich in normalen Schuhen und ohne Lampe unterwegs war, musste eine Peilung und die Handylampe reichen, um zu einer ersten groben Schätzung zu gelangen, wie es hier im Berg aussehen könnte.

Am Anfang des „Sees“ liegen noch Bretter im Wasser … weiter hinten liegen diese unter der Wasseroberfläche. Das nächste Mal habe ich meine Gummistiefel dabei – und Licht.

A Time Tracker

Ich nutze seit dem 01.08.2016 A Time Tracker (bei FDroid zu haben) als Zeiterfassungssoftware auf dem Smartphone – und das für mich überraschend diszipliniert und an vielen Stellen evtl. auch übergenau. Verlasse ich den Schreibtisch oder die SItzung etc., stoppe ich die Zeiterfassung.

Da das RP wie jedes Jahr um Pfingsten meinen Tätigkeitsbericht haben wollte, wollte ich mir die Arbeit nun erleichtern und zum ersten Mal einen echten Stundenzettel einreichen. Das klappte nur bedingt. Einerseits ist das RP-Formular dafür nicht gemacht, weil es sich nicht interessiert, wie viel man gearbeitet hat, sondern nur dafür, wie viele Stunden Unterricht ausgefallen sind, während man als Landesbeamter andere Dienstaufträge erfüllte.

Andererseits ging ich zuerst den falschen Weg und exportierte mir die SQLite Datenbank aus A Time Tracker (Mehr – Auf Speicher sichern). Mit der konnte ich lokal auf dem Rechner aber wenig anfangen: die Zeiten sind als Unix timestamps abgelegt, müssen also zuerst konvertiert werden und auch die Zuordnung von IDs zu den Tätigkeitsbezeichnungen ist derart auf einzelne Tabellen verteilt, dass das Zusammenführen viel zu viel Mühe macht.

Eine Übersicht über die eigene Arbeitszeit lässt sich aus dem CSV Export viel zügiger erstellen:

  1. Mehr – Zeitbereich ändern – Alle
  2. Mehr – Ansicht nach CSV exportieren

A Time Tracker legt die timetracker.db wie auch die all.csv auf der obersten Ebene des Nutzerverzeichnisses auf dem Smartphone ab – hier ist das /storage/emulated/0/.

Die Konvertierung von Unix timestamps ins Format YYYY-MM-DD HH-MM-SS wird von der App vorgenommen. Der Import nach LibreOffice gelingt ohne Mühe.

Formatiert man die Zellen für die Summen im Format [HH]:MM:SS, unterlässt LibreOffice jegliche Umrechnungen und addiert schlicht die Zeiten in Richtung Stunden. Entscheidend ist die eckige Klammer um das HH!

Man kann dann mit dem üblichen =SUMME(FeldA:FeldZ) rechnen, statt sich permanent zu wundern, was LibreOffice da gerade macht, und die Daten auch grafisch darstellen etc. pp.

Ganz hübsch erhellend für mich war, dass ich schon vor Monaten meine vorgesehene Jahresarbeitszeit „durch“ hatte. Dabei ist das Schuljahr noch nicht einmal zu Ende. Auch erhellend war die Verteilung meiner Stunden auf die von mir in A Time Tracker angelegten Kategorien. Ich weiß nun, wo ich mehr darauf achten muss, mich nicht zu sehr vereinnahmen zu lassen. Ich muss „Nein“ noch üben.

Trocken

Ich wollte gestern den Schluf in meiner HSK erkunden gehen und musste feststellen, der Wald ist voller Menschen. Das gesamte Plateau zwischen Nebelhöhle und Goldloch – ein einziges Gewusel. Hab ich doch glatt das Nebelhöhlenfest vergessen.

Unter diesen Umständen also kurz am Föhner vorbei geschaut, in der Hoffnung, wenigstens dort etwas Sinniges tun zu können. Der war jedoch verwaist und trocken. Das Wasser kam geschätzte 15 Meter tiefer aus dem Lehmgrubenbröller.

HS-Kammer rev. pre alpha

Der erste Test des Disto X2 vor Ort war auch OK. Was bei mir jedoch noch überhaupt nicht läuft, ist das Denken in Plänen, wenn ich vor Ort bin. Die Planskizze oben ist demnach trotz Vermessung mit Disto schlicht Mist – oder „pre-alpha“ – weil ich immer erst am Rechner zu Hause feststelle, welche Splays geschickt gewesen wären. Auch meine händischen Skizzen taugen nicht viel: teilweise fehlen die entscheidenden Punkte, teilweise sind nicht darstellbare Details enthalten. Ich muss noch viel üben.

Was in mir gestern keimte, war der Verdacht, dass es sich bei der HSK nicht um eine klassische Sekundärhöhle handelt. Das könnte ein schlichter Überhang von ca. 10m Tiefe sein, der in den letzten hunderten von Jahren langsam von Unten her mit Humus aufgefüllt wurde … und ich quäle mich da nun der ehemaligen Decke entlang zur Rückwand desselben. Das am weitesten rechts stehende Fragezeichen muss aber zum Ausrufezeichen werden: ich will wissen, wo der leichte Luftzug herkommt.

Disto X2 toolchain

Bevor es dann Morgen mit dem frisch gelöteten Disto X2 und einem Schäufelchen bewaffnet in mein Kleinstloch geht, probierte ich meine Toolchain heute noch zu Hause aus:

Disto X2 per Bluetooth mit dem Handy koppeln, unter Qave die Daten erfassen und diese dann vom Handy über die ownCloud auf den Laptop schieben. Dort die Datensammlung mit CaverenderPro weiter verarbeiten.

Hat ganz ordentlich funktioniert. Ein Teil des Treppenhauses musste heute dazu herhalten und sieht nach vielen ziemlich sinnfreien Shots dann wie oben aus.

GIF anklicken, damit es sich dreht.