Am Wochenende stolperte ich über diesen Artikel der die Anwendung eines Recurrent Neuronal Networks beschreibt, mit dem sich Texte generieren lassen, die – zumindest so die Theorie – ihrer erlernten Eingabe in Form, Stil und Sprache entsprechen.
Bitte?
Ganz einfach ausgedrückt: Ich gebe alle Werke von Shakespeare in Altenglisch herein und erhalte nach Erlernen des Models beliebig viele Texte in Altenglisch, die so aussehen wie die von Shakespeare.
Wie man sieht, hat der temperature-Wert einen großen Effekt auf die Sinnhaftigkeit der Ausgabe. t=0.6 hat sich hier als sehr zuverlässig herausgestellt.
[..]and finally, the temperature where 1.0 means use the actual probabilities predicted by the model, and lower numbers flatten the distribution so that the samples will be less like the learned model but more “creative”.
Okay, das hat gut funktioniert. Nächster Versuch.
Eingabe: Alle DAX-Unternehmen.
Die Unternehmen wurden ebenfalls mehrfach dupliziert und randomisiert. Es wurden 50 Epochen erlernt.
Am 22. Juni 2015 erschien unter der Überschrift “JHQ-Schatz: Was wird aus Haus Hellbach?” ein Artikel in der Rheinischen Post, nachdem ich mich mit der Bitte an die Lokalredaktion Mönchengladbach wandte, den desolaten Zustand dieses denkmalgeschützten Gebäudes zu thematisieren.
Was immer wieder zu verwunderten Nachfragen bei Personalern führte, war ein Eintrag in meinem Lebenslauf, der wie folgt aussah:
Jun. 2002 – Erste verkaufte Anwendung, erstellt mit Borland Delphi 6
Datenbankanbindung (dBase IV) und –Web-Upload für Sage „GS-Auftrag“ als Schnittstelle zu einem PHP-Webshop für ein mittelständisches bayerisches Unternehmen auf dem Gebiet der Hydraulik- und Forsttechnik.
Inzwischen habe ich mich entschlossen, diesen Eintrag ersatzlos zu streichen, möchte über diese ungewöhnliche Geschichte dennoch bloggen.
2002 besuchte ich die gymnasiale Mittelstufe und hatte mich (blöderweise) für die Differenzierungsfächer Biologie und Chemie entschieden. Bereits damals lag mein Interessensschwerpunkt zwar stärker auf der Informatik. Jedoch befürchtete ich, dass die Mathematik, die die Informatik zwangsweise voraussetzt, mir zuviel abverlangen könnte, zumal ich kein guter Mathematikschüler war. Mein damaliger Beratungslehrer, der in späteren Jahren auch mein Informatiklehrer und eine sehr prägende Figur wurde, empfahl mir daher “Bio-Chemie-Diff”.
Mein Herz schlug in den Jahren 2001 und 2002, wie oben erwähnt, unweigerlich für die Programmierung. Ich hatte den Ehrgeiz (und die Zeit!) so viele Programmiersprachen wie möglich zu lernen. Also begann ich mit Pascal, später Delphi, lernte parallel Perl und JavaScript. Später Visual Basic und C#. Meiner Kreativität waren damals kaum Grenzen gesetzt. Verstand ich z.B. nicht wie eine Datenbank funktionierte, entwickelte ich einfach selber eine. Zwar eine sehr primitive und fehleranfällige auf Textdateibasis. Aber ich lernte viele wichtige Lektionen durch bloßes Ausprobieren, zum Beispiel warum Datenbanken heute so konzipiert sind, wie sie sind. Dasselbe mit Socketverbindungen, Netzwerkprotokollen (die ich anfangs händisch implementierte), Stringverarbeitung, Betriebssystemzugriffen, WebServices (SOAP) usw.
Borland Delphi war ein mächtiges Produkt. Es bot “out-of-the-box” die Möglichkeit Windowsanwendungen mit ansprechender GUI in wenigen Handgriffen zu entwickeln. Im Gegensatz zu dem damaligen Konkurrenten Visual Basic, wurde kein Runtime Environment, also Zusatzsoftware, die zusätzlich auf dem Zielcomputer installiert werden musste, benötigt. Anwendungen konnten als einzelne .EXE-Datei ausgeliefert werden und funktionierten auf nahezu jeder Windowsversion!
Im Juni 2002 befand ich mich mit meinen Eltern im Sommerurlaub in Oberbayern. Da wir dort regelmäßig Urlaub machten, wussten unsere Freunde vor Ort, dass ich ein kleiner Geek war. Wie der Zufall es so wollte, führte einer dieser Freunde gerade einen neuen Webshop auf PHP-Basis ein. Dort sollten Kunden seinen Warenbestand, vornehmlich Ersatzteile für Hydraulik- und Forsttechnik, einsehen und kaufen können. Man diskutierte am Tisch, wie man denn den Datenbestand seiner Auftrags- und Lagerverwaltung, der sich im Intranet des Unternehmens befand, mit dem Webshop synchronisieren sollte.
Der Blick fiel auf mich. Ich erklärte, dass ich in Delphi die Möglichkeit habe, Dateien mittels Dateitransfer (FTP) auf einen entfernten Webserver hochzuladen. Um den Warenbestand korrekt abzubilden, müsste ich vier oder fünf Datenbanktabellen anzapfen, den Inhalt konvertieren, in eine CSV-Datei schreiben und hochladen.
Meine erste verkaufte Anwendung machte also folgendes: Sie öffnete jede Nacht die vorgegebenen dateibasierten Datenbanktabellen (dBase IV) – ich erinnere mich heute nur noch an die sog. “Rabattmatrix” – konvertierte den Zeichensatz von ANSI zu ASCII, schrieb den Inhalt sequentiell in CSV-Dateien und pumpte diese dann zum FTP-Server des Webshops. Nachdem der Upload vollständig war, rief sie noch eine URL auf, die dem Webshop mitteilte, dass er nun mit dem Import beginnen kann.
Nach drei veranschlagten, aber fünf benötigten Tagen war die Anwendung fertig: Schlank, kompakt und funktional. Da ich damals den Windows-Scheduler noch nicht kannte, entwickelte ich selbst einen rudimentären Scheduler, der periodisch prüfte, ob die eingestellte Uhrzeit bereits erreicht wurde. Die FTP-Logindaten wurden verschlüsselt in einer INI-Datei hinterlegt. Damals wusste ich eben auch noch nicht, dass das FTP-Protokoll in seiner ursprünglichen Art die Logindaten unverschlüsselt überträgt. FTPS war mir gänzlich fremd. Aus heutiger Sicht hätte ich die Logindaten also ebenso gut unverschlüsselt in die INI-Datei schreiben können, da ein Angreifer die Loginsequenz nur hätte mitprotokollieren müssen.
Ironischerweise war das, was ich 2002 programmiert habe, ungefähr das, womit ich heute meine Brötchen verdiene: Datenintegration und -migration. Natürlich verwende ich heute bessere Werkzeuge (ETL-Tools, SQL-Datenbanken, Reporttools), aber im Grundsatz ist das schon sehr ähnlich.
Die Anwendung wurde irgendwann 2006 oder 2007 abgeschaltet, als das Unternehmen eine Softwarelösung kaufte, die den Warenbestand ohnehin “in der Cloud” hielt.
Vor einigen Tagen überließ mir ein Kunde meines Arbeitgebers, bei dem ich dauerhaft eingesetzt werde, für einen symbolischen Preis einen Karton voll Sportbekleidung. Es handelte sich vorwiegend um Zipper und Jacken namhafter Hersteller, für die ich selber keine Verwendung hatte. Auch wenn die Hilfsorganisationen ausdrücklich davon abraten Sachspenden eigenmächtig in Flüchtlingsunterkünfte zu bringen, entschloss ich mich die Textilien selbst in den Nordpark zu bringen.
Der Zuspruch unter meinen Freunden und Kollegen auf Facebook war großartig. Viele von ihnen sprachen mich in den folgenden Tagen an und begrüßten mein Engagement – wenige beendeten meine Facebook-“Freundschaft”. Ich stellte jedoch klar, dass es noch viel mehr Menschen dort gibt, die für die bevorstehenden kalten Tage keine adäquate Herbst- und Winterbekleidung haben. Tatsächlich geht es mir nicht darum Heiland zu spielen, sondern den Flüchtlingen ein Gesicht und einen Namen zu geben, um die Angst vor dem Unbekannten zu kurieren, die in vielen Deutschen derzeit steckt.
Inspiriert von der Idee, dass viele berufstätige Menschen ihren Personalrabatt, Lager- und Ladenhüter spenden könnten, übergab mir mein Bruder einen großen Karton mit Textilien, aus der Zeit, als er noch einen Copyshop betrieb. Ein Karton voll nagelneuer Poloshirts, Regenjacken, T-Shirts und Hemden. Diesmal brachte ich den Karton allerdings direkt zum Sicherheitspersonal, um sicherzustellen, dass die Spende gerecht aufgeteilt wird. Der Karton wurde sicher weggeschlossen, um einmal in der Woche eine große Kleiderausgabe zu veranstalten.
Ich unterhielt mich noch eine Weile mit einem der Sicherheitsleute. Er erzählte mir, dass er selbst vor 20 Jahren unter anderem über Kopenhagen und Hamburg als Flüchtling aus Togo nach Mönchengladbach kam. Damals kam er in einem Flüchtlingsheim auf der Lilienthalstraße unter. Wir wechselten ständig die Sprache zwischen Deutsch, Englisch und Französisch, je nach dem wie uns die Wörter, die wir suchten, in den Sinn kamen. Sani, so sein Name, erklärte mir, dass wenn das Sozialamt Mönchengladbach damals seine Lebenskosten nicht übernommen hätte, er heute keinen bezahlten Job, keine Wohnung in Rheydt und kein Auto hätte. Auf das alles ist er sehr stolz.
Plötzlich Blaulicht. Sani bat mich, am Geländer zu verweilen und den KTW zu bewachen. Eine Frau sei zusammengebrochen und der Notarzt bereits auf dem Weg hier her.
KTW, RTW und Notarzt rücken an.
Als ich wartete, komme ich ins Gespräch mit zwei Syriern, Bashar und Hmaza. Bashar spricht sehr gutes Englisch, was mich ein wenig überrascht. Ich hake nach wo er so gutes Englisch gelernt hat. Er erklärt mir, dass er in Syrien Bauingenieurwesen studiert hat, bevor er das Land wegen des Bürgerkriegs verlässt. Hmaza spricht leider kein Englisch, bittet mich aber unmissverständlich ihm zu folgen. Ein mulmiges Gefühl überkommt mich. Nicht, weil ich den beiden nicht traue, sondern weil Deutsche in den Schlaf- und Wohnräumen des TiNs nicht gestattet sind. So zumindest, erklärten es mir die Tage zuvor immer wieder Hausmeister und Sicherheitspersonal.
Die Stadt ließ wenige Tage zuvor Abtrennung errichten.
Die Beiden führen mich zu ihrem abgetrennten Bereich, in dem sie wohnen, leben und schlafen. Dort warten Ashraf und seine Freunde, die mich herzlich empfangen und mir einen Sitzplatz und Getränke anbieten. Ashraf ist eine beeindruckende Persönlichkeit. Er ist Architekt in Syrien gewesen und ließ Frau und Tochter dort zurück. Sie sollen eines Tages nachkommen, wenn er sicherstellen kann, dass sie gefahrlos nach Deutschland reisen können. Auch sein Vater, Professor der Geologie in Damaskus, soll dann nachkommen. Genau darin liegt aber das Problem. Die Gruppe berichtet mir, dass sie den Tod auf der Reise gesehen haben und zeigen mir Fotos der Boote, mit denen sie hier her kamen. Ashraf kam beispielsweise über die Türkei, Griechenland, Mazedonien, Serbien, Ungarn (wo er 7 Tage im Gefängis saß), Österreich bis München. Dort gab er seinen Pass, seinen Führerschein und seine Zulassung als Architekt den Behörden und wurde nach Mönchengladbach verlegt. Jetzt sitzt er, und mit ihm seine Freunde, hier fest.
Die Jungs fragen mich regelrecht aus: Wer ich bin. Wie alt ich bin. Was ich beruflich mache. Wie die Deutschen über Flüchtlinge denken. Ob meine Freunde und Verwandte denken, dass Syrier in Deutschland willkommen sind. Und so weiter. Die Gruppe hört mir aufmerksam zu. Ab und zu muss Ashraf das Englisch, das er besser als ich beherrscht, ins Arabische übersetzen. Ashraf spricht auch fließend Französisch. Er hat 10 Jahre in Frankreich gelebt und kennt die Teile von La Defense in denen ich wenige Jahre zuvor ab und zu gearbeitet habe.
Sie fragen mich, ob ich ihnen helfen kann. Ich bejahe das und biete ihnen an, dass ich ihnen Kleidung, Schuhe und Hygieneartikel besorgen kann. Ashraf lächelt. Er sei nicht hier her gekommen, um gratis Kleidung zu erhalten. Die Gruppe will arbeiten. Sie will lernen, wie Deutschland funktioniert. Wie die Gepflogenheiten hier sind. Sie wollen Deutsch lernen (und tuen es bereits!). Das Essen der Deutschen probieren. Und Ruinen, Wälder, Seen und Flüsse besichtigen.
“Ich verstehe nicht ganz.”, gebe ich Ashraf zu. “Ihr habt nur die Kleider die ihr am Leib tragt, aber wollt keine materielle Hilfe von mir?” – “Ja, ganz richtig.” – “Our dignity forbid us to beg for money, food and clothes.”. Ich willige ein und verspreche ihm, dass ich ihnen Mönchengladbach zeige und etwas Deutsch beibringe. Sie sind begeistert und bitten mich mitzukommen. Die Truppe möchte eine Rauchen.
Wie ich später verstehen sollte, war das nur ein Ablenkungsmanöver. Wohl kurz davor hat sich die Gruppe auf arabisch beraten, dass sie eine syrische Mahlzeit zubereiten wollen, an der ich teilnehmen soll. Als wir wieder in den Schlafbereich gehen, wartet auf dem Tisch eine Pfanne auf uns. Mostafa strahlt mich an: “I made this! It’s Eggs with Tomatoes.”
“You’re invited to eat with us. We want to thank you for spending time with us.”. Wow, die Gäste in unserem Land sind plötzlich meine Gastgeber. Gegessen wird das Gericht mit Fladenbrot, das sie in Mönchengladbach kaufen. Jeder reisst sich ein Stück vom Brot ab und nimmt sich damit etwas aus der Pfanne. “In Syria, the guest must eat a lot!”, albern sie.
Wir quatschen über eine Stunde über Gott und die Welt. Über Deutschland und Syrien, die Bundeswehr, über Hartz IV, über Mietrecht und Fahrschulen. Ich versuche ihnen so viele nützliche Informationen zu geben wie ich kann. Sie sind sehr interessiert an diesen Themen und stellen ständig neue Fragen. Auch über das tote Kind am Strand, das durch die Medien geistert, sprechen wir.
Einer der Jungs hat eine Erlaubnis für eine Wohnung bekommen. Die Tabelle zeigt den erlaubten Mietpreis.
Inzwischen ist es schon halb Neun Uhr abends, als die Gruppe mich bittet sie nach draußen zu begleiten. Sie haben dort eine Shisha angemacht und möchten, dass ich sie mit ihnen teile. In gemütlicher Runde sitzen wir draußen, als ich zu Ashraf sage, dass ich kurz zu meinem Auto gehen möchte um meine Jacke zu holen. Ashraf antwortet mir, dass er bereits vor einer Minute jemanden geschickt hat um mir eine Jacke zu bringen. Derartige Gastfreundschaft bin ich nicht gewohnt.
Einige andere Syrier gesellen sich zu uns. Ich lerne erste Wörter Arabisch: “as-salāmu ʿalaikum” und “alaikum us-salām”. Auch, wie man die Shisha richtig weitergibt: Man legt den Schlauch in eine Schleife und reicht sie seinem Nachbarn. Dieser tappt auf meinen Handrücken und sagt: “šukran” (Danke).
Nach der Shisha gehen wir wieder rein und trinken zusammen Tee. Chips werden serviert und die Stimmung ist gut. Sie fragen wann ich das nächste mal wiederkomme. Ich sage: “Sonntag!”. Sie sagen: “Dann bereiten wir für Sonntag ein traditionelles syrisches Abendessen vor und du bringst deine Freundin mit!”. Ich freue mich und sage zu.
Ashraf kommt nochmal auf mein Angebot der materiellen Hilfe zurück. Es gäbe doch zwei Dinge, die er sich sehnlich wünsche. “Do you know what a flute recorder is?” – Argh, ein flute recorder. Was war das nochmal? Eine Klarinette? Eine Oboe? Nein, eine Blockflöte. Aber er wünscht sich eine spezielle. Sie muss die deutsche Spielweise aufweisen, aus drei Teilen bestehen und nur zwei Doppellöcher haben. Er sagt, dass sie in Syrien sehr teuer seien. Dort hat er eine von Yamaha. Sie kostet dort umgerechnet 135€. Gemeinsam schauen wir bei Amazon: Ein ähnliches Modell kostet hier 7,40€. Ich bestelle ihm eine.
Sein zweiter Wunsch betrifft das Deutschlernen. Unbedingt möchten alle im Raum die Deutsche Sprache lernen. Ob ich ihnen nicht ein paar Lehrbücher kaufen könne. Ich willige ein und entscheide mich am Folgetag für das Thannhauser Modell und bestelle ein paar Exemplare. Zudem ein Wörterbuch “Arabisch – Deutsch/Deutsch – Arabisch”.
Gegen 23 Uhr trete ich die Heimreise an. Die Jungs begleiten mich zu meinem Auto – sie selber fuhren Opel in Syrien – und verabschieden mich. Zufrieden und satt fahre ich nach Hause. Bereits dort mache ich mir Gedanken, wie ich ihnen Deutsch beibringen soll. Tafel? Flipchart? Beamer? Kreide, Eddings, Hefte, Stifte? Das ganze muss gut organisiert sein. Todmüde falle ich zuhause ins Bett.
Anfang 2014 schaute die Welt hilflos zu, als es in Kiew während der Maidan-Ausschreitungen zu schweren Gefechten zwischen Polizei und Regierungsgegnern kam. Ich lernte damals eine (weitere) wichtige Lektion in Bezug auf Rundfunk, Presse und Medien: In Deutschland wurde verhalten und stets stark verzögert über die Ereignisse berichtet. Auf Twitter und Liveleak poppten dagegen im Minutentakt Bilder, Textmeldungen und Videos auf. Fernsehsender wie Al Jazeera und RT (ehem. Russia Today) zeigten zudem nachts ungeschnittene Live-Übertragungen.
Als es im August 2015 zu fremdenfeindlichen Ausschreitungen und Gewalt gegen Flüchtlinge in Heidenau bei Dresden kam, konnte und wollte ich, anders als in 2014, mir ein eigenes Bild der Lage machen. Für den 29.08.2015 war eine Demo in Dresden angesetzt (“Heute die Pogrome von morgen verhindern!”), bei der im Vorfeld unklar war ob sie stattfinden durfte und an der ich unbedingt teilnehmen wollte.
Meine Pechsträhne reisst wohl nicht ab… Letzten Monat ist ein Pleuel meines Autos gerissen und diese Woche meine Spülmaschine kaputt gegangen. Nun, ein Pleuel kann ich selber nicht reparieren, eine Spülmaschine aber schon. Auf geht’s:
Zuallererst vergewissern wir uns, dass die Spülmaschine vom Netzstrom getrennt ist. Die Wasseranschlüsse habe ich, da sie ausreichend lang sind, angeschlossen gelassen. Das spart viel Zeit beim späteren Testen und Einbauen.
Derzeit arbeite ich in meiner Frezeit an einem neuen Projekt: der grafischen Auswertung aller Sensor- und Aktorparameter im RWE SmartHome. Im Gegensatz zu vergleichbaren Projekten, rufe ich die Werte selber in einem cron-Job direkt aus dem RWE SmartHome Portal ab.
Die Fertigstellung der Anwendung ist noch in weiter Ferne, trotzdem möchte ich hier bereits vorab einige beispielhafte Auswertungen zeigen:
Darstellung 1: Ausgangssituation; Übersicht über alle Sensoren im eigenen Diagramm
Wow, ich habe zwar mehr als 4000 Clicks für diesen Beitrag, jedoch hat mir nie jemand gesagt, dass das Script schon lange nicht mehr funktioniert, da in PERL unter Windows die Aufrufe ‘chdir()/fchdir()‘ nicht mehr unterstützt werden. Bevor Fragen auftauchen: ja, mir ist die alte Version ein wenig peinlich. Aber bitte – bei der Erstellung der ersten Version war ich gerade 16; bei der Überarbeitung zarte 18 Jahre alt.
Wenn du die Geräteaktivität deiner RWE SmartHome-Elemente automatisch auslesen möchtest, ohne dich jedes mal einloggen zu müssen, kannst du das folgende Script benutzen. Es ist in Perl geschrieben und befindet sich derzeit in der Testphase. Sollten RWE irgendwann ihr Login-Form oder die Authentifizierungsmethode ändern, ist es sehr wahrscheinlich, dass das Script nicht mehr funktionieren wird.
Changelog
Version 1.1:
* HTML::Parser wird statt substr/pos verwendet um das VerificationToken zu holen
* use strict-Pragma implementiert
* Error Handling eingeführt
* div. Sicherheitsüberprüfungen eingebaut
* Kommentare hinzugefügt