Transkript: Python in der Wissenschaft

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, willkommen zum Python Podcast.

Dominik

Wir haben die 11.

Dominik

Episode heute und sind heute wieder in Jochens Winter.

Sommergarten.

Wir haben gerade Sommer.

Dominik

Ja, hey Jochen, und wir haben heute wieder einen tollen Gast dabei, das ist der Gerrit.

Dominik

Hi.

Dominik

Heute ist unser Thema Scientific Python.

Dominik

Ja, vielleicht sagt er erstmal Hallo Gerrit

Jochen

kurz und dann in der Wissenschaft.

Hallo, Python in der Wissenschaft.

Genau.

Gerrit

Weil Scientific Python ist ja ein Paket und das wollen wir nicht verwechseln.

Gerrit

Wir reden eventuell auch über Scientific Python, aber.

Dominik

Ja, vielleicht sag doch kurz auch dann hören, wer du bist.

Ja, ich

bin Gerrit.

Gerrit

Ich bin von Haus aus Physiker und beschäftige mich hauptsächlich mit komplexen Systemen und deren Anwendung auf diverse Fachgebiete, Neurophysik, zum Teil auch Wirtschaft und zurzeit Biologie und Ökosysteme aus Mikroben.

Dominik

Mikrobieller Analyst habe ich mir aufgeschrieben.

Das hast du dir aber ausgedacht.

Gerrit

Wenn überhaupt Mikrobiell.

Dominik

Okay, Mikrobielle Analytiker.

Dominik

Ja, alles klar.

Gerrit

Und ja, nutze dafür Python, um Sachen zu simulieren, um Daten zu analysieren und manchmal auch um ganz komische Sachen mit symbolischem Rechner zu machen.

Dominik

Und du spielst Golf.

Gerrit

Und ich spiele versetzt zur Zeit eigentlich nicht mehr so viel, aber ich habe Golf gespielt und ja.

Gerrit

Da reden wir wahrscheinlich, also keine Ahnung, wollen wir direkt darüber über Golf reden.

Dominik

Die Code-Golf, ja, kommen wir gleich noch.

Dominik

Ich wollte dann, wir machen einmal kurz ein bisschen News wieder beißen, wie wir das irgendwie so kennen und dann kommen wir irgendwie zum Topic.

Ja, auf jeden Fall.

Jochen

Weil da mache ich hier schon mal die

Dominik

erste Kapitelmarke.

Alles klar.

Dominik

Ja, was gab es denn so?

Dominik

Also wie irgendwas wie Pi Oxidizer oder sowas vorgestern so eine News raus.

Jochen

Ja, das, äh, genau.

Jochen

PyOxidizer ist irgendwie so eine Software, mit der es möglich sein soll, so eine Python-Applikation, ein Stand-Alone-Executable zu verwandeln, das man dann einfach irgendwo hinschütten kann und dann läuft das da.

Jochen

Und das halt auch auf unterschiedlichen Plattformen, das heißt auf Unix ganz genauso wie auf Windows.

Jochen

Und das ganze Ding ist irgendwie so Rust-basiert.

Jochen

Also das packt den Python-Interpreter halt irgendwie in ein Rust-Programm.

Jochen

Also das ganze Ding ist sozusagen irgendwie hinterher das, was auch dabei rausfallen würde, wenn man einfach ein Rust-Programm kompiliert.

Jochen

Und ja, man kann alle möglichen Dinge noch mit dazu.

Jochen

Man kann auch Rust.

Dominik

Also kann man tatsächlich das Python irgendwo mithin schippen.

Dominik

Also man braucht halt Python mitmachen, wenn man irgendwo was deliveren will, bei Enzybuild oder sowas, irgendwo auf dem Server gehen, hat man das dabei und dann läuft das einfach direkt oder auf Windows oder sowas, ne, für irgendwelche Nutzer, die halt damit nichts zu tun haben wollen, die können dann die Spy Oxygen auch so ein Direkt.

Jochen

Ja, also das ist, das hatten wir letztes Mal auch schon und auch darauf nimmt auch quasi dieses Announcement, der Announcement-Blog-Post, den ich da heute gesehen habe, Bezug, dass es für Python keine so richtig konsistente Story dazu gibt, wie das denn jetzt irgendwie installiert wird auf einer Maschine.

Das wäre ja wie so ein Black Swan, also eine der großen Bedrohungen, die so der Python-Community

Jochen

vorstellen soll.

Jochen

Das ist tatsächlich genau.

Jochen

Und da gab es einen Vortrag, also das war die Keynote von der diesjährigen PyCon irgendwie US von Russell Keys McGee, der sagte, naja, das ist halt eine potenziell fatale Bedrohung eigentlich für Python als Sprache, dass das irgendwann mal den Zugang halt abschneiden kann zu allem.

Jochen

Also auf mobilen Geräten ist es ja jetzt schon im Grunde so, da kommt man halt mit Python nicht drauf.

Jochen

Und ja, wenn man das halt, wenn man keine solche Story hat, dann ist das halt echt blöd unter Umständen.

Jochen

Also es macht für Entwickler nicht so einen Unterschied, ne?

Jochen

Das ist ja auch die Hauptzielgruppe, da ist dann egal.

Jochen

Da macht man sich sein Virtual Environment und benutzt Pip und vielleicht noch ein paar andere Tools und so und hat damit kein Problem.

Jochen

Aber für man jetzt einen Endanwender hätte draußen, der ist ja auch nicht mehr.

Dominik

Ja, der will vielleicht gar nicht wissen, was kommt hinterstellt.

Jochen

Genau, den interessiert das nicht auf das Python.

Jochen

Genau, genau.

Jochen

Der möchte einfach nur irgendein Problem gelöst haben und gar nicht ein Problem bekommen zusätzlich.

Jochen

Und das ist natürlich momentan so ein bisschen doof.

Jochen

Gerade für Windows.

Jochen

Also für Unix gibt es da ja schon was.

Jochen

Also ehrlich gesagt weiß ich davon auch nur, weil derjenige, der das entwickelt hat, hier auch in Disteldor, oder Pyran, die Disteldorfer Python User Group irgendwie gegründet hat oder betreut irgendwie Mark André Lemberg und der hat, genau, das ist uralt, das hat es irgendwie schon 20 Jahre alt oder so.

Dominik

Ja, schon in den 90er schon.

Dominik

Python 1, was war das?

Jochen

Ja, ich weiß es nicht mehr genau, aber es ist auf jeden Fall schon sehr alt und war halt, er hatte das irgendwann mal geschrieben um damals die ganzen Hoster konnten nur Pearl, irgendwie da.

Jochen

Pearl war davor installiert und aber man konnte mit CGI auch beliebige Programme sozusagen hochladen per FTP irgendwie auf seinen Webspace.

Jochen

Und wenn das halt ausführbar war, dann hat das halt auch funktioniert und er hatte dann halt ein ganzes Python und seine komplette Applikation halt in ein Executable reingepackt und das dann halt als CGI-Ding laufen lassen können und konnte dann dann halt auch auf einem Hoster, der eigentlich nur Perl konnte oder so, halt seinen Python, seine Python-Skripte hosten.

Jochen

Und ja, das hat auf Unix schon immer super funktioniert.

Jochen

Ist jetzt auch inzwischen irgendwie läuft das auf aktuellen Python-Versionen, also ich glaube, seit dem letzten PyTDF-Sprint auch auf 3.7.

Jochen

Und das ist ziemlich nett.

Jochen

Das Ganze man kann da sogar noch so nette Dinge machen wie da das, es beruht irgendwie darauf, dass man, glaube ich, das Modul, was irgendwie ausgeführt wird, oder der Entry Point ist halt irgendwie in einem ZIP-File, das halt.

Dominik

Ja, das wird sich jetzt gerade ein bisschen kompliziert an.

Jochen

Also was man tun kann, ist, man kann halt eigene Sachen per ZIP irgendwie einpacken, dann per Cut hinten an das Binary dranhängen und dann wird das halt ausgeführt, zum Beispiel, solche Sachen.

Dominik

Ah ja, cool, also unsere eigenen Pakete und so.

Jochen

Ja, weil das, weil halt das Binary irgendwie selbst hinten dran irgendwie schon ZIP ist, oder ich weiß es nicht mehr genau.

Jochen

Aber man kann damit sehr, sehr lustigen Dingen tun.

Jochen

Und von der Größe her, wenn man das irgendwie so ein bisschen optimiert, dann ist das, glaube ich, irgendwie so knapp 5 MB groß oder sowas dabei rausfällt normalerweise.

Jochen

Und da ist halt die Standardbibliothek nicht komplett drin, aber zum großen Teil.

Jochen

Ja, und ich weiß jetzt nicht,

Dominik

aber jetzt gehst du eine nette Alternative, da hört man auch ganz nett an, ne?

Dominik

Dieses Tentalone-Singlefile.

Jochen

Genau, der Vorteil bei PyOxidizer ist halt, dass es auf Windows halt auch funktioniert.

Jochen

Was mit PyRun halt nicht geht.

Dominik

Hast jemand von euch von der PyCon 2019 irgendwelche Talks gehört, Talks gesehen, irgendwie was Interessantes noch mitgebracht?

Dominik

Also die hat einige Sachen gesehen, die ich mich natürlich wieder interessierte, war irgendetwas ein bisschen Musik wieder, was dabei war mit Foxtot von Jessica Garso und war ganz nett.

Jochen

Den hast du aber dann gesehen, quasi tatsächlich.

Dominik

Ja, ja, ich habe irgendwie aber nur kurz reingeguckt, ich muss das immer noch auf meiner Liste zu Ende schauen.

Dominik

Das gibt es ja da irgendwie auf YouTube so ein bisschen.

Dominik

Ja, und ich habe gehört, Pinterest ist es bei Python 3 oder so.

Jochen

Ach, ich dachte, die wären schon längst irgendwie umgestiegen, aber das war dann wahrscheinlich irgendwie Instagram oder so.

Jochen

Da gab es so eine Riesendun, die auch viel zu veröffentlicht, glaube ich, wie sie da umgestiegen sind.

Jochen

Aber bei Pinterest, dass sie auf Python 3 umsteigen, ist natürlich jetzt irgendwie so ein bisschen angeben, kann man damit jetzt irgendwie mehr, ne?

Ja, irgendwas lässt an dies umsteigen.

Dominik

Ja, ich habe gehört, also Python 2, also der Nickdas, der war jetzt auch schon 2.

Dominik

Mai mal bei uns hier.

Dominik

Die haben jetzt ein Tutorial für Python 2.7 und der Python 3 veröffentlicht.

Dominik

Das fand ich sehr lustig.

Ja, und auch diese Woche.

Ja.

Jochen

Ne, aber ansonsten habe ich auch tatsächlich im Grunde nichts wirklich, was irgendwie an tollen Dingen passiert wäre.

Jochen

Aber immerhin ist ja schon so ein bisschen was.

Dominik

Ja, so ein kleines bisschen.

Dominik

Sonst machen wir dann nächstes Mal einfach wieder eine große Newssection und fangen jetzt einfach an mit unserem Scientific-Thema.

Dominik

Oder wollen wir erstmal mit dem Golf spielen?

Dominik

Spielst du auch richtig Golf oder nur Code Golf?

Gerrit

Nee, ich spiele, wenn überhaupt Code-Golf.

Gerrit

Zurzeit auch ehrlich gesagt nicht mehr so viel.

Gerrit

Irgendwann, wenn man das so ein paar Jahre gemacht hat, hat man alles gesehen, was es zu tun hat.

Erstmal für die Untergebieter.

Dominik

Was ist das denn überhaupt, Codegolf?

Gerrit

Also Codegolf ist die Aufgabe, dass man versucht, irgendeine Programmieraufgabe, zum Beispiel Programmiere die Fakultät oder was auch immer, mit möglichst wenig Zeichen zu lösen in einer gegebenen Programmiersprache in der Regel.

Gerrit

Oder man kann es auch allgemein machen, aber da wir jetzt über Python reden und für die meisten Leute ist es das interessante, es in einer Programmiersprache zu machen.

Gerrit

Und ja, ohne Rücksicht auf irgendwelche Regeln.

Gerrit

Und das kann Spaß machen, offensichtlicherweise, dass man einfach mal alle Regeln fallen lassen kann und wildböse programmieren kann.

Ich kann mich noch

Dominik

erinnern, da saß mal so ein Talk von dir, da war ich immer noch ein absoluter Anfänger und ich habe nichts verstanden von dem, was vielleicht.

Dominik

Irgendwas funktionierte da, aber irgendwie, ja, okay, warum machen wir das jetzt?

Dominik

Keine Ahnung.

Gerrit

Und ja, also die zweite Sache, warum man es macht, wenn wir mal dabei bleiben, ist, dass man auch wirklich was über die Programmiersprache lernt oder über das Programmieren im Allgemeinen.

Gerrit

Weil man eben auch darüber nachdenkt, gewisse Probleme mit ganz neuen Algorithmen zu lösen, zum Beispiel rekursive Algorithmen statt irgendwelchen Schleifen oder oder oder.

Gerrit

Und ja, das macht einfach sehr viel Spaß, wenn man das ab und zu macht und man lernt auch viel.

Dominik

Da gibt es auch so Wettbewerbe oder sowas, ne?

Dominik

Ist das so richtig mit 18 Löchern oder wie schrieb man das?

Gerrit

Nee, also es gibt natürlich Webseiten, wo man dann seine Lösung veröffentlichen kann und dann sagen, okay, ich habe das jetzt kürzer gelöst als alle anderen oder zumindest kürzer in dieser Programmiersprache gelöst als alle anderen.

Hast du da eine Shownote für uns, für eine Webseite?

Gerrit

Es gibt eine StackExchange Seite zum Thema Codegolf.

Gerrit

Das ist auch die, wo ich hauptsächlich aktiv bin oder war.

Gerrit

Es gibt andere Seiten, aber da muss ich ehrlich gesagt sagen, weiß ich gar nicht so viel drüber.

Okay.

Dominik

Jetzt schaut doch mal bei StackEnchange vorbei für Codegolfen.

Jochen

Ja, wie gesagt, ich packe den Link dann einfach dazu.

Jochen

Und was sind so deine.

Jochen

Hast du vielleicht Lieblingsaufgaben oder so?

Jochen

Oder wo es was besonders irgendwie einen interessanten Lösungsweg hatte?

Gerrit

Ja, also interessante Lösungswege.

Gerrit

Ja, gut, ich komme aus der Physik-Mathematik-Ecke, also finde ich immer froh, wenn ich Sachen mit komplexen Zahlen oder so lösen kann.

Gerrit

Also klassisch sind irgendwelche Aufgaben wie, was ich weiß, irgendein Objekt bewegt sich in irgendeinem Raum oder irgendeinen Roboter oder was auch immer und man muss ihn steuern.

Gerrit

Und das kann man natürlich machen, indem man zweidimensionale Koordinaten speichert.

Gerrit

Das ist in der Regel aber kürzer, wenn man das Ganze in komplexen Zahlen löst.

Gerrit

Und ja, da gibt es dann einige Aufgaben, wo man das sehr lustig lösen kann und am Ende natürlich überhaupt nicht mehr, wenn man nicht eingeweihtes versteht, was da eigentlich passiert.

Gerrit

Und ja, also ansonsten, keine Ahnung.

Gerrit

Ich glaube, das Interessanteste, was man jetzt so auf diesem Medium überhaupt kommunizieren kann, ist, sind dann vielleicht so ein paar Tricks, die man nutzen kann.

Gerrit

Also ein klassisches Beispiel ist natürlich, wenn ich irgendwas habe, muss ich irgendwas in einer Schleife lösen.

Gerrit

Das kann man natürlich auch so machen.

Gerrit

Häufig ist es dann aber so, dass diese Schleife vielleicht nicht so spannend ist, also dass da jetzt nicht so viele komplizierte Dinge passieren.

Gerrit

Und dann könnte es zum Beispiel einfacher sein, den Befehl, den man in der Schleife ausführt, in einen String zu packen, diesen String zu multiplizieren, also mit Semikola getrennt, mal fünf oder so, weil ich das fünfmal ausführen möchte und dann ein Exec darüber zu jagen.

Gerrit

Also genau, die ersten Jochen hängen sich schon die Fußnägel hoch.

Gerrit

Und ja, das ist dann, genau solche Sachen passieren dann andauernd, dass man irgendwie feststellt, wie wenig Leerzeichen man eigentlich in Python braucht, wenn man denn unbedingt möchte.

Gerrit

Also es gibt so Späßchen, dass man, wenn man hinter irgendwo eine Klammer aufhört und dahinter kommt ein Keyword oder so, dann kann man die einfach direkt aneinander schreiben oder Zahlen oder eigentlich irgendwas.

Gerrit

Ich glaube, die einzige Unterschied, ich muss immer aufpassen, wenn es mit E anfängt, weil das könnte ja 1E8 wäre dann 10 hoch 8.

Gerrit

Das darf man dann nicht machen, aber alles andere kann man einfach wild aneinander klatschen in vielen Fällen und es wird richtig interpretiert.

Gerrit

Dann gibt es so schön, ich weiß nicht, ich glaube in Python 3 funktioniert das nicht mehr.

Gerrit

In Python 2 funktioniert das noch, dass man verschiedene Einrückungsebenen mit Tab und Leerzeichen hat.

Gerrit

Also die erste Einrückungsebene wäre ein Leerzeichen, die zweite Eindrückungsebene war ein Tab und dann kam irgendwie ein Tab und ein Leerzeichen als Eindrücken und so weiter.

Gerrit

Aber gut, wenn man dreimal einrücken muss, dann ist es in der Regel kein Codegolf mehr.

Jochen

Ja, genau, muss man dann überhaupt einrücken.

Jochen

Ich meine, es gibt auch Semikolon, das ist doch auch gut.

Gerrit

Man muss es manchmal schon machen.

Gerrit

Also manchmal ist es schon das Beste.

Gerrit

Aber zwei Einrückungsebenen sind schon sehr, das sind dann schon wirklich ausgefallenen Programme.

Dominik

Da kann man dann schon die ganze Fakultät mit abbinden.

Dominik

Und ich meine ich jetzt nicht das mathematische Problem, sondern das, was man in der Uni dann so besucht.

Ja, okay.

Dominik

Und das heißt, du machst dann sowieso nur einnamige Weihnachten.

Dominik

Also lesen kann man das dann wahrscheinlich nicht mehr.

Dominik

Nur es geht tatsächlich darum, wie viel Byte passt denn dann so ein Algorithmus.

Gerrit

Also lesen ist die eine Sache, die man nicht mehr kann.

Gerrit

Manchmal hört das auch gar nicht auf.

Gerrit

Also auch so die klassischen Ansätze für viele Sachen sind, dass man jetzt sagen kann, okay, ich kann jetzt meine Daten, ich kann jetzt einen interessanten Algorithmus entwickeln, der das die richtige Lösung für irgendwas findet.

Gerrit

Ich kann aber auch, jetzt weiß ich gar nicht, ob es Bogus Sort oder Stupid Sort oder eher ist auch wirklich geil, es gibt diesen klassischen Sortieralgorithmus, ich nehme meine Daten, ich mische sie, ich gucke, ob sie sortiert sind.

Wenn nicht, mische ich sie nochmal.

Gerrit

Solche Ansätze.

Gerrit

Und ja, wenn dann die Aufgabe nicht vorgibt, dass man das Ganze in einer endlichen Zeit lösen möchte, geht das natürlich.

Gerrit

Also das ist auch immer ein Lieblingsansatz, dass man sagt, okay, wir versuchen das jetzt schön in Brute Force zu lösen, statt, weil

Dominik

in der gewissen Wahrscheinlichkeit ist er dann sofort fertig.

Jochen

Ja, ich habe letztens auch irgendwo einen neuen, es gibt ja diverse lustige Sortierverfahren.

Jochen

Ich habe letztens eins gesehen, das fand ich auch wieder sehr cool.

Jochen

Sehr schön, das besteht einfach darin, ich glaube, das nennt sich irgendwie Sleep Sort.

Jochen

Und wenn man halt Zahlen hat, dann macht man das mit Async-Await-Notation halt, man awaitet einfach die Zahl.

Jochen

