Archiv der Kategorie: Schule

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.

DocSearch

Zum Thema Dokumentenindexierung in DokuWiki habe ich heute für meine Schule gebastelt. Hier der technischere Teil der Dokumentation dazu.

Nach der Installation des Plugins DocSearch in DokuWiki den Konverter Apache Tika als JAR Datei nach /opt/tika legen. Den Ordner /opt/tika an www-data rekursiv und mit den Rechten 750 übergeben. Evtl. openjdk JRE nachinstallieren. Die headless Version reicht aus.

Kontrollieren, ob PHP genug RAM erhält. Das memory_limit in /etc/php5/apache2/php.ini sollte über 256MB liegen.

Die /pfad/zu/dokuwiki/lib/plugins/docsearch/conf/converter.php.dist nach converter.php kopieren und anpassen. Meine sieht nun so aus:

Dann einen Testlauf starten und die Fehler einsammeln:

Evtl. sollte das Paket ttf-mscorefonts-installer nachinstalliert werden, um weniger Fontmeldungen um die Ohren gehauen zu bekommen. Ein

behebt noch ein paar Kleinigkeiten in der Fehlerausgabe.

Der Lauf frisst Zeit und Ressourcen. Der cronjob sollte dies berücksichtigen. Mein Eintrag in die /etc/crontab sieht so aus

läuft also nur einmal in der Nacht los.

Was nicht in den Griff zu bekommen sein wird, sind die vielfältigen Windows-only-Fonts, die in vielen Dokumenten verbaut sind. Da wird Tika auch in Zukunft maulen müssen. Das heißt konkret: www-data erhält E-Mails! Es empfiehlt sich deswegen einen Alias für www-data anzulegen und die Mails auf das eigene Konto zu lenken, will man nicht vom Mailserver mit Fehlern zu unzustellbaren E-Mails zugemüllt werden. Oder man lenkt die Ausgabe des Cronjobs nach /dev/null um, erfährt dann aber auch nix über reparable Fehler.

LDAPs von MRBS 1.5 auf LD-Server

Ein auf einem externen Server (z.B. bei Hetzner) gehostetes MRBS kann mit den folgenden Einstellungen per LDAPs gegenüber dem internen SBE-Serverchen mit openLDAP authentifizieren:

Die obigen Einträge beziehen sich auf die Datei config.inc.php im Verzeichnis /pfad/zu/mrbs/web. Debugmeldungen von MRBS (sofern oben einkommentiert) finden sich in der error.log des Apachen. Der Filter stellt hoffentlich sicher, dass nur Lehrer/innen sich anmelden können. Um MRBS zusätzlich gegenüber Einsichtnahmen durch Zweite abzusichern, muss der Login erzwungen werden. Dazu

nach den Includes in alle nur erdenklichen und über Netz erreichbaren PHP Dateien (month.php, day.php, week.php, search.php, report.php usw) setzen.

Die anderen hier im Blog zu findenden Hinweise zur Konfiguration von LDAPs gegen einen SBE Server sollte man sich ebenfalls mal ansehen, wenn es mit den Einträgen oben nicht tun will. Es gibt einige Wände, vor die man laufen kann.

Writer2DokuWiki

Bisher nutzte ich für die Konvertierung von Texten für DokuWiki das Plugin Writer2Dokuwiki und hatte wenig Probleme. Das jetzt frisch verfügbare LibreOffce 5.1 schmiert mir hierbei jedoch kommentarlos ab, so dass ich auf die Schnelle eine andere Möglichkeit brauchte. Diese ist nun eine Kombination aus tidy und pandoc.

loexportformat

In LibreOffice wird das Exportformat für HTML Dateien zuerst unter /Extras /Optionen /Laden-Speichern /HTML-Kompatibilität auf UTF-8 umgeschaltet.

Über /Datei /Speichern unter wird nun das HTML-Format ausgewählt und die Datei gespeichert.

Hinweis: Der Exportdialog unter /Datei /Exportieren… erzeugt XHTML Dateien, die noch schwerer zu putzen sind. Also nutze ich diese Funktion nicht.

Der von LibreOffice erzeugte HTML-Code ist grauenhaft. Also muss dieser mit tidy geputzt werden. Die tidy.conf liegt hierbei in meinem Stammordner im dortigen ~/bin Verzeichnis:

