Schon November

Unser neuer Türkranz

Ich spüre fast den Wind, so schnell die Zeit an mir vorbei läuft. Schon November! Ich hatte so viel zu tun, dass ich mein armes Tagebuch im Stich lassen musste.

Was ich seit der Rückkehr aus dem Urlaub (und eigentlich schon im Urlaub) getrieben habe: Ganz viele Online-Kurse belegt. Im September gab’s plötzlich viele interessante Angebote, das Nerd in mir konnte sich nicht zurückhalten. Dabei habe ich mich bis jetzt nur auf zwei Plattformen für kostenlose Kurse beschränkt: openHPI und France Université Numérique (kurz: FUN). Der erste Kurs, Einführung in die Mathematik der Algorithmik, hatte es ganz schön in sich, und statt nur die versprochenen wöchentlichen 3-6 Stunden dafür zu brauchen, habe ich, trotz Physikstudiums und Doktortitels, gut fünfzehn Stunden jede Woche dran gesessen. Andere Kurse von der FUN Plattform mussten erstmal liegen bleiben, da beim openHPI jede Woche Prüfungen abgegeben werden sollten, und es bei FUN nur eine einzige Abgabefrist für alle Prüfungen nach Ende der Kurse gibt. Python 3.6 (ich habe bis jetzt hauptsächlich mit Python 2.7 programmiert), Statistik mit R (Wiederholung), Ruby, und wissenschaftliche Kurse zur persönlichen Weiterbildung im Zusammenhang mit der Arbeit… Da blieb wenig Zeit für etwas anderes. Langsam geht es besser, einige Kurse sind vorbei, und ich kann meinen Lebenslauf mit neuen Zertifikaten beschmucken.

Endlich kann ich berichten, dass unsere Küche völlig funktional ist. Fast vier Monate nach dem Umzug. Erst musste die Steckdose für den Backofen wieder zugänglich gemacht werden. Dann haben wir festgestellt, dass der Wasseranschluss, der ebenfalls zugemauert wurde, nach dessen Befreiung nicht zu unserer Möbeleinrichtung passte. Entweder die schweren Möbeln umräumen, was bei der Winzigkeit der Küche und der Empfindlichkeit des Parkettbodens sehr schwer wäre, oder unseren teuren Spülmöbel zersägen, um ihn an die Wasseranschlüssen anbringen zu können, meinte der erste Handwerker. Dass das nicht in Frage kam, brauche ich nicht zu erzählen. Ein zweiter Handwerker wurde bestellt, und es wurde doch möglich, die Anschlüsse selber an unseren Möbeln anzupassen. Seitdem müssen wir (hauptsächlich der Ehemann) nicht mehr das Geschirr in die Badewanne spülen, die Spülmaschine ist wieder im Einsatz! Der Wasserhahn leider nicht, er hatte scheinbar im Umzug gelitten und leckte. Einen neuen Hahn haben wir erst vorgestern angebracht. Wenigstens konnte ich seit ein paar Wochen endlich wieder hemmungslos kochen. Heute Abend gab’s den längst vermerkten Kürbis-Hummus. Das Einzige, was in der Küche noch nicht zufriedenstellend läuft: Warmes Wasser. Ich muss fünf Minuten lang den Hahn voll aufgedreht lassen, ohne  zu übertreiben, bevor das Wasser warm wird, wie ich heute Abend feststellen durfte. Das kann kein Dauerzustand werden.

Seit letzter Woche habe ich eine neue Beschäftigung gefunden: Jahresplaner für 2019 selber basteln, als Geschenkidee für die Nichten vom Ehemann. Meine Nichten. Nochmal danke Carrie. Die Notizbücher sind gekauft, ich habe mir ganz viele Videos auf YouTube angeschaut, wie man sowas macht, am Freitag noch mehr Material besorgt, wie Washi Tape, und angefangen, an den Monatsdeckblättern zu arbeiten.

Doch weg von den Farbstiften. Dafür habe ich, wie der Zufall es will, mein ebenfalls lange nicht mehr benutztes Wacom-Bamboo-Tablet wieder in Betrieb genommen. Batterie aufgeladen, und los ging’s. Das Ding hatte ich mir vor sechs Jahren geschenkt, und ich hatte viel Spaß damit, bis ich nach Berlin umgezogen bin. Danach hatte ich keine Zeit mehr. Irgendwie blöd. Ich meine, wie genial ist das denn, mit Strg-Z malen zu können? Ups, die Hand ist verrutscht, Strg-Z. Menno, der letzte Einfall mit der Wasserfarbe hätte nicht sein müssen, Strg-Z. Ich hatte sogar eine Taste vom Tablet mit der Tastenkombination belegt. Von Spielchen mit Ebenen ganz zu schweigen. Das hat aber mehr mit der Software zu tun, die mit dem Tablet geliefert war. ArtRage 3 Studio Pro. So intuitiv zu benutzen, viel besser, als Adobe Photoshop Elements, das ich mir auch herunterladen durfte. Ich hatte vor einigen Jahren Malkurse belegt, aber seit dem Tablet zeichne ich viel lieber digital.

Die Mieze hat auch einiges auf dem Tablet inspiriert… Daher mein Blog-Logo!

Und zunehmend denke ich daran, mir Fahrstunden zu buchen und mein MVV-Abo zu kündigen. Ich bin seit zwanzig Jahren nicht mehr selber Auto gefahren. Der miserable Zustand vom Münchner ÖPNV wird mich dazu bringen. Ein neues Auto haben wir schon geplant. Hybrid, automatisch, von Toyota. Viel umweltfreundlicher als unser aktuelles Diesel-Polo, und eine Stunde pro Tag gespart. So konkret haben wir keinen Zeitplan, aber es wird hoffentlich ziemlich bald kommen.