Und das ist dann halt sortiert, weil naja, je größer die Zahl, desto länger muss man natürlich, wartet man halt.

Jochen

Also das ist auch sehr, sehr cool.

Dominik

Mein übrigens Sortieralgorithmus ist der LSD Radix.

Dominik

Das ist immer schön, der hört sich auch besonders toll an, wenn man den so visualisiert.

Dominik

Audi fiseliert, wie nennt man das?

Dominik

Wenn man so einen Algorithmus, es gibt ja so ein.

Dominik

Vertont.

Dominik

Ja, ja, ja, wahrscheinlich.

Vertont.

Gut.

Dominik

Ja, wir verdonen für euch ja wieder heute eine neue Folge.

Gerrit

Ja, jetzt habe ich keine Ahnung, was LSD Radix macht, aber gut.

Dominik

Der baut so Buckets auf und so zählt dann die ganzen Sachen immer in so Buckets rein und kippt die dann immer wieder auseinander und dann.

Dominik

Ah, okay.

Dominik

Ja, also von bis 1,9 oder sowas und dann kippt ihr die auseinander.

Und dann funktioniert das

Gerrit

ganz gut.

Gerrit

Eine Sache, die mir jetzt noch gerade angefangen ist, wir warten auf die Eingabe und wie lange es dauert.

Gerrit

Also auf CodeCoff Stack Exchange gab es dann auch zwischendrin mal so eine Kategorie von Fragen, die haben es auch ganz schnell aus Gute.L abgeschafft.

Gerrit

Wir versuchen jetzt mal eine Programmieraufgabe möglichst schlecht zu lösen, also nicht schnell oder kurz oder was auch immer, sondern einfach schlecht.

Gerrit

Und dann die Aufgabe, einen Zufallszahlengenerator zu bauen.

Gerrit

Und ja, meine Lösung war dann, wir nehmen, wir speichern einfach mal irgendwie irgendwo ein Bit ab, lassen einen Zähler hochlaufen und überprüfen nach jeder Zahl, ob das Bit sich eventuell geändert hat.

Gerrit

Und wenn sich das Bit ändert, durch Höhenstrahlung oder was auch immer, dann nehmen wir die Zeit und dann haben wir unsere Zufallszahl.

Das erinnert mich so ein bisschen an deinen Wartsortier-Algorithmus.

Jochen

Ja, das klingt gut.

Dominik

In einer besonders chaotischen Umgebung könnte das relativ schnell passieren.

Jochen

Ja.

Jochen

Wie ist das eigentlich bei so Codegolf-Community macht die nur Codegolf?

Jochen

Es gibt ja noch so andere lustige Programmier, weiß ich nicht, was soll man sagen, so Knobel-Ecken.

Gerrit

Ja, also die machen auch andere Sachen.

Jochen

Quins zum Beispiel oder also Programme, die sich selbst ausgeben.

Gerrit

Oder auch Codegolf mit Einschränkungen.

Gerrit

Also man kann natürlich immer Codegolf machen, aber auch so lustige Sachen war, das war noch eine Aufgabe, multipliziere jetzt mal bitte zwei Zahlen, aber verwend dem ganzen Code keine einzige Zahl.

Gerrit

Da muss man erstmal die Zahlen irgendwie in römische Zahlen darstellen, also so I, I, I, I, I, ja, sind dann halt fünf.

Gerrit

Und dann kann man da auf Basis basiert natürlich multiplizieren und am Ende kommt dann halt wieder eine Zahl raus.

Gerrit

Und man muss halt irgendwie auch gucken, wie man das mit der Darstellung macht, dass man das dann regelkonform macht, aber.

I, I, I, I, I ist fünf.

I, I, I.

Jochen

Ja, römische Ziffern, rechnen mit römischen Ziffern sehr, sehr böse.

Ja, ja, XXX.

Jochen

Ich habe irgendwann mal auch, glaube ich, im Blogpost dazu gesehen, wie jemand irgendwie mit römischen Ziffern schriftlich dividiert hat oder es war echt so das.

Jochen

Also, sagen wir mal so, es ist nicht so unmittelbar einleuchtend, wie das funktioniert.

Ja.

Jochen

Aber ja.

Dominik

Ja, der Gutköpf ist im Prinzip so eine Abstraktionsebene, um mit der Sprache Schabernang zu treiben.

Dominik

Also um wegen die Komplexität von Algorithmen zu ergründen und um vielleicht so ein bisschen die Geschwindigkeit da so rauszuholen und vielleicht auch sowas.

Gerrit

Ja, oder auch die gerade, also sich einfach mit so Gedanken zu machen.

Gerrit

Also sowas wie Slow Sort oder Sleep Sort oder was auch immer sind ja Sachen, die einfach mal existieren, dass man sich, dass man überhaupt erstmal sieht, wie gut man es hat.

Gerrit

Und mit so echten Sortieralgorithmen und auch einfach das Konzept eines Algorithmus besser versteht.

Gerrit

Und ja, genau, man ist es natürlich einfach, ja, also wie du schon sagst, man beschäftigt sich mit den Dingen und es ist einfach eine Möglichkeit, sich selbst dazu zu treiben, sich mit den Dingen zu beschäftigen.

Gerrit

Und ja, man lernt einiges über Algorithmen und ähnlichen.

Gerrit

Ich habe tatsächlich einen Algorithmus, den ich irgendwo mal dann, dem ich begegnet bin, auch tatsächlich später eingesetzt in echter wissenschaftlicher Arbeit und war dann sehr froh, dass ich ihn kannte.

Gerrit

Weil ja, also man

Dominik

ja, also du hast jetzt gerade das Thema direkt fast schon wieder mit aufgemacht und ich glaube, wir zeigen den nächsten Chaptermarkt.

Dominik

Wenn du sagst, du hast den jetzt Scientific in der wissenschaftlichen Arbeit eingesetzt, was ist denn jetzt so Scientific Python?

Dominik

Also jetzt nicht SciPy oder was, eben sagt das, sondern was bedeutet das und warum macht man das?

Dominik

Was macht man da und warum ist das so nett oder doch nicht?

Gerrit

Also erstmal natürlich, als Wissenschaftler hat man in der Regel, oder nicht in der Regel, also viele Wissenschaftler müssen programmieren, zwangsläufig, weil sie Sichern simulieren oder Daten analysieren in großen Mengen und das nicht per Hand machen möchten, aus gutem Grund.

Dominik

Also quantitative Analyse und keine qualitative Analyse, würdest du jetzt sagen?

Dominik

Es ist die wahre Kunst der Wissenschaft.

Gerrit

Ja, also ich glaube, gibt es so richtig qualitative, rein qualitative Arbeiten gibt es.

Gerrit

Zumindest in meinem Bereich kaum.

Dominik

Ich kenne noch die alte philosophische Fakultät an meiner Universität, die hat sich durchaus damit hervorgetan.

Gerrit

Ja, ja gut, aber das ist ja auch nicht mein Bereich.

Gerrit

Also klar, es gibt natürlich Bereiche, in denen das gibt und es auch sinnvoll ist und schön und gut, aber also ich hab, ich glaube nicht, dass ich jemals hier irgendwas beruflich begegnet bin, das rein qualitativ war.

Dominik

Okay, also ein TTF, Scientific Pi, also Zahlen, Daten, Fakten.

Gerrit

Ja, ja, okay.

Gerrit

Es geht nicht unbedingt darum, also nicht nur darum, Zahlen auseinanderzunehmen, manchmal geht es auch, um Zahlen zu produzieren oder irgendwie einfach etwas, was man mathematisch oder theoretisch zumindest, theoretisch aber beweisen könnte oder verstehen könnte, aber zu kompliziert ist, dass man es mathematisch zerdröseln kann, zu simulieren und dann auf die Weise zu verstehen.

Gerrit

Also viele Sachen, die ich gemacht habe, würde ich als Experimentalmathematik bezeichnen.

Gerrit

Also ich stelle experimentell mathematische Aussagen fest.

Gerrit

Ja, und dazu muss man natürlich programmieren und das macht man natürlich gerne in Python.

Gerrit

Also zumindest ich.

Gerrit

Andere natürlich nicht.

Gerrit

Das muss man auch so ein bisschen Überzeugungsarbeit leisten.

Gerrit

Weil es zum einen häufig nicht um Geschwindigkeit geht, sondern eben darum geht, die Sachen möglichst schnell und anschaulich zu programmieren und zu verstehen, was man eigentlich tut.

Gerrit

Zum anderen natürlich manchmal geht es auch um Geschwindigkeit und da sind viele, viele Aufgaben, die man hat mit solchen Tools wie NumPy lösbar, die die entscheidenden Sachen, die dann wirklich schnell laufen müssen, in einer hartgecodeten, schnell laufenden Variante machen.

Gerrit

In einigen Fällen gibt es da nicht und das gab dann auch bei mir der Grund, warum ich so eine Sache dann selbst geschrieben habe.

Gerrit

Um nochmal irgendwie so eine Überleitung in den Raum zu einem gewissen Thema zu schmeißen.

Jochen

Ja, ja, ich wollte gerade noch auf die experimentalen Mathematik.

Jochen

Also ich weiß nicht genau, ob ich das jetzt irgendwie falsch assoziiere, wenn ich experimentelle Mathematik fand ich auch immer sehr interessant, weil ich fand, das war immer so eines der besten Argumente dafür, dass Mathematik unabhängig davon existiert, also nicht wirklich erfunden wird von demjenigen, der sie betreibt, sondern eher so auch entdeckt wird, dass man da halt, also wenn jetzt einen Computer losrennen lässt und der würfelt halt so lange Gleichungen durcheinander, also bis er halt einen Pfad gefunden hat, von dem, was man irgendwie zeigen möchte, zu irgendwie einfachen Sachen, die schon bewiesen

Jochen

sind.

Jochen

Also das kenne ich jedenfalls, oder habe ich mal gehört, dass Leute so experimentelle Mathematik nennen.

Oh, da weiß man.

Jochen

Man sucht halt einfach quasi in dem Baum aller oder in dem Graphen aller Umformungen, die man halt irgendwie machen kann, halt nach einem Pfad von Sachen, die man schon bewiesen hat, zu einer Geschichte, die man halt beweisen möchte oder so.

Jochen

Dann sieht es halt dann doch eher so aus, als ob man das entdeckt halt, wie mit einem Mikroskop oder so und nicht so sehr irgendwie konstruiert.

Gerrit

Ich glaube, das fällt dann unter Computerbeweise.

Gerrit

Das ist noch nicht mal das, was ich jetzt, also das ist wahrscheinlich auch nicht unzutreffend, wenn der Begriff Experimentalmathematik ist nicht Kopiergeschütze oder beziehungsweise Trademark von irgendwem, der sagt, das ist jetzt genau das.

Gerrit

Die Sachen, die ich mache, gehen da, sind da schon gemacht habe oder auch noch mache, sind auch schon anders.

Gerrit

Da geht es dann eben um die Frage, wie verhält sich jetzt dieses Modell, wenn ich das lange laufen lasse und dann hat man eben, also so klassische Beispiele für Modelle, die meisten Modelle, Aufstellungen oder die kann man als Gleichung formulieren, das ist eine Differenzialgleichung in der Regel oder ähnliche Sachen, also für die Leute, denen es was sagt, man hat eine Gleichung und die Lösung ist dann, wie verhält sich mein Objekt, mein System über die Zeit?

Gerrit

Das wäre die Lösung für meine Gleichung.

Gerrit

Und diese Lösung kann man in aller Regel nicht mit Stift und Papier finden, so wie was Leute normalerweise tun.

Also man kann es schon machen, aber auch das ist dann nur eine Augen.

Gerrit

Nee, also im Zweifel geht es wirklich nicht.

Gerrit

Wir haben zumindest seit 100 Jahren keinen Weg gefunden, das zu machen.

Gerrit

Man kann eben höchstens eine Näherungsweise Lösungen machen und auch das will man nicht mit Stift und Papier machen, denn das ist dann sehr automatisiert.

Gerrit

Das macht man dann mit dem Computer und natürlich dann wieder mit Programmierung.

Gerrit

Und ja, dann kann man eben herausfinden, okay, wenn ich diese Sachen habe, dann verhält sich diese Funktion oder dieses System so und so.

Gerrit

Ich kriege so eine Lösung raus.

Gerrit

Das ist ein klassisches Beispiel, das ist chaotisch.

Gerrit

Und das ist meine Aussage.

Gerrit

Und die habe ich dann experimentell gefunden, in gewissem Maße, über Simulationen.

Gerrit

Und diese Aussage ist auch nicht so in Stein gemeißelt, wie es normale mathematische Aussagen sind, sondern das kann immer noch schiefgegangen sein, weil ich gerade ganz komisch meinen Programm laufen lassen habe mit genau den falschen Startbedingungen oder was auch immer und mein Algorithmus.

Jochen

Ja, weil man in irgendwelche numerischen Geschichten in Stabilitäten gelaufen ist oder weil.

Gerrit

Ja, oder einfach, also gut, das kann man sogar noch lösen, aber weil man einfach ganz, ganz viel Pech hatte zum Beispiel.

Gerrit

Natürlich, also die meisten Aussagen, wenn man sagt, das ist jetzt Chaos, wenn man als Beispiel sind schon sehr, sehr hieb und stichfest.

Gerrit

Aber es ist kein formeller Beweis, wie Mathematiker ihn führen.

Gerrit

In den meisten Fällen.

Gerrit

Natürlich gibt es dann auch die Leute, die sich hingesetzt haben und das mal für einen Fall wirklich bewiesen haben.

Gerrit

Das war dann auch eine Sensation oder so.

Gerrit

Hat auch ein paar Jahre gedauert.

Gerrit

Aber das ist nichts, was man praktisch machen kann.

Gerrit

Und das war auch dann nur für die einfachsten Systeme, die man schon vorher sehr gut verstanden hat.

Dominik

Ich habe jetzt diesen ganzen Adaptationslayer noch nicht so ganz begriffen.

Dominik

Also man hat jetzt ganz komplexe, große, komplizierte Systeme und wenn ich jetzt das irgendwie jetzt vorstelle, sagst du irgendwas von Chaos, sagst du was über Zeitstrahlen und Funktion, die da irgendwie durchdrücken, da denke ich irgendwie immer an sowas wie eine Häufigkeitsverteilung oder sowas, was da irgendwie rauskommt.

Dominik

Was hat das, also wie kann ich das so real beschreiben, wenn ich jetzt irgendwie jetzt in einem Mikrobial bialen.

Gerrit

Mach mal ein Beispiel.

Gerrit

Also ich hab, genau, ich, ich hab Bakterien, zum Beispiel, also ja, ich mache mal bakterielle Ökosysteme, also ich habe meinen Topf, da schmeiß ich, da habe ich Nährstoffe drin, das heißt Bakterien können da leben und dann schmeiße ich.

Gerrit

Genau, da schmeiße ich jetzt, was weiß ich was, fünf Escherichia coli oder zehn Pneumokokken oder was auch immer, mir einfällt rein.

Gerrit

Irgendwelches ungesunde Zeug, genau, ja.

Gerrit

Haben wir aber übrigens überall nebenbei, also wir tragen mehrere Kilobakterien mit unserem Darm rum und so.

Dominik

Und um drei Mal Karies.

Gerrit

Ich weiß gar nicht, ob das ein Bakterium gesagt hat oder was das, was da ist.

Jochen

Das war immer so aus, ein Kumpelbaktus oder wie von so.

Dominik

Ich habe keine Bantanas früher so aus, da gab es dann diese Entschieben, die liefen dann irgendwelche Dinger, die sah sah so aus, wie ich mir Bakterien vorstelle.

Gerrit

Genau, ja, also die laufen dann auf jeden Fall da rum und jetzt kann ich natürlich das einfach hinstellen und warten und gucken, aber das kann ich nur begrenzt häufig machen, da das Zeit kostet und ich kann auch, hab dann Messfehler und Rauschen und so weiter und so fort.

Gerrit

Aber ich möchte das eventuell einfach mal allgemein verstehen, wie entwickeln sich solche Bakterienpopulationen.

Dominik

Also hört euch jetzt doof an, also du hast das gerade gesagt, es gibt irgendwelche Sachen im Darm, das heißt, ihr macht dann so einen Auszug und stellt das in so ein Glas auf dem Balkon in die Hitze und guckt, was da so passiert.

Gerrit

Also ja, das wäre so die Karikatur des Ganzen, aber es ist gar nicht so falsch.

Gerrit

Also es viel ist wirklich, wir haben einen Top-Flüssigkeit, da sind Nährstoffe drin, da schicken wir einen Backparakterien rein, das rühren wir dauerhaft um und dann gucken wir mal, was passiert.

Gerrit

Also das ist schon sehr, sehr häufig.

Dominik

Und danach macht ihr irgendeine Analyse mit, weiß ich nicht, ihr gebt das Ganze auf Papier, guckt euch die Farbe an oder zählt irgendwas mit irgendwelchen Sensuren und packt das in eine Datenbank und daraus schmeißt ihr dann einen Algorithmus.

Gerrit

Nein, das wäre das, was wir eigentlich modellieren wollen.

Gerrit

Also das ist unser reales System.

Gerrit

Da wissen wir, was passiert, da können wir das messen.

Gerrit

Das Problem ist, das hat natürlich diverse Nachteile.

Gerrit

Wie gesagt, wir können nicht alles messen.

Dominik

Das ist so ein Glas und nicht in das echte Haut oder sowas.

Gerrit

Ja, das ist der andere Nachteil.

Gerrit

Aber der Nachteil ist, wir müssen eben wirklich dieses Glas auf die Fensterbank stellen.

Gerrit

Und im Computer können wir das eventuell in einer halben Sekunde einfach mal durchrechnen und dann können wir das noch schnell 10.000 Mal machen und besser verstehen.

Virtuelle Bakteriengläser schön.

Genau.

Dominik

Zeit für die ganzen Bugs herkommen.

Ja, ja.

Gerrit

Genau, deswegen, ich bastel virtuelle Bakteriengläser.

Gerrit

Und diese virtuellen Bakteriengläser werden dann beschrieben durch Gleichungen.

Gerrit

Die zum Beispiel bei Differenzialgleichen wird die Frage, okay, ich habe jetzt meine Bakterien, mein Zustand, mein Zustand ist dann fünf von der Sorte, sechs von der Sorte, sieben von der Sorte, so viele Nährstoffe und so weiter und so fort.

Gerrit

Und die Frage ist, wenn ich jetzt eine Sekunde in die Zukunft gehe, wie sieht mein Zustand aus?

Gerrit

Vermehren sich einige von diesen Bakterien, werden einige Nährstoffe gefressen und so weiter.

Gerrit

Das kann ich dann machen oder ausrechnen.

Gerrit

Und dann mache ich das nochmal und nochmal und nochmal und nochmal.

Gerrit

Und die Frage, wie man das richtig macht, ist, ja, da haben sich Menschen schon hundert Jahre lang mit beschäftigt und gute Wege herausgefunden, das zu machen.

Gerrit

Und die kann man dann natürlich auch implementieren und das nutzen.

Dominik

Also die haben ja quasi das Rezept, den Algorithmus schon entwickelt und den wird dann in Python irgendwie übertragen, auf das Modell angewandt und dann gibt es eine zufällige Verteilung, die rauskommt.

Dominik

Oder hast du dann immer konkrete Ergebnisse?

Gerrit

Es könnte zum Beispiel rauskommen, okay, diese Population stirbt aus und diese Population geht auf genau diesen Wert und bleibt da.

Dominik

Und du hast eine Zeit, in der das passiert ist.

Gerrit

Und ich habe die Zeit, in der es passiert ist.

Gerrit

Ja, das ist in vielen Fällen gar nicht mal so das Interessante, aber es ist auch interessant.

Gerrit

Die andere Sache, die halt rauskommen kann, ist zum Beispiel, okay, es geht nicht einfach auf irgendeinen festen Wert, sondern es oszilliert wild rum.

Gerrit

Zum Beispiel chaotisch.

Gerrit

Und dann können wir eben das feststellen, okay, es oszilliert rum.

Gerrit

Das ist eine Antwort.

Gerrit

Oder es ist was anderes, als wenn es konstant bleiben würde.

