 Es geht los mit Ilan Schnell, mit Kondapackaging. Los geht's. Hier das Mikrofon. Ja, das geht aber schon. Ich begrüße alle Teilnehmer der Lightning Talk Session. Mein Name ist Ilan Schnell. Ich arbeite für Continuum Analytics. Bei Continuum Analytics gibt es diese neue Python-Distribution namens Anaconda. Ich war früher in meinem vorigen Job bei Enthod und habe dort maßgeblich an der Enthod Python-Distribution gearbeitet. Und jetzt bin ich eben der Hauptmaintainer von dieser Anaconda Distribution. Und bei diesem Wechsel zu diesem neuen Projekt, wo ich natürlich bei der neuen Firma die sehr schöne, einmalige Gelegenheit hatte, alles von Grund auf neu zu machen mit den gesammelten Erfahrungen, wurde eben das Kondaprojekt entwickelt. Also Anaconda, erstmal selbst, ist die freie Python-Distribution für Linux, Mac, Windows, supported Python 2.6, 2.7, 3.3, hat NumPy, SciPy, Matplotlib, ganz viele dieser anderen Packages, Pandas. Und Konda ist eben der Package Manager. Und das Besondere an Konda ist erstmal, dass es eben Plattformagnostic ist. Also das Format dieser Pakete ist Plattformunabhängig. Es sind einfache Tar-Balls und die Pakete selbst sind noch dazu Python-unabhängig. Und meine Kritik an der ganzen Diskussion, die andauernd stattfindet, in der Python-Packaging-Welt betreffend dem neuen Wheel-Format und den früheren Eckformaten und all diesen Sachen, ist, dass es alles viel zu sehr zugeschnitten ist auf Python selbst, eben auf Python aufbaut. Und mit Konda geht man eben im Prinzip einen Schritt zurück und man sagt, alles sind Pakete, sie haben das gleiche Format und das ermöglicht es eben, Python selber als Paket zu haben. In diesem neuen Wheel-Format, was es gibt, das ist eben ein binäres Format für Python-Pakete. Man kann allerdings kein Wheel-Paket für Python selber machen. Dafür ist es gar nicht vorgesehen. Zudem erlaubt Konda, dass man verschiedene Environments haben kann, ähnlich wie virtuelle Environments, allerdings sind das richtige Briefwichse, die werden mit Hard Links erstellt auf der Festplatte und für das Dependency Management werden wird ein Set-Sover verwendet. Ich habe ein Projekt gestartet, es nennt sich PicoSet, das sind die Python Bindings für die Set-Sover Bibliothek PicoSat. Eine neue Sache dazu ist, dass mit Konda jetzt auch möglich ist, eigene Pakete zu bauen, die dann gut in das System integrieren. Vielen Dank für die Aufmerksamkeit. Danke schön, Stefan. Hallo zusammen, ich habe nur eine mini kleine Ansage zu machen, und zwar würde ich darauf hinweisen, dass heute der Ada Loveless Tag ist. Das ist der Tag, den wir als Programmierer aus Anders der Frau begehen, feiern, die die Programmierung erfunden hat. Das ist natürlich ein würdiger Tag, um eine Python-Konferenz zu eröffnen. Danke. Zum Set-Up. Da habe ich mir schon gedacht. So, danach Marius Resner. Kommst du schon mal her? Dann machen wir das. Ich fange einfach mal an. Ich wollte etwas über Ijanix PyRun erzählen. PyRun kennt vielleicht schon der ein oder andere. Ich hatte da auf der Python.de letztes Jahr schon drüber erzählt. PyRun ist eine Python-Laufzeit-Umgebung in einem einzigen Datei. Das Schöne daran ist, dass die Datei sehr klein ist. Man kann also die komplette Python-Bibliothek, mehr oder weniger die komplette und den Interpreter selbst, kann man einen 10 Megabyte unterbringen. Wenn man das Ganze durch UPX durchschickt, dann kriegt man das auf 3-4 Megabyte runter. Das ist also richtig klein. PyRun ist Open Source, Python-Style-Lizenz. Die Plattform haben wir unterstützt, Linux, die ganzen BSDs, IEX Solaris, Mac OS X, Raspberry Pi. Kein Windows. Wir benutzen es nicht für Windows, deswegen ist die Motivation nicht so riesig da. Aber es könnte ja sicherlich auch dahin portiert werden. Er hat letztes Jahr schon drüber erzählt, was PyRun jetzt ist, wie es funktioniert und so weiter. Jetzt hatten wir ein neues Skript geschrieben dazu, um die Installation ein bisschen einfacher zu machen. Nennt sich Install PyRun. Logischerweise kann man bei uns runterladen. Das kann man einfach machen und lässt es laufen und hat dann also ganz schnell eine PyRun-Installation. Wenn ich jetzt das richtige Fenster finde, das muss ich jetzt mal darüber schieben. Ich kann es sogar da sehen, sehr schön. Das läuft also ganz einfach. Ich muss dann einfach nur install PyRun sagen. Das Verzeichnis, wo es hin soll, ist also alles sehr ähnlich wie bei Virtual End. Mit dem kleinen Unterschied, dass man hier einen kompletten Python-Interpreter installiert bis man es jetzt soり es wieder ins命 setzt. So, jetzt kann ich das Verzeichnis reingehen. Da hat man also BIN, Include und Lib, wie man das halt so kennt unter UNIX. Hier sieht man, dass die Datei also tatsächlich gerade mal 10 megabalt groß ist. Wir haben noch ein Debug-Version dabei, die halt ein bisschen größer ist. Jetzt kann man das Ganze durch OPX durchjagen. Jetzt mache ich auch gerade mal. So, das dauert ein bisschen. Man muss jetzt so sechs Mal da durchlaufen. Ich weiß nicht, was er da macht, aber es wird nachher sehr klein. So, man sieht hier, 3,4 sage ich jetzt mal megabyte. Und was natürlich viel interessanter ist, das funktioniert auch tatsächlich. Man hat hier ganz normales Peißen vor sich. Wir haben in der neuen Version auch noch ein Simlink auf Peißen gesetzt, weil manche Programme halt unbedingt Peißen dastehen wollen. Und die ganzen Sachen, die man halt so kennt, ob wir sind schon da, die funktionieren auch. Man kann zum Beispiel ein Game of Life, kurz mal eben installieren, wenn das Netzwerk hier mitspielt. Ja, das ist Game of Life mit Piran. Das war's. Danke. Hallo zusammen, ich bin der Marius. Ich wollte nur mal kurz auf die Schnelle zeigen, wie man sich ein Smartphone, Smart Home, sich wünscht, dass man das mit KNX beispielsweise machen kann, ist im Prinzip schon bekannt. Die Technik ist eigentlich IPE oder Instapus. Das Schöne ist nur was in dem Prinzip. Ja, schon vorhandene Technologien und das ist im Prinzip alles ready to go, dass man dann, wenn man eben so eine, sorry, wenn man eben dann saniert oder ein neues Haus baut und sich für KNX entscheidet, sieht man auch schon an der rasen Geschwindigkeit vom KNX Bus von 9,6 Kbps. Der hat jetzt letztes Jahr sein 20-jähriges Jubiläum gefeiert. Aber man kann eben alles mit abbilden, wenn man jetzt eben große Häuser, bis Krankenhäuser oder so, das ist eigentlich kein Problem. Und man kann eben dann, wenn die Geschwindigkeit ein Problem sein sollte, kann man auch Ethernet im IP als Backend einsetzen und dann reicht das eigentlich nach wie vor aus. Also ist ganz witzig, aber funktioniert. Wie gesagt, nur mal ganz auf die Schnelle. Es gibt da so ein Tool, das ist leider auch die einzige Option momentan, um dann so eine KNX-Anlage zu parametrieren. Ist im Prinzip kein Programmierendem Sinne, weil man im Prinzip eine Parameter einstellt und die Sachen miteinander verknüpft. Ist aber eigentlich ganz schön, wenn man es lesen könnte. Gut, dann muss ich dazusagen. Beispielsweise geht es im Prinzip darum, dass man durch so Gruppenadressen werden eben Funktionen verknüpft. Also beispielsweise ist jetzt hier dieses PDL, ist ein Präsenzmelder, der hat eben ein Lichtausgang. Das heißt, ein Präsenzmelder ist im Prinzip nur ein bisschen empfindlicherer Bewegungsmelder. Der erkennt halt eine Bewegung und hat dann eben ein Kommunikationsobjekt, das nennt sich Lichtausgang. Das ist im Prinzip einfach nur ein Bit, 0 oder 1. Und das kann man eben dann verknüpfen in der Gruppenadresse mit so Schaltkanälen oder Dimkanälen, also dass man eben sagt, okay, Licht im WCG an. Also das ist, wie gesagt, recht simpel alles, wunderbar, kann man schön machen. Ja, dann hat man eben diese Gruppenadressentropologie von KNX und so weiter, lasst jetzt mal aufgrund der Zeit einfach weg. Es geht nur darum, dass dann der schöne Part eben dann kommt, wenn man schon auf KNX ist, dass man eben mit Ethernet, wenn man will, oder mit USB, sehr viele Schlittstelle oder was man eben findet, gibt es vom Martin Tückelkler ein Ipedeam, heißt der. Und mit dem kann man dann eben den kompletten Bus lesen und auch schreiben. Das heißt, man kann dann eben mit diesem Ipedeam gibt man dann einfach beispielsweise einen Crews Crew, also auf der Konsole und das kann man dann eben mit Python entsprechend anbinden oder auch mit anderen Sprachen, aber hier würde es ja Python anbieten. Ja, man macht dann eben einfach so ein Crew, zum Beispiel Crew Pride auf Localhost, eben mit dieser Gruppenadresse auf 1, das heißt, da ist jetzt beispielsweise eine Lampe dahinter oder eine Steckdose oder was auch immer man will. Und dann wird eben über diesen Demen das geschaltet, wird halt auf den KNX Bus geschrieben und dann wird das eben ausgeführt. Und ja, dann kann man eben mit dieser Schönstelle dann machen, was die Kreativität so bietet. Ja, das war es schon. Ja, wir hören morgen bei der Preisverleihung dabei war, der weiß, worüber ich jetzt schon wieder erzählen werde, weil der Reimer mir 3 Minuten versprochen hatte, hat er mir nicht gegeben. Er zeigt mir 5 Minuten geholt hier beim Lightning Talk. Man sieht, ob ich das überhaupt ausnutzen kann. Ich möchte einfach nochmal Werbung machen für unser Programmierwettbewerbprojekt, das wohl offensichtlich fortgesetzt wird und was wir in der Präsentation gesehen haben, das waren also Filme, die erstellt wurden von den Preisträgern und ich will einfach nochmal ganz kurz Blender zeigen, vielleicht hat das jeder schon mal aufgemacht. Und meine Idee ist halt, zukünftig der Lehrerschaft ein Zuhil in die Hand zu geben, wo sie wenig Arbeit mit haben, dass sie also vorgefertigte Lernen hätten haben, die sie leicht einsetzen können. Und das will ich hier an dem ersten Beispiel, das ich gebaut habe, zusammen mit dem Jürgen Rettel mal zeigen. Das ist also so, ich kann hier ganz normale Text-Dateien einbinden in ein Blenderprojekt und kann alles andere ausblenden. Es kommt zwar mit sehr vielen Fenstern daher und kann dann aber immer umschalten, den Kontext, wo ich gerade bin. Ich habe hier also eine Einleitung vorgeschaltet und hier geht es ganz konkret darum, Moleküle zu bauen und da hat mir der Jürgen Rettel, der S-Chemiker, der hat mich auf diese Datenstruktur aufmerksam gemacht, die nicht die neueste ist, aber die ist für ein Unterricht eigentlich sehr gut geeignet. So sieht sie komplett aus und wir haben alles überflüssige rausgeschmissen, ein Aufgabenblatt dazu und natürlich dann ein paar Beispiele, die man sich angucken kann und auf Schlag laufen lassen kann. Und schon hat man hier mit einem einfachen Python-Script, so einfach ist es noch nicht, weil es so gebaut ist, dass es also auch für Alarten von Molekülen geeignet ist, das demonstrieren kann, bevor man die Schüler selbst experimentieren lässt. Und das ist eine ganz wichtige Erfahrung, dass die Schüler halt nicht nur etwas nachbauen wollen, sondern dass sie halt selber experimentieren wollen. Und da muss man recht schnell in die Gänge kommen, damit es nicht langweilig wird um Unterricht. So hat er mir auch ein Stück DNA zukommen lassen, aber das Ding war so groß, da braucht man schon Rechenzentrum, um dann so was berechnen zu können und ich habe meinen Ausschnitt davon verwendet. Man sieht, er braucht schon ein bisschen, um das zu berechnen, aber nach kurzer Zeit ist das Ding fertig und man kann es hin und her drehen und sieht hier so ein Stück DNA, kann natürlich dann einzelne Atome wieder isolieren, kann das Ding auseinander nehmen, die DNA manipulieren und man gucken, was dafür eine Kreatur rauskommt dann am Ende, wenn es gelingt, das chemisch umzusetzen. Das ist also meine Idee, so was anzubieten, nicht nur Chemie war jetzt das naheliegendste, weil wir uns kennengelernt haben in einem Kurs und da möchte ich nochmal darauf aufmerksam machen. Ihr habt das Fachwissen, sucht in eurer näheren Umgebung die Schulen, versucht die anzusprechen und macht die überhaupt auf diese Möglichkeit aufmerksam, das Schulungsmaterial ist schon ziemlich rund, wir werden dann natürlich weiter daran arbeiten, aber der Aufwand, sich da reinzuarbeiten für einen peißen Kenner ist minimal und damit kann man sehr interessanten Unterricht machen, Werbung für den eigenen Beruf, Werbung für die Firma nutzt diese Möglichkeiten. Eine andere Sache, die ich immer gerne zeige, ist etwas, was sich bewegt halt und das ist hier so eine Animation eines stilisierten Autos, das dann halt mit einem zufällig gewählten Fahrt da seine Runden dreht. Das Auto bauen die dann selber, die Kinder, da brauchen wir sich keine Sorgen machen. Das kann man natürlich. Jetzt heute den ganzen Tag hier, hat mir mir ihre Vorträge angehört und ich dachte mir, dann muss ich auch noch kurz ein paar Worte sagen, und zwar benimmlich. Das war nachdem ich die ganzen Testvorträge und Diplomentvorträge, spannende Sachen habe ich heute gehört und da wollte ich einfach nochmal ein paar Worte dazu sagen und eine Kleinigkeit vorstellen und zwar das ist ein Tool, das heißt Behave, daher auch der Vortragtitel, benimmlich. Was ist das? Das Ganze kommt eigentlich aus der Ecke des Behavior Driven Development oder auch abgekürzt BDD und was das Ganze macht, oder deswegen ganz kurz, was BDD ist, kurzidämen. Also mein Installiertes, das denke ich, kriegt jeder hin. Es ist jetzt nicht Pie-Test, die ledigem etc., das ist eigentlich mehr so, benutzt man dazu. Und wie gesagt, ich will es zeigen, ich habe das einfach aus einem Projekt ein bisschen court geklaut, ich hatte ja keine Zeit, mich vorzubereiten und es sieht da normalerweise verdammt. Jetzt sehste ich ein bisschen drauf, so was hier. Das heißt, die Idee grundsätzlich gesehen vom BDD ist, dass man Tests so schreibt, dass sie derjenige, der sie am Ende abnimmt, lesen kann. Das heißt, wenn man ein Projekt startet, hat man normalerweise einen Kunden und der möchte jetzt eine Abmarmarmende machen. Also nimmt man irgendwer, erstellt die Anforderungen zum Kunden hin und schreibt dann halt, der Nutzer soll zum Beispiel Images hochladen können. Dafür muss der Nutzer eingeloggt sein, offener bestimmten Webseite, das ist jetzt halt für eine Webseite daher, dann klickt man auf den Link und so weiter. Das heißt, der Kunde hat sozusagen irgendwelche Mockups und dann schreibt man dazu, wie das Ganze sozusagen aussehen soll. Also man schreibt auf, sozusagen User Stories. Das ist jetzt hier ein Beispiel, es gibt dafür so eine formfertigte Sprache mit diesen Statements given when, given when, when. Das ist so, wenn das gegeben ist, dann das der Kunde Nutzer macht, passiert das und das. Das ist so eine Struktur, die man daran immer wiederholen soll. Das hier ist sozusagen der Test und danach geht man da hin, also nachdem man das sozusagen als Spezifikation für das Projekt hat, geht man hin und sagt, okay, wir machen auch das Python Code. Das heißt, wenn einem lobt in, versteht natürlich jetzt nicht, kann man jetzt nicht ausführen als Code und die Idee ist, dass man danach daraus Code macht. In Python gibt es dieses Behave-Tool und das gibt dann halt einem hier entsprechend, oh, das muss doch nicht gut lesen, dieser Zeile. Das heißt, man hat Dekoratoren mit given und den anderen when und then und dann kann man hier halt den Code hinmachen, darin gibt es diese Variablen, das ist jetzt zum Beispiel User. Und dann kann man sagen, okay, was hier passiert, in dem Fall ist das Selenium. Das heißt, das Selenium wird im Hintergrund ausgeführt, eröffnet im Bowser, geht auf die Login-Seite, trägt E-Mail und Passwort ein und sendet auf dort einfach ein Login-Button. So, das Ganze, ich führ das einfach mal kurz aus, wie so was aussieht. Das interessiert hier niemanden. So sieht das dann aus, wenn man das aussieht. Das heißt, hier steht immer was, was er gemacht, was er machen soll. Das ist grau und wird grün, sobald es erfüllt ist und dann klickt halt im Hintergrund irgendwo in dem Fall halt ein Browser, die ganzen Sachen durch. Wie gesagt, er setzt jetzt nicht Selenium, weil Selenium braucht man immer noch. Jetzt natürlich ganz Frage, was will ich damit jetzt sagen? Irgendwann hat die Frage geworfen, braucht man so was wirklich? Braucht man wirklich diesen ganzen Blödsinn hier mit eine extra Sprache definieren, mit der man jetzt hat, hey, ich habe noch eine Sprache und die beschränkt mich ja eigentlich nur. Ich kann ja viel weniger Sachen ablehnen. Wenn ich direkt Peiten schreibe, kann ich viel mehr abbilden. Ja, aber es wird dann meiner Erfahrung nach oder meiner Meinung nach eher umstrukturierter. Und deswegen bin ich ein bisschen ein Fan davon geworden, zu sagen, okay, wir machen das. Das Projekt, das wir hier haben zum Beispiel, wir sehen, das heißt, wir haben gar nicht behavior driven entwickelt, haben wir trotzdem dieses Tool benutzt. Einfach, weil es dazu führt, dass die Leute, die die Unitests oder nein, das sind keine Unitests, das sind Akzeptanz-Tests, aber die, die diese Tests geschrieben haben, sie dokumentieren in Anführungszeichen ihren Code, indem sie oben drüberschreiben, was macht diese Zahl? Also, was macht diese Funktion? Okay, das ist vielleicht logged in, es wäre vielleicht einfach gewesen, wenn ich dann hier einen besseren Namen gewählt hätte. Aber meiner Erfahrung nach, manchmal, hey, er wussten die Dokumentation. Ja, wir haben Tests, guck doch da rein. Ja, das hilft nicht unbedingt. Es ist schön, wenn man den Projekt trinkt, dann versteht man auch die Tests. Wenn man nicht drinsteckt und Tests vorgekommen mit, hilft einem das auch nicht unbedingt. Aus diesem Grund sehe ich dieses Tool, nicht nur für Leute, die jetzt behavior driven entwickeln, streng, sondern auch Leute, die einfach so entwickeln, als Hilfe, strukturierter, die Tests zu schreiben und dadurch kriegt man auch ein bisschen Dokumentation in den Tests rein. So, genau das, was ich gerade meinte. Tests sind keine Dokumentation. Also, benehmt euch und dokumentiert euren Code. Danke. Eine kleine Sache hat noch, ich habe eben gerade ein, es gibt ja das PiCamp am Freitag und ich habe einen Vortrag, Vorschlag gerade eingereicht, der heißt Development Tests und Deployment Pipelines. Ich hoffe, dass man eine kleine Gruppe machen kann. Na ja, egal, guckt in das PiCamp-Tool. Ja, wir werden das zu der Uhrzeit machen. Wer weiß nicht, wie eine Key-Signing-Party funktioniert, wahrscheinlich alle. Ihr schickt vorher euren öffentlichen GPG-Key zu mir. Und zwar bis Donnerstag, sagen wir mal 18 Uhr, damit ich eine Chance habe, das alles zusammenzustellen. Freitag, wenn ihr dann teilnehmen wollt, erstens seid da, zweitens bringt Ausweistokumente mit. Die Regel sagt zwei amtliche Ausweistokumente. Je nachdem, wenn man nur einen dabei hat, nur einen mitbringen kann, kann es sein, dass der Gegenüber sagt, ne, da sind keine zwei, das unterzeichne ich nicht. Versucht Freitag morgens um 8 Uhr ungefähr so auszusehen, wie auf euren Ausweistokumenten. Das könnte schwer werden, wir müssen es trotzdem versuchen. Seid da, wie gesagt, das ist wichtig. Schickt mir vorher den Key, damit ich den Keyring zusammenstellen kann und das Dokument, wo auf dem Dienervierblatt alles zusammen ist mit den Checksum. Ich werde versuchen, das vorher auszutroken für jeden, weil nicht jeder von Donnerstag auf Freitag das ausdrucken kann. Das stellt uns vor ein logistisches Problem, weil hier natürlich die Organisation wahrscheinlich auch noch nicht da ist Freitag morgens um 8 Uhr, aber das wird schon funktionieren. Wir seid da, okay, wurde mir auch so schon zugesagt. Wir gehen davon aus, dass es so ist. Also Freitag morgens Key-Signing-Party, damit wir alle demnächst verschlüsselt unsere Nachrichten austauschen können und der NSA nicht mehr ganz direkt zuhören kann. Musik will ich jetzt keine hören. Ich wollte euch eigentlich nochmal ein paar Tipps geben für eure Bekannten, die, ehrlich gesagt, wie ich noch nicht so palten Experten sind. Neben den üblichen Wegen des Hochschulkurses in der Schule gibt, die ganzen Bücher, die Online-Tutorials, gibt's seit zwei Jahren diese massiven, offenen Onlinekurse. Und ich bin im letzten Herbst zu Palten gekommen durch den Coursera-Course in Introduction to Interactive Programming. Da haben wir in acht Wochen am Ende ein Asteroids, also dieses klassische, achtiere Akadenspiel, zusammenprogrammiert, lief auf dem Browser. Kein Palten salieren, das Palten lief auch im Browser. Ein anderer Mitbewerber ist Judith City. Bei Judith City laufen die Kurse, fangen die an, wann man will, da es nicht so dieser Ärger ist, dass 4.000 Leute innerhalb von acht Wochen es schaffen. Aber wenn man seine Zeit vereinteilen will, ist das auch okay. Wenn man wissen will, welche Kurse jetzt gerade anfangen, zum Thema Palten oder so, ist Class-Central die zentrale Anlaufstelle. Ansonsten meine eigene Website listet alle möglichen Anbieter auf, wo man dann sich einzeln durchklicken kann. Ganz frisch für unsere Palten, Palcon, gibt es die Möglichkeit bei Brainbench einen kostenlosen, sonst wollen die da Geld für haben, weiß auch nicht wieso, einen kostenfreien Palntest 2-4 zu machen. Also die Fragen sind schon so hart, das ist schon wie, sagen wir mal, 90 Minuten Klausur, sagen wir mal Bachelorstudium oder Diplomstudium oder so, erste Programmiersprache nach ein oder zwei Semestern. Wenn man, sagen wir mal, dann ein bisschen länger arbeiten will und ein erstes Projekt braucht und aber ein Feedback haben möchte von quasi internationalen, lohnt sich auch, die Spotify-Pass ist. Ich habe es jetzt noch nicht eingesendet, aber da gibt es so drei kleine Programmieraufgaben, die alle nur Kommando-Zahlen orientiert sind und die auch wieder erste Programmiersprache oder wenn man eben wechselt, durchaus innerhalb von ein paar Wochen zu schaffen sind, kann man sie auch reinarbeiten in den Unit-Testing und was auch immer oder es richtig objektiert machen. Und wenn man das einsendet, heißt es, man bekommt ein Feedback, ob das Programm in Ordnung ist, also ob man die Spezifikation erfüllt hat oder auch nicht. Das war es eigentlich schon. Happy Coding. Hallo, mein Name ist Shomu Shapiro von der Immobilien Scout. Ich möchte euch ein bisschen über unser aktuelles Konzept für die Konfiguration des Monitorings und der Lamings- und Rechenzentrum erzählen. Hintergrund ist so ein bisschen die besonderen Herausforderung, die wir haben. Wir haben ja eine selbstgeschriebene Konfigurationsverwaltung, die auf RPM-Paketen basiert und die allererste Voraussetzung auch Konfigurationen muss per RPM-Paket ausgerollt werden. Und schon da haben wir gesehen, dass die meisten Standardkonzepte für Monitoring-Konfigurationen total doof sind. Das nächste ist auch spannend, technische Kropplungen fachlicher Zusammenhänge. Das heißt, wenn ich einen RPM mit einer Software drinnen habe, mein wegen Web App, dann möchte ich, dass alle Dinge, die fachlich damit zusammenhängen, auch von diesem Paket ausgeliefert werden oder von einer Dependency installiert werden. Konkret heißt es, irgendwie muss das Web App RPM dafür sorgen, dass das Monitoring-Konfig Stückchen für diese Web App auch an die richtige Stelle kommt. Und das ist das dritte Problem. Die richtige Stelle ist meistens nicht auf dem Server, wo die Web App läuft. Die monitoren sich ja nicht selber, sondern werden von woanders gemonitort. Wir wollen aber natürlich keine Host-Übergreifen haben, das funktioniert einfach nicht. Ich kann nicht sagen, Require ist irgendwie Paket at Host sowieso. Ich kann nichts zwar reinschreiben, aber das interessiert dann keinen. Unsere Plattform sieht ungefähr so aus. Wir haben ganz viele Server. Stand jetzt ist wahrscheinlich 15 bis 1600. Das ändert sich immer so ein bisschen nach oben. Und auf dieses Server deployen wir Software und Konfigurationen per App. Wir haben Update und so weiter. Und natürlich ist da auch irgendwie die Monitoring und Alarming-Konfiguration mit drin. Aber das ist jetzt der entscheidende Punkt. Wir installieren das auf die Server. Und da gibt es woanders, als Singerserver, auf denen laufen die Prozesse, die diese Informationen brauchen, die damit eigentlich was tun müssen. Und die Frage ist jetzt, wie kommt das Stück Information von den vielen Servern der Plattform in die Monitoring-Server? Und dazu möchte ich euch zwei Open-Source-Projekte in Python natürlich vorstellen, die genau dieses Problem lösen und die uns auch jetzt wirklich gut helfen. Also, der erste Punkt ist, R-Permisiert-Konfigurieren heißt Modularisiert-Konfigurieren. Jetzt habe ich ein Server, auf dem sind ganz viele Services drauf. Zum Beispiel hier HTTPD als Service und unsere Web App auch als Service. Und dann möchte ich die Monitoring-Konfiguration auch modularisiert ablegen. Wir haben uns auf Yaml und wir haben gesagt, unter etc-Monitoring kann jeder ein Stück Konfiguration hinlegen, in der beschrieben steht, wie hier gemonitort werden soll. Immer für diesen einen Haus bezogen. Und dann haben wir einen Yaml-Server geschrieben, der alle diese Yaml-Dateien einliest nach einem bestimmten Human-Compatible-Algorithmus merged und diese Information dann per HTTPD bereitstellt. Ein Monitoring-Konfig-Generator läuft auf der iSinger-Seite als regulärer Job und fragt bei HTTPD die gesamte Plattform ab, sachen wir mal, wie du gemonitort werden möchtest. Und die Antwort ist natürlich eine Yaml-basierte iSinger-Konfiguration, wer iSinger oder Nagios kennt. Das ist einfach dasselbe, aber eben in Yaml verpackt. Da passiert noch so ein bisschen in der Monitoring-Konfig-Generator Variable-Magic, sprich, wir haben eine eigene Variable-Subzitation eingebaut, die es uns ermöglicht, das feilbasierte Overlaying mit dem jammelbasierten Overlaying so key, value, hierarchiemäßig ein bisschen schlau umzusetzen, sodass wir halt ein ganz strenges down to repeat yourself spielen können. Und der Monitoring-Konfig-Generator schreibt natürlich iSinger-Konfig, lädt den iSinger neu und im Ergebnis ist ein Server, den ich automatisiert oder von Hand neu aufsetzen lasse innerhalb kurzes der Zeit auch im Monitoring aufgenommen. Das Ganze ist zu finden auf GitHub unter unserer Projekt-Webseite. Funktioniert bei uns stabil, production ready sozusagen. Der nächste Schritt, an dem wir noch arbeiten, ist, dass das neu einlesen der Monitoring-Konfiguration eventbasiert passiert, nämlich dann, wenn ein Deployment stattfindet. Natürlich wird auch nur bei Änderung an der Yaml-Konfiguration das Monitoring neu geladen, und ich rede so lange, bis ich die Musik höre. Genau, habt ihr noch Fragen? Ja, alles auf GitHub, auf unserer Projekt-Webseite. PureQuest sind willkommen. Die Konfig ist schon da. Die Dokumani. Danke. Keine Musik, kein Klatschen. Schon fertig. Ja, ich möchte hier auch in eigener Sache machen, und zwar für den Science-Hack-Day. Science-what? Science-Hack-Day, das ist so eine Art Hackersam, aber nicht nur für Entwickler, sondern auch für Designer und Wissenschaftler und Ingenieure. Sprich, wir wollen halt nicht nur Software entwickeln, wir wollen halt richtig was Tolles schaffen. So was, wie zum Beispiel, hier sind ein paar Projekte von den vergangenen Jahren, und aus anderen Städten. Auch ein sehr verschiedenes Projekt war, war ein Bird Detector, das heißt, mit einem Micro-USB-Mikroskop und einer heißen Software, die dann einem sagt, ob man sich heute rasieren muss oder nicht. So eine Sache entstehen da. Die Constraints sind relativ einfach. Es gibt 48 Stunden Zeit, wir stellen der Location, wir stellen alles Mögliche an Equipment, was wir rankriegen können. Also Raspberry Pies und Arduino Summer schon 3D Drucker bekommen wir auch ran. Und wie gesagt, wir wollen nach 2. Arbeit und wir wollen, wir kümmern uns ums Essen und die Location und ansonsten darf jeder teilnehmen, der will. Ja, hier sind noch ein paar andere Projekte. Science, der klingt zwar sehr nach Wissenschaft, aber you don't have to be a scientist, you don't have to be a hacker, you just have to be excited. Sprich, also jeder, der Interesse hat, der Spaß daran hat, darf damit machen. Fällt noch kurz zur Geschichte, das Konzept ist ursprünglich in den USA in San Francisco entstanden. Das ist eine sehr tolle Idee hatte. Es gibt es inzwischen in 26 Städten und jetzt auch in Berlin. Ich komme aus Berlin, deswegen mache ich jetzt auch für das Berlin-Event. Mehrwohn, da gibt es eine Seite. Aber heute kann man sich da registrieren. Die Anmeldung ist wie gesagt kostenlos, aber dadurch, dass wir nur begrenzt Platz haben, lohnt sich es schnell zu kommen. Und wir sind natürlich auch dankbar, wenn wir noch mehr Sponsoren finden können. Im Moment haben wir schon einiges an Hardware-Sponsoren, wenn wir noch ein kleines bisschen Geld kriegen könnten für die Anmeldung in Berlin. Die Anmeldung ist auf Berlin.sciensecday.com. Das finde ich statt am 15., 16. und 17. November im Beta-Haus in Berlin. Und das ist auch schon alles, was ich sagen wollte. Vielleicht noch kurz für Leute, die sowas ähnliches organisieren wollen. Sie können sich natürlich auch gerne mit uns in Verbindung setzen. SADedopentexchool.org. Opentexchool haben wir vielleicht schon gehört. Der Berliner Ablieger hat quasi das Event ihren Amtlich gestartet in seiner Freizeit. Es sind jetzt noch mehr Leute dazu gekommen, aber die sind halt immer noch quasi sehr aktiver und sehr aktiv dabei. Ich würde mich freuen, wenn ich vielleicht eine oder andere sehen könnte oder wenn wir vielleicht sogar den einen oder anderen finden könnten, der sagt, okay, ich gebe 100, 200 Euro dazu, ein bisschen Sponsoring, damit das Essen auch alles klappt, so wie wir uns das geplant haben. Dankeschön. Ist das doch für Bruckensohn? Nein, das ist ja doch für Bruckensohn. Nein, das ist für Bruckensohn. Nein, das ist für Bruckensohn. Nein, das ist für Bruckensohn. Nein, das ist für Bruckensohn. Das ist nur kurz zur Historie. Es entstatt also aus dem Blingtenleitz-Projekt, das, der auch von der CCC stand. Also wir wurden auch die ganze Gebäude illuminiert und, was ich, genau. In München hat man dann das Smooth Lamp Reck gestartet. Das war, die Idee war also, Landhund mit schwemm Licht zu erzeugen, zu bauen. Dafür gab es eine, hat man die drei farbige LED genommen, die es da rein stand. Auf dem Markt kam mit drei Watt, also eine richtig viel Lichtleistung, hat eine Platine entwickelt, mit einem Miniskontrolle drauf, sodass es programmierbar war und hat es dann in so eine IKEA-Lambe verpackt. Und damit war das also immer schon ein schönes, stimmungsvolles Licht erzeugend, und das dann auch gefadet ist in verschiedenen Farben. Später war dann, gab es dann Projekte auch in München, es war ein Hochhaus gewesen, also nicht so hoch, aber nur viel vom Stockwerke, das abgerissen werden sollte und war dann ein Jahr leer gestanden. Es hat dann verschiedene Kunstgruppen in München, haben das dann quasi genutzt als Kunsträume und haben da auch Ausstellung drin gemacht. Und dann hat dann auch der CCC dann diese Moodlamps weiter genutzt, mehrere davon in die Fenster eingebaut und das war dann auch von außen steuerbar die Fenster. Also nicht nur zweifarbig, zwar zweis, sondern eben auch farbig war dann wirklich. Dann wurde das Gebäude durch abgerissen und dann haben wir überlegt, was man in den Land macht und überlegt, okay, nimmt man IKEA-Kisten, baue die da rein. Seit ein paar Jahren gibt es diese Art der Institution, die jetzt im Moment auch in ganz Deutschland herumpreist und das eben auch zur Pi-Konten wieder aufgebaut lässt hier. Bisher steht es nur da, was soll es mit Python zu tun? Es läuft da so eine kleine Python-Server-Anwendung, die die Lampen steuert und dazu eine kleine Client-API, die dann über UDB kommunizieren. Das heißt, man kann jede einzelne, einzelne Pixel von den Lampen ansteuern, mit welcher Farbe es erscheinen soll. Es gibt also alle möglichen Beispiele, die das an Regenbogen, Farben oder Anzeigen anzeigen. Das, was auch im Video ist, ist ein Snake zum Beispiel oder ein Tetris. Das hat auf dem Layout nicht so optimal, aber geht auch oder zum Beispiel auf Text, wobei das auch nicht so gut lesbar ist, wie den großen Pixeln. Ich wollte das einladen, damit zu machen. Wir können da ganz einfach eigene Animationen träumen. Es gibt ein GitHub-Deepository und auch ein Simulator, wo man das mal lokal testen kann, die Animationen, bevor man sie dann auf die große Wand schickt. Wenn ihr das machen wollt, gibt es ein eigenes Fehl an, da könnt ihr euch dann als Prozess einloggen und die Animationen dann da spielen lassen. Also ihr habt dann eine Wiki-Seite eingerichtet, wo die nötigste Information draufsteht oder einfach vorbeikommen und fragen. Also ich will noch etwas zeigen, wie einfach das ist zu schreiben. Hier ist so ein kleines Beispiel. Also gibt es hier diese kleine Library, diese AKSL-Library, die man da nutzen kann. Also im Prinzip ist der wichtige, der wichtige Befehl ist dann hier. Da sagt dieses Send-Kommando, die gibt die XYZ-Kommandante ein, welches wegen Pixelmann verändern will, dann die RGB-Farben. Und die Nummer ist dann, wie schnell das schalten soll, also ob man es sofort schalten soll, mit Null oder Fading über eine Sekunde zum Beispiel. Und das letzte Mal, damit das optional ist, wenn man mehr solche Wände hat. Aber ja, wir haben hier nur eine. Ein Beispiel, wenn einfach alle auf die komplette Wand auf Blau gesetzt. Also es ist recht einfach zu machen. Ich will noch kurz zeigen, wie die Simulation aussieht. Also man stellt einfach sein Skript an. Und hier ist dann so ein Beispiel, dieser Simulator, der das dann einfach nur anzeigt. Lokal und dann kann man später auf die Wand schicken. Das habe ich mit dir erklärt. Okay, das war's. Ich rede nicht nochmal übers Key-Signing, definitiv Werbung machen. Mir wurde auch gerade gesagt, ihr solltet doch möglichst die E-Mail-Adresse mit ins elektronisch Programm schreiben. Das habe ich schon getan. Ich hoffe, es ist auch erschienen. Ich habe vor ein bisschen Zeit angefangen zu laufen. Also so richtig so sportlich draußen, nicht nur am Rechner. Und habe festgestellt, ja, Läufer sind, laufen zwar alleine, aber sie teilen der Welt gerne mit, wo sie laufen, wie schnell sie gelaufen sind und sie teilen das vor allem gerne der NSA mit. Das wollte ich nicht. Und habe dann gedacht, okay, ich brauche irgendwas, um die Daten aus meiner Pulsur darzustellen. Für mich, vielleicht auch für andere, Self-Quantifying, etc. Und wollte das gerne in meinem Block haben. So was gab's noch nicht. Mein Block läuft auf Metzenen. Die Bibliothek, um die Garmen Pulsuren auszulesen, unterpfeifen, rein in Pfeifen geschrieben, nennt sich FitPass, sehr schön. Wollte ich alles nutzen und alles im Web. Und habe da selber ein Projekt angefangen. Das habe ich genannt mit Zenenworkout, weil das nun mal für den Workout die Daten auswertet. Und das ist sehr am Anfang. Das ist so am Anfang, dass es weit vor der Deadline für die richtigen Projekte Vorträge hier war. Deswegen, erweit danach war und deswegen konnte ich keinen richtigen Vortrag einreichen. Wer der Interesse hat, ihr könnt mich gerne ansprechen. Ich werde da definitiv, wahrscheinlich wie auch immer, am Freitag und Samstag ein bisschen dran rumhäcken. Wer mir helfen mag, da das zu einem richtigen Paket auf Pipel zu machen, darf das auch gerne tun. Da bin ich nämlich noch blutiger Anfänger. Ansonsten, wer Bock hat, am Donnerstagabend vielleicht noch einen Lauf zu unternehmen, um Daten zu sammeln, ist auch herzlich eingeladen. Das war's. Ich bin Studentin der TU Berlin und ein Gebäude muss der Ende des letzten Jahres geräumt werden. Wir sind umgezogen in ein anderes Gebäude und die Studentinitiativen, in denen ich da drin bin, wir mussten ebenfalls umziehen. Und wir haben einen neuen Raum bekommen und dieser neuen Raum ist im Gegensatz zum Vorher eine sehr, sehr nahe zur Busseite Stelle, zumindest Luftlinie. Problem ist, wie ihr auf dem roten Fall sehen könnt, wir müssen durch drei, vier, ich weiß nicht, wie viele Türen durch. Ungünstig, wenn draußen die Busseite Stelle ist, man nicht dann eben rausrennen kann. Also muss man eine Lösung her. Sieht so aus. Und so noch mal ein etwas anderes Foto. Es läuft vom Raspberry Pi, wir konnten den Bitsch umabstauben während des Umzugs und es ist eine ganz einfache API, wo wir im Endeffekt gemerkt haben, dass sie so generisch ist, dass der Titel eigentlich nicht mehr stimmt. Denn wir haben eine Query API, bei der man eigentlich jede beliebige Website querieren kann, ob so ein BVG in Berlin ist oder VIR oder VIN oder wie sie auch alle heißen. Dieser API gibt eine Liste oder gibt eine Response zurück für die einzelnen Query und in diesem Response gibt es dann eine Menge an Departures und die haben halt eine Startzeit, Abfahrtsort und dergleichen. Die sind relativ einfach gehalten. Wir haben halt in Berlin eine ganze Ecke an Fahrzeugen, die wir genutzen können und so sieht es jetzt sich aus, wenn wir auf einer Stelle eine Abfragen wollen. Ja, das war's. Compiler und auch Positoren können teilweise lustige Sachen machen, wie ich mehrfach schmerzhaft in meine Entwicklungszeit feststellen musste. Ein kleines Beispiel ist jetzt leider in C programmieren. Ich hoffe, man sieht es trotzdem. In C Programm. Ein kurzes Beispiel. Es wird irgendwo ein Variable mit 16 bytes deklariert, wo man irgendwas Geheimes reinsteckt. Man verschüttelt irgendwas, holt sich vorher den Key und dann will man hier das irgendwie überschreiben. Im Beispiel habe ich jetzt AF genommen, dass man es gleich schöner in der Ausgabe sieht. Ohne Optimierung passiert dann so was. Das ist ein bisschen Assembler-Code, das sieht ungeworst passiert. Da wird meine GetSecured-Methode Funktion aufgerufen, encrypt und einen schönen Memset, der das Ding alles platt bügelt und aus Bespeicher rauswirft. Wenn man jetzt auf die Idee kommt, wir wollen das vielleicht optimiert ausführen, damit das auch schneller läuft, dann macht der Compiler was da. Er wirft es nämlich raus. Ja, doof. Das Geheimes ist immer noch im Schweicher drin. Ungünstig, vielleicht. Ja, das hat sich dann Backfire. Genau, was passiert hier? Nennt sich Deadcode Elimination. Der Compiler denkt, das Programm, wo die Funktionen gibt, dasselbe Ergebnis rauswirft, dass hinten wegwerfen. Mit einer Variable, die nicht mehr benutzt wird vor dem Output, egal, weg damit. Dann gibt es mehrere Tricks, die man das doch wieder hinbekommt. Man kann mit Volatile-Sache machen. Windows hat einen Spezial-Appi dafür. C11 bekommt sie dennächst dann auch. C2011 Pfeifen wendet C89 als Vergleich. Microsoft kann auch nicht viel mehr als C89 oder Microsoft C-Compiler. Da macht man sowas. Ein bisschen Assembler, eigentlich überhaupt ein Assembler, weil No Operations, er macht nichts. Aber er tut so, als würde das Secret lesen und dass da hinten ist Memory-Clubber im Speicher ein bisschen rumwursteln. Und dann macht der Compiler so was. Ja, wieder Get Secret Encrypt. Geht noch aber das mein Knopf. Und dazwischen ist was Ah, da ist auch ein AF. Ja, das ist wirklich, das ist wie Memset, nur etwas kürzer geschrieben. Oben das Power, das Subf nach RSP, das ist wie ein C-Compiler auf dem Stack-Speicher freigibt. Subfrahieren, das denkt ein bisschen merkwürdig, aber wenn man sich ein bisschen ausgähnt, wächst von oben nach unten der Stack-Variant mit drauflegen. Deswegen Subfrahieren 010, das ist 16 bytes und unten schreibt der irgendwas vielen AFs rein, kopiert das 2x rein, einmal mit 08 und einmal ohne Offset. Ja, 2x 8 bytes und platt. Haben wir noch ein bisschen Zeit? Prima, wir können jetzt weiter machen. Timing-Attacken, was CPUs machen. Nämlich ein bisschen komplizierter. Kennt vielleicht Leute schon von meinem Vortrag, so vergleichen Python Strings. Wenn man naiv ist, dann hat man, wenn man das timed, so ein Problem. Das sind jetzt Strings verschiedene Länge und eine Länge trifft irgendwann mal. Das heißt, dieser Balken ist da, wo mein Probestring gleich der Stringslänge von dem anderen Strings ist. Wenn ich jetzt das Strings von 1000 bytes vergleiche und jeweils an einer Stelle was ändere, dann ist die Änderungsposition ungefähr der Zeit. Das heißt, das steigt zu den Jahren mit der Zeit an. Wenn man da öfters mal wisst, das war jetzt nur eine Messung immer, das wackelt da ein bisschen, weil der Computer was anderes macht. Darüber kann man auch Passwörter erraten, indem man einfach mal guckt, wie lang braucht er für die Antwort der Server etwas rausbekommt. Damit kann man es verhindern. Links ist Beifüllpfeilfekot, wie man es macht, wenn man noch kein Python 3.3 hat für Python 3.3 haben wir das implementiert. Wenn ihr irgendwas Wichtiges vergleichen wollt, wo keiner ran soll, compare digest, sonst das linke oder ja, ich verratet eure Passwörter. Ja. Was ist alles drauf? Hallo, mein Name ist Diagnodob. Ich bin eigentlich kein Informatiker, ich bin Physiker von Beruf und mein Schwerpunktgebiet ist die Laser Physik und nicht lineare Optik. Das Einzige, was ich bis jetzt so mit Programmieren zu tun hatte war C++ und ein bisschen Matlab, alles schon elendlange her und womit ich mich beschäftige ist, Laser zu entwickeln, wo der Kunde sozusagen die Wellenlänge frei einstellen kann möglichst klein und kompakt und also ich will euch jetzt nicht mit Details langweilen, aber was sehr wichtig ist sind diese beiden Scheibchen hier, das sind nämlich sogenannte Italons oder Interferenzfilter und ihr habt euch sicherlich schon mal gefragt, warum Seifenblasen bunt sind und Buntschillern und im Prinzip nutzt man bei Interferenzfiltern genau diesen Effekt aus. Das sind mich nur bestimmte Wellenlängen in die Schichticke der Seifenblasenhaut und wenn man das Ganze simulieren will wird das sehr schnell, sehr hässlich auch wenn es sich sehr einfach anhört und ich wurde in meiner neuen Firma wo ich angefangen habe zu arbeiten gezwungen mit MathCat zu arbeiten aber das gefiel mir nicht so gut, das war so im Vergleich zu Matlab wie der Umstieg von Latex nach Word und ich war also auf der Suche nach einer Alternative und einer Kumpel hat mich für NumPy quasi begeistert und angeworben und so habe ich also versucht mich selbstständig in NumPy einzuarbeiten und ich war sehr überrascht wie schnell und komfortabel das geht und war innerhalb von wenigen Tagen so weit dass ich mein erstes Programm schreiben konnte mit dem man doppelbrechende Doppeletalons mit kompensierten Walk-off und Dispersionskorrektur schreiben konnte ich möchte kurz vorstellen also was die Ergebnisse sind in aller Kürze nur, wenn man das Programm laufen lässt, also ich habe vorhin über Seifenblasen gesprochen und hier unten ist die Wellenlänge aufgetragen und man sieht sozusagen wie die Interferenzfelder das Licht durchlassen oder auch nicht also da wo es oben Richtung 1 geht ist die Transmission 100% und hier unten eben entsprechend weniger und je nachdem wie stark diese Glasscheiben verspiegelt sind jetzt sagen wir mal mit 3,5% Reflexion das ist wie eine Fensterscheibe oder 10% wie eine schlechte Sonnenbrille etwa sieht man dann wie sich die das Transmissionsspektrum wird der Physiker sagen verändert und was ganz besonders interessant ist uns interessiert dieser Bereiche in der Laser Physik und ich habe sozusagen schnell ein Programm geschrieben was nachschaut wie groß der Unterschied ist in der Transmission zwischen diesen beiden Peaks dann Männchen, müssen wir kurz zur Hintergrund starten sieht dann ungefähr so aus und das sind wirklich Simulationen die für uns für die Firma von großer Bedeutung sind und wo wir uns jetzt auch schon mit einer optischen Beschichtungsfirma zusammengeschlossen haben und das Ganze umsetzen die Idee mit diesen Interferenzfeldern kommt von Theodor Hench, der hat den Nobelpreis gewonnen vor einigen Jahren war ein ziemlich genialer Mann und mich hatte begeistert wie schnell er den Lumpai nachprogrammieren und auch physikalisch korrekt nachmodulieren kann und woran ich jetzt im Moment arbeite ist ein Schieberegler einzubauen und ich habe mich heute schon den Vorträge gesetzt wie man so was hinbekommt und ich denke da gibt es noch viel zu lernen der Schieberegler ist das nächste Projekt dass man sozusagen die Schichtdicken und die Reflektivitäten und die Anstellwinkel und die Wellenlänge alles stufenlos einstellen kann und nicht im Quellcode rumvorwerken muss das ist so das nächste Projekt von wenigen Tagen da war ich doch sehr zufrieden mit dem Fortschritt, vielen Dank Achso, ich frage eben So, moin Ach hier ist das Mikrofon Ich bin Stefan Schärfke, ich habe mich gerade spontan dazu entschieden noch ein Leitengtour zu halten wir hatten früher schon das Thema wie man Kinder das Programmieren nahe bringt und das Problem was ich so mal hatte wenn ich dann in mein Nichten oder Neffen oder Cousins mal und wie gesagt dann programmier doch mal was oder auch selber schon bei mir man will immer zuerst ein Spiel programmieren das ist eigentlich immer erstmal schwierig weswegen ich mir überlegt habe ja man kann ja einfach die Kindern ein Spiel geben, was sie spielen können und das Spiel produziert dann welche Daten und die Daten kann man dann quasi auswerten und kann dann so ein paar Sachen herausfinden und das Spiel dann nehme ich das mal demonstrieren will heißt Dungeon Crawl das ist so ein Root-Schleig also kann man sich vorstellen wie die Abloh im Extremmodus und dann rundenbasiert wenn man einmal stirbt das ist mal tot das Spiel ist jetzt ein bisschen klein man läuft halt mit einem Charakter ich habe jetzt einen neuen, meinen anderen habe ich im Zug leider verloren durch die Gegend und findet dann Monster die man dann abschießen kann und dann steigt man halt auf kann die Monster sein Gott opfern und so weiter kann die auch aufwessen wenn man möchte und lecker lecker Fledermaus so und wenn man dann stirbt mit seinem Charakter dann gibt es am Ende so ein Morgfreil heißt das da steht dann drin, wann man gestorben ist und wenn man eine Weile spielt gibt es relativ viele von diesen Dateien und die kann man dann hinterher auslesen das hat ein relativ krudes Format was nicht besonders gut lesbar ist hier habe ich dann mal so ein paar Sachen rausextrahiert und dann habe ich mir ins Skript geschrieben war es einem das so ein bisschen extrahiert hier habe ich mal so das ist ganz grob das Format grammatisch irgendwie aufgeschrieben was man so erwarten kann und dann ist hier so ein Block wo ganz viel Variabilität drin ist also es ist ein relativ schwieriges Projekt wo man mit regulären Ausdrücken so ein bisschen pausen muss und dann kann man drüber gehen die Datei auslesen kann dann so ein paar Sachen sich printen und kriegt dann wenn man es am Ende ausführt raus dass man zum Beispiel 530 Spiele gespielt hat in denen ist man 16 Mal aus dem Dungeon gekommen hat ein einziges Mal gewonnen bei 530 Spielen wenn man halt wenn man tot ist ist man tot ist das Problem und das blöde am Spiel das man stirbt oder vielleicht das gute Mann stirbt sehr schnell in den ersten Löffeln wenn man es dann geschafft hat schafft man es relativ weit also wenn man in den ersten 5 Löffeln überlebt hat man ganz gute Karten ich bin relativ häufig an meinen eigenen Geister gestorben die mir irgendwann entgegengekommen sind also quasi verstorbene Charaktere und das ist eigentlich ganz interessant was man dann so rausfinden kann und damit kann man vielleicht jüngere Menschen dazu motivieren zu programmieren sie können vorher spielen und können dann so ein bisschen Daten auswerten vielleicht noch gute Diagramme malen