Ein

wirfft weg, was wir nicht brauchen. Ein bischen class=western kann dabei übrig bleiben, tut aber nicht weiter weh.

Als nächstes kommt pandoc in einer Version größer gleich 1.13 zum Einsatz (unter Ubuntu 15.10 vorhanden):

Die TXT Datei dann mit einem Editor öffnen und den Inhalt in DokuWiki einfügen. Voila. Zusammen macht das dann

oder gleich als Skript verpackt:

Das klappte hier mit less und leafpad, das von mir sonst bevorzugte kate wollte nicht von stdin lesen. Da muss ich noch einmal nachsehen, woran das lag.

Man kann auch den Aufruf von LibreOffice und damit den ersten Schritt in das Skript integrieren, sofern die (angelieferten) Dokumente mit Formatvorlagen erstellt wurden. Das ist in meinem Kollegium hoffnungslos – aber im Prinzip ginge ein

Quellen: [1] [2]

Redis Server und HSTS für ownCloud

Im Backend vermeldete ownCloud schon längere Zeit, dass es einen funktionierenden PHP Memory Cache vermisse. Bisher war mir das relativ egal, weil ich nicht viele Dateien und auch nicht viele Nutzer/innen hatte. Das hatte sich in den letzten Wochen und Monaten aber gründlich geändert, so dass ich bei drei meiner oC Installationen tätig werden musste. Nach dem Update auf oC 8.2.2 und Dank etwas freier Zeit ging ich das Problem endlich an.

APC und APCu waren zwar bei allen Servern an Bord, aber unter Ubuntu 14.04 und PHP5 „zu alt“. Ich probierte es mit Redis. Hier ist das PHP5 Modul von Ubuntu 14.04 zwar ebenfalls zu alt, aber es gibt in den PECL Repositories einfach zu installierenden Ersatz.

Ein

klärt, ob ein solches PHP Modul installiert ist. Wenn ja, dann muss dieses zuerst runter vom Server. Danach kann der Redis Server an Bord:

Ein Blick in

sollte ergeben, dass Redis an 127.0.0.1 lauscht und somit nicht von außen zu erreichen ist. Wer sich nicht sicher ist, kann von außen mit telnet nachsehen. Weiter sollte ein

zeigen, dass der Redis-Server auch läuft.

Um PECL nutzen zu können benötigen wir noch die folgenden Pakete

Wer, wie ich hier, Horde5 über PEAR bezieht, hat die Pakete schon. Ein

bringt dann ein frischeres php Modul für Redis an Bord. Am Ende der Installation weißt PECL darauf hin, dass dieses Modul der vorhandenen PHP Umgebung bekannt gegeben werden muss. Da hilft

Dann wird der Memory Cache ownCloud in

bekannt gegeben, indem der folgenden Code ans Ende gehängt wird (vor die letzte schließende Klammer):

Im Backend von ownCloud herrscht nun etwas mehr Ruhe.

Was ownCloud leider nicht überprüft ist, ob es überhaupt über HTTP zu erreichen ist. Es schimpft immer über eine fehlende HSTS Konfiguration, bis eine solche eingerichtet ist.

Das ist mit

und dem Eintrag

für die ownCloud Domain dann nach einem Neustart des Apachen auch erledigt, hat aber Nebenwirkungen: HTTP Verbindungen sind hiermit für die gesamte Domain ab dem ersten Aufruf über HTTPS für den Client-Browser erledigt. Muss man wollen.

Geholfen beim Einrichten haben mir die folgenden empfehlenswerten Quellen: 1, 2, 3, 4

HWS, Korrekturen und Schwerkraft

IMG_20151129_105834

Menschen mit HWS-Schäden sollten nicht lange nach Unten blicken. Und: Es gibt Tage (leider auch Wochen) in denen der Blick nach Unten überhaupt nicht geht. Die Krümmung der Halswirbelsäule erzeugt umgehend starke Schmerzen und auch Ausfallerscheinungen neurologischer Art.