Gerrit

Und ja, wir können uns dann die Frage stellen, okay, unter welchen Bedingungen oszilliert es rum?

Gerrit

Welche Bakterien, Spezies überleben?

Gerrit

Unter welchen Bedingungen?

Gerrit

Wovon hängt das ab?

Gerrit

Wie beeinflussen die Bakterienspezies einander?

Gerrit

Und ja, wie verhalten sich eben solche Systeme im Allgemeinen?

Dominik

Also ein geschlossener Game-of-Life-Kreislauf.

Gerrit

Ja, und ein bisschen realistischer.

Gerrit

Aber ja, Game of Life ist auch durchgeführt.

Dominik

Echte zelluläre Automaten, ja.

Gerrit

Ja, nur dass wir halt nicht mehr.

Gerrit

Ja, also zelluläre Automaten sind halt ein Typ von Simulation, der von Zahlgleichung sind ein anderer Typ.

Gerrit

Dann können wir noch diverse andere Typen durchsprechen, wie wir es lösen können, aber ja.

Gerrit

Und dann kann ich am Ende sagen, ich weiß, wenn ich Bakterien so und so zusammenpacke, dann passiert wahrscheinlich sowas.

Gerrit

Das ist das Fernziel dieser ganzen Forschung.

Gerrit

Dass man eben besser versteht, wie sich solche Systeme entwickeln und dann natürlich auch die Frage, wie reagieren sie auf Umwelteinflüsse.

Gerrit

Also eine häufige Frage ist zum Beispiel Antibiotika.

Gerrit

Ich habe einen klassischer Fall, wo wir kein Ökosystem haben im Körper, was die Ausnahme ist, ist die Blase.

Gerrit

Das ist normalerweise bakterienfrei, soweit man das bisher weiß.

Steril.

Gerrit

Steril, ja, genau.

Gerrit

Aber wenn da was reinkommt, hat man ein Problem.

Gerrit

Und manchmal kommen da mehrere Dinge rein und dann ist die Frage, begünstigen die einander, bekämpfen die einander, sind da verschiedene Bakterien, die Fressfeinde oder was auch immer sind.

Und Fressfeinde hat sich toll angefangen.

Gerrit

Fressfeinde ist in jeden Fall das falsche Wort eigentlich.

Also die umgleich Erdstoffe konkurrieren.

Gerrit

Und die Frage ist jetzt, wenn ich ein Antibiotikum dazu kippe, was passiert?

Gerrit

Kann ich natürlich wieder im Reagenzglas austesten, dauert dann genauso lange wie im echten Menschen, ist ein Problem.

Gerrit

Also ein Fernseher der Anwendung wäre zum Beispiel, dass man eben eine Probe hat, feststellt, welche Spezies sind da drin, wie verhalten die sich und dann direkt simuliert, welches Antibiotikum muss ich geben oder in welchem Takt, mit welchen Bedingungen, damit ich diese Handwerksinfektion möglichst effektiv wegkriege.

Dominik

Also das heißt, ihr könnt tatsächlich auch sowas, chemische Verbindungen tatsächlich simulieren, da reinschießen und dann sagen, hey, vielleicht konnte was raus.

Gerrit

Also wir simulieren nicht die chemische Verbindung in dem Sinne, sondern wir wissen halt, dass das Antibiotikum hat die Auswirkungen auf das Bakterium ganz grob.

Gerrit

Aber auch das ist alles nur das Fernsehen.

Gerrit

Also wir sind eben, solche Ökosysteme zum Beispiel zu simulieren, ist verdammt schwierig.

Dominik

Aber es hört sich sehr nützlich an.

Dominik

Also mal so.

Gerrit

Ja, deswegen versuchen wir es ja auch.

Gerrit

Und deswegen gibt es hoffentlich Leute, die uns dafür bezahlen, das zu machen.

Gerrit

Ja, und das ist so einig.

Je wieder diese

Dominik

große Sponsurenaufrufe freiheit sich irgendwie in so.

Jochen

Nee, aber ich finde, das klingt halt schon so ein bisschen danach, wie man hat irgendwo einen ungekippten Weiher und dann geht man da halt mit drei Gläsern irgendwie unterschiedliche Bakteriensocken hin, schüttert das da rein, wartet zwei Tage und dann hat man eine Blümchenwiese da.

Jochen

Oder so, das wäre schon gut.

Ja, das wäre schon nicht schlecht.

Jochen

Wenn man das so rausfinden könnte, wie das geht.

Gerrit

Ja, aber ja.

Dominik

Und das geht alles mit Python, das ist ja wie das sollte.

Dominik

Also mit der schönen Schlange der Abenteuer.

Jochen

Also, genau, ja.

Also.

Und wie?

Genau.

Gerrit

Also entweder sagt man, ich habe eine Simulation und Zeit stört mich nicht, also Laufzeit.

Gerrit

Das kann schon mal sehr häufig passieren, dann kann man es einfach wirklich rein in Python simulieren in jeden Fall.

Gerrit

Ich habe auch Simulationswerkzeuge mal gebaut aus so Nebenkriegsschauplätzen, die wirklich rein in Python laufen und auch da einigermaßen effizient sind noch.

Gerrit

Ein Hauptproblem mit vielen komplexen Simulationen, und jetzt mache ich jetzt wieder eine eigensinnige Überleitung zu meinem, was ich wirklich gemacht habe, ist, dass es nicht so einfach und schnell in Python geht und dass es insbesondere auch nicht so schnell und einfach mit NumPy geht, weil es nicht vektorisierbar ist.

Gerrit

Jetzt muss ich wahrscheinlich kurz erklären, was vektorisierbar ist.

Gerrit

Das heißt, ich habe ein klassisches Beispiel ist, ich addiere zwei Vektoren.

Gerrit

Ich habe ein großes Array mit Zahlen oder Liste oder was auch immer man sich vorstellen möchte.

Gerrit

Ich habe eine andere, genauso lange Liste mit Zahlen.

Gerrit

Wenn ich jetzt sage, addiere bitte mal die ersten beiden Elemente und von jeder Liste und füge das als erstes neues Element in eine neue Liste und dann macht das bitte mit den zweiten Elementen und so weiter und so fort, dann ist das eine vektorisierbare Option, Operation.

Ich glaube,

Dominik

das hat niemand verstanden, der nicht wusste, was woher eine Vektoroperation ist.

Verdammt.

Dominik

Vielleicht nochmal wie du kurz.

Dominik

Wenn du zwei Vektoren addierst, dann machst du irgendwie sowas, du erklärst irgendwie den Weg, den du per Luftlinie kennst und dem erzählst ihm wegen, ja, musst du links, dann musst du rechts, dann kommst du irgendwann.

Jochen

Nennt es nicht so sehr das, was es tut, sondern die Art, wie es passiert.

Gerrit

Also es ist immer das Gleiche.

Gerrit

Ich mache einfach, also das auch gleich für viele Sachen ist das so, Moment, jetzt muss ich gerade richtig hinkriegen.

Gerrit

Multiple Data, nee, Moment.

Gerrit

Multiple Input, Single Operation.

Gerrit

Single Operation, Multiple Data.

Gerrit

Also ich mache.

Jochen

Single Input, SIM D, irgendwas insgesamt.

Genau, also da ging.

Gerrit

Ja, also das Konzept ist auf jeden Fall klar.

Gerrit

Der Begriff ist nicht der übliche wahrscheinlich, aber alle, die es kennen, wissen, worum es geht.

Gerrit

Also ich habe einen Datensatz und ich mache damit 5000 Mal das gleiche, wenn ich jetzt 5000 Elemente in meinem Datensatz habe.

Gerrit

Oder der Datensatz wäre halt ein Array.

Gerrit

Und das ist ein Problem, was in vielen, vielen Simulationen auftaucht und das ist auch alles schön und gut.

Gerrit

Und das kann man dann natürlich effizient mit solchen Sachen wie NumPy gut lösen.

Gerrit

Also nicht 100% effizient, aber schon sehr nah dran.

Gerrit

Da ich dann eben, wenn ich mit NumPy zwei Arrays addiere, funktioniert es eben so, dass der sagt, okay, ich erkenne, das ist jetzt eine Addition und dann geht der jetzt nicht für jedes einzelne Element dieses Arrays hin oder dieser paarweisen Arrays und überlegt sich, oh, guck mal, was ist das für ein Objekt?

Gerrit

Ist das eine Zahl?

Gerrit

Aha, eine Zahl kann ich jetzt multiplizieren mit einer Zahl.

Gerrit

Was passiert denn da?

Gerrit

Ah, da kommt wieder eine Zahl raus.

Gerrit

Und unter der Haube findet dann die tatsächliche Multiplikation statt.

Gerrit

Das ist ja das, was im normalen Python passieren würde.

Gerrit

Sondern der sagt, okay, ah, das ist ein Array, das ist aus Zahlen, das ist noch ein Array aus Zahlen.

Gerrit

Und jetzt gehe ich mal unter der Haube hin, lasse eine effiziente Schleife da durchlaufen, die in C oder was auch immer geschrieben ist.

Gerrit

Multipliziere die alle elementweise miteinander oder addiere sie elementweise miteinander und dann kriege das Ergebnis.

Gerrit

Und das ist schnell.

Gerrit

Und wenn ich jetzt mein Problem ausschließlich aus solchen Operationen beschreiben kann, dann kann ich das auch schnell mit NumPy und Python lösen, ohne dass ich da irgendwie selbst in C programmieren muss oder so.

Jochen

Ja, ich glaube, also ich weiß jetzt auch nicht, ob ich mich da ganz komplett korrekt daran erinnere, aber ich meine, ich glaube, der Witz bei dem Vektorisieren ist eigentlich, dass man, man hat ja mehrere Register irgendwie und man kann man das halt sozusagen in gewisser Weise parallelisieren, diese Addition oder Multiplikation von Arrays, indem man das halt in so viele Teile zeigt und dass man halt alles irgendwie gleichzeitig macht.

Jochen

Oder diese Dinger sind irgendwie, oder man kann halt mehrere Dinge in ein Register packen, weil die nicht mehr so ein bisschen mehr.

Gerrit

Naja, das kommt noch, ist noch ein Vorteil.

Gerrit

Bei Grafikkarten und ähnlichem könnte ich das dann tatsächlich paralysieren, stimmt.

Gerrit

Also gerade dieses Rechnen auf Grafikkarten, wenn man das immer, was man immer wieder gehört, das sind genau solche Sachen, wo man eben ja mehrfach die gleiche Operation rechnet.

Gerrit

Aber das ist auch schon eine Sache, die, wenn ich jetzt mit reinem Python arbeiten möchte oder nicht irgendwas Neues programmieren möchte in Python, mir das Leben deutlich einfacher mache, wenn ich sowas nutze wie NumPy.

Gerrit

Denn NumPy, das Hauptkonzept von Numpy ist eigentlich, wir haben vektorisierbare Operationen und stellen sie den Python-Nutzer zur Verfügung, ohne dass der sich darüber kümmern muss.

Gerrit

Also wir stellen sie nicht so zur Verfügung, wir stellen sie in effizienter Form zur Verfügung, ohne dass der Nutzer sich darum kümmern muss, da irgendwie in C Fortran oder was auch immer von niedrigen Sprachen das zu machen.

Jochen

Ja, ich glaube auch, ich habe mal irgendwie gehört, dass das halt irgendwie der Grund ist, warum Fortran immer noch so eine große Rolle spielt, weil Fortran, bei Fortran diese Geschichten halt die Schleifen, glaube ich, auch automatisch vektorisierbar sind, bei C halt nicht, weil und das ist halt ein Problem, also man muss es dem Compiler halt sagen, weil man da so Seiteneffekte haben kann, dass das Ergebnis der Addition von zum Beispiel zwei Vektoren kann halt wieder irgendwie Einfluss nehmen auf was davor und es ist halt ja sozusagen nicht garantiert, dass man

Jochen

das halt vektorisieren kann oder dass man es irgendwie parallelisieren kann, sondern es kann halt an einem die Programmlogik kaputt machen, wenn man das halt nicht weiß, dass das geht und in Vortrang geht das halt nur so und daher.

Aber ja, keine Ahnung.

Gerrit

Also mittlerweile stimmt das glaube ich nicht mehr.

Gerrit

Mittlerweile, oder nicht mittlerweile, ich glaube seit 15, 20 Jahren.

Gerrit

Gibt es in C,

Jochen

dass man dem Compiler sagen, Restrict-Keyword,

Gerrit

ich hoffe, ich mache es jetzt richtig.

Gerrit

Muss ich wahrscheinlich schämen, dass ich nicht kenne, was eben genau das sagt, okay, also das klassische Problem ist ja, wenn ich, um das, was du bei mir beschrieben hast, nochmal zu, in anderen Worten zu beschreiben, dass der Compiler nicht weiß, wenn ich A und B addiere, dass eventuell das B, was ich da addiere, vorher schon in einem vorigen Durchlauf anders beschrieben wurde, in einem vorigen Element der eigentlichen Schleife.

Gerrit

Also ich habe irgendwie mein, nehmen wir wieder Vektoren.

Gerrit

Es könnte sein, dass ich die erste Komponente zur ersten Komponente addiere und dann kriege ich eine Komponente raus.

Gerrit

Es könnte aber sein, dass ich das in die zweite Komponente des Vektor ausschreibe und das auch tatsächlich möchte, warum auch immer, welch C-Programmiere möchte ich sonst anscheinend.

Gerrit

Und der Compiler geht davon aus, dass er das nicht weiß und dass er nicht das möchte und deswegen optimiert das nicht weg.

Gerrit

Wenn ich jetzt aber sage, dieses Array ist restricted oder restrict, dann passiert das nicht.

Ja, ja, klar.

Gerrit

Also man kann das mittlerweile in C lösen.

Jochen

Ja, genau, natürlich.

Gerrit

Aber das ist auch wieder eine Wissenschaft für sich, wie man das dann genau, was man alles optimieren kann.

Und wenn man es richtig schnell haben will, dann muss man sowieso in Assembly schreiben und

immer mit Goto-Schleifen immer hin und her springen.

Dominik

Da war Assembly doch.

Gerrit

Nee, Assembly ist, glaube ich, noch schlimmer, da gibt es keine Goto-Schleife.

Dominik

Ja, also springst du Adresse oder sowas.

Jochen

Genau, das.

Jochen

Ja.

Gerrit

Also auf jeden Fall, ja, also auf die Weise kann man dann Python in vielen Sachen nutzen.

Gerrit

Und jetzt, wieder gesagt, die schamlose Überleitung, nächster Versuch zu meinem eigentlichen Sachen, ich gemacht habe.

Gerrit

War jetzt Sachen, die ich selbst gemacht habe, ist, dass es in vielen solchen Simulationssachen das Problem ist, dass man es eben nicht vektorisieren kann.

Gerrit

Also was in meiner vorigen Arbeit sehr häufig aufgetaucht ist, ist zum Beispiel, dass wir uns komplizierte Netzwerke von, man kann sich jetzt Neuronen vorstellen, angeguckt haben, die irgendwie miteinander verknüpft sind und dann hat man das Problem, dass die Verbindungen zwischen diesen Knoten zufällig sind und dann ab dem Punkt kann ich es nicht mehr sinnvoll vektorisieren.

Gerrit

Oder man kann sich auch vorstellen, man hat komplexe metabolische Modelle, wie irgendwelche Spezies, irgendwelche Stoffe in andere Stoffe überführen und so weiter.

Gerrit

Und das ist eben auch komplex und nicht vektorisierbar in vielen Fällen und das muss man dann, möchte man natürlich auch irgendwie effizient haben.

Gerrit

Und das Interessante nebenbei ist, auch viele Leute haben sich vorher immer die vektorisierbaren Fälle angeguckt, weil sie ja so schön einfach anzugucken sind, weil man sie ja schön einfach programmieren kann.

Gerrit

Und viele Phänomene zeigen sich eben erst, wenn es nicht vektorisierbar ist oder wenn eben diese interessanten Fälle passieren.

Gerrit

Und da habe ich dann eine Software geschrieben, die gerade das für den Nutzer macht, dass man irgendwelche komplizierten Gleichungen hinschreiben kann, die das System beschreiben und die werden dann für den Nutzer unter der Haube kompiliert, nicht vektorisiert und nicht vektorisierbar und trotzdem schnell in Python.

Gerrit

Ja, das kam irgendwie.

Dominik

Wo gibt es das zu finden?

Dominik

Oder ist das alles private oder PowerPoint?

Gerrit

Das gibt es zu finden, das ist schöne freie Software.

Gerrit

Ich habe sie, also es sind eigentlich drei Software.

Gerrit

Das erste ist JIT-Cody, das steht für Just-in-Time Compilation for Ordinary Differential Equations.

Gerrit

Also Ordinary Differential Equations sind gewöhnliche Differentialgleichungen.

Gerrit

Just in Time Compilation sagt eventuell dem neigten Hörer was.

Gerrit

Das ist dieser Aspekt, dass wir, man irgendeine Eingabe hat und die wird dann unter der Haube für den Nutzer kompiliert.

Gerrit

Und das gibt es dann auch mal für sogenannte Delay Differential Equations und Stochastic Differential Equations, aber ich glaube, das ist ein Detail, auf den wir jetzt nicht rumreiten müssen.

Gerrit

Ja, und das ist ein Werkzeug, was dann sich herausgestellt hat, was gut, ich habe es, als ich das gemacht habe, weil konnte ich das natürlich schon irgendwo absehen, dass das für viele Leute sehr nützlich ist.

Gerrit

Insbesondere als da wir uns damals auch in der Forschung damit beschäftigt haben, genau solche Probleme zu lösen.

Gerrit

Und ja, eine Sache, die vielleicht auch noch interessant ist, also man kann jetzt natürlich sagen, der Nutzer gibt mir irgendwelche Gleichungen und die werden umgesetzt.

Gerrit

Das ist in Python auch mit Sympai, also das ist jetzt Symbolic Python, das wird jetzt wahrscheinlich noch ein Exkurs.

Gerrit

Eine schöne Möglichkeit gibt es diese Gleichung einzugeben.

Dominik

Also Sympai macht was denn?

Dominik

Also das ist jetzt wieder tatsächlich spannend, was für die Heurer, die das noch nie gehört haben, was macht es.

Gerrit

Also normales Rechnen im Computer macht man ja klassischerweise mit Zahlen.

Gerrit

Eins plus zwei, genau, aber Sympai rechnet mit Symbolen, also ganz abstrakten Objekten wie X.

Gerrit

Und das Schöne an Sympai ist, dass es oder auch generell an Symbolischen rechnen, das hat jetzt Sympai nicht erfunden.

Gerrit

Also das Schöne ist, dass es dann exakt gewisse Sachen lösen kann.

Gerrit

Zum Beispiel, wenn man sagt x plus x, kommt da nicht, steht da nicht x plus x, sondern steht da 2x.

Gerrit

Oder wenn man sagt x minus x, dann steht da nicht 10 hoch minus 16 oder so.

Sondern 0.

Gerrit

Und das ist dann auch exakt 0.

Gerrit

Und ja, es hat sich herausgestellt, dass sich das, diese Library gibt es und die hat auch direkt Interfaces, um Sachen in C-Code zu übersetzen, wenn man wirklich Sachen schnell machen muss, was genau das ist, was ich brauchte.

Gerrit

Und sie kann auch viele Sachen, die ihnen jetzt noch für mich wichtig waren, automatisieren, solche Ausdrücke analysieren, welche Symbole tauchen da eigentlich auf, damit rechnen natürlich und eventuell sogar Gleichungen lösen, wobei das eine Sache ist, die ich interessanterweise kaum mache.

Gerrit

Auch wenn man sich irgendwie viele Leute vorstellt, dass das wichtigste ist, wenn man so ein symbolisches Rechnending hat, dass man tatsächlich.

Gerrit

Ja, genau.

Gerrit

Man kann irgendwelche komplizierten Gleichungen lösen.

Gerrit

Ja, kann man, aber man kann es auch als Werkzeug nutzen, um ganz dumpfe Routine, Aufgaben durchzurechnen und es einfach als Eingabemaske zu nutzen oder einfach auch solche Ausdrücke zu analysieren und zu gucken, okay, ja, welche Variablen tauchen dann eigentlich auf?