Ach, und was macht der Daum? Er erholt sich langsam. Sieht schon nicht mehr so übel aus.


Dieser Beitrag ist ursprünglich auf Meckereien & Co. erschienen.

Werbeanzeigen

Rscript und Python

Ich hatte am Anfang des Jahres bei einem MOOC über Statistik mit R mitgemacht. Es war aus reinem Interesse. Ich habe an dem Kurs in meiner freien Zeit zu Hause teilgenommen. Ich hatte vorher von R gehört, weil ein Programm, mit dem ich eine Zeit lang arbeiten musste, R benutzte, und es musste auf meinem Rechner installiert werden. Und ich dachte, wenn ich mich weg bewerben will, wäre es nicht verkehrt, Kenntnisse über R zu haben.

Ich fand R ehrlich gesagt nicht so toll. Es ist eine mächtige Programmiersprache, um statistische Rechnungen durchzuführen, keine Frage. Die Benutzung fand ich sehr gewöhnungsbedürftig. Die Namen der Funktionen sind nicht immer nachvollziehbar und ohne erkennbare Systematik vergeben worden. Ich habe den Kurs zwar bestanden, aber immer gedacht, wenn ich R brauche, ist es am einfachsten, zu googeln, als mir zu überlegen, wie etwas gemacht wird.

Gebraucht habe ich R viel schneller als gedacht. Zwei Wochen später habe ich mich im Rahmen meiner Arbeit dafür interessiert, wie man hierarchische Clusteranalysen durchführt. Mir ging es darum, experimentelle Daten von verschiedenen Proben einer Substanz miteinander zu vergleichen. R war perfekt dafür. Mit gerade vier Zeilen Code hatte ich schon das gewünschte Ergebnis in Form eines Dendogrammes, obwohl solche Analysen nicht Teil vom Kurs waren.

Das war erst der Anfang. Danach ging mir durch den Kopf, dass ich eine solche Analyse in meinem Programm #2 gut gebrauchen könnte, als zusätzliche Information, und um Entscheidungen besser treffen zu können. Ich wollte eine große Anzahl von Modellen nach Ähnlichkeit sortieren.

Während des Kurses hatten wir mit einer graphischen Oberfläche gearbeitet. R kann man aber auch aus der Kommandozeile im Terminal benutzen, wie es eigentlich ursprünglich nur ging. Da ich es innerhalb von meinem Programm aufrufen wollte, sollte ich die Befehle der Kommandozeile benutzen. Diese werden aber nur von R interpretiert, wenn man R gestartet hat. Für die, die gnuplot im Terminal schon benutzt haben: So ähnlich ist es mit R auch.

Ich wusste zuerst nicht, wie ich vorgehen sollte, bis ich über Rscript gelesen habe. Es macht genau das, was ich wollte. Wenn man die Befehle für R in einer Datei gespeichert hat, nennen wir diese Befehle.R, kann man sie mit Rscript in R durchführen lassen. So:

Rscript Befehle.R

Von Programm #2 aus, das mit Python geschrieben wurde, sieht dann die Ausführung so aus:

import subprocess
Rins = open('Befehle.R', 'r')
Rout = open('R.log', 'w')
proc = subprocess.Popen("Rscript", stdin=Rins, stdout=Rout, stderr=Rout)
proc.wait()

Es hat nicht geklappt. Eine Fehlermeldung gab es nicht, mein Programm hat getan, als ob alles super gelaufen wäre. Die Befehle wurden richtig in den Befehle.R Dateien geschrieben. Die Dendogramme, die ich in PNG Dateien speichern wollte, wurden nicht erstellt. Die Dateien R.log waren leer, so dass ich nicht mal wusste, wo das Problem lag.

Vom Terminal aus, habe ich Rscript Befehle.R ausgeführt. Das hat funktioniert. Praktikabel ist es aber nicht, weil ich eigentlich Tausenden von solchen Rechnungen machen lassen wollte, für verschiedene Teile von den Modellen, und dafür die Jobs zu einem Pool geschickt hatte, um sie mit unserem Hochleistungsrechner parallel laufen zu lassen. Es musste von meinem Programm aus laufen können.

Im Terminal habe ich Python gestartet und die Befehle eingegeben. Diesmal wurde in die R.log Datei geschrieben. Drin war eine für mich kryptische Fehlermeldung, die so endet, nachdem die Hilfe von Rscript ausgedruckt wurde:

'file' may contain spaces but not shell metacharacters
Expressions (one or more '-e ') may be used instead of 'file'
See also ?Rscript from within R

Nicht nachvollziehbar. Die Eingabedatei Befehle.R hatte doch keine Shell-Metazeichen in ihrem Namen enthalten. Am Ende habe ich den Code so geändert, und das hat geklappt:

import shlex, subprocess
Rcommand = "Rscript Befehle.R"
Rins = open('Befehle.R', 'r')
Rout = open('R.log', 'w')
proc = subprocess.Popen(shlex.split(Rcommand), stdout=Rout, stderr=Rout)
proc.wait()

Warum es bei der ersten Variante nicht funktioniert hat, weiß ich immer noch nicht. Es muss damit zusammen hängen, wie mit stdin die Eingabedatei zum Programm übergeben wird.


Dieser Beitrag ist ursprünglich auf Meckereien & Co. erschienen.