Am Rechner kann man sich seinen Arbeitsplatz dann so einrichten, dass der Bildschirm oben steht. Die Arbeit am Laptop (Blick geht da meist nach Unten) muss ja nicht sein und wenn kein anderes Arbeitsgerät vorhanden ist, dann hilft ein externer, höher gestellter Monitor.

Dumm nur, wenn man korrigieren sollte und das zu Korrigierende lediglich in Papierform vorliegt. Denn: Alle von mir bisher verwendeten Korrekturstifte (ich hab eine Vorliebe für die Tintenroller von Mitsubishi, wenn ich nicht mit Füller arbeite) brauchen Schwerkraft, um die Tinte von der Patrone zur Spitze zu bringen. Man kann mit derartigen Geräten nicht im Stehen arbeiten (waagrechte Stiftausrichtung, Klemmbrett an der Wand mit der Schülerarbeit daran) und selbst die Neigung des Stiftes beim Arbeiten mit Klemmbrett auf den hochgestellten Knien im Sitzen, was zumindest die HWS-Krümmung reduziert, führt schnell zu Aussetzern beim Tintenfluss. Der Korrekturgriffel muss schnell pausieren, wieder nach unten gerichtet eingeschrieben werden und erst nach einer Weile darf man weitermachen. Das nervt. Drei bis vier Stifte im Paralleleinsatz sowie ein Stiftständer kompensieren dies ein wenig. Das Einschreiben entfällt jedoch nicht zuverlässig. Also: Alle Arbeiten zuerst auf den Scanner legen und dann mit der Bildbearbeitung korrigieren? Das klang für mich nach der allerletzten Möglichkeit. Den enormen Arbeits- und Zeitaufwand hätte ich gerne vermieden.

Mir scheint, es gibt nur zwei Schreibgeräte, mit denen man dem Zusammenhang zwischen Tinte und Schwerkraft ein Schnippchen schlagen kann: Buntstifte (Blei) und Weltraum-Kugelschreiber.

Buntstifte, dachte ich, fallen aus, weil diese nicht Dokumentenecht sind. Da kam ich heute Morgen ins Umdenken.  Ich beschloss, dass mir das egal ist. Ich wollte die Arbeiten schlicht fotografieren und so den Korrekturstand sichern. Außerdem zeigten erste Radiertests, dass weiche Buntstifte so ölig sind, dass Löschungen sichtbar bleiben. Also auf in den Schreibwarenladen. Und da stellte ich dann fest: Es gibt dokumentenechte Buntstifte. In rot! Die Rettung für den Moment war gefunden.

Das Problem bleibt für die Zweit- und Drittkorrektur bestehen. Grüne dokumentenechte Stifte sind zwar auch vorhanden – aber braun fehlt und außerdem ist mir das zu heikel für das rechtliche Tamtam rund ums Abitur.

Bestellt habe ich mir nun den Fisher Space Pen. Außerdem soll es mit dem Mitsubishi SNP-7 einen weitaus günstigeren uniball Stift mit Gasdruckmine geben, den ich auch noch auftreiben will. Für beide gibt es zumindest rot, für den Fisher auch noch die anderen benötigten Farben. Weiter habe ich bei meiner Suche noch eine Firma “nebenan” gefunden. Schmidt sitzt in St. Georgen und stellt Gasdruckminen mit farbigem Inhalt unter der Bezeichnung Schmidt MegaLIne Pressurized Refills her, die allerdings hier kaum im Handel zu finden sind.

Gasdruckminen müssten Korrekturen auf der ISS möglich machen. Da fühlt man sich nach einigen Klausuren so oder so besser aufgehoben.

7ZIP Gui

7-ZipDateimanager_001

Ich kann kaum einem meiner Kollegen zumuten, Befehlsfolgen wie

einzugeben, nur um ein verschlüsseltes Archiv mit 7ZIP zu erstellen und nicht einmal ein

würde sich verkaufen lassen. Shell ist schwarz. Schwarz ist böse. Was sich nicht klicken lässt, geht nicht. Also muss ein GUI her.

Da wir schulisch KDE einsetzen (mit einem Theme, das so schwer nach Win7 aussieht, dass sicherlich manche noch nicht einmal gemerkt haben, dass es gar kein Windows ist) war auch die Integration in das Kontextmenü gewünscht.