Gerrit

Also nichts, was ein Mensch nicht auch könnte, aber eben automatisiert.

Jochen

Kann man die auch, ich meine, wenn man das, wenn man das dann eine gute Methode gibt, die anzugeben, das ist auch vielleicht ein bisschen, kann man dann auch irgendwie sowas sagen wie, printe mal das nett raus oder Latech dafür oder so.

Das wäre natürlich auch.

Jochen

Weil das mache ich nämlich sonst immer total mühselig von der Hand und muss mir den Syntax zusammenklauben, irgendwo her.

Nee, das

Dominik

scheiße, ich sogar sagen würde, der x plus x gleich x Quadrat oder sowas.

Dominik

Dann, dass man dann tatsächlich ein Latech-Drech irgendwie kriegt.

Gerrit

Ja, ja, der hat einen Latech-Printer.

Gerrit

Ich habe damit noch nicht viel gearbeitet, insofern kann ich dazu nicht so viel sagen.

Gerrit

Also existiert definitiv.

Gerrit

Was man halt aufpassen muss, ist die Frage, ob man das dann wirklich so dem geneigten Leser verkaufen möchte, wie es da ausgegeben wird.

Gerrit

Die Sachen sind halt so sortiert, wie Simpai das gerade für richtig hält.

Gerrit

Also man kann das wahrscheinlich modifizieren, aber dann macht man sich mehr Arbeit, als es selbst zu schreiben.

Ja.

Gerrit

Aber auch solche Sachen gehen ja.

Gerrit

Man kann es auch ausgeben, wenn man unbedingt möchte.

Gerrit

Aber was natürlich so die Sachen sind, die in vielen Anwendungen gar nicht auftauchen.

Dominik

In dem Zusammenhang von diesem Gleichung, du nämlich irgendwann mal über so ein Programm beschrieben, das heißt irgendwie LP-Solver oder sowas?

Dominik

Linear Programming oder sowas.

Jochen

Achso, ja, lineare Optimierung.

Jochen

Da gibt es einige Software zu.

Gerrit

Ich glaube, ich meine, da bin ich jetzt wenig Experter, ich glaube, das ist dann wieder ein Fall, wo es numerisch gelöst wird, also mit Zahlen.

Gerrit

Das Interessante hier ist, dass wir wirklich mit abstrakten Symbolen rechnen.

Gerrit

Das ist ein bisschen was anderes.

Gerrit

Also natürlich, ja.

Dominik

Okay, aber vielleicht konnte man das dann kombinieren oder sowas.

Dominik

Es hat fetch, ja.

Jochen

Ich weiß nicht, ich glaube, das Standardpaket so viel so Konvexoptimierung ist CVX-Opt oder so, damit habe ich schon mal ein bisschen was gemacht.

Jochen

Es gibt dann auch so ein paar mehr Pakete, ja.

Jochen

Also, aber ich glaube, das ist nochmal eine andere Richtung wahrscheinlich, obwohl das auch wahrscheinlich alles in dem Scientific-Umfeld irgendwie so existiert.

Gerrit

Es gibt sehr viele Standardprobleme mit sehr vielen Lösungen dafür und schon allein die ganzen Probleme alle mit Namen nennen zu findest, da ist man dann eine ganze Karriere mit beschäftigt.

Jochen

Ich weiß nicht, ob das bei dir eine Rolle spielt, aber ich habe da so mal früher, da gab es irgendwie sowas wie Sage oder so, das war so eine Distribution von ganz vielen Dingen.

Jochen

Das ist, was es heute noch gibt, ich habe keine Ahnung.

Gerrit

Es gibt es, glaube ich, noch, ich habe auch damit gearbeitet.

Gerrit

Also ja, also was ist Sage?

Gerrit

Ich kenne sowas, also das ist, es ist sehr komisch.

Gerrit

Es ist weitestgehend Python und ist speziell dafür gemacht, so ein Ersatz für so Sachen wie, ja, ich glaube, Mathematik.

Gerrit

Mathematik und so weiter zu sein.

Gerrit

Es ist ein großer Klotz, den man sich kompilieren oder runterladen muss.

Gerrit

Der ist dann 600 Megabyte groß oder so.

Gerrit

Und funktioniert weitestgehend wie Python, aber nicht ganz.

Gerrit

Also es gibt so eigenwillige Modifikationen, sag ich mal, die dazu dienen, das ansprechender zu machen, ob das jetzt gut ist oder nicht.

Sei dahingestellt.

Gerrit

Aber zum Beispiel ist, dass der Zirkumflexoperator Potenzierung macht, statt Sternchen, Sternchen.

Gerrit

Also Sternchen-Sternchen macht auch noch Potenzierung, aber man kann es jetzt auch.

Jochen

Okay, das wusste ich gar nicht, dass sie das geändert haben.

Gerrit

Genau, also solche Änderungen sind da drin, es sind viele Sachen automatisch geladen als Pakete in so einem Standardnamensraum.

Gerrit

Also es macht so ein paar Sachen, ja, wie soll ich sagen, komisch kaputt, die, nicht kaputt, aber so Sachen, die in Python eigentlich ganz gut sind, dass man den Standardnamensraum eben nicht mit 10.000 Dingen vollgemüllt hat und die nicht einfach aus Versehen überschreiben kann und weiß, woher die Dinge kommen, wurden dann wieder zu nicht gemacht.

Gerrit

Warum der einen, war man jetzt den Zirkumflexoperator unbedingt brauchte, dafür, ja, ob das so wichtig ist, gut, ja.

Gerrit

Weiß ich nicht.

Gerrit

Also ich habe damit gearbeitet, es kann ein bisschen mehr oder konnte zu dem Zeitpunkt ein bisschen mehr als Sympai.

Gerrit

Andererseits eben Sachen Gleichung lösen.

Gerrit

Was wie gesagt die Sache ist, die ich nicht mache, auch wenn sie irgendwie alle erwarten, sondern ich nutze es wirklich eben, um Gleichung zu verarbeiten und damit einfache Sachen zu machen.

Gerrit

Deswegen habe ich das letzten Endes nicht gebraucht.

Gerrit

Und es ist, wie gesagt, dieser große monolithische Klotz, den man dann immer auch komplett updaten muss oder wo man, ja, es war nicht sehr handhabbar, aber nicht schön, fand ich.

Gerrit

Wo wir aber noch kurz zurückbezug, ist super zum Codegolfen.

Gerrit

Wie gesagt, alles wird in die, aber viele Dinge sind im Standardnamensraum.

Gerrit

Das heißt, eine Lösung, ein Python-Programm kompakter zu machen in Codegolf, ist dann, mach es in Sage.

Auch nicht schlecht, ja.

Gerrit

Das ist natürlich keine Python-Lösung mehr, aber ja.

Jochen

Ja, interessant.

Jochen

Also, okay, aber Symphy scheint auf jeden Fall dann, wenn man, wenn man irgendwie so Gleichung symbolisch verarbeiten möchte, dann halt so das Mittel der Wahl zu sein.

Jochen

Was gibt es denn noch an Bibliotheken oder Software, die so regelmäßig benutzt werden und da eine wichtige Rolle spielen?

Also ich glaube, NumPy ist SciPy ist, stellt einem viele Simulations und Statistik und sonst was Tools zur Verfügung.

Gerrit

Nutze ich zum Beispiel auch unter der Haube, um gewöhnliche Differenzialgleichungen zu integrieren.

Gerrit

Für andere Differenzialgleichungen da nicht mehr, weil das komplizierter ist.

Gerrit

Da habe ich dann meine eigenen Integratoren implementiert.

Gerrit

Ja, dann, gut, es gibt viele Sachen für Datenfahrer, also um wirklich große Datenmengen und vor allem Daten zu verwalten.

Gerrit

Ich glaube, ihr hattet schon mal eine Folge zu Pandas.

Gerrit

Insofern werde ich davon nicht so viel erzählen.

Gerrit

Kann ich auch gar nicht, weil ich in der Regel nicht so viel mit Daten zu tun habe.

Gerrit

Oder die Daten, die ich habe, sind einigermaßen überschaubar.

Gerrit

Ja, und dann eben ganz viele Bibliotheken, die gerade genau die Spezialanwendung machen, die man braucht.

Gerrit

Und da ist eben das Schöne an Python, denke ich, dass es relativ einfach ist, mal erstmal irgendwas, ist immer, wenn es nicht effizient sein soll, zu schreiben und zur Verfügung zu stellen, insbesondere auch Dinge zu nutzen und sie natürlich auch mit anderen Dingen zusammenzunutzen, weil man am Ende eine vollwertige Programmiersprache dahinter hat.

Gerrit

Was immer so das Problem mit anderen Sachen ist, die also ja, dass man eben irgendwann an die Grenzen stößt, dass man gut viele häufig braucht man die Sachen natürlich auch nicht, häufig braucht man nicht.

Gerrit

Also, wenn ich jetzt, was weiß ich, Leute, die MATLAB oder was auch immer nutzen, ja, die wollen damit natürlich auch keinen Webserver betreiben.

Gerrit

Oder was auch immer.

Gerrit

Aber ja, man kann halt auch immer, also ich glaube, der Vorteil ist eher nicht, also weniger, dass man solche Sachen wie Webserver oder so weiter nutzen kann, sondern dass man sagen kann, das hier ist eine universelle Programmiersprache, die lernen wir jetzt mal bitte alle und dann können wir dann machen, was wir wollen.

Gerrit

Und wenn man allgemeine Programmierkonzepte nutzt, kann man sie verwenden.

Gerrit

Ob man jetzt, also muss jetzt gar nicht ein Python sein.

Gerrit

Aber wenn man uns sowas wie objektorientiertes Programmieren einmal verstanden hat, kann man das dann eben für Simulationen nutzen oder oder oder.

Dominik

Was ist so die häufigste andere Sprache, die du findest dann in deinem wissenschaftlichen Umfeld, mit der du dann auch arbeiten wollen würdest oder sagst, hast du.

Gerrit

Also arbeiten wollen würden, das ist dahingestellt, ich musste, sage ich mal, einen Kurs Datenanalyse in MATLAB für Biologen unterrichten.

Gerrit

Das heißt, ja, das ist so die andere Programmiersprache, mit der ich viel zu tun hatte.

Gerrit

Ich habe es aber geschafft, dass weitestgehend MATLAB nie anzurühren dazu.

Gerrit

Also es gibt ja eine freie Alternative namens Octave, das mache ich mal so für freunde freier Software etwas erträglicher.

Gerrit

Außerdem musste ich mich dann nicht irgendwie rumschlagen, das zu installieren.

Gerrit

Und ja, ich habe es tatsächlich weitestgehend geschafft, diesen Kurs zu lehren, ohne das jemals anzurühren.

Gerrit

Und ja, also ich würde auch mit dieser Programmiersprache nicht arbeiten, weil es gibt Sachen, das Schöne ist, ich habe es irgendwie so dann zwei Monate vor dem Kurs mich hingesetzt und das gelernt und wirklich jede Sache, wo ich denke, okay, wer hat sich das ausgedacht, das kann doch nur zu Tausenden von Fehlern und sonst was Problemen führen, wird da auch zu Tausenden von Fehlern und Führen.

Dominik

Ja, Programme direkt überhaupt.

Gerrit

Es passt wirklich zum Teil wie die Forst.

Gerrit

Ich habe ja auch, ja gut, das kann man jetzt wieder nicht vorführen, aber so ein Beispiel, wo man an einer Stelle, also ich hoffe, ich erzähle jetzt doch nochmal ein bisschen, Matha hat die großartige Idee gehabt, dass man das Leerzeichen als Elementtrennungsoperator in Arrays nutzt oder Listen.

Ja, ja, ja.

Dominik

Nämlich dabei doch was.

Gerrit

Genau, also statt Kommata wie in Python.

Gerrit

Man kann auch Kommata nutzen, man kann auch Semikola nutzen, das ist dann eine neue Zeile, aber man kann auch Leerzeichen nutzen.

Gerrit

Und dann gibt es jetzt das Problem, wenn ich jetzt was tippe wie eckige Klammer auf, was steht für Array?

Gerrit

Okay, soweit so erwartet.

Gerrit

Fünf Leerzeichen plus Leerzeichen 3, dann ist das natürlich 8.

Gerrit

Wenn ich aber eintippe 5 Leerzeichen plus, kein Leerzeichen, Achtung, 3, ist das natürlich das Array, was 5 und 3 enthält.

Gerrit

Weil das Leerzeichen ja der Plus 3.

Jochen

Und das Plus gehört dann halt zu der Zahl und sagt einfach nur, das ist jetzt plus fünf und nicht Minus.

Gerrit

Genau, ja.

Gerrit

Und das hört sich so noch, okay, kann man auch verstehen.

Gerrit

Das Problem ist, wenn jetzt die Arrays etwas größer und komplizierter werden und da komplizierte Ausdrücke drinstehen, was manchmal tatsächlich der Fall ist, dann kann einem die Formatierung dieses Arrays dann die Probleme machen.

Gerrit

Also ja.

Gerrit

Das war der Fehler, wo wir wirklich eine halbe Stunde gesucht haben, um zu verstehen, was da überhaupt passiert.

Jochen

Man startet drauf und denkt sich so, ja,

Gerrit

die Sparre ist halt jetzt voll davon.

Gerrit

Also das wurde halt in den 80er Jahren entwickelt oder so, 1987, 86, keine Ahnung.

Gerrit

Und seitdem gefühlt nicht mehr weiterentwickelt.

Gerrit

Und ja, so bedient es sich auch.

Dominik

Das erinnert mich so ein bisschen an Python, wenn du das Tupel machen, übergeben willst, dass er hinter noch ein Komma machen willst, weil er sonst kein Tupel macht, wenn du die Klammern einfach ein Element nur drin hast oder so.

Gerrit

Ja, genau, das ist noch so, ja.

Gerrit

Aber das passiert halt andauernd.

Gerrit

Ja, genau.

Gerrit

Und da gibt es dazwischen R, das ist schon ein bisschen besser.

Gerrit

Also erstens ist es frei, zweitens ist es nicht ganz so irrsinnig, es hält sich auch ein bisschen an Programmierstandard, aber ja.

Gerrit

Damit habe ich noch nicht so viel zu tun gehabt.

Gerrit

Und es gibt natürlich auch diverse andere Sprachen, das jetzt relativ entkommen ist für Simulationen oder für Sachen, die schnell laufen müssen, ist Julia.

Gerrit

Wo ich dann mich immer noch frage, okay, wieso brauchen wir jetzt hier noch Klammern, weil die Python ja zum Beispiel abgeschafft hat.

Gerrit

Und insbesondere, dass ich eine Sprache ist, die sich in vielen Fällen, so wie ich es verstanden habe, an Python orientiert.

Gerrit

Ja.

Gerrit

Aber sehr viel mache ich zurzeit in Python und wenn es dann schnell gehen muss, mache ich es eigentlich in C.

Gerrit

Also das sind so die Sprachen, mit den ich direkt zu tun habe.

Jochen

Dann direkt tatsächlich als C-Extension oder nimmst du sowas wie Seiten und wandelst das dann halt um in Case.

Gerrit

Ich mache es tatsächlich als C-Extension, weil ich es einmal gelernt habe und mich da auskenne.

Gerrit

Zum einen und zum anderen jetzt, um auf meine eigene Software zurückzukommen, da ist ja wieder gerade das Problem, dass ich es dann wirklich möglichst schnell haben möchte.

Gerrit

Und wenn ich den Nutzer dann Siphon-Code eingeben lasse, habe ich nicht so viel gewonnen.

Ja, ja, klar, dann.

Gerrit

Dann kann ich auch direkt C-Code machen und dann kann ich auch noch viele Sachen nutzen, die eben so in

Jochen

Zeiten nicht drin sind, ja, klar.

Gerrit

Also doppelt verlinkte Listen oder so, glaube ich, würden Siphon nicht funktionieren.

Gerrit

Also da mache ich es schon einmal hardcore und kann dann wenigstens die Sachen, die wirklich schnell sein müssen, auch radikal optimieren.

Dominik

Du siehst ja lieben, wenn der Stop-Uhr timet und dann guckst du es dann wirklich an.

Gerrit

Ja, also in einigen Fällen wirklich ja, zum anderen bilde ich mir ein, ein bisschen Erfahrung zu haben, wie man Dinge schnell macht.

Gerrit

Also in vielen Fällen schreibe ich die Dinge dann hoffentlich auch direkt so, dass sie schnell sind.

Dominik

Also hintereinander direkt den Speicher, dass der ein Tiger nicht so schnell oder so viel hin und her springen muss oder was ist dann so.

Gerrit

Ja, okay, auf der Ebene bin ich noch nicht, aber dass man sich halt schon mal überlegt, ja, das könnte ich jetzt, dass man eben hier diese gewisse Schleifen gar nicht braucht oder mit Zeigerarithmetik arbeitet oder eben sich überlegt, okay, jetzt habe ich hier noch einen Funktionsaufruf und das kostet Zeit und wie kann ich das vermeiden oder wie kann ich hier die Suche, also irgendwelche Suchoperationen, ja.

Dominik

Okay, okay, das hört sich tatsächlich an, als wird ja tatsächlich von der schwachen Hardware, die er noch zur Verfügung stellt, in den Forschungsinstitutionen so ein bisschen abhängig, aber ich dachte, die wären dann irgendwie schon weiter.

Dominik

Abhängig von dieser Komplexität dieser unheimlich großen Berechnungen da.

Gerrit

Ne, also die Hardware kann da ja nur so viel leisten.

Gerrit

Wenn ich, also erstmal, wenn ich halt durch die, in vielen Fällen gehe ich, indem ich von Python auf C gehe, hole ich einen Faktor von 1000 oder so raus.

Bei mir.

Gerrit

Das, ja, da will ich jetzt nicht mehr mit der.

Das klingt jetzt ziemlich viel.

Gerrit

Ja.

Gerrit

Natürlich, also ich könnte das in Python wahrscheinlich auch noch, wenn ich mich wirklich, wirklich stark hinsetze, besser machen, dass es nur noch ein Faktor 100 ist.

Gerrit

Aber gerade solche Probleme habe ich eben.

Gerrit

Das muss man ja auch.

Gerrit

Also das für viele andere Probleme gilt das übrigens nicht.

Gerrit

Also ich habe jetzt schon meine exotischen Spezialprobleme, die ich und vielleicht noch ein paar kleinere Communities auf der Welt haben, wo das wirklich einen Riesenunterschied macht und wo ich dann eben auch Software geschrieben habe, die diesen Unterschied dann wegmacht, aber für Python-Nutzer rausholt.

Gerrit

Die, so jetzt war ich, ja, jetzt habe ich vergessen mal.

Gerrit

Was war nochmal der Frage?

Dominik

Ja, es geht so ein bisschen darum, also wie das dann hinter aussieht, also warum du diese Geschwindigkeit dann über C rausholen musst.

Ah ja, genau, genau.

Dominik

Warum das nicht irgendwie, weiß ich nicht, andere Ideen dafür noch.

Großrechnet.

Jochen

Einfach mehr Hardware, ja.

Dominik

Genau, mehr

Hardware draufschmeißen.

Gerrit

Genau.

Gerrit

Also natürlich kann man immer mehr Hardware draufschmeißen.

Gerrit

Diese Hardware muss ich dann auch erstmal, also gerade wenn ich ein Cluster habe, muss ich mich erstmal damit auseinandersetzen, wie ich meine Sachen clusterfähig mache.

Gerrit

Und in vielen dieser Fälle ist es auch so, ich möchte, dass man eben schnell laufen lassen, sofort das Ergebnis sehen und dann darauf basierend weiterdenken.

Gerrit

Also ich habe viele Fälle, da habe ich eine Simulation, ich möchte jetzt verstehen, was passiert da, ich drehe an den Parameter, ich möchte verstehen, was der Parameter macht und dann möchte ich sofort das Ergebnis sehen.

Gerrit

Da hilft mir ein Großrechner nicht viel weiter, wenn ich das jetzt erstmal auf den Großrechner lagen muss und so weiter und so fort.

Jochen

Und dann irgendwann am Wochenende nachts gibt es dann mal Rechenzeit, wo man das dann den Job dann durchläuft.

Gerrit

Das zweite Problem ist, ja, auch der Großrechner kann die Sachen nur hinterein ausführen.

Gerrit

Viele Sachen, also gerade die Simulationen, sind eben, ich habe ein großes System, ich simuliere das über die Zeit, es baut alles aufeinander auf.

Gerrit

Ich kann einfach nicht diese 500 Zeitschritte parallelisieren, denn die brauchen ja erstmal die Ergebnisse vom vorigen Zeitschritt.

Gerrit

Also das heißt, da kann ich auch mit dem Großrechner nur bedingt viel rausholen.

Gerrit

Was ich natürlich machen kann, ist, ich kann diese ganzen Simulationen, die ich habe, sage, okay, ich möchte jetzt 500 Simulationen laufen lassen.

Gerrit

Die kann ich dann parallelisieren.

Gerrit

Aber da bin ich natürlich auch froh, wenn es schneller geht, weil wenn es schneller geht, kann ich eben 500 Simulationen laufen lassen statt nur fünf.

Gerrit

Und ja, das macht dann halt in vielen Fällen auch schon wieder einen schönen Unterschied.

Dominik

Das klingt tatsächlich so, also wäre das ein großer Vorteil.

Dominik

Also ich hätte jetzt nicht gedacht, dass man irgendwie das Hunterwache da und auch mit rausziehen kann, weil ich hätte irgendwie gedacht, dass man die Sache in Python dann irgendwie dann, wie mit Zeissen oder was, dann irgendwie trotzdem so hinbiegt, dass das wettbewerbsfähig ist.

Gerrit

Ich weiß nicht, wenn man sich jetzt hinsetzt und das mit Zeifen hinbiegt, dann hat man eventuell, keine Ahnung, Faktor 10.

Gerrit

Das hängt so ein bisschen vom Problem ab.

Gerrit

Aber ich habe, also ich habe wirklich Probleme, da habe ich, also was ich gemacht habe, ist, und was ich bei diesen Sachen mache, ich schreibe immer erst die Sache komplett in Python.

Gerrit

Wenn ich meine eigenen Sachen baue, mache ich einen Kern aus Python, den ich, äh, von dem ich weiß, was er tut, der lesbar und so weiter ist.

Gerrit

Und wo ich erstmal lerne, den Algorithmus so ein bisschen zu optimieren und wie speichere ich Dinge und so weiter und so fort.

Gerrit

Und dann gehe ich hin und schreibe das Ganze nochmal neu in C.

Gerrit

Was auch sehr schön ist, dann habe ich nämlich eine Testmöglichkeit.

Gerrit

Ich habe einfach meine zwei Kerne, ich bombardiere die mit zufälligen Eingaben und gucke, ob sie tun nicht das Gleiche tun.

Gerrit

Aber von dem, dafür habe ich halt dann auch einen guten Vergleich, weil ich habe das einmal in Python geschrieben, genau dasselbe.

Gerrit

Vielleicht dann ehrlicher gesagt auch nicht optimiert darauf, dass es besonders schnell ist, sondern eben auch, dass es lesbar ist und vergleichbar und dass ich verstehe, was es tut und dass es gut testbar ist und so weiter.

Gerrit

Das ist dann, muss ich dann schon eingestehen, aber es ist trotzdem, je nach Aufgabenstellung wirklich, sind es solche großen Faktoren.

Gerrit

Mit Seiphen, ja, wenn ich das jetzt in Seiphen programmieren könnte oder wollte oder meinen Nutzer das macht zumuten würde, dass er das in Seiphen programmiert, ja, okay, dann wäre es vielleicht nur noch ein Faktor, keine Ahnung, 10, 5, was auch immer.

Gerrit

Aber dann geht natürlich auch sehr viel Programmierzeit drauf.

Dominik

Wenn du jetzt sagst, so deine Nutzer, das heißt, du stellst tatsächlich so ein Programmierinterface bereit und deine Nutzer machen ihre Dateneingabe oder die Schnittstelle dafür noch komplett selber oder also irgendwie.

Gerrit

Also meine Nutzer sind Programmierer.

Gerrit

Das muss ich auch immer unterscheiden.

Gerrit

Das ist immer sehr lustig, wenn man dann auf diesem Python-Treffen sitzt mit allen möglichen Leuten und die aus dem Webbereich und so weiter kommen und erstmal der Nutzer natürlich keine Programmierer sind und sich dann Gedanken und man eine ganz andere Vorstellung darauf hat, wie man eine Fehlermeldung schmeißt.

Gerrit

Weil meinen Benutzer schmeißt sich einfach eine Fehlermeldung, die können die dann hoffentlich auch lesen.

Gerrit

Naja, manchmal.

Gerrit

Ja, also nee, also meine Nutzer sind Programmierer und die kriegen die ja, die brauchen jetzt kein grafisches Interface zum Glück.

Dominik

Du visualisierst dann auch gar nichts von den Lösungen irgendwie, sondern das schmeißt du dann irgendwo rein und dann kann man.

Gerrit

Ja, das macht das kann der Nutzer dann mit einem Plotprogramm machen.

Gerrit

Das ist das Plotprogramm der Wahl oder was auch immer.

Gerrit

Gut, meistens ist es dann Matplot-Dip.

Gerrit

Aber das ist ja in modularer Denkweise nicht meine Verantwortung, da irgendwas zu visualisieren, sondern mir geht es nur darum, die Lösung zu produzieren.

Gerrit

An der Stelle.

Dominik

Also tatsächlich Python und C dann parallel und dann hast du dann eine schnelle und eine hübsche und effektive Lösung, deine Probleme so zu behandeln.

Dominik

Und würdest du sagen, das, was du da machst, das hast du jetzt gesagt, das ist irgendwie sehr speziell auf so eine Insel, das kannst du auch übertragen oder könnte man übertragen auf andere Wissenschaften und andere Anwendungsfälle, so ohne weiteres oder ist das so.

Gerrit

Also so klein ist die Insel nicht, das Problem gewöhnliche Differenzialgleichung oder retardierte Differentialgleichung und so weiter und so fort zu lösen, das ist jetzt, betrifft schon eine gewisse Menge, also nicht schon nicht wenig Leute.

Gerrit

Also ich, keine Ahnung, ich könnte jetzt, es ist schwer eine Zahl abzuschätzen, wie viele Wissenschaftler und andere Leute sich mit so einem Problem beschäftigen.

Gerrit

Wir stinken halt nicht an gegen die Leute, die Partielle Differenzialgleich machen.

Gerrit

Also es sind diese klassischen vektorisierbaren Fälle.

Gerrit

Was man so, wie wenn Leute Wärmeleitung simulieren oder irgendwie physikalische Verformung und solche Sachen, die machen alle Partielle Differenzialgleicher.

Gerrit

Ja, also die Insel ist nicht so klein, aber sie ist kleiner als vielleicht andere größere Inseln.

Gerrit

Was jetzt wahrscheinlich keine sensliche Aussage ist.

Jochen

Ja, also ich meine, gut, ich kenne jetzt vor allen Dingen halt den ganzen Data Science-Bereich, da auch das wissenschaftliche.

Jochen

Da gibt es halt mit Differenzialgleichungen hat man da eigentlich nie so wirklich zu tun, auch nicht mit symbolischen, da wird immer eher so, dann nimmt man halt, da packt man die große GPU aus und dann muss man damit das Problem halt tun.

Gerrit

Nee, aber das ist ja auch ein ganz anderer Ansatz.

Gerrit

Man denkt jetzt nicht, ich habe Daten und ich will sie verstehen.

Gerrit

Weil Simulation geht es darum, ich habe eine Idee, wie Sachen funktionieren.

Gerrit

Ich möchte jetzt mal gucken, was eigentlich passiert, wenn ich diese Idee in die Tat umsetze.

Gerrit

Ganz doof gesagt.

Gerrit

Ja, ich habe mein Modell und jetzt lasse ich es mal laufen.

Jochen

Ja, aber da würde mich eigentlich auch mal interessieren, wie ist das denn, wie kann man das denn dann verifizieren?

Jochen

Ich meine, woher weißt du, dass deine Simulation tatsächlich irgendwie das liefert, was du jetzt bekommen hättest, wenn du 500 Gläser mit Nährflüssigkeit irgendwie aufs ganze Sims

Gerrit

gestellt hätst.

Gerrit

Also ich meine, das ist eine große Frage.

Gerrit

Da gibt es natürlich, also das ist dann wirklich, dass man sagt, okay, wir machen jetzt mal den gleichen Fall und lassen es laufen und vergleichen das wirklich.

Gerrit

Jetzt mit der Nährflüssigkeit, ich habe jetzt erstmal die Frage auf einer ganz anderen Weise verstanden, die vielleicht auch interessant ist, nämlich, wie teste ich eigentlich solche Software?

Jochen

Ja, das ist natürlich.

Gerrit

Ich habe häufig sehr komplexe Systeme.

Gerrit

Ich kann die natürlich mit einer anderen Software laufen lassen, was ich auch nicht so möchte.

Gerrit

Und ja, dann theoretisch zu bestimmen, was da eigentlich rauskommt, das war auch sehr spaßig.

Gerrit

Insbesondere ein Fall, den ich jetzt noch nicht so angesprochen habe, sind dann stochastische Differenzialgleichen.

Gerrit

Das ist so, ja.

Gerrit

Wäre mir jetzt leicht, ich packe noch Zufall drauf.

Gerrit

Und dann muss man, ja, dann gibt es ja noch nicht mal eine richtige Lösung.

Gerrit

Also jede Lösung, die ich prinzipiell kriegen könnte, könnte, oder die ich sehe, könnte richtig sein, für den richtigen Zufall.

Gerrit

Ich kann nur sagen, okay, diese Lösung ist jetzt eher unwahrscheinlich oder diese Lösung ist eher wahrscheinlich, aber ich kann ja gar nicht mal sagen, das ist eine falsche Lösung anhand einer Lösung.

Dominik

Du müsstest ja vor allem erstmal die Verteilung kennen, deiner Zielfunktion, damit du weißt, ob das wahrscheinlich ist oder nicht.

Gerrit

Genau, ja, genau.

Gerrit

Das heißt, ich kann einfach nur, ich kann nicht mal eine Aussage über eine Lösung meiner Software machen, ich kann nur eine Aussage über ein Ensemble von Lösungen, also tausend Lösungen machen.

Gerrit

Und ja, das sind dann die sehr, sehr lang laufenden Tests, wo ich erstmal tausend Lösungen berechne, dann irgendwelche statistischen Verfahren darüber.

Dominik

Ja, aber ich finde das jetzt das Interessanteste, ne?

Dominik

Also jetzt so von meinem Gusto her, wenn jetzt du so eine Verteilungswolke irgendwo hast, die nähert sich ja dann oder verdichtet sich ja dann an den Stellen, wo dann doch die meisten Experimente irgendwo in derselben Richtung ausgehen.

Dominik

Und da hättest du, finde ich, so die höchste Treffgenauigkeit, als wenn du jetzt einfach so ein simuliertes Modell hast und sagst du, ach, da kommt jetzt.

Dominik

Also ich verstehe jetzt ohne Statistik, bei so Simulationen gar nicht, was dabei rauskommt, also wie die Validität einzuschätzen wäre.

Dominik

Wenn du jetzt sagst, du machst jetzt der Test dazu, dann würde ich das erstmal.

Gerrit

Sorry, ich will jetzt vom Softwaretest.

Dominik

Ja, ja, ja, klar.

Dominik

Aber ich meine, klar, aber auch da das hängt ja irgendwie zusammen.

Dominik

Also der Softwaretest, der muss ja zwar dann, klar, da muss das Programm funktionieren, weil sonst ist der Test ja Quatsch, aber der ist ja dann auch irgendwie die Basisvoraussetzung dafür, dass das Modell, was du dir ausgedacht hast, dann wenigstens gerade läuft.

Gerrit

Ich bin mir nicht sicher, ob ich richtig verstanden habe.

Gerrit

Also ja, natürlich muss das, also einmal muss das Modell die Realität, oder am Ende wollen wir, dass das Modell die Realität beschreibt, klar.

Gerrit

Aber die erste Schwierigkeit ist erstmal, ich habe jetzt irgendwas programmiert, was mir mein Modell löst, was behauptet.

Gerrit

Und die Frage ist, macht es wirklich die richtige Lösung?

Gerrit

Ja, ja.

Gerrit

Also einfach wirklich nur einen Softwaretest schreiben.

Gerrit

Also einfach nur zu gucken, ich stecke das rein, kommt das Richtige raus.

Jochen

Und das ist halt, wenn es stochastisch ist, ein bisschen blöd, weil dann kommt halt jedes Mal was anderes raus.

Gerrit

Das könnte alles richtig sein.

Gerrit

Also das ist so wie ein Zufallszahlen-Generator testen, geht je nachdem noch, weil ich einfach ganz schnelle Zufallszahlen ziehe und dann weiß ich genau, okay, die müssen halt vielleicht gleich verteilt sein oder so.

Gerrit

Aber bei dem Problem ist es dann eben nicht so einfach.

Gerrit

Also letzten Endes sind da ganze wissenschaftliche Arbeiten daraus entstanden, nur auf die Frage, wie, also aus der Frage heraus, wie teste ich das eigentlich richtig und aus so einer Differenz, wo wir feststellen, okay, die Theorie, die wir haben, zu dem, was da rauskommen muss, stimmt nicht mit dem überein, was da rauskommt.

Dominik

Entweder stimmt die Theorie nicht oder das Modell ist falsch.

Jochen

Ja, oder das ist wohl ein Fehler, ne?

Gerrit

Also am Ende haben wir festgestellt, also erstens ja, die Theorie könnten wir erweitern, das haben wir auch gemacht und da sind dann ganze Arbeiten und Paper draus entstanden, das war gut.

Gerrit

Also Software testen ist was Gutes, produziert wissenschaftliche Paper.

Gerrit

Die andere Sache ist, wir haben auf die Weise auch tatsächlich Fehler im veröffentlichten Algorithmus gefunden.

Gerrit

Wo irgendwie in der großen Tabelle diesen Algorithmus beschreibt, also solche Algorithmen, das wäre mit Tabellen beschrieben, ist leider so, dann irgendwo ein Vorzeichenfehler war.

Dominik

Oh, ja.

Gerrit

Den haben wir damit gefunden.

Gerrit

Also insofern, ja.

Gerrit

Und den hätten wir wahrscheinlich sonst auch nicht gefunden, wenn wir uns diese Mühe nicht gemacht hätten.

Gerrit

Und dann hätten wir jetzt wahrscheinlich eine ganze Menge fehlerhafter Rechnungen.

Und wüssten es nicht.

Wir auch.

Dominik

Ihr würdet einfach Münzen verkaufen, sich damit Geld verdienen und sich irgendwelchen großen Papern veröffentlichen.

Hallo, da wird nicht zujubeln und irgendwann würde sagen so, hm, ja.

Jochen

Oder halt auch eben nie.

Jochen

Und dass es halt einem noch viel mehr Sorgen machen sollte, dass es eben einfach gar nicht schief geht, sondern die Leute einfach.

Gerrit

Das passiert in der Wissenschaft leider häufig.

Jochen

Ich denke auch, dass es oft passiert, ja.

Dominik

Ja, die Erde ist vielleicht doch eine Scheibe.

Man weiß es nicht so genau.

Gerrit

Ja, nee, also ganz so schlimm ist es nicht, aber ja,

Dominik

naja, also so ein Paradigmenwechsel, bevor die mal passieren?

Dominik

Das muss ja so ein bisschen von Arbeit passieren.

Dominik

Man muss sich irgendwie aus dem Turm stellen und was runterschmeißen.

Jochen

Aber ihr verwendet auch ganz normal Pi-Test oder so zum Testen oder habt ihr da noch speziellere Kniffe, die man da benutzen muss, wenn man das irgendwie in den Griff kriegen will?

Gerrit

Also, nee, also ich meine erstmal, als ich angefangen habe, glaube ich, sogar noch mit Unitest gearbeitet.

Gerrit

Achso, ja, Schande über mein Haupt, ich weiß.

Dominik

Also, wenn es ja jetzt gerade irgendwie lustig über Tests nochmal einsteigen wollt, da können wir gleich gerne noch ein bisschen länger drüber reden, weil da sind noch einige Fragen zu eingetrudelt.

Dominik

Aber Entschuldigung, ich wollte jetzt nicht.

Gerrit

Das ist vielleicht auch ein ganz anderes Thema.

Gerrit

Ich glaube, die klassischen Softwaretest-Tools, das ist nicht so das Problem, die zu nutzen, wenn man sie nutzen kann.

Gerrit

Das Problem ist eher die Frage, ich habe eben so eine sowas wie eine stochastische Sache und kann nur eine Aussage über das Ensemble machen.

Gerrit

Wie mache ich das eigentlich?

Gerrit

Das ist dann eher eine wissenschaftliche Frage als eine Softwarefrage oder die Frage, die eine Softwarelösung zu finden.

Dominik

Ja, dann muss man Stichproben ziehen und dann musst du ja gucken, ob die Stichproben irgendwie der erwarteten Verteilung hergenommen muss, ob man wieder nimmt jeder Wahrscheinlichkeit irgendwie rausholen.

Gerrit

Ja, genau, aber das ist nicht einfach, je nachdem, was man hat.

Gerrit

Die andere Problematik, oder eine andere Beispielproblematik, wenn wir gerade dabei sind, ist sowas wie, ich habe ja gesagt, ich habe eine symbolische Eingabe, ich übersetze das in C-Code.

Gerrit

Was ist jetzt eigentlich der richtige C-Code?

Gerrit

Also ich kann ja nicht einfach sagen, okay, ich möchte genau diesen C-Code haben, der ist dann richtig, sondern ich könnte ja auch einfach mal, weiß ich nicht, A plus B oder B plus A ist in der Stelle gleich.

Gerrit

In allermeisten Fällen.

Gerrit

Wie entscheide ich, was da richtig ist?

Gerrit

Das kann ich eigentlich nur machen, indem ich es Ausrechnung wieder vergleiche.

Gerrit

An solchen Schmäßchen.

Dominik

Also das heißt also die Leine die Äquivalenz von deinen Experimenten ist schon fraglich dann.

Dominik

Also wenn du die Experimente durchführst, dass sie ja gleich durchgeführt worden sind.

Gerrit

Nee, ich bin ja nicht bei Experimenten, wir sind jetzt bei Simulation.

Dominik

Ist Simulation kein Experiment?

Dominik

Also okay, natürlich.

Dominik

Ja, okay, ja.

Gerrit

Das ist auch etwas, was ich gerade eben Experiment genannt habe oder als mathematisches Experiment beschrieben habe.

Gerrit

Ja, es könnte fraglich sein, aber es geht jetzt erst darum, macht meine Software das, was sie soll.

Gerrit

Also ich kann jetzt eben nicht hingehen und eine kleine Einheit von einem Code produzieren, also Codetoker oder wie die heißen, also einfach eine Übersetzung von Symbolen in Code, die ich zum Beispiel nutze, kann ich, ist es gar nicht so einfach, die zu testen, da ich eben keine ganz klare Aussage habe, was da rauskommen muss.

Gerrit

Da ich eben nicht weiß, in welcher Reihenfolge zum Beispiel sind jetzt diese fünf Summanden in einem, äh, einer Addition.

Gerrit

Da gibt es keine Vorschrift, was da richtig ist.

Gerrit

Und wenn ich, kann ich natürlich mich drüber hinwegsetzen und sagen, ich zerteile das jetzt komplett und mache da irgendwie einen Symbolbaum oder was auch immer, aber dann muss ich natürlich wieder zerlegen, ist auch nicht schön.

Gerrit

Also ein Problem mit der ganzen Software war, dass es eigentlich nicht sehr einfach zu testen war.

Okay.

Dominik

Und aber dafür habt ihr was veröffentlicht, wo du sagtest, hey, das ist so ein voll der Vortrag, das sollte man so tun.

Gerrit

Also nicht zum Testen?

Gerrit