Alles das wird geliefert von: http://tomtomtom.org/p7zip-gui/

Eine evtl. auftretende Fehlermeldung ala

wird mit einem

beantwortet, das die fehlenden Pakete nachzieht.

Bonding

IMG_20150805_162906-cut

Zwischenstadium beim Einrichten. Ein Upllink zu BelWue und der erste 4-er-Bond/Trunk zum Server.

Mit vier Netzwerkkabeln vom Server zum Core-Switch und vom dem aus weiter mit jeweils 4 Kabeln zum nächsten …

Die /etc/network/interfaces dazu

Im Switch die Trunks einrichten und die VLANs den Trunks zuweisen. Reboot. Tut.

IMG_20150810_165043-2

Die zentralen Switches sind nun verkabelt und auch der Neubau hängt mit immerhin 2 Glasfasterleitungen an der Strippe.

Zuerst hatten wir Mode 4 eingerichtet. Die Geschwindigkeit war aber enttäuschend. Mit Round Robin / Mode 0 geht jetzt aber heftig mehr durch die Leitungen, wenn auch nicht das 4-fache. Außerdem: Einzelne Räume bleiben etwas magerer angebunden – z.B. der Neubau, der nun mit „nur“ 2 Glasfaserleitungen am Core-Switch hängt.

Tunnelbau

Die OMD steht in der Schule hinter der Dom0, die für diesen Rechner gleichzeitig das Gateway ins Netz ist:

Die Ausgabe muss jeweils 1 lauten.

Zwei iptables Regeln sorgen dafür, dass die Ports und der Traffic zur OMD durchgereicht werden:

Ein Aufruf von https://domnullundgateway.tld:9393/checkmk/ sorgt so dafür, dass Anfragen an die OMD, die intern unter https://192.168.0.2 zu erreichen ist, weiter geleitet werden.

Damit man diese Regeln nicht immer wieder neu setzen muss, stehen sie in /etc/network/interfaces am Ende der Konfiguration der Netzwerkkarte eth0 jeweils nach einem up.

Redmine

Der Projektmanager und Bugtracker Redmine hatte es Daniel und mir angetan. Also kam dieser auf einen unserer Ubuntu 14.04 Server.

Dann die Konfigurationsdateien anpassen:

und

Wichtig ist hier, dass der Eintrag für den DocumentRoot des bearbeiteten VirtualHost nicht ganz woanders hinzeigt, sonst fliegt PassengerResolveSymlinksInDocumentRoot auf die Nase (weitere Infos hier). Also im zugehörigen VirtualHost Eintrag prüfen, ob er stimmt:

Redmine versymlinken:

Die Konfigurationsdatei für Redmine an Ort und Stelle kopieren:

Dort Sendmail für den Default Mode freischalten (funktioniert selbstverständlich auch mit Postfix):

Bei Bedarf ebenda den Pfad für die Attachments überarbeiten. Der Default Pfad ist

wo dann Unterordner nach Datum des Uploads angelegt werden. Wer das anders haben will kann sich z.B. unter /var/www/pfad/zu/redmin_files anlegen, dem Apachen daran alle Rechte geben und den veränderten Pfad dann in configuration.yml eintragen:

Das Apache Modul aktivieren und die Konfiguration neu laden:

Leider enden hier viele Installationsanleitungen. Ich musste wie folgt weiter bauen:

Zuerst schien es mir so, als ob Ruby ohne bundler und sqlite3 Fähigkeiten nichts mit Redmine anzufangen wusste. Ich sah beim Aufruf nur eine leere Seite. Das hier half weiter:

Jetzt bekam ich wenigstens eine Fehlermeldung über eine fehlende und nicht beschreibbare Gemfile.lock Datei zu sehen. Ein

setze die Datei an die gewünschte Stelle und machte Redmine läuffähig. Mit admin admin kann man sich anmelden und aus Redmine heraus die restliche Konfiguration anpassen.

Was dann noch fehlt war die Anbindung über LDAPs an den hausinternen Server. Redmine bringt ein LDAP Modul schon mit, also muss man nur die richtigen Einträge für einen LD-Server herausfinden. Geklappt hat es hiermit:

Geholfen haben mir bei der Arbeit die folgenden Anleitungen: [1] [2] [3]