Also ja doch, nee, also das habe gar nicht ich gemacht, das haben dann andere Leute darauf aufgebaut und haben wir haben, also die Geschichte ist eigentlich, wir haben dieses, ich habe das Problem entdeckt und dann haben wir uns irgendwann uns hingesetzt und einen Bachelorarbeit aufgesetzt zu machen lassen zu dem Thema, okay, ja, vermessen wir das doch mal bitte, verstehen wir das ein bisschen besser und hatte dann auch noch andere Anwendungen, nicht nur den Test, muss man dazu gestehen.

Gerrit

Und ja, das war, wir haben neue, da wurden neue Erkenntnisse gewonnen und veröffentlicht.

Gerrit

Aber das war gar nicht so, also das war nur etwas, was ich angestoßen habe.

Gerrit

Insofern kann ich da jetzt auch gar nicht so viel zu erzählen.

Dominik

Ja, klingt ja spannend, also dass man tatsächlich so echte Experimente irgendwie begleitet und simuliert mit Python oder halt ein bisschen C, aber halt, ne, dann so in die Zukunft damit ein bisschen gucken kann, was könnte denn dabei rauskommen oder welche Lösungen für wirklich Probleme.

Dominik

Also weiß nicht, ob das nur Medikamente angeht oder ne, kann man andere denken, genau.

Dominik

Da man damit bauen kann, das ist natürlich schon spannend.

Gerrit

Also dass es das ganze Feld, so dynamische Systeme vorhersagen, ist ja sehr vielfältig in Anwendung.

Gerrit

Also, was ich vorher gemacht habe, waren Probleme mit, oder eine Frage, mit der sich meine frühe Arbeitsgruppe beschäftigt hat, war, wie sagen wir epileptische Anfälle voraus, können wir das eventuell machen?

Gerrit

Oder wie sagen wir Bevölkerung, plötzlich Bevölkerungswachstums heraus?

Gerrit

Das Thema meiner meiner vorigen Forschung war, wie sagen wir extreme Ereignisse raus oder verstehen, wie passieren extreme Ereignisse.

Gerrit

Extreme Ereignisse kann dann sowas sein wie epileptischer Anfall, kann aber auch sowas sein wie Überpopulation, Arten sterben, Erdbeben, all solche verschiedenen Dinge.

Dominik

Also was war das Ergebnis?

Dominik

Gibt es so einen entscheidenden Punkt, den man irgendwie erreichen kann, der bestimmte Faktoren identifizierbar sind, die sagen so, hey, jetzt macht's gleich Peng?

Gerrit

Nee, so weit sind wir leider nicht gekommen.

Gerrit

Also das Ergebnis war dann sowas wie, wir können, wir haben einen neuen Mechanismus gefunden, wie solche Sachen entstehen können in der Dynamik eines Systems.

Gerrit

Den können wir in einigen Fällen hilfreich uns, das ein bisschen was vorherzusagen, aber insbesondere können dann die Leute, die ein konkretes System haben und mit dem konkreten System was vorhersagen, eventuell besser verstehen, wie sie das machen.

Okay.

Gerrit

Ist leider nicht sehr befriedigend, aber das ist eben Grundlagenforschung.

Dominik

Das ist Wissenschaft.

Jochen

Ich fürchte, das ist halt irgendwie so eine der blöden Eigenschaften, die da halt so dabei sind, dass das extrem seltene Geschichten halt, sondern schlecht Statistik zu machen kann, weil es einfach nicht so auftritt.

Jochen

Aber wenn die halt stark genug sind, dann haben sie halt einen großen Einfluss auf das, was passiert und dann ist halt blöd.

Gerrit

Also Statistik ist der eine Sache und die Fahrzeug können wir jetzt allein mit Statistik vorhersagen.

Gerrit

Wahrscheinlich nicht.

Gerrit

Wir müssen verstehen, was passiert da eigentlich.

Gerrit

Und wie kommt es eigentlich dazu?

Jochen

Und dann geht das überhaupt.

Jochen

Es kann ja auch sein, dass man das einfach gar nicht.

Und was ist wichtig?

Gerrit

Also, oder jetzt mal vielleicht auch nochmal ein Beispiel, wozu Simulationen gut sind.

Gerrit

Was jetzt immer wieder die Frage war, ein früher Kollege von mir, der hat bei der ersten, hat wahrscheinlich die erste Simulation geschrieben, die was macht, was aussieht wie ein epileptischer Anfall.

Gerrit

Ob es jetzt irgendwie wirklich das damit zu tun hat, muss man dann nochmal untersuchen.

Gerrit

Aber was nicht darauf basiert, dass wir an irgendeinem Kopf drehen und irgendeinen Parameter ändern, also irgendwelche Neurochemikalien oder so im Gehirn ändern, sondern wir können eine einfache Simulation machen, die macht einen epileptischen Anfall, ohne dass wir was ändern müssen.

Gerrit

Was dann einfach, okay, was bringt das Ganze jetzt?

Gerrit

Naja, die Leute, die ein paar Ebenen in der Anwendung höher sind, können jetzt hingehen und sagen, okay, wir haben uns bisher immer darauf gestützt, was ändert sich da chemikalisch und so weiter.

Gerrit

Könnte es vielleicht was anderes sein.

Gerrit

Könnte es vielleicht einfach sein, dass das Gehirn anders verknotet ist oder die Neuronen anders verbunden sind in Gehirn, die eptische Anfälle produzieren und das ist das Problem.

Gerrit

Und die Frage ist noch offen, aber solche Ansätze stößt man dann eventuell mit Simulationen hervor, dass man sagen kann.

Dominik

Ja, schön, wenn man das dann heilen kann, ne?

Dominik

Man dafür sorgt, dass man irgendwie die Menschen besser geht.

Gerrit

Genau, das ist natürlich das Fernziel, aber ja, leider ist es

Jochen

nicht so ganz einfach.

Dominik

Ja, also ich weiß halt, kann man aus diesem Elfenbeinturm, wenn ich das mal so nennen darf, irgendwie so runtersteigen, wieder auf die Straße und mit beiden Händen wieder so das ausschütten, was man da so fabriziert.

Gerrit

Ja, immer manchmal passiert das ja.

Gerrit

Ich meine, sonst hätten wir keine Computer.

Ja, genau.

Dominik

Also manchmal jemand so ein Magier irgendwo so einen Turm macht dann eine Bombe oder diese Kugel leuchtet, dann auf einmal der Turm fängt an zu leuchten und dann gucken an der, oh, was ist das denn?

Dominik

Und dann, ah, guck mal hier, ich habe was Schönes gefunden.

Jochen

Ich glaube, ich fürchte, das kann man nicht wirklich, weil ich fürchte, es ist bei Wissenschaft noch schlimmer als bei Firmen oder Startups.

Jochen

Also es ist ja auch schon irgendwie so, dass man das eigentlich nicht wirklich voraussagen kann, weil, naja, es hängt halt davon ab, wie sich die Zukunft entwickelt, die lässt sich schon mal nicht so gut voraussagen.

Jochen

Und dann sind so viele Faktoren dabei, die man nicht unter Kontrolle hat.

Jochen

Und bei Wissenschaft hast du jetzt, das ist ja noch übler.

Du weißt ja, also.

Dominik

Das ist alles Alchemie.

Jochen

Oder so ein bisschen Glück auch.

Jochen

Also ich meine, natürlich ist es so, du kannst kein Glück haben, wenn das nicht auch irgendwie funktioniert oder wenn du nicht das Richtige tust.

Jochen

Aber ob das, was du da pust, jetzt irgendwie eine sinnvolle, erfolgsversprechende Geschichte ist oder nicht, das hast du halt, würde ich sagen, zum großen Teil gar nicht unbedingt unter Kontrolle.

Gerrit

Das hat es.

Gerrit

Also andersrum, wenn wir es unter Kontrolle hätten, müssen wir es nicht machen.

Gerrit

Wissenschaft geht ja darum, dass wir neue Sachen herausfinden und dass wir die Frage beantworten, funktioniert diese Methode oder so?

Gerrit

Und wenn wir wissen, ob diese Methode funktioniert, müssen wir es nicht machen.

Jochen

Ja, ja, ja.

Jochen

Ich finde das immer wieder beeindruckend, wie man dann, also es ist ja schon so, das ist, es hat ja so ein leicht, also ich würde da leichter Defetismus verfallen, glaube ich.

Jochen

Man muss ja da sehr motiviert sein, das dann zu tun, weil man sich im Grunde ausrechnen kann, dass man wahrscheinlich Pech haben wird und das heißt, man gibt sich viel Mühe, aber es kommt nichts damit raus.

Jochen

Obwohl auf der anderen Seite, das, was man tut, macht natürlich auch Spaß.

Gerrit

Ja, aber ich meine, gut, es ist schon eine so dieses klassische Klischee, dass die Hauptsache, die man mit einer Promotion kriegt, ist eine riesengroße Enttäuschungsresistenz und das.

Was war das?

Jochen

Das ist, ich verwende Apple-Hardware und es kommuniziert untereinander und mein Telefon hat gerade meinem Computer gesagt, das war klingeln.

Jochen

Was manchmal gut ist, in diesem Fall war es nicht so toll.

Dominik

Manchmal kümmert sich auch noch vorher drum, dass sie das alles abstellen.

Jochen

Ja, diesmal habe ich es irgendwie verpennt.

Jochen

Ich glaube, ich mache das gerade mal.

Jochen

Man kann nämlich auch sagen.

Dominik

Die ganzen wissenschaftlichen Probleme, wir kennen die Antwort doch eigentlich schon alle, oder?

Jochen

Ja, kennen wir die.

42.

Achso, ja.

Jochen

Stimmt natürlich.

Jochen

Ja, aber das ist halt, es ist da so ein so ein frustrierendes Potenzial dabei, das glaube ich auch immer, wenn man, also wenn man guckt, was die Politik da auch mal machen möchte, die versucht das dann zu ignorieren, dann macht man so Forschungsprogramme.

Jochen

Ich habe da von allem gehört, dass da es gibt ein großes Forschungs- also man macht das dann so, man glaubt irgendwie, was war das?

Jochen

Man kann irgendwie Chips bauen, also normalerweise belichtet man irgendwie Chips sozusagen top-down irgendwie, man überlegt sich eine Architektur.

Jochen

Könnte man das nicht auch umgekehrt machen?

Jochen

Also man hat irgendwie so eine Lösung, irgendwie auch wieder, keine Ahnung, irgendeine Art mehr Flüssigkeit, ja, und dann sorgt man dafür, dass die richtigen Bedingungen existieren und dann entstehen da Transistoren oder was auch immer für Schalter man da braucht, gerade quasi dann so bottom-up automatisch.

Jochen

Das wäre ja voll gut, wäre viel billiger.

Jochen

Dann bräuchte man da nicht so super Ultra-Reinräume und diese ganzen teuren Gerätschaften.

Jochen

Und da hat man irgendwie, die Idee hört sich wirklich total super an.

Jochen

Und dann gab es irgendein großes Forschungsprojekt, das da wurde auch, glaube ich, 100 Millionen irgendwie Euro reingegangen.

Jochen

Und das Problem ist natürlich, wenn jetzt so viele Leute daran arbeiten, also das lief dann ganz lange.

Jochen

Und irgendwie musste immer noch einen Doktoranden armer, der musste dann geopfert werden, diesem Drachen, gesagt hat, der muss tatsächlich an diesem Problem noch arbeiten, damit man sagen kann, dass man an diesem Problem arbeitet.

Jochen

Aber in Wirklichkeit wussten alle schon seit einigen Jahren, das funktioniert aus prinzipiellen Gründen grundsätzlich nicht.

Jochen

Aber man kann ja auch nicht sagen, es funktioniert nicht, dann kriegt man kein Geld mehr, ist auch schlecht.

Jochen

Also haben halt die anderen inzwischen alle was anderes gemacht.

Eigentlich.

Gerrit

Ja, okay, das ist das große für

öffentliche Schreiben.

Gerrit

Einerseits ist auch das große Problem, dass man einfach nicht mal sagen kann, okay, wir haben herausgefunden, es funktioniert nicht und hier ist der Grund.

Dominik

Das ist manchmal ganz schön haarig.

Dominik

Also ich habe ja komme ja aus der VWL eigentlich und da waren dann so Experimente schon problematisch, weil dann hat man irgendwelche Modelle gebaut, die dann irgendwelche Prognosen gemacht haben und dann ging dann vor allen Dingen sowas wie der internationale Währungsfonds hin und hat dann diese Modelle ausprobiert mit irgendwelchen Entwicklungsländern, um zu gucken, klappt das mal?

Dominik

Und das hat dann ab und zu mal dazu geführt, dass dann irgendwie so in so einem Land das Gesundheitssystem dann zusammenbrach oder sowas.

Dominik

Und das ist dann vielleicht so ein Mittelgut und das war aber eigentlich das Modell hat dann eigentlich vorher gesagt, das hätte gut funktionieren sollen.

Dominik

Und die haben das ja alle so ein bisschen Jahre gerauft.

Dominik

Die wollten eigentlich auch, dass es dem Land eher gut geht, also das weiß nicht nur, irgendwie so Weltbankdruck oder so.

Dominik

Und haben dann gesagt, Mist, das haben wir denn jetzt ja falsch gemacht, haben sie beim nächsten Mal anders ausprobiert.

Dominik

Und dann, ja, das ist halt das Problem, wenn du halt so was ausprobierst auf Systemen, die auch heterogen sind und ein bisschen chaotisch reagieren und du weißt nicht genau, was muss denn da jetzt eigentlich genau tun?

Dominik

Und das ist schon, glaube ich, nicht so einfach.

Gerrit

Ja, und noch schon, was ist, wenn man das System selbst beeinflusst durch die Vorhersage?

Gerrit

Also das Klassische weiß ich, ich kann Aktienkurse vorhersagen und du gibt es immer irgendwelche Leute, die irgendeine neue Methode entwickeln, um Aktienkurse vorherzusagen.

Dominik

Du musst das nur gut verkaufen und die antetyglische Strategie fahren.

Gerrit

Ja, oder beziehungsweise der Problem ist, das ist, wenn sie die dann veröffentlichen, dann funktioniert es plötzlich nicht mehr.

Ja, genau, aber dann alle, die vorher sagen,

Dominik

das ist doch super, dann kannst du antetyklisch fahren, wenn denen du was raushaust.

Und du darfst es halt nicht veröffentlichen.

Jochen

Ja, das ist.

Ja, genau.

Dominik

Ich finde das halt sehr, sehr spannend, wenn man irgendwie so Sachen digitalisiert, welche Parameter man überhaupt nicht so Modelle einbauen müsste und wie man es schafft.

Dominik

So Reagenzglasbedingungen, selbst wenn es jetzt mal was nur in Anführungszeichen so ein Glas mit einer Kultur auf einem Fensterbrett in der Sonne ist.

Dominik

Hui.

Gerrit

Wobei, dann musst du sagen, also ich bin auch eher die, es gibt ja, also es gibt zwei Spezies der Modellierung oder Arten der Modellierung.

Gerrit

Der erste ist der Ansatz, wir wollen es wirklich möglichst exakt und so weiter hinbiegen, um wirklich die genau perfekte Vorhersage für dieses Glas auf der Fensterbank zu treffen.

Gerrit

Der andere Ansatz ist, okay, ausprobieren.

Gerrit

Wir können das eh nicht, sondern die Frage ist, okay, wir sehen dieses Phänomen oder sowas oder was sind die minimalen Sachen, die wir brauchen, um dieses Phänomen zu kriegen.

Gerrit

Also das, was ich eben beschrieben habe, was ist das minimale System, was uns sowas produziert, wie in einem epileptischen Anfall oder irgendwas, um daraus irgendwie zu verstehen, ja, was eigentlich die Zutaten ich brauche.

Gerrit

Und ich gehöre eher zu der letzten Spezies.

Gerrit

Ich denke, ja, man kriegt eher interessantere Erkenntnisse und es ist in vielen Fällen auch wahrscheinlich der gesündere Ansatz.

Jochen

Sozusagen, weil man da dann immer weiß, was man eigentlich getan hat, sozusagen.

Jochen

Und das bei Phänomenen, die man beobachtet, da sieht man halt nur, was man halt sieht, aber man weiß ja nicht.

Gerrit

Auf jeden Fall, man kann es auch im Zweifel einfach mal machen.

Gerrit

Man hat eben, also ich mache mir gar nicht die Illusion, das Gehirn komplett zu simulieren zu können.

Gerrit

Das kann ich nicht, das kann niemand.

Gerrit

Und es gibt ja jetzt gewisse Projekte, aber ja, ich mache mir diese Illusionen gar nicht, aber ich mache mir, eventuell kriege ich es hin, einen Teil davon mal ein Konzept zu verstehen, zu verstehen, welche Auswirkungen gewisse Strukturen haben.

Gerrit

Oder ja, das ist so die größte Hoffnung da.

Ja.

Jochen

Ja, aber wie ist das eigentlich mit dem, eben, wie ist das mit dem Wissenschaftsbetrieb und der Digitalisierung?

Jochen

Ist jetzt alles inzwischen irgendwie, ich meine, im Grunde sollte man ja annehmen, wenn das Steuergelder sind und eigentlich ja schon auch irgendwie so gemeinwohlmäßig ausgerichtet sein sollte oder allen zugänglich sein sollte, vielleicht zumindest die das bezahlt haben, dass dann halt irgendwie alle Forschungsergebnisse digital veröffentlicht werden und dass das halt irgendwie ja, keine Ahnung, eben, ich könnte mir das so vorstellen, dass halt die Wissenschaft so ein bisschen funktioniert wie so eine große freie Software-C

Jochen

ommunity oder so, aber nein, nein.

Jochen

Real existieren das so ein bisschen anders.

Gerrit

Also ich meine, man kann mittlerweile sagen, dass ein Großteil der wissenschaftlichen Software, zumindest in den Bereichen, die ich unterwegs bin, zum Glück frei ist.

Gerrit

Also auch frei verfügbar und die Leute sich das zunutze gemacht haben.

Gerrit

Der große Vorteil ist, kein Mensch hat irgendwas davon, ich habe nichts davon gehabt, meine Software zu verkaufen.

Gerrit

Ich habe was davon, dass ich ein Paper über meine Software schreibe, Leute das zitieren und falls ich es nicht schon mal gehört habe, Zitate sind die wissenschaftliche Währung und das nützt dann eventuell, um meine Karriere voranzubringen.

Gerrit

Das ist schon mal gut, aber auch da gibt es noch Bereiche, wo es Leute gibt, die ihre Software zwar gerne allen zur Verfügung stellen, aber schreibt mir bitte vor, eine E-Mail-Antitel die zugeschickt und zitiere mich bitte natürlich.

Gerrit

Also so komplett irre Sachen zum Teil, dass es einfach extrem schwierig ist, da an sinnvolle Sachen ranzukommen.

Gerrit

Und auch die Sachen, also ja, es ist digital, aber es ist vernünftig digital.

Gerrit

Und das ist ja nur die Software-Ebene.

Dominik

Du hast auch die ganzen Formulare dazu, das kommt einer oft dann noch dazu.

Gerrit

Ja, nee, also das, ich meine, Software ist die eine Sache.

Gerrit

Auf der Software-Ebene funktioniert funktionieren ja Teile der Wissenschaft vielleicht doch eher so wie eine große wissenschaftliche oder eine große freie Software-Community.

Gerrit

Ja, kann man so sagen.

Gerrit

Es ist vielleicht nicht sehr wohl organisiert und durchdacht und so weiter.

Gerrit

Und es wäre gut, wenn die Leute vielleicht mal ein bisschen Ahnung darauf hatten, wie man eigentlich Software baut.

Gerrit

Anstatt nur programmieren zu können, so ein bisschen.

Gerrit

Auf der anderen Seite, wenn man jetzt die eigentliche Wissenschaft, also die Wissenschaft, wenn man jetzt um die Erkenntnisse der Wissenschaft, der Wissenschaft redet, ist es immer noch ein sehr großes, ja, mein Sandförmchen, dein Sandförmchen und großer Neid, dass man versucht, die eigenen Erkenntnisse möglichst oder die eigenen Daten möglichst auszuschlachten und all solche Sachen.

Gerrit

Hängt so ein bisschen vom Feld ab.

Gerrit

Also die gerade die Mathematik, Informatik, Physik sind da so ein bisschen besser, aber jetzt bin ich in der Biologie so ein bisschen.

Gerrit

Und ja, da ist es immer noch.

Gerrit

Ja, da geht es ja auch wirklich darum, okay, ich habe diese Daten und wenn ich diese Daten habe, dann bin ich.

Gerrit

Ja, da muss ich damit alles Mögliche machen, möglichst auf einmal und das große eine Ding landen, sonst funktioniert das nicht.

Gerrit

Oder funktioniert es nicht für die Karriere?

Gerrit

Wahrscheinlich, also leider ist es wahrscheinlich auch richtig, dass es nur so geht.

Gerrit

Was natürlich nämlich ist.

Jochen

Ja, obwohl aus der Physik habe ich das auch manchmal gehört, dass da die Leute dann in Vorträgen sitzen und dann Fotos machen von einem Experiment gab, sodass sie dann die ersten Theoretiker sein konnten, die dann die Theorie dazu zu einem Experiment oder so irgendwie.

Ja, gut, aber dann machen sie ja zumindest nicht den Vortragenden den Streitig.

Gerrit

Ja, also natürlich, das gibt es in allen Bereichen wahrscheinlich irgendwo, das wird man nicht vermeiden können, aber es gibt da schon groß Unterschied.

Gerrit

Also gerade in der Physik und Mathematik gibt es ja diese Preprint-Kultur, also muss jetzt vielleicht für die Leute, die es nicht kennen, sagen, in der Wissenschaft zählen hauptsächlich sogenannte peer-reviewed-Vöffentlichungen, also Veröffentlichungen, die andere Wissenschaftler für einigermaßen gut befunden haben.

Gerrit

Das ist ein gewisser Prozess, dieser Prozess dauert in einigen Feldern oder Fächern und je nachdem, was man macht, bis zu Jahre.

Gerrit

Also vom Einreichen des fertigen Manuskripts bis zur Veröffentlichung.

Gerrit

Und in der Zeit kann natürlich alles Mögliche passieren und andere Leute können das gleiche erfinden und so weiter und so fort.

Gerrit

Und da gibt es zumindest gerade in Mathe, Physik, Informatik und so weiter, die Kultur, dass man sagt, okay, wir haben das Preprint-Server, das bekannteste ist das Archive, wo man sagt, okay, ich reiche das jetzt ein und gleichzeitig stelle ich das schon mal frei zur Verfügung.

Gerrit

Und das Journal, bei dem ich das einreiche, ist auch, kann damit leben, dass ich das frei zur Verfügung stelle und sagt mir, nee, das hast du schon veröffentlicht, machen wir nicht.

Gerrit

Und ja, das ist so langsam im Kommen, jetzt auch in der Biologie, das ist auch definitiv gut.

Gerrit

Und das führt natürlich auch so ein bisschen dazu, dass dieses, dass man die Sachen wirklich direkt nutzen kann.

Gerrit

Aber andererseits, in der Biologie dauert es halt auch einfach immer noch ewig, bevor man die Sachen überhaupt veröffentlicht.

Gerrit

Und ja, gut, wird egal, aber das ist jetzt vielleicht auch nicht so.

Dominik

Ja, du hast noch ein paar Chaptermarks, glaube ich, unterlassen.

Jochen

Ja, was kann man.

Dominik

Das war so eine spannende Geschichte.

Ja.

Dominik

Was fällt euch noch dazu ein?

Dominik

Habt ihr noch was zu dem Thema zu erzählen?

Gerrit

Ich kann noch was erzählen, natürlich.

Dominik

Ja, wenn du noch was auf

Jochen

das Publikation angeht.

Gerrit

Genau, wir haben, wir haben da haben wir noch gar nicht drüber gesprochen.

Gerrit

Wie gesagt, ich habe eine wissenschaftliche Software geschrieben, okay, soweit es wie furchtbar.

Gerrit

Das Hauptproblem ist natürlich jetzt, ich möchte auch weiterhin als Wissenschaftler bezahlt werden und das heißt, ich muss zitiert werden, wie ich gerade schon gesagt habe.

Gerrit

Und dazu muss ich das Ganze veröffentlichen.

Gerrit

Oder andersrum, Veröffentlichungen, Zitate sind Geld, also muss ich veröffentlichen.

Gerrit

Und ja, die meisten Veröffentlichungen in der Wissenschaft sind natürlich immer noch über eigentliche Forschung oder klassische Forschung.

Gerrit

Ich habe irgendwas herausgefunden, hier ist es, und nicht.

Gerrit

Ich habe hier eine neue Software geschrieben, die ich erlaube, das zu machen.

Gerrit

Das war's.

Gerrit

Und ja, diesen Prozess habe ich durchlaufen.

Gerrit

Ich habe ihn erfolgreich durchlaufen.

Gerrit

Ich habe es geschafft, dieses Paper zu veröffentlichen.

Gerrit

Es war aber zum Teil sehr interessant.

Gerrit

Ja, wo fange ich mal an?

Dominik

Höflich formuliert.

Gerrit

Ja, höflich formuliert, genau.

Gerrit

Also der erste Schritt ist erstmal, dass man ein Journal finden muss, das überhaupt sagt, okay, ich akzeptiere, wir akzeptieren solche Veröffentlichungen.

Gerrit

Wir finden das gut.

Gerrit

Der zweite Schritt ist dann zu sagen, oh, ein Journal, bei dem Journal auch, ja, etwas natürlich das Ganze zusammenzuschreiben.

Gerrit

Was übrigens, also für die Leute, jetzt wirklich für die Wissenschaftler und den Zuhörern bedeutend einfacher war, als klassische Forschungsarbeit zusammenzuschreiben.

Ukulele.

Gerrit

Und ja, dann gab es, wie gesagt, diesen Peer-Review-Prozess, das heißt auch dieses Manuskript ging an andere Forscher, die dann sagen sollten, ist das schön oder nicht, oder gut oder nicht.

Gerrit

Und da hat dann erstmal einer der Reviewer, die nebenbei anonym sind, also ich weiß nicht, wer es war, gesagt: Ja, das ist ja alles schön und gut, das ist auch besonders interessant für diese spezifische wissenschaftliche Community.

Gerrit

Aber das ist ja so irgendwie eigentlich kein richtiges Paper.

Gerrit

Also lehne ich es ab.

Gerrit

Obwohl das Journal sagt, genau, solche Dinge würden wir auch gerne haben.

Gerrit

Und ja, ich weiß nicht genau, was da schief gelaufen ist, ob das Journal dem Reviewer nicht gesagt hat, okay, guck mal, das ist okay, oder ob der Reviewer es nicht verstanden hat.

Gerrit

Oder ja, es war auf jeden Fall ganz komisch, also am Ende bin ich hingegangen und hab, also man sagt dann natürlich nicht, okay, ich akzeptiere das, ich bin abgelehnt worden, ich gehe woanders hin oder so.

Gerrit

Sondern man kann dann erstmal das Ganze erwidern und sagen, ja, du sagst, mein Paper ist doof, aber ich sage, es ist gut, weil.

Gerrit

Und ja, mein Argument bestand dann daraus, dieses Urteil von diesem Reviewer, der halt sagt, ja, es ist relevant für die Community, neben die Kriterien vom Journal zu stellen, dass gesagt hat, ja, wir akzeptieren solche Paper wenn?

Gerrit

Und dann kam im Prinzip, also fast genau das Gleiche, was der Reviewer dann gesagt hat.

Und ja.

Gerrit

Und am Ende hat es dann auch ohne große Probleme geklappt, aber es war irgendwie schon lustig.

Gerrit

Und dann kommt das nächste Problem, also wenn man das alles geschafft hat, also wenn quasi die Wissenschaftler sagen, das ist okay, dann muss das noch in eine druckbare Form gebracht werden.

Gerrit

Was sich jetzt erstmal ein bisschen albern anhört, denn ja gut, wir sind jetzt hier in der Physik, Mathematik und ähnlich, da sprechen alle Leute Latech und können in der Regel selbst sehr gute Sachen produzieren, die man auch drucken kann.

Gerrit

Aber ja, einige,

Jochen

kurze kurze Abschweifung, ich glaube, für die für diese Physics Review Letters oder so, das ist irgendwie ganz wichtig in der Physik.

Jochen

Da gibt es ein Word-Template, das man benutzen muss, die.

Nein, ziemlich sicher.

Gerrit

Also für Physical Review Letters kann man definitiv auch technisch reichen.

Gerrit

Und auch, also es geht mittlerweile, ist es schon, es ist sehr weit verbreitet, man kann Late nicht einreichen.

Gerrit

Die Frage ist halt, wird es eins zu eins verwendet?

Gerrit

Also das eine Reichen ist die eine Geschichte, die andere Sache ist, was macht das Journal dann, was machen am Ende die Schriftsetzer damit?

Gerrit

Sie könnten natürlich, also im Prinzip könnte man eigentlich hinsehen, wir haben einen Standardstil und den wenden wir einfach an und dann brauchen wir gar keine Schriftsetzer mehr.

Gerrit

Das ist aber nicht der Fall.

Gerrit

In den meisten Journalen, zumindest in meinem Feld.

Gerrit

Und das heißt, irgendein Schriftsetzer hatte dann zum ersten Mal in seinem Leben Computercode vor sich und musste den setzen.

Diese blöden tabulatorischen Einrückungen, das sieht aber doof aus.

Gerrit

Ja, also das würde ja noch gehen.

Gerrit

Also, ja, das wäre auch ein Problem, aber also ja, der Code war in verschiedenen Einrückungsebenen.

Gerrit

Unterschiedliche Code-Blöcke waren in unterschiedlichen Einrückungsebenen, ja, das war auch ein Problem, aber das war nur der Anfang.

Gerrit

Das hätte man noch über, oder darüber hätte man noch hinwegsehen können.

Gerrit

Da gab es auch zum Beispiel, also was nach so drei Iterationen, also ich habe das Resultat der Schriftsetzer bekommen, ich habe gesagt, nee, das geht so nicht, die haben was Neu versucht, ich habe es bekommen, ich habe gesagt, nee, das geht so nicht und so.

Gerrit

Nach drei Iterationen at ich ungefähr raus, was da eigentlich vor sich geht.

Gerrit

Und zwar haben die versucht, meinen Code wie Formeln zu interpretieren und den nach Formelregeln gesetzt.

Gerrit

Und Formel gibt es halt zum Beispiel solche, also für den Formelsatz gab es die Regel, wenn die erste, die innerste Klammer, die man macht, ist rund.

Gerrit

Die nächste Klammer ist eckig und danach kommt geschweift.

Das haben die auch radikal auf den Code.

Gerrit

Ja, das ist ein Formelsatz, okay, kann man drüber schreiten.

Gerrit

Das haben die aber radikal auf den Code angewendet.

Tja.

Gerrit

Und wenn dann, dann steht halt Sinus eckige Klammer auf, F von I, eckige Klammer zu.

Ja, das

Jochen

wäre jetzt, das wäre jetzt natürlich dann auch wieder irgendwie eine Anwendung für Codegolf, ob man das dann so transformieren könnte, dass es irgendwie, am Schluss hat man dann halt noch so ein kleines Codegolf-Ding, dass das eine wieder in die andere Form übersetzt und dass es halt dann irgendwie ausführbar wird.

Gerrit

Oh, jetzt, ich mache eine Exkursion, ist es, glaube ich, okay.

Gerrit

Das war auch, das war jetzt nicht Codegolf, aber so eine Programmieraufgabe.

Gerrit

Das war, ich versuche es jetzt gerade aus dem Gedächtnis zu reproduzieren, sagen wir so wie A, Klammer auf, B plus C gleich AB plus B C.

Gerrit

Also das Assoziativgesetz.

Gerrit

Und zwar hingeschrieben, so wie man es auf Papier schreiben würde.

Gerrit

Das heißt, ohne Mahlzeichen.

Gerrit

Also man hat jetzt diesen Code, das könnte man in Python machen, und die Aufgabe ist jetzt davor etwas zu machen, das wahr ergibt.

Jochen

Okay.

Gerrit

Und man darf, ja, und ich glaube mit der Bedingung, dass man A und B nicht einfach durch Nullen ersetzen darf oder so.

Gerrit

Und ja, also mein Ansatz dafür, es war leider nicht der schnellste oder der kürzeste, war, dass man sagt, okay, wir machen erstmal A, B und C zu Symbolen, dann funktioniert schon mal ein symbolisches Rechnen, also mit Symphy.

Gerrit

Und dann überschreiben wir noch VA oder fügen wir A ein Call-Funktion hinzu, die Call-Methode VA und sagen halt, dass sie das macht, was dann rechnisch rauskommen müsste.

Gerrit

Das heißt, dieses A, Klammer auf B plus C würde wie ein Funktionsaufruf ähnlich interpretiert werden.

Gerrit

Und dann funktioniert das.

Gerrit

Was auch eine sehr, sehr schöne Sache in Python ist, wenn man das einfach mal weiß, dass man einfach alle Operatoren irgendwie beliebig definieren kann, wenn man möchte.

Gerrit

Und das auch für sehr viele Sachen nutzen kann.

Ja.

Gerrit

Und die Fall eben, um die Slayse zu lösen.

Dominik

Plus mit OR überschreiben oder sowas, hast du auch ein True mit einem Bool drauf wirfst.

Dominik

Wenn du das Pluszeichen mit einem OR überschreibst oder sowas, also dann könnte das eigentlich funktionieren.

Gerrit

Ja.

Gerrit

Ich glaube, es musste vereinigen, man durfte irgendwie A, B und C nicht wahrscheinlich.

Gerrit

Ich müsste es nochmal raussuchen, was genau die.

Ja, deswegen

Dominik

das Plus mit dem Boolian draufwerfen.

Dominik

Stimmt das schon.

Ja.

Gerrit

Ja, gut.

Gerrit

Nee, also ich hatte dann sehr viel Spaß mit den Schriftsetzern eben, um.

Dominik

Ja, das war auf jeden Fall schön.

Dominik

An die Klammern anpassen, einrückend eben wegen entfernen.

Ja, genau, also.

Gerrit

Ich habe auch irgendwie den Unterstrich per Hand gezeichnet, das heißt, wenn man den Code kopiert hat, war der Unterstrich plötzlich weg.

Jochen

Das war innerhalb von dem PDF dann oder nicht mehr Text.

Gerrit

Genau, also es war Text und anstatt des Unterstrichs, der auch irgendwie immer unterschiedlich lang war, war da halt ein Leerzeichen und da war eine Linie.

Gerrit

Also so per Hand.

Reingezeichen.

Wird ein Zeichenobjekt.

Gerrit

Ja, das heißt, aber wenn man den Text kopiert hat, war das halt nicht da.

Dominik

Da hat jemand die Taste auf der Tastatur nicht gefunden.

Gerrit

Da wurden die auch schön typografische Anführungszeichen im Code.

Jochen

Ja, sieht einfach viel besser aus.

Gerrit

Ja, es sieht tatsächlich viel besser aus, es funktioniert leider halt auch nicht.

Gerrit

Also gut, da kann ich jetzt.

Jochen

Ja, aber das ist, ich meine, das ist halt, äh, gut, das ist wahrscheinlich eben nach Community so unterschiedlich, weil jetzt so was in der Informatik oder so, da Pseudocode wird ja schon oft in Papers auch reingeschrieben, ne?

Aber.

Gerrit

Naja, ich war halt leider, das war, was heißt leider?

Ich meine, es war ja nicht.

Gerrit

Es gab Sinn, dass ich mich an eine Community gewandt habe, die das nicht macht.

Gerrit

Und die haben, keine Ahnung, die haben irgendwie so ein solches Paper pro Jahr.

Gerrit

Und ja, das ist nicht viel.

Jochen

Ja.

Jochen

Naja, aber das ist, also ich weiß nicht, diese ganze Publikationspraxis, dass man halt Dinge halt nur publizieren.

Jochen

Oder ich meine, in Informatik ist es halt auch so, dass oder ich meine, es gibt Ausnahmen, aber überwiegend zu der Zeit, wo ich viel Papers gelesen habe, war es halt so, dass die Leute, naja, also dass man eigentlich nur mathematische Sachen veröffentlichen konnte.

Jochen

Also Code und so eigentlich eher nicht.

Jochen

Man kommt an den Code auf Anfrage dann immer ran, wenn man dann die Leute anschreibt.

Jochen

Aber es ist halt nicht Teil der Veröffentlichung.

Jochen

Und dann war halt, also ich meine, es ist führt halt dann auch so ein bisschen dazu, quasi, dass man, da das eh niemand, ich meine, an dem Paper, ob das jetzt stimmt oder nicht, kann man den Paper halt nicht mehr ansehen.

Jochen

Also wenn nur das überprüft, dann weiß man überhaupt nicht, ob das jetzt funktioniert oder nicht.

Jochen

Und wir haben dann halt da auch teilweise versucht, Sachen halt so zu reproduzieren.

Jochen

Und die Quote der Sachen, die so wirklich überhaupt gar nicht, also manchmal kann man ja sonst auch vielleicht auch Sachen nicht richtig reproduzieren, wenn man es nicht verstanden hat oder selber zu blöd ist, es hinzukriegen oder so.

Jochen

Aber manchmal ist es relativ offensichtlich, dass das nie funktioniert haben kann.

Jochen

Und die Quote von den Sachen war recht hoch.

Jochen

Also das war schon erschreckend.

Jochen

Und dann denkt man sich so schon, okay, und das waren alles ordentlich peer-reviewed-Sachen, die durchgegangen sind, die irgendwo veröffentlicht wurden und so.

Jochen

Also ja.

Gerrit

Ja.

Gerrit

Aber da muss man sagen, die Informatik hat sich noch gut, wenn man einfach so sagt, ich habe hier das.

Gerrit

Man könnte zumindest mal hingehen und diesen Standard Einführung, es gibt ja auch Tendenzen in die Richtung zum Glück, dass man sagt, okay, hier ist jetzt bitte die Software, die ein Programm, was das macht.

Gerrit

Und wenn ich das ausführe, dann kann ich das so schön.

Dann kommt das Programm raus, ja.

Gerrit

Und das Programm ist verständlich, dann kommt das raus.

Gerrit

Mit anderen experimentellen Sachen geht das nicht.

Gerrit

Du kannst halt nicht eben nicht einfach mal ein Jahr ins Labor setzen, da rumpipitieren und irgendwelche Bakterien wachsen lassen und gucken, ob das gleich rauskommt.

Gerrit

Also kann man schon.

Gerrit

Das macht normal deutlich schwieriger.

Stimmt, ja, stimmt.

Jochen

Bei anderen ist es noch viel übler.

Dominik

Ja, oder hat er O.

Dominik

Das war jetzt das Land.

Dominik

Du sagst hier so, hm, was machen wir jetzt?

Jochen

Wie viele Länder haben wir denn noch?

Jochen

Wir haben noch nie etwas von uns gehört unter unseren bisherigen Ergebnissen.

Dominik

Wir lassen das Modell einfach nochmal rechnen.

Dominik

Ja, dann haben wir das Programm eingeführt.

Das musste man also machen.

Dominik

Sie haben da tatsächlich das Modell nicht geändert, Sie haben dann davon überzeugt, das Modell war richtig.

Dominik

Und die Umstände waren, weil dann doch zwei oder drei anderen probiert, hat er auch nicht funktioniert.

Dominik

Also ja, da war ein bisschen Resistenzgun, genau, gegen gute.

Jochen

Ja, das ist halt so, wenn man einmal weiß, dass man richtig liegt.

Jochen

Ich meine, dann muss man einfach nur das häufig genug probieren und man wird es schon funktionieren.

Jochen

So funktioniert das doch, oder?

Dominik

Ja, ja, hier SAP, ja.

Dominik

SAP war das Structural Adjustment Program.

Dominik

Tja, ja, ja.

Ja.

Jochen

Aber sozusagen, also ich weiß nicht, wie arbeitest du üblicherweise?

Jochen

Also in Notebooks oder eher weil das.

Gerrit

Ich versuche mir mittlerweile so ein bisschen anzugewöhnt in Notebooks zu arbeiten, einfach weil es gerade für, wenn man mit Plots zusammenarbeitet, ist

Jochen

halt irgendwie einfach, ja.

Gerrit

Ganz praktisch ist.

Gerrit

Also muss dazu sagen, ich komme ursprünglich, ich habe sehr früh genug Plot gelernt und das auch, was jetzt ein Plotting-Programm ist, was nichts mit Python zu tun hat, weil es eine eigene Programmiersprache ist.

Gerrit

Und damit bin ich damit sehr zufrieden gewesen und beziehungsweise bin auch in der Lage gewesen, alles zu machen.

Gerrit

Ich kannte davon alle Kniffe und habe mich deswegen sehr lange geweigert, auf Python-Plots umzustellen, was natürlich gewisse Vorteile hat, da man eben nicht erstmal die Programmiersprache wechseln muss, um was zu plotten und nicht erstmal ein Interface schreiben muss und so weiter und so fort.

Gerrit

Insofern hink ich da so ein bisschen hinterher, denke ich.

Gerrit

Aber mittlerweile, ja, ist mein, also ich schreibe die meisten oder Sachen, die ich mehrfach verwende, definitiv ganz normal mit meiner Entwicklungsumgebung, die da Unix heißt.

Gerrit

Also Texteditor und Konsole und was auch immer.

Dominik

Genau, was für ein Editor nutzt du, da was mal unsere.

Gerrit

Ich nutze NeoWim.

Dominik

Ah, ja, noch ein Wimmer, einen Jochenwimmer auch immer rum.

Und ja.

Gerrit

Und dann, wenn die Sachen einigermaßen stehen und es wirklich nur darum geht, entweder schöne Plots zu produzieren oder rumzuspielen in dem, was man jetzt an Simulationen geschrieben hat, dann wechsle ich mittlerweile dann auch doch mal ins Notebook.

Gerrit

Andererseits, also wenn es jetzt wirklich darum geht, Software zu schreiben, die andere nutzen sollen, findet das immer noch.

Gerrit

Das heißt, es findet das nicht im Notebook statt, aber dafür ist es, glaube ich, auch nicht gemacht.

Jochen

Ja, ja, das ist auch etwas, was man jetzt immer zunehmend hört, dass Leute das halt benutzen.

Jochen

Und ja, ich finde es eigentlich relativ einleuchtend, dass das jetzt sich so durchsetzt.

Gerrit

Was ich halt auch schade finde, ist, dass es irgendwie noch immer keine so richtig schöne, schön bedienbare oder intuitive Plot-Umgebung irgendwie überhaupt gibt.

Dominik

Also es gibt ja so meist nicht so ein paar, die hast du bestimmt schon alle ausprobiert.

Dominik

Also Matplot, du hast ja sehr schon gesagt, alter Ihr oder sowas.

Mal reingeschaut für Python.

Dominik

Ich glaube, dass es für Scientific-Sachen gar nicht so verkehrt, gerade für so statistische Plotting nochmal.

Dominik

Aber ich habe selber auch noch nicht so viel bedruckt.

Gerrit

Ja, gut, vielleicht muss ich da auch nochmal reingucken.

Gerrit

Also mich stört halt noch so dieses, ich glaube, es wurde mal Plotting-by-Side-Effekt genannt von Matplotlib.

Jochen

Ja, das ist.

Gerrit

Also wahrscheinlich, keine Ahnung, vielleicht gibt es mittlerweile, aber ich meine, ich habe noch nichts davon gehört, dass irgendwas eben das ganze Repertoire mitbringt, was man eben auch braucht.

Gerrit

Ich möchte halt, das Hauptproblem ist, wenn ich jetzt irgendein Plotting-Sprache lerne oder irgendein Plotting-Interface lerne oder was auch immer, möchte ich, dass es wirklich alles kann.

Gerrit

Irgendwann werde ich dazu kommen, dass ich das brauche, dass ich dieses Detail einstellen muss und wenn ich das nicht kann.

Plotly Express, das ist, glaube ich, noch ganz nett.

Gerrit

Und das heißt, das ist so ein bisschen auch ein Problem.

Gerrit

Natürlich, normalerweise kann man irgendwie ein kleines Tool schreiben und dann wird das immer größer und so weiter, aber gerade bei Plot-Sachen, man muss eigentlich schon mit etwas anfangen, was fast alles kann, bevor man irgendwie eine Chance hat, was anderes sich durchzusetzen.

Jochen

Ja, es gibt da, ich weiß nicht, inwiefern Gnuplot das auch übernommen hat.

Jochen

Es gab ja dieses sehr einflussreiche Wurf, obwohl das ist, glaube ich, gar nicht so furchtbar alt.

Jochen

Grammar of Graphics irgendwie.

Jochen

Und unter R hat man ja mit ggplot 2 irgendwie da so eine Umsetzung von im Grunde.

Jochen

Und das ist eigentlich ja schon sehr nett, aber ich fürchte auch, in Python gibt es da nichts, was irgendwie es gibt irgendwie Adaptionen davon in Python, aber ob das jetzt wirklich genauso gut ist, weiß ich auch nicht.

Jochen

Und naja, es ist immer noch aktiv irgendwie unter Entwicklung.

Jochen

Ach, ich meine, so furchtbar schlecht ist Matplottip auch nicht.

Gerrit

Nee, nö, es ist irgendwie, ich möchte mich ja nicht sagen, ich möchte jetzt einfach mal eine Parabel plotten.

Gerrit

Und jetzt, ja, und in sowas wie Gnuplot, was eine rein plot-orientierte Programmiersprache ist, ist das eine Zeile.

Gerrit

Und ja, in Matplot muss ich, ich weiß gar nicht, was ich, wie dich das am schnellsten hinbekommen würde.

Dotplot.

Dominik

Ja, der müssen wir schon ein bisschen rumbasteln, glaube ich, aber wenn du es einmal definiert hast oder so.

Gerrit

Ich glaube, wahrscheinlich, wenn mir irgendjemand einfach für fünf Jahre Geld geben sollte oder so, würde ich mich daran setzen, dass ein komplett neuer Leibnis.

Cool.

Dominik

Ja, wir haben noch den Lieblingspick natürlich, den Pick der Folge oder sowas.

Dominik

Was wäre denn deine Wahl, dein bester Pick als beißen Modul?

Gerrit

Ich glaube, eigene Modul sind wahrscheinlich ausgeschlossen.

Dominik

Dein eigenes Modul da ein bisschen klar.

Gerrit

Nee.

Dominik

Du musst das aber kurz erzählen, was ist denn dein eigenes Modul im Modul?

Nee, nee, nee, mach ich nicht.

Dominik

Dann finden wir es in den Schiffspieler.

Dominik

Ich habe ja auch schon

sowieso nicht geredet.

Gerrit

Ja, ich glaube also, das Lieblingsmodul ist wahrscheinlich immer noch NumPy, weil es einfach enorm mächtig die Sachen bringt, die weil gerade, ja, im Rechen von großen Datenmengen und auch ansatzweise, also nicht mal sehr großen Datenmengen, aber auch kleineren Datenmengen Dinge bringt, die Standard Python nicht hat und das, ja, ich kenne mir, glaube ich, kaum, es gibt sehr wenige Fälle, wo ich es nicht importiere.

Dominik

Und was wäre der ein Pick der Woche?

Dominik

Ist das auch ein Ampai?

Gerrit

Was ist der Pick der Woche?

Jochen

Ich weiß es auch nicht.

Dominik

Ja, ja, fast das Pik.

Dominik

Ja, aber ich finde, wir so eine kleine Kategorie einführen, dass Pick der Folge

Jochen

oder sowas.

Jochen

Pick der Folge, ja.

Gerrit

Also was macht es für mich zum Pick der Folge?

Gerrit

Das ist das, was ich diese Woche genutzt habe oder was ich diese Woche neu gelernt habe.

Jochen

Ja, oder vielleicht irgendwas Aktuelles.

Jochen

Das wäre eigentlich was, was in letzter Zeit als cool aufgefallen ist.

Dominik

Muss ich gar nicht so aktuell kann noch was ganz Altes sein, einfach warst du nochmal so.

Gerrit

Irgendwas Neues, aber.

Dominik

Was soll das der Standardtipp sein?

Also.

Gerrit

Ihr stellt Fragen.

Dominik

Deshalb kann ich doch schon mal überlegen.

Jochen

Jaja, ich habe nämlich auch noch nicht drauf gedacht.

Gerrit

Also, was ich neulich zum ersten Mal verwendet habe, was ich und was ich dann wieder nicht verwendet habe, weil es mich dann doch nicht glücklich gemacht hat, war NameTuple.

Gerrit

Ich habe aber gehört, es gibt jetzt Data Classes und muss mich dazu unbedingt einlesen.

Ja.

Kann wenig dazu sagen, aber es ist wahrscheinlich genau das, was ich von.

Jochen

Ja, beziehungsweise es gibt halt für ältere Python-Versionen auch ein Modul, das man einfach so installieren kann.

Jochen

Also es ist jetzt natürlich in der Standardbibliothek mit drin oder beziehungsweise in Python selber, aber das Ding heißt Atis oder so.

Jochen

Und das kann sogar noch deutlich mehr als die Data Classes.

Jochen

Aber ich glaube auch, dass das Data-Classes, da gab es auch die letzten Py-DDF-Treffen einen Talk zu, wo halt auch von der Geschwindigkeit wurde gesagt, ah ja, das ist halt alles deutlich besser als NameTuple und so.

Jochen

Im Grunde gibt es keinen wirklich tollen Gründen mehr, außer man braucht jetzt die Indizierbarkeit oder so, noch NameToppel zu verwenden, weil man das mit Data Classes oder Adresse halt deutlich besser hinkriegt.

Jochen

Ja, das ist auf jeden Fall eine interessante Geschichte.

Dominik

Und dein Weg auch um.

Jochen

Ja, ich würde tatsächlich, also was ich jetzt in letzter Zeit nochmal angeguckt habe aus unterschiedlichen Gründen und dann doch wieder gar nicht so schlecht fand, ist Django Guardian.

Jochen

Ist halt Wegentwicklung was völlig anderes.

Das kann ich mitreden.

Jochen

Also da geht es einfach darum, dass man halt häufig das Problem hat, dass man Berechtigungen verwalten möchte auf bestimmte Zeilen in der Datenbank und auf Tabellenebene gibt, ist es in Django schon eingebaut, dass man da halt Berechtigungen vergeben kann und dann halt auch diese Berechtigung benutzen kann, um irgendwie Zugriff darauf zu regeln, aber für Objekte, Einzelobjekte oder Zeilen geht das halt nicht.

Jochen

Und Django Guardian erweitert halt das Django Permissions Modell darum, dass das halt dann doch geht, indem da zwei zusätzliche Tabellen eingeführt werden, dass der Ramm sieht dann relativ wüst aus, wenn man das macht, aber es ist, also man denkt zuerst, das kann nicht gehen oder es ist halt furchtbar, aber nee, es ist, es funktioniert tatsächlich.

Jochen

Und zwar sieht es ziemlich gut aus.

Jochen

Und ja, genau, also wenn man dieses Problem hat, sollte man sich vielleicht das mal genauer angucken, weil das sieht doch nach einer halbwegs vernünftigen Lösung aus.

Dominik

Cool, kann man mit der Permission in dem Web-Tool endlich lösen, dass irgendwie.

Dominik

Jeder darf zureffen, was er will.

Dominik

Ja, ich picke Bendit.

Dominik

Das habe ich irgendwie zwischendurch entdeckt, das ist so ein Anfänger, glaube ich, Security-Hinweis, was so alles sicherheitsrelevant sein könnte in einem Code, den man in so einem Python geschrieben hat.

Das ist, glaube ich, ein Nachbarn.

Gerrit

Da habe ich noch eine Sache, die mich überhaupt nicht interessiert.

Dominik

Nicht ganz viel zu gemacht.

Dominik

Das ist auch nicht so, glaube ich, so ganz tief gehen, aber so für die ersten Sachen, dass man so ein bisschen was versteht, was man da tut.

Dominik

Fand ich das ganz spannend.

Erstmal so reinzugucken.

Ja.

Ja, cool.

Jochen

Ich weiß nicht.

Jochen

Haben wir noch irgendwas?

Dominik

Ja, das Wissenschaftler muss ja auch nicht, oder?

Dominik

Es ist ein bisschen einem geschlossen.

Ich kann noch was erzählen.

Ich kann auch noch was erzählen.

Gerrit

Also ich möchte, wahrscheinlich, wenn ihr mich lasst, rede ich einfach fünf Stunden lang am Schluss.

Jochen

Das ist echt nicht schlecht.

Gerrit

Aber vielleicht noch eine lustige Sache zum Thema, was kann man alles.

Gerrit

Ich glaube, ich habe mein Mikrofon verstellt.

Gerrit

Sorry.

Gerrit

Kann das sein, dass ich irgendwo lauter bin oder so?

Gerrit

Okay, gut.

Sieht gut aus.

Genau.

Gerrit

Was ich auch noch gemacht habe, was vielleicht so, weil es jetzt furchtbar schwer zu erklären sein wird, ist, ich habe mich ja auch mit der Frage beschäftigt, also wir bauen Ökosystem-Modelle, habe ich ja schon geredet.

Gerrit

Und irgendwann bin ich auf die Frage gekommen, wie macht man das eigentlich richtig, beziehungsweise wir sind auf ein Problem gestoßen mit einem Modell, das, wenn ich jetzt, ich habe meine Spezies, die da irgendwas machen, also von Tieren oder Bakterien oder was auch immer.

Gerrit

Und es kann jetzt passieren, also nehmen wir mal an, wir haben Elefanten und Giraffen und was auch immer, weil es einfacher vorzustellen ist.

Gerrit

Und jetzt, mein Modell sagt immer, eine Spezies ist eine Variable, also die Menge allen Individuen einer Spezies.

Gerrit

Und darauf vorher brauche ich ein ganzes Modell auf und einfach weil ich diese Verein, die Vereinfachung, die ich mache, dass ich sage, alle diese, alle Elefanten sind gleich, alle Giraffen sind gleich, was auch immer.

Gerrit

Und ja, eine Sache, die wir dann festgestellt haben, ist, dass gewisse Modelle, die Eigenschaften haben, dass ich jetzt irgendwie aus Versehen ist, nicht hinkriege, alle Elefanten korrekt in einer Spezies zuzuordnen.

Gerrit

Das war angenommen, die Hälfte davon sind blau und rot angemalt.

Dominik

Nashörner.

Gerrit

Ja, nee, also Nashörner auch, aber angenommen, es sind wirklich alles Elefanten.

Gerrit

Sie haben genau die gleichen Eigenschaften, es ist nur die Hälfte von ihnen sind halt rot.

Gerrit

Oder rosa.

Gerrit

Nehmen wir rosa Elefanten.

Gerrit

Ist mal gut über rosa Elefanten zu reden.

Gerrit

Und dann haben wir festgestellt, dass gewisse Modelle dann andere Ergebnisse produzieren.

Wenn wir das machen.

Gerrit

Also wenn wir irgendwie eine Spezies nehmen und die aufteilen künstlich.

Gerrit

Was nicht gut ist, denn ich möchte natürlich, dass ein Modell, wenn ich die dasselbe Situation zweimal beschreibe, dann soll auch du nicht dasselbe rauskommen.

Gerrit

Und okay, was hat das jetzt mit Python zu tun?

Gerrit

Ich bin dann irgendwann hingeschrieben gegangen und habe, wir haben festgestellt, wir haben dieses Problem, jetzt wollen wir verstehen, wann taucht dieses Problem auf.

Gerrit

Und dann habe ich mit Python und Simpai automatisierte Tests geschrieben für Modelle.

Gerrit

Das heißt, ich konnte ihm einfach ein Modell geben und hatte einige Rechnungen gemacht, hatte dann eben die Hälfte der Elefantenblau angemalt und mir automatisch gesagt, das ist jetzt ein gutes Modell und das ist ein schlechtes Modell.

Gerrit

Also das ist auch eine etwas exotischere Sache, die ich dann mit Python oder mit genöst habe, wo man auch sowas wie Sympai eben benutzen kann, dass man solche Rechnungen automatisieren kann, die man sonst.

Gerrit

Sonst würde ich wahrscheinlich heute noch da sitzen und das Ganze auf dem Papier durchrechnen.

Dominik

Dann starten sich dann die Blöcke irgendwann.

Ja, also es ist.

Gerrit

Und ich habe jetzt immer noch trotzdem einen Block nur vollgeschrieben mit irgendwelchen Formeln.

Jochen

Tja.

Jochen

Ja, aber ist er dann sozusagen rausgekommen, woran das lag, oder ist das irgendwie, das liegt dann am Modell selber wahrscheinlich irgendwie.

Gerrit

Ja, also am Ende habe ich eine Regel gefunden für Modelle, die genau das machen.

Gerrit

Das ist jetzt auch so gerade meine aktuelle Arbeit, wo ich noch irgendwie gucken muss, dass ich das veröffentlicht kriege oder beziehungsweise dass die Leute das wertschätzen.

Gerrit

Und dann am Ende braucht man den Test nicht mehr.

Gerrit

Eigentlich wäre es natürlich lustig gewesen, wenn wir sagen, wir finden es nicht heraus, verdammt scheiße.

Gerrit

Aber hier ist eine Software, die euch diese Frage annähernd beantwortet.

Gerrit

Und hätte was für sich gehabt, aber nein, wir haben am Ende eine Regel gefunden, wann genau es der Fall ist und jetzt braucht man es dann nicht mehr, aber natürlich hat es enorm geholfen, irgendwie ein Gefühl dafür zu kriegen, wann das passiert und unter welchen Bedingungen und warum und ja, das erstmal so da ein bisschen rumzuspielen.

Gerrit

Ja, das war irgendwie eine Sache, wo ich dann Sympa wirklich gelernt habe, werzuschätzen.

Jochen

Cool.

Jochen

Ja, ja, aber würde ich sagen, dann sind wir doch schon so quasi durch.

Jochen

Ja, ich würde auch

Dominik

sagen, dann sind wir jetzt mal tatsächlich durch.

Dominik

Vielen Dank, dass du da warst.

Genau.

Dominik

Ja, Gerald, vielen Dank, dass du da warst.

Gerrit

Vielen Dank.

Gerrit

Hat mich auch gefreut, hier zu beweißen.

Gerrit

Heute einfach über mich selbst reden, zwei Stunden lang, nein, nicht ganz.

Ja, ja.

Fast.

Ja.

Jochen

Es war durchaus auch in längeren Sachen hier.

Dominik

Und wir haben tatsächlich geschafft, so ein bisschen wieder Luft hier.

Der Wind ist gerade aufgekommen.

Dominik

Vielleicht könnte ich mich erinnern, wir es heute aufgenommen haben.

Jochen

Ich bin sehr gespannt, wie das mit den.

Jochen

Also es ging nicht.

Jochen

Wir mussten Ventilatoren aufstellen.

Jochen

Nachdem wir in der letzten Episode das Audio schon versaut haben.

Jochen

Also gut, vielleicht können wir noch einen draufsetzen.

Jochen

Nicht alle die Verzweiflung treiben mit Ventilatorengeräusch, aber hoffentlich.

Jochen

Hoffentlich wird das wird das irgendwie einer der Post-Processing-Algorithmen irgendwie magisch beseitigen.

Dominik

Ja, wir werden sie sonst beschwert euch bei uns.

Dominik

Ja, wisst ihr, ihr könnt immer E-Mails schreiben an hallo.pythnenpodcast.de und ihr könnt auch gerne kommentieren.

Dominik

Auf der Webseite gibt es eine schöne Kommentarfunktion.

Dominik

Ihr könnt uns überall abonnieren, wenn ihr gerade lustig seid, beim Sgebogen enthält weiter, dass es uns gibt.

Dominik

Und ja, wo ihr auch immer gerade seid, was auf eine Tageszeit ist, auch Tagesnachtzeit.

Jochen

Stammt nicht an Hitzschlag.

Ja.

Bisschen warm.

Dominik

Ja, wir hören uns.

Dominik

Viel Spaß und bis später.

Dominik

Tschüss.