Transcript: Python in der Wissenschaft

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

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

Dominik

Wir haben die elfte Episode heute und sind heute wieder in Jochens Winter-Sommergarten.

Dominik

Wir haben gerade Sommer.

Dominik

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

Dominik

Heute ist unser Thema Scientific Python.

Dominik

Ja, vielleicht dachte ich erst mal hallo Gerrit kurz und dann...

Dominik

Oder so Python in der Wissenschaft.

Dominik

Hallo, Python in der Wissenschaft.

Gerrit

Genau, 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 deinen Hörern, wer du bist.

Gerrit

Ja, ich bin 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

Mikrobeller-Analyst habe ich mir aufgeschrieben.

Dominik

Das hast du dir aber ausgedacht.

Dominik

Wenn überhaupt Mikrobiell.

Dominik

Okay, Mikrobieller-Analytiker.

Dominik

Ja, alles klar.

Gerrit

Und ja, nutze dafür Python, um Sachen zu simulieren, um Daten zu analysieren

Gerrit

und manchmal auch, um ganz komische Sachen mit symbolischem Rechnen zu machen.

Gerrit

Und du spielst Golf.

Gerrit

Und ich spiele, ja, also zurzeit eigentlich nicht mehr so viel, aber ich habe Golf gespielt.

Gerrit

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

Gerrit

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

Dominik

Wir machen einmal kurz ein bisschen News, wie wir das irgendwie so kennen und dann kommen wir irgendwie zum Topic.

Jochen

Ja, auf jeden Fall. Dann mache ich hier schon mal die

Dominik

erste News-Kapitelmarke.

Dominik

Alles klar.

Dominik

Ja, was gab es denn so?

Dominik

Irgendwas wie PyOxidizer

Dominik

oder sowas vorgestern, so eine News raus.

Dominik

Ja, das genau.

Dominik

PyOxidizer ist irgendwie so

Jochen

eine Software, mit der es möglich

Jochen

sein soll,

Jochen

so eine Python-Applikation

Jochen

ein Standalone-Executable

Jochen

zu verwandeln, dass man dann einfach irgendwo hinschütten

Jochen

kann und dann läuft das da. Und das halt

Jochen

auch auf unterschiedlichen Plattformen, das heißt auf

Jochen

Unix ganz genauso wie auf

Jochen

Windows und

Jochen

das ganze Ding ist irgendwie so Rust-basiert,

Jochen

also das packt den Python-Interpreter

Jochen

halt irgendwie in

Jochen

in

Jochen

ein Rust-Programm, also das ganze Ding ist

Jochen

sozusagen irgendwie hinterher das, was auch

Jochen

dabei rausfallen würde, wenn man einfach ein Rust-Programm

Jochen

kompiliert

Jochen

und ja, man kann alle möglichen

Jochen

Dinge noch mit dazu, man kann auch Rust-Node mit dazu

Dominik

So kann man tatsächlich Python irgendwo mithin shippen, also man braucht halt

Dominik

Python mehr mitmachen, wenn man irgendwo

Dominik

was deliveren will, beendable oder sowas,

Dominik

auf den Server gehen, hat man das dabei und dann läuft

Dominik

das einfach direkt oder auf Windows oder sowas,

Dominik

für irgendwelche Nutzer, die halt damit nichts zu tun haben wollen,

Dominik

die füllen dann die SpyOxygen aus und sind dann direkt...

Jochen

Ja, also das hatten wir letztes Mal auch schon

Jochen

und darauf nimmt

Jochen

auch quasi dieses

Jochen

Announcement, der Announcement-Blog-Post,

Jochen

den ich da heute gesehen habe,

Jochen

Bezug, dass es für

Jochen

Python keine so richtig konsistente

Jochen

Story

Jochen

dazu gibt, wie das denn jetzt

Jochen

irgendwie installiert wird auf einer Maschine.

Dominik

Das wäre wie so ein Black Swan, also eine der

Dominik

großen Bedrohungen, die so der Python-Community

Jochen

vorstellt. Das ist tatsächlich genau. Und da gab es

Jochen

einen Vortrag, also das war

Jochen

die Keynote von der diesjährigen

Jochen

PyCon US

Jochen

von Russell

Jochen

Keith McGee, der sagte, naja, das

Jochen

ist halt eine potenziell fatale

Jochen

Bedrohung eigentlich für Python als

Jochen

Sprache, dass das irgendwann mal den

Jochen

Zugang halt abschneiden kann zu allem.

Jochen

Also auf mobilen Geräten

Jochen

ist es ja jetzt schon im Grunde so. Da kommt man halt mit Python

Jochen

nicht drauf. Und

Jochen

ja, wenn man

Jochen

keine solche Story hat, dann ist das halt echt

Jochen

blöd unter Umständen. Also es macht für Entwickler nicht so

Jochen

einen Unterschied. Das ist ja auch die Hauptzielgruppe,

Jochen

da ist es dann egal. Da macht man sich sein

Jochen

Virtual Environment und

Jochen

benutzt Pip und vielleicht noch ein paar

Jochen

andere Tools und so und hat damit kein Problem.

Jochen

Aber wenn man jetzt einen Endanwender hätte

Jochen

draußen, der... Ja, der will vielleicht gar nicht wissen,

Jochen

was für eine Sprache dahinter steckt. Genau, dem interessiert

Jochen

das nicht, ob das Python ist oder C.

Jochen

Genau, genau. Der möchte einfach

Jochen

nur irgendein Problem gelöst haben und gar nicht

Jochen

ein Problem bekommen zusätzlich.

Jochen

Und das ist natürlich momentan

Jochen

so ein bisschen doof, gerade für Windows.

Jochen

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

Jochen

Also ehrlich

Jochen

gesagt weiß ich davon auch nur, weil

Jochen

derjenige, der das

Jochen

entwickelt hat, hier auch

Jochen

in Düsseldorf oder die

Jochen

Düsseldorfer Python User Group

Jochen

irgendwie

Jochen

gegründet hat oder betreut

Jochen

irgendwie

Jochen

Markentree Lemberg und

Jochen

der hat, genau, das ist uralt,

Jochen

das ist irgendwie schon 20 Jahre alt oder so.

Jochen

Ja, ist schon ein 90er schon.

Jochen

Python 1, was war das?

Jochen

Ja, ich weiß es nicht mehr genau, aber es ist auf jeden Fall schon

Jochen

sehr alt und war halt,

Jochen

er hatte das irgendwann mal geschrieben, um

Jochen

damals

Jochen

die ganzen Hoster konnten nur

Jochen

Perl, irgendwie da Perl war davor installiert

Jochen

und, aber man konnte mit

Jochen

CGI auch beliebige

Jochen

Programme sozusagen hochladen

Jochen

per FTP irgendwie auf seinen Webspace

Jochen

und wenn das halt ausführbar war, dann

Jochen

hat das halt auch funktioniert

Jochen

und er hat dann halt ein ganzes Python

Jochen

und seine komplette Applikation halt

Jochen

in ein Executable reingepackt

Jochen

und das dann halt als CGI-Ding laufen

Jochen

lassen können und konnte dann halt auch

Jochen

auf einem Hoster, der eigentlich nur ein Perl konnte

Jochen

oder so, halt sein Python

Jochen

seine Python-Skripte hosten und

Jochen

ja, das

Jochen

hat auf Unix schon immer super funktioniert

Jochen

ist jetzt auch inzwischen irgendwie

Jochen

läuft das auf aktuellen Python-Versionen

Jochen

Also ich glaube, seit dem letzten PyTDF-Sprint auch auf 3.7.

Jochen

Und das ist ziemlich nett, das Ganze.

Jochen

Man kann da sogar noch so nette Dinge machen wie,

Jochen

da das, es beruht irgendwie darauf,

Jochen

dass man, glaube ich, das Modul,

Jochen

das irgendwie ausgeführt wird,

Jochen

oder der Entry Point ist halt irgendwie in einem Zip-File,

Jochen

das halt...

Jochen

Das hört sich jetzt gerade ein bisschen kompliziert an.

Jochen

Also was man tun kann, ist, man kann halt

Jochen

eigene Sachen per ZIP irgendwie

Jochen

einpacken, dann per Cut hinten an das

Jochen

Binary dranhängen und dann wird das halt ausgeführt zum Beispiel.

Dominik

Ah ja, cool, also eigene Pakete

Dominik

und so. Ja, weil das

Jochen

Binary irgendwie selbst hinten dran

Jochen

schon ZIP ist oder ich weiß es nicht mehr genau.

Jochen

Also man kann damit sehr, sehr lustige Dinge tun

Jochen

und von der Größe her,

Jochen

wenn man das

Jochen

irgendwie so ein bisschen optimiert, dann

Jochen

ist das, glaube ich, irgendwie so knapp 5 MB

Jochen

groß oder so, was dabei rausfällt normalerweise

Jochen

und da ist halt die Standard-Bibliothek nicht komplett drin,

Jochen

aber zum großen Teil.

Jochen

Ja, und ich weiß

Dominik

jetzt nicht, hab jetzt... Ja, aber jetzt kriegst du eine nette Alternative,

Dominik

das hört sich ganz nett an, ne?

Jochen

Genau, der Vorteil bei PyAxidizer

Jochen

ist halt, dass das auf Windows halt auch funktioniert,

Jochen

was mit PyRun halt nicht geht.

Dominik

Hat jemand von euch von der PyCon

Dominik

2019 irgendwelche Talks gehört,

Dominik

Talks gesehen, irgendwas Interessantes noch mitgebracht?

Dominik

Also ich hatte einige Sachen gesehen, die ich mir natürlich

Dominik

wieder interessierte, war irgendwie, dass ein bisschen Musik wieder

Dominik

was dabei war mit Foxtrot von Jessica Garson,

Dominik

war ganz nett.

Jochen

Den hast du aber dann gesehen quasi tatsächlich.

Jochen

Ja, ja, ich habe irgendwie aber nur kurz reingeguckt.

Dominik

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 jetzt bald Python 3 oder so.

Jochen

Ach, ich dachte, die wären schon längst irgendwie umgestiegen.

Jochen

Aber das war dann wahrscheinlich irgendwie Instagram oder so.

Jochen

Da gab es so eine Riesendamme, die auch viel zu veröffentlicht, glaube ich,

Jochen

wie sie da umgestiegen sind.

Jochen

Aber bei Pinterest, dass die auf Python 3 umsteigen,

Jochen

ist natürlich jetzt irgendwie so ein bisschen...

Jochen

So wirklich angeben kann man damit jetzt nicht.

Jochen

Die letzten, die so umsteigen.

Jochen

Ja, ich habe gehört, also

Dominik

der Python-Fu, also der Niklas, der war

Dominik

jetzt auch schon einmal bei uns hier.

Dominik

Die haben jetzt ein Tutorial für Python 2.7

Dominik

und der Python 3 veröffentlicht. Das fand ich

Dominik

sehr lustig.

Dominik

Ja, und auch diese Woche.

Jochen

Ja. Nee, aber ansonsten

Jochen

habe ich auch tatsächlich im Grunde nichts

Jochen

wirklich, was irgendwie an tollen Dingen

Jochen

passiert wäre.

Jochen

Aber immerhin ist ja schon so ein bisschen

Jochen

was. Ja, so ein kleines bisschen.

Dominik

Sonst machen wir dann nächstes Mal einfach wieder eine große News-Section und

Dominik

fangen jetzt einfach an mit unserem Scientific-Thema.

Dominik

Oder wollen wir erst mal mit dem Golf spielen?

Dominik

Also spielst du auch richtig Golf oder nur Code-Golf?

Dominik

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

Gerrit

gemacht hat, hat man alles gesehen, was es

Dominik

zu sehen ist. Jetzt erst mal für die

Dominik

ungebeten Hörer, was ist das denn überhaupt?

Dominik

Code-Golf. Also Code-Golf ist die

Gerrit

Aufgabe, dass man versucht, irgendeine

Gerrit

Programmieraufgabe, zum Beispiel programmiere die

Gerrit

Fakultät oder was auch immer,

Gerrit

mit möglichst wenig Zeichen zu lösen

Gerrit

in einer gegebenen Programmiersprache in der Regel.

Gerrit

Oder man kann es auch allgemein machen,

Gerrit

aber da wir jetzt über Python reden

Gerrit

und für die meisten Leute das Interessante ist,

Gerrit

in einer Programmiersprache zu machen.

Gerrit

Und ja, ohne Rücksicht auf irgendwelche Regeln.

Gerrit

Und das kann Spaß machen, offensichtlicherweise,

Gerrit

dass man einfach mal alle Regeln fallen lassen kann

Gerrit

und wild böse programmieren kann.

Gerrit

Ich kann mich noch daran erinnern,

Gerrit

ich saß mal in so einem Talk von dir,

Dominik

da war ich immer noch ein absoluter Anfänger

Dominik

weil ich habe nichts verstanden von dem, was du da erzählst.

Dominik

Irgendwas funktionierte da, aber dann irgendwie, ja,

Dominik

okay, warum machen wir das jetzt? Keine Ahnung.

Gerrit

Und ja, also die zweite Sache, warum man es macht,

Gerrit

wenn wir mal dabei bleiben, ist,

Gerrit

dass man auch wirklich was über die Programmiersprache lernt

Gerrit

oder über das Programmieren im Allgemeinen,

Gerrit

weil man eben auch darüber nachdenkt,

Gerrit

gewisse Probleme mit ganz neuen Algorithmen zu lösen,

Gerrit

zum Beispiel rekursive Algorithmen

Gerrit

statt irgendwelchen Schleifen oder, oder, oder.

Gerrit

Und ja, das macht einfach sehr viel Spaß,

Gerrit

wenn man das ab und zu macht und man lernt auch viel.

Gerrit

Da gibt es auch so Wettbewerbe oder sowas, ne?

Dominik

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

Gerrit

Ne, also es gibt natürlich Webseiten,

Gerrit

wo man dann seine Lösung veröffentlichen kann und dann sagen,

Gerrit

okay, ich habe das jetzt kürzer gelöst als alle anderen

Gerrit

oder zumindest kürzer in dieser Programmiersprache gelöst

Gerrit

als alle anderen.

Gerrit

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

Gerrit

Es gibt eine Stack-Exchange-Seite zum Thema CodeGolf.

Gerrit

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

Gerrit

Ja.

Gerrit

Es gibt andere Seiten, aber da muss ich ehrlich gesagt sagen,

Gerrit

weiß ich gar nicht so viel drüber.

Gerrit

Okay.

Gerrit

Und

Gerrit

jetzt schau doch mal mit Stecken-Change vorbei für

Jochen

Kotgolfen. Ja, wie gesagt, ich packe

Jochen

den Link dann einfach dazu. Und was sind

Jochen

so deine, hast du vielleicht Lieblingsaufgaben

Jochen

oder so, oder was besonders

Jochen

irgendwie interessante, einen interessanten

Jochen

Lösungsweg hatte? Also, ja, also

Jochen

interessante Lösungswege,

Jochen

ja gut, ich bin,

Gerrit

komme aus der Physik-Mathematik-Ecke, also kann man,

Gerrit

finde ich immer froh, wenn ich Sachen mit

Gerrit

komplexen Zahlen oder so lösen kann.

Gerrit

Also klassisch sind irgendwelche

Gerrit

Aufgaben, wie irgendein Objekt bewegt sich in irgendeinem Raum oder irgendein Robot oder was auch immer und man muss den steuern und das kann man natürlich machen, indem man zweidimensionale Koordinaten speichert. Das ist in der Regel aber kürzer, wenn man das Ganze in komplexen Zahlen löst 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 eingeweiht ist, versteht, was da eigentlich passiert.

Gerrit

und

Gerrit

ja, also ansonsten

Gerrit

ich kann, keine Ahnung, ich glaube das Interessanteste

Gerrit

was man jetzt so auf dem

Gerrit

diesem Medium überhaupt kommunizieren kann

Gerrit

sind dann vielleicht so ein paar Tricks

Gerrit

die man nutzen kann

Gerrit

also ein klassisches Beispiel

Gerrit

ist natürlich, wenn ich irgendwas habe, muss ich irgendwas in einer

Gerrit

Schleife lösen, das kann man natürlich auch so machen

Gerrit

häufig ist es dann aber so, dass diese Schleife

Gerrit

vielleicht nicht so

Gerrit

spannend ist, also dass da jetzt nicht so viele

Gerrit

komplizierte Dinge passieren und dann könnte es

Gerrit

zum Beispiel einfacher sein

Gerrit

den Befehl, den man in der Schleife ausführt,

Gerrit

in einen String zu packen,

Gerrit

diesen String zu multiplizieren,

Gerrit

also mit Semikola getrennt, mal

Gerrit

fünf oder so, weil ich das fünfmal ausführen möchte

Gerrit

und dann ein Exek darüber zu jagen.

Gerrit

Also genau,

Gerrit

die ersten

Gerrit

Jochen

Gerrit

hingen sich schon die Fußnägel hoch

Gerrit

und ja,

Gerrit

das ist dann, genau solche Sachen

Gerrit

passieren dann andauernd, dass man irgendwie

Gerrit

feststellt, wie wenig Leerzeichen man

Gerrit

eigentlichen Python braucht, wenn man denn

Gerrit

unbedingt möchte. Also es gibt so Späßchen,

Gerrit

dass man, wenn man

Gerrit

hinter irgendwo

Gerrit

eine Klammer aufhört oder dahinter kommt ein

Gerrit

Keyword oder so, dann kann man die einfach direkt

Gerrit

aneinander schreiben

Gerrit

oder zahlen oder

Gerrit

eigentlich irgendwas. Ich glaube, das ist der einzige Unterschied. Man muss immer aufpassen,

Gerrit

wenn es mit e anfängt, weil das könnte ja 1

Gerrit

e 8 wäre dann 10 hoch 8.

Gerrit

Das darf man dann nicht machen, aber alles andere kann man

Gerrit

einfach wild aneinander klatschen

Gerrit

in vielen Fällen und es wird richtig interpretiert.

Gerrit

Dann gibt es, ich glaube in Python 3 funktioniert das nicht mehr, in Python 2 funktioniert das noch, dass man verschiedene Eindrückungsebenen mit Tab und Leerzeichen hat. Also die erste Eindrückungsebene wäre ein Leerzeichen, die zweite Eindrückungsebene war ein Tab und dann kam irgendwie ein Tab und ein Leerzeichen als Eindrückung und so weiter. Aber gut, wenn man dreimal einrücken muss, dann ist es in der Regel kein CodeGolf mehr.

Jochen

Ja, genau. Muss man denn überhaupt einrücken?

Jochen

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

Jochen

Man muss es manchmal schon machen.

Jochen

Also manchmal ist es schon das Beste,

Gerrit

aber zwei Einrückungsebenen sind schon sehr,

Gerrit

das sind dann schon, wie ich ausgefallen habe, Programme.

Dominik

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

Dominik

Und ich meine jetzt nicht das mathematische Problem,

Dominik

sondern das, was man in der Uni dann so besucht.

Dominik

Ja, okay.

Dominik

Und das heißt, du machst dann sowieso nur ein Name.

Dominik

Also lesen kann man das dann wahrscheinlich nicht mehr?

Dominik

Sondern es geht tatsächlich darum, in wie viel Byte

Dominik

passt denn dann so ein Algorithmus? Genau, also

Gerrit

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

Gerrit

hört das auch gar nicht auf. Also auch so die

Gerrit

klassischen Ansätze für viele Sachen sind, dass man

Gerrit

jetzt sagen kann, okay, ich kann jetzt

Gerrit

meine Daten,

Gerrit

ich kann jetzt einen interessanten

Gerrit

Algorithmus entwickeln, der die richtige

Gerrit

Lösung für irgendwas findet.

Gerrit

Ich kann aber auch,

Gerrit

jetzt weiß ich gar nicht, ob es Bogosort oder Stupid Sort

Gerrit

oder, ja, ist auch egal, es gibt diesen klassischen

Gerrit

Sortieralgorithmus. Ich

Gerrit

nehme meine Daten, ich mische sie,

Gerrit

ich gucke, ob sie sortiert sind, wenn nicht, wische ich sie nochmal.

Gerrit

Ja, ja, ja. Solche Ansätze

Gerrit

und, ja, wenn

Gerrit

dann die Aufgabe nicht vorgibt, dass man das

Gerrit

Ganze in einer endlichen Zeit lösen möchte, geht

Gerrit

das natürlich.

Gerrit

Das ist auch immer eine, ja,

Gerrit

ein Lieblingsansatz, dass man sagt, okay,

Gerrit

wir versuchen das jetzt schön

Gerrit

in Brute Force

Gerrit

zu lösen, statt, weil

Dominik

an der gewissen Wahrscheinlichkeit ist

Dominik

das dann sofort fertig.

Jochen

Ja, ich habe letztens auch

Jochen

irgendwo neun, es gibt ja diverse

Jochen

lustige Sortierverfahren. Ich habe

Jochen

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

Jochen

Sehr schön. Das besteht einfach

Jochen

darin, ich glaube, das nennt sich irgendwie Sleepsort.

Jochen

Und wenn man halt

Jochen

Zahlen hat, dann macht man das mit

Jochen

Async

Jochen

Await-Notation.

Jochen

Man awaitet einfach die Zahl.

Jochen

das ist dann halt sortiert, weil

Jochen

naja, je größer die Zahl, desto länger

Jochen

wartet man halt.

Jochen

Das ist auch

Jochen

sehr, sehr cool.

Dominik

Mein Lieblings-Sortiere-Algorithmus ist der LSD-Radix.

Dominik

Das ist so schön.

Dominik

Der hört sich auch besonders toll an, wenn man den so visualisiert.

Dominik

Äh, audifiziliert, wie nennt man das?

Dominik

Wenn man so einen Algorithmus...

Dominik

Es gibt ja so einen...

Dominik

Vertont.

Dominik

Ja, ja, ja, wahrscheinlich.

Dominik

Vertont.

Dominik

Gut.

Dominik

Ja, wir vertonen 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 sortiert dann die ganzen Sachen immer in so Buckets rein

Dominik

und gibt die dann immer wieder auseinander.

Dominik

Okay.

Dominik

Ja, also von 0 bis 1.9 oder sowas.

Dominik

Und dann kippt er die auseinander.

Dominik

Und dann funktioniert das für mich ganz gut.

Dominik

Eine Sache, die mir jetzt noch gerade eingefallen ist,

Gerrit

man muss sagen, wir warten auf die Eingabe und wie lange es dauert.

Gerrit

Also auf CodeGolf StackExchange gab es dann auch zwischendrin mal

Gerrit

so eine Kategorie von Fragen,

Gerrit

die haben wir uns auch ganz schnell ausgedruckt und abgeschafft.

Gerrit

Wir versuchen jetzt mal eine Programmieraufgabe

Gerrit

möglichst schlecht zu lösen.

Gerrit

Also nicht schnell oder kurz oder was auch immer,

Gerrit

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 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.

Gerrit

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

Gerrit

Ja, das klingt gut.

Dominik

in einer besonders chaotischen Umgebung könnte das

Dominik

relativ schnell passieren.

Dominik

Wie ist das eigentlich bei so

Jochen

Code-Golf-Community? Macht die nur

Jochen

Code-Golf? Es gibt ja noch so andere lustige

Jochen

Programmier, weiß ich nicht,

Jochen

ich soll mal sagen, so, ja,

Jochen

Knubelecken. Ja, also die machen

Jochen

auch andere Sachen. So Quines zum Beispiel

Jochen

oder Programme, die sich selbst

Jochen

ausgeben. Oder auch Code-Golf mit Einschränkungen.

Jochen

Also man kann natürlich immer Code-Golf machen, aber

Gerrit

auch so lustige Sachen war es noch eine Aufgabe.

Gerrit

Multipliziere jetzt mal bitte zwei

Gerrit

Zahlen, aber verwende im ganzen Code keine

Gerrit

einzige Zahl.

Gerrit

Dann muss man

Gerrit

erstmal die Zahlen irgendwie in römische Zahlen darstellen,

Gerrit

also so i, i, i, i, i, ja, ist dann halt

Gerrit

5 und dann kann man da

Gerrit

auf Basis, basiert natürlich multiplizieren und

Gerrit

am Ende kommt dann halt wieder eine Zahl raus.

Gerrit

Man muss halt irgendwie auch gucken, wie

Gerrit

man das mit der Darstellung macht, dass man das dann

Gerrit

regelkonform macht, aber

Gerrit

i, i, i, i, i, i ist 5,

Gerrit

i, i, i, i.

Jochen

Ja, römische Ziffern, Rechner mit

Jochen

römischen Ziffern, sehr, sehr böse.

Jochen

Ja, ja, x, x, x.

Jochen

Ich habe irgendwann mal auch, glaube ich,

Jochen

im Blogpost dazu gesehen, wie jemand irgendwie mit römischen

Jochen

Ziffern schriftlich dividiert hat und das war echt so.

Jochen

Also, sagen wir mal so,

Jochen

es ist nicht so unmittelbar einleuchten,

Jochen

wie das funktioniert.

Jochen

Ja.

Jochen

Aber, ja.

Jochen

Ja, so Kotkolben

Dominik

ist im Prinzip so eine Absatzionsebene, um

Dominik

mit der Sprache Schabernack zu treiben, also um

Dominik

die Komplexität von Algorithmen zu ergründen

Dominik

und um vielleicht so ein bisschen die Geschwindigkeit

Dominik

da so rauszuholen und vielleicht auch sowas

Gerrit

Ja, oder auch die gerade, also sich einfach so Gedanken zu machen, also sowas wie SlowSort oder SleepSort oder was auch immer sind ja Sachen, die einfach existieren, dass man sich, dass man überhaupt erstmal sieht, wie gut man es hat und wenn so echten Sortieralgorithmen und auch einfach das Konzept eines Algorithmus besser versteht und ja, also man, genau, man, es ist 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 und ja, man lernt einiges über Algorithmen und ähnlichem.

Gerrit

Ich habe tatsächlich einen Algorithmus, den ich

Gerrit

begegnet bin, auch tatsächlich später eingesetzt

Gerrit

in echter wissenschaftlicher Arbeit

Gerrit

und war dann sehr froh, dass ich

Gerrit

ihn kannte, weil

Gerrit

ja, also man

Gerrit

Ja,

Dominik

du hast das Thema tatsächlich direkt fast

Dominik

schon wieder mit aufgemacht und ich glaube, es ist Zeit für den nächsten

Dominik

Chapter, Marc. Wenn du das sagst,

Dominik

du hast ihn jetzt scientific in der wissenschaftlichen Arbeit

Dominik

eingesetzt. Was ist denn jetzt

Dominik

Scientific Python? Also das ist nicht SciPy

Dominik

oder was du eben gesagt hast, sondern

Dominik

was bedeutet das und warum

Dominik

macht man das, was macht man da und warum

Dominik

ist das so nett oder doch nicht?

Gerrit

Also erstmal natürlich als Wissenschaftler

Gerrit

hat man in der Regel, oder nicht in der Regel,

Gerrit

also viele Wissenschaftler müssen

Gerrit

programmieren, zwangsläufig, weil

Gerrit

sie sichern, simulieren oder Daten

Gerrit

analysieren in großen Mengen und

Gerrit

das nicht per Hand machen möchten, aus gutem Grund.

Gerrit

Also quantitative Analyse und

Dominik

keine qualitative Analyse, würdest du jetzt sagen,

Dominik

ist die wahre Kunst der Wissenschaft?

Dominik

Ja, also

Gerrit

ich glaube, gibt es so richtig

Gerrit

qualitative, rein

Gerrit

qualitative Arbeit gibt es

Gerrit

zumindest in meinem Bereich kaum.

Gerrit

Ich kenne noch die alte

Dominik

Philosophische Fakultät an meiner Universität.

Dominik

Die hat sich durchaus damit hervorgetan.

Gerrit

Ja, ja gut, aber das ist

Gerrit

ja auch nicht mein Bereich.

Gerrit

Also klar, es gibt natürlich

Gerrit

Bereiche, in denen das

Gerrit

gibt und es auch sinnvoll ist und schön und gut, aber

Gerrit

also ich habe, ich glaube

Gerrit

nicht, dass ich jemals hier irgendwas

Gerrit

beruflich begegnet bin, das

Gerrit

rein qualitativ war. Okay, also ein

Gerrit

ZDF, Scientific Price, also Zahlen, Daten, Fakten.

Gerrit

Ja.

Gerrit

Es geht nicht nur darum, Zahlen auseinanderzunehmen.

Gerrit

Manchmal geht es auch um Zahlen zu produzieren

Gerrit

oder irgendwie einfach etwas,

Gerrit

was man mathematisch, theoretisch zumindest,

Gerrit

theoretisch aber, beweisen könnte oder verstehen könnte,

Gerrit

aber zu kompliziert ist,

Gerrit

dass man es mathematisch zerdröseln kann,

Gerrit

zu simulieren und dann auf die Weise zu verstehen.

Gerrit

Also viele Sachen, die ich gemacht habe,

Gerrit

würde ich als Experimentalmathematik bezeichnen.

Gerrit

Also ich stelle experimentell mathematische Aussagen fest.

Gerrit

Ja, und dazu muss man natürlich programmieren

Gerrit

und das macht man natürlich gerne in Python,

Gerrit

also zumindest ich, anderen natürlich nicht.

Gerrit

Das muss man so ein bisschen Überzeugungsarbeit leisten,

Gerrit

weil es zum einen häufig nicht um Geschwindigkeit geht,

Gerrit

sondern eben darum geht, die Sachen möglichst schnell

Gerrit

und anschaulich zu programmieren und zu verstehen,

Gerrit

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. In einigen Fällen gibt es da nicht und das war dann auch bei mir der Grund, warum ich so eine Sache dann selbst geschrieben habe, 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 experimentale Mathematik, 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 man 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,

Jochen

irgendwie zeigen möchte

Jochen

zu irgendwie einfachen Sachen, die schon

Jochen

bewiesen sind, also das

Jochen

kenne ich jedenfalls, oder habe ich mal gehört, dass

Jochen

Leute so experimentelle Mathematik

Jochen

nennen, also man

Jochen

sucht halt einfach quasi

Jochen

in dem Baum

Jochen

aller, oder in dem Graphen aller Umformungen,

Jochen

die man halt irgendwie machen kann, halt

Jochen

nach einem Pfad von Sachen, die man schon

Jochen

bewiesen hat, zu einer Geschichte, die man halt beweisen

Jochen

möchte oder so, dann sieht es halt dann doch eher so aus,

Jochen

als ob man das entdeckt, halt

Jochen

wie mit einem Mikroskop oder so und nicht so sehr

Jochen

irgendwie konstruiert.

Jochen

Aber...

Gerrit

Das fällt dann unter Computerbeweise.

Gerrit

Das ist manchmal das, was ich jetzt...

Gerrit

Also das ist wahrscheinlich

Gerrit

auch nicht unzutreffend. Der Begriff

Gerrit

Experimentalmathematik ist nicht

Gerrit

kopiergeschützt oder

Gerrit

getrademarkt von irgendwem, der sagt, das ist jetzt genau

Gerrit

das.

Gerrit

Die Sachen, die ich mache, sind da schon

Gerrit

gemacht habe oder auch noch mache, sind auch schon anders.

Gerrit

Da geht es dann eben um die Frage,

Gerrit

wie verhält sich jetzt

Gerrit

dieses Modell, wenn ich das lange

Gerrit

laufen lasse und dann hat man eben

Gerrit

also so klassische Beispiele für

Gerrit

wie Modelle, die meisten

Gerrit

Modelle, Aufstellung oder die

Gerrit

kann man als Gleichung formulieren, das ist eine

Gerrit

Differenzialgleichung in der Regel oder

Gerrit

ähnliche Sachen, also für die Leute, denen es was sagt, man hat

Gerrit

eine Gleichung und die Lösung ist

Gerrit

dann, wie verhält sich mein

Gerrit

Objekt, mein System

Gerrit

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

Gerrit

Gleichung. Und diese Lösung

Gerrit

kann man in aller Regel nicht

Gerrit

mit Stift und Papier finden, so wie was

Gerrit

Leute normalerweise tun. Also man kann es schon

Gerrit

machen, aber... Dauert dann ein bisschen.

Gerrit

Also auch das ist dann nur eine Annäherung.

Gerrit

Man braucht die richtige Intuition für die Bewegung

Gerrit

der Funktion. Nee, also das

Gerrit

in Zeitfall geht es wirklich nicht.

Gerrit

Wir haben zumindest seit 100 Jahren

Gerrit

keinen Weg gefunden, das zu machen. Man kann eben

Gerrit

höchstens eine näherungsweise Lösung machen und auch das will man nicht

Gerrit

mit Stift und Papier machen. Das ist dann sehr automatisiert.

Gerrit

Das macht man dann mit dem Computer und natürlich

Gerrit

dann wieder mit Programmierung.

Gerrit

Und ja, dann kann

Gerrit

man eben herausfinden, okay, wenn ich diese Sachen

Gerrit

habe, dann verhält sich

Gerrit

dieses System so und so.

Gerrit

Ich kriege so eine Lösung raus, das ist

Gerrit

ein klassisches Beispiel, das ist chaotisch.

Gerrit

Und das ist meine Aussage. Und die habe ich dann

Gerrit

experimentell gefunden,

Gerrit

in gewissem Maße, über Simulationen.

Gerrit

Und diese Aussage ist auch nicht

Gerrit

so in Stein gemeißelt, wie es

Gerrit

normale mathematische Aussagen sind, sondern

Gerrit

das kann immer noch schiefgegangen sein, weil

Gerrit

ich gerade ganz komisch

Gerrit

meinen

Gerrit

Programmlauf in der Sache habe, mit genau den falschen

Gerrit

Startbedingungen oder was auch immer und mein Algorithmus.

Jochen

Ja, weil man in irgendwelche numerischen

Jochen

Geschichteninstabilitäten gelaufen ist

Jochen

oder weil...

Gerrit

Also gut, das kann man sogar noch lösen,

Gerrit

aber weil man einfach

Gerrit

ganz, ganz viel

Gerrit

Pech hatte zum Beispiel. Natürlich, also

Gerrit

die meisten Aussagen, wenn man sagt, das ist jetzt

Gerrit

Chaos, sind schon

Gerrit

sehr, sehr hieb- und stichfest, aber

Gerrit

es ist kein formeller Beweis, wie

Gerrit

Mathematiker ihn führen.

Gerrit

In den meisten Fällen. Natürlich gibt es dann auch die Leute,

Gerrit

die sich hingesetzt haben und das mal für einen Fall wirklich

Gerrit

bewiesen haben.

Gerrit

Das war dann auch eine Sensation oder so, hat auch ein paar Jahre gedauert, aber das ist nichts, was man praktisch machen kann 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 Absatzionslayer

Dominik

noch nicht so ganz begriffen.

Dominik

Also man hat jetzt ganz komplexe, große, komplizierte Systeme.

Dominik

Und wenn ich mir das jetzt irgendwie vorstelle,

Dominik

du sagst irgendwas von Chaos,

Dominik

du sagst sowas über Zeitstrahlen und Funktionen,

Dominik

die da irgendwie durchläuft,

Dominik

da denke ich irgendwie immer an sowas wie eine Häufigkeitsverteilung

Dominik

oder sowas, was da irgendwie rauskommt.

Dominik

Was hat das, also wie kann ich das so real beschreiben,

Dominik

wenn ich jetzt irgendwie jetzt Mikrobialen ...

Dominik

Machen wir mal ein Beispiel.

Gerrit

Also ich habe, genau, ich habe Bakterien zum Beispiel.

Gerrit

Also ja, ich mache mal ein bakterielles Ökosystem.

Gerrit

also ich habe meinen Topf,

Gerrit

da schmeiße ich, da habe ich Nährstoffe drin, das heißt

Gerrit

Bakterien können da leben und da schmeiße ich

Gerrit

jetzt, was weiß ich was,

Gerrit

fünf Escherichia coli

Gerrit

oder zehn Pneumokokken

Gerrit

oder was auch immer mir einfällt rein.

Gerrit

Irgendwelches ungesunde Zeug, genau.

Gerrit

Haben wir aber übrigens überall

Gerrit

nebenbei, also wir tragen mehrere

Gerrit

Kilo Bakterien mit uns im Darm rum.

Gerrit

Und noch dreimal Karies.

Gerrit

Ich weiß gar nicht, ob das ein Bakterium ist,

Gerrit

oder was das ist.

Jochen

Pulbactus? Ich habe keine Ahnung.

Jochen

Das sah einmal beim Zahnarzt früher so aus.

Jochen

Da gab es dann diese Psyche.

Jochen

Die liefen dann irgendwelche Dinge.

Dominik

Die sahen so aus, wie ich mir Bakterien vorstelle.

Gerrit

Genau. Also die laufen dann auf jeden Fall

Gerrit

da rum und

Gerrit

jetzt kann ich natürlich das einfach

Gerrit

hinstellen und warten und gucken, aber

Gerrit

das kann ich nur begrenzt

Gerrit

häufig machen, da das Zeit kostet und ich

Gerrit

kann auch, habe dann Messfehler

Gerrit

und Rauschen und so weiter und so fort. Aber ich möchte

Gerrit

das eventuell einfach mal allgemein verstehen.

Gerrit

Wie entwickeln sich solche Bakterienpopulationen?

Dominik

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

Gerrit

Ja, das wäre so die Karikatur des Ganzen, aber es ist gar nicht so falsch, also viel ist wirklich, wir haben einen Topf Flüssigkeit, da sind Nährstoffe drin, da schieben wir ein paar Bakterien 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,

Dominik

ich weiß nicht, ihr kippt das Ganze auf Papier,

Dominik

kommt euch die Farbe an oder zählt irgendwas mit irgendwelchen Sensoren

Dominik

und packt das in eine Datenbank

Dominik

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 nur ein Glas und nicht eine echte Haut oder sowas.

Gerrit

Ja, das ist der andere Nachteil.

Gerrit

Aber der Nachteil ist,

Gerrit

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.

Gerrit

Virtuelle Bakteriengläser, schön.

Gerrit

Genau.

Gerrit

Das heißt, wir haben die ganzen Bugs hergekommen.

Gerrit

Ja, genau. Deswegen, ich bastle virtuelle Bakteriengläser und diese virtuellen Bakteriengläser werden dann beschrieben durch Gleichung.

Gerrit

die zum Beispiel bei Differenzialgleichen

Gerrit

wäre die Frage, okay, ich habe jetzt meine Bakterien,

Gerrit

mein Zustand, mein Zustand ist dann

Gerrit

fünf von der Sorte, sechs von der Sorte, sieben von der Sorte,

Gerrit

so viele Nährstoffe und so weiter und so fort.

Gerrit

Und die Frage ist, wenn ich jetzt eine Sekunde

Gerrit

in die Zukunft gehe, wie sieht mein Zustand aus?

Gerrit

Vermehren sich einige von diesen Bakterien, werden

Gerrit

einige Nährstoffe gefressen und so weiter? Das kann ich

Gerrit

dann machen oder

Gerrit

ausrechnen und dann mache ich das noch mal

Gerrit

und noch mal und noch mal und noch mal und

Gerrit

die Frage, wie man das richtig macht, ist

Gerrit

ja, da haben sich Menschen schon

Gerrit

hundert Jahre lang mit beschäftigt und

Gerrit

gute Wege herausgefunden, das zu machen

Gerrit

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

Dominik

Also die haben quasi das Rezept, den Algorithmus

Dominik

schon entwickelt und den wird dann

Dominik

in Python irgendwie übertragen, auf das Modell

Dominik

angewandt und dann gibt es eine zufällige

Dominik

Verteilung, die rauskommt. Oder hast du dann immer konkrete

Dominik

Ergebnisse? Das könnte zum Beispiel

Gerrit

rauskommen, okay, diese Population stirbt

Gerrit

aus und diese Population geht

Gerrit

auf genau diesen Wert und bleibt da.

Dominik

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

Gerrit

in der das passiert ist. Ja, das ist in vielen Fällen

Gerrit

gar nicht mal so das Interessante, aber es ist auch

Gerrit

interessant. Die andere

Gerrit

Sache, die halt rauskommen kann, ist zum Beispiel, okay, es geht

Gerrit

nicht einfach auf irgendeinen festen Wert, sondern es

Gerrit

oszilliert wild rum, zum Beispiel

Gerrit

chaotisch.

Gerrit

Und dann

Gerrit

können wir eben das feststellen, okay, es

Gerrit

oszilliert rum. Das ist eine

Gerrit

Antwort. Oder es ist was anderes, als wenn es

Gerrit

konstant bleiben würde.

Gerrit

Und ja,

Gerrit

wir können uns dann die Frage stellen, okay,

Gerrit

unter welchen Bedingungen oszilliert es rum? Welch viele

Gerrit

Bakterien, Spezies überleben?

Gerrit

Unter welchen Bedingungen? Wovon hängt

Gerrit

das ab? Wie beeinflussen die Bakterien,

Gerrit

Spezies einander? Und

Gerrit

ja, wie verhalten sich eben solche

Gerrit

Systeme im Allgemeinen?

Gerrit

So ein geschlossener Game-of-Life-Kreislauf.

Gerrit

Ja, und ein bisschen realistischer.

Gerrit

Aber ja, Game-of-Life ist auch durch.

Gerrit

Echte zelluläre Automaten.

Gerrit

Ja, nur dass wir halt nicht mehr, ja, also zelluläre

Gerrit

Automaten sind halt ein Typ von Simulation,

Gerrit

Differenzialgleichungen sind ein anderer Typ, dann können wir noch

Gerrit

ja, diverse andere

Gerrit

Typen durchsprechen,

Gerrit

wie wir es lösen können, aber ja.

Gerrit

Und dann kann ich

Gerrit

am Ende sagen, ich weiß, wenn ich

Gerrit

Bakterien so und so zusammen packe,

Gerrit

dann passiert wahrscheinlich sowas.

Gerrit

Das ist das Fernziel dieser

Gerrit

ganzen Forschung, dass man eben

Gerrit

besser versteht, wie sich solche Systeme

Gerrit

entwickeln und dann natürlich auch die Frage, wie reagieren

Gerrit

sie auf Aumwelteinflüsse. Eine häufige Frage ist

Gerrit

zum Beispiel Antibiotika. Ich habe

Gerrit

ein klassischer Fall, wo wir

Gerrit

kein Ökosystem haben im Körper. Was die Ausnahme

Gerrit

ist, ist die Blase. Das ist

Gerrit

normalerweise bakterienfrei,

Gerrit

soweit man das bisher weiß. Steril.

Gerrit

Steril, ja, genau.

Gerrit

Aber wenn da was reinkommt,

Gerrit

hat man ein Problem. Und manchmal kommen da mehrere

Gerrit

Dinge rein und dann ist die Frage, begünstigen die einander?

Gerrit

Bekämpfen die einander?

Gerrit

Sind da verschiedene Bakterien,

Gerrit

die Fressfeinde oder was auch immer sind?

Gerrit

Fressfeinde hat sich toll angefragt.

Gerrit

Befressfeind ist in dem Fall das falsche Wort eigentlich.

Gerrit

Also die ungleichen Nährstoffe konkurrieren.

Gerrit

Und die Frage ist jetzt,

Gerrit

wenn ich ein Antibiotikum dazu kippe, was passiert?

Gerrit

Kann ich natürlich wieder im Reagenzglas austesten.

Gerrit

Dauert dann genauso lange wie im echten Menschen.

Gerrit

Ist ein Problem.

Gerrit

Also ein Fernseher der Anwendung wäre zum Beispiel,

Gerrit

dass man eben eine Probe hat,

Gerrit

feststellt, welche Spezies sind da drin,

Gerrit

wie verhalten die sich und dann direkt simuliert,

Gerrit

welches Antibiotikum muss ich geben

Gerrit

oder in welchem Takt, mit welchen Bedingungen,

Gerrit

damit ich diese Handwerksinfektion

Gerrit

möglichst effektiv wegkriege.

Dominik

Also das heißt, ihr könnt tatsächlich auch sowas, chemische Verbindungen

Dominik

tatsächlich simulieren, da reinschießen und dann

Dominik

sagen, hey, vielleicht kommt da was raus. Also wir simulieren

Gerrit

nicht die chemische Verbindung in dem Sinne,

Gerrit

sondern wir wissen halt, dass das

Gerrit

Antibiotikum hat die Auswirkungen auf das

Gerrit

Bakterium, ganz grob.

Gerrit

Aber auch das ist alles nur das

Gerrit

Fernsehen. Also wir sind eben, solche

Gerrit

Ökosysteme zum Beispiel zu simulieren ist

Gerrit

verdammt schwierig.

Dominik

Hört sich sehr nützlich an. Also mal so.

Gerrit

Ja, deswegen versuchen wir es ja auch. Und deswegen gibt es

Gerrit

hoffentlich Leute, die uns dafür bezahlen, das zu machen.

Gerrit

Ja, und das ist so eine...

Gerrit

Hier wieder die große Sponsorenaufrufe.

Jochen

Naja, aber ich meine, das klingt halt schon so ein bisschen

Jochen

danach, wie man hat irgendwo einen umgekippten Weiher

Jochen

und dann geht man da halt mit drei Gläsern

Jochen

unterschiedliche Bakteriensocken hin, schüttet das da rein, wartet zwei Tage

Jochen

und dann hat man eine Blümchenwiese da. Oder so, das wäre schon gut.

Jochen

Ja, das wäre schon nicht schlecht.

Jochen

Wenn man das ausfinden könnte, wie das geht.

Dominik

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

Dominik

sollte, also mit der schönen Schlange und der Abenteuer.

Dominik

Naja.

Dominik

Also, und wie?

Dominik

Genau, also

Gerrit

Also entweder sagt man, ich habe eine Simulation und Zeit stört mich nicht, also Laufzeit, das kann schon mal sehr häufig passieren, dann kann man es einfach wirklich rein in Python simulieren in vielen Fällen.

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 dem, was ich wirklich gemacht habe.

Gerrit

ist, dass es

Gerrit

nicht so einfach und schnell

Gerrit

in Python geht und dass es insbesondere auch nicht

Gerrit

so schnell und einfach mit NumPy geht, weil es nicht

Gerrit

vektorisierbar ist. Jetzt muss ich wahrscheinlich kurz

Gerrit

erklären, was vektorisierbar heißt.

Gerrit

Das heißt, ich habe, ein klassisches

Gerrit

Beispiel ist, ich addiere zwei

Gerrit

Vektoren. Ich habe

Gerrit

ein großes Array mit Zahlen

Gerrit

oder Liste oder was auch immer man sich vorstellen möchte. Ich habe

Gerrit

eine andere, genauso lange Liste mit Zahlen.

Gerrit

Wenn ich jetzt sage, addiere bitte mal

Gerrit

die ersten beiden Elemente von jeder

Gerrit

Liste und füge das als erstes

Gerrit

neues Element in eine neue Liste und dann macht das

Gerrit

mit dem zweiten Element und so weiter und so fort,

Gerrit

dann ist das eine vektorisierbare Option,

Gerrit

Operation. Ich glaube, das hat

Dominik

niemand verstanden, der nicht wusste, was vorher eine Vektor-Operation

Dominik

ist. Verdammt.

Dominik

Wenn du zwei Vektoren addierst, dann machst du

Dominik

irgendwie sowas, du erklärst irgendwie

Dominik

den Weg, den du per Luftlinie kennst

Dominik

und dem erzählst du, ja, musst du links,

Dominik

dann musst du rechts und dann kommst du irgendwann...

Jochen

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

Jochen

Also es ist immer das Gleiche.

Gerrit

Also das auch gleich für viele Sachen

Gerrit

ist das so, Moment, jetzt muss ich es gerade

Gerrit

richtig hinkriegen.

Gerrit

Multiple Data,

Gerrit

Multiple Input, Single

Gerrit

Operation, Single

Gerrit

Operation, Multiple Data.

Gerrit

Also ich mache... Single Input,

Gerrit

7D, irgendwas. Genau, also

Gerrit

das Konzept ist auf jeden Fall

Gerrit

klar. Der Begriff ist nicht der

Gerrit

übliche wahrscheinlich, aber

Gerrit

alle, die es kennen, wissen, worum es geht.

Gerrit

Also ich habe einen Datensatz

Gerrit

und ich mache damit

Gerrit

5000 Mal das Gleiche.

Gerrit

wenn ich jetzt 5000 Elemente in meinem Datensatz habe.

Gerrit

Oder der Datensatz

Gerrit

wäre halt ein Array.

Gerrit

Das ist ein Problem, was in vielen, vielen

Gerrit

Simulationen auftaucht und das ist auch alles schön und gut.

Gerrit

Und das kann man

Gerrit

dann natürlich effizient mit solchen Sachen wie

Gerrit

NumPy gut lösen. Also nicht 100%

Gerrit

effizient, aber schon sehr nah dran.

Gerrit

Da ich dann eben,

Gerrit

wenn ich mit NumPy zwei Arrays addiere,

Gerrit

funktioniert es eben so, dass

Gerrit

der sagt, okay, ich erkenne, das ist jetzt eine Addition

Gerrit

und dann geht er jetzt nicht für jedes einzelne Element

Gerrit

dieses Arrays hin oder diese paarweisen

Gerrit

Arrays und

Gerrit

überlegt sich, oh, guck mal, was ist das

Gerrit

für ein Objekt? Ist das eine Zahl?

Gerrit

Aha, eine Zahl kann ich jetzt multiplizieren

Gerrit

mit einer Zahl. Was passiert denn da? Ah, da kommt wieder

Gerrit

eine Zahl raus. Und unter der Haube

Gerrit

findet dann die tatsächliche Multiplikation statt.

Gerrit

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

Gerrit

Sondern

Gerrit

der sagt, okay, ah, das ist ein Array.

Gerrit

Das ist aus Zahlen. Das ist noch ein Array aus Zahlen.

Gerrit

Und jetzt gehe ich mal

Gerrit

unter der Haube hin, lasse eine effiziente

Gerrit

Schleife da durchlaufen, die in C oder was

Gerrit

auch immer geschrieben ist, multipliziert die

Gerrit

alle elementweise miteinander oder addiert sie

Gerrit

elementweise miteinander und da kriege ich das Ergebnis.

Gerrit

Und das ist schnell. Und

Gerrit

wenn ich jetzt mein Problem ausschließlich

Gerrit

aus solchen Operationen beschreiben kann,

Gerrit

dann kann ich das auch

Gerrit

schnell mit NumPy und Python

Gerrit

lösen, ohne dass ich da irgendwie selbst

Gerrit

in C programmieren muss oder so.

Gerrit

Ja, ich glaube, also

Jochen

ich weiß jetzt auch nicht, ob ich mich da ganz

Jochen

komplett korrekt dran erinnere, aber ich meine,

Jochen

ich glaube, der Witz bei dem Vektorisieren ist eigentlich, dass man

Jochen

man hat ja mehrere Register irgendwie

Jochen

und dann kann man das halt sozusagen in gewisser Weise

Jochen

parallelisieren,

Jochen

diese Addition oder Multiplikation von

Jochen

Arrays, indem man das halt in

Jochen

so viele Teile zeigt und das dann halt alles irgendwie gleichzeitig

Jochen

macht. Oder diese Dinger sind irgendwie

Jochen

oder man kann mehrere Dinger in einen Register packen.

Gerrit

Ja, das ist noch ein

Gerrit

Vorteil bei Grafikkarten und irgendwie könnte ich das dann

Gerrit

tatsächlich parallelisieren. Stimmt.

Gerrit

Also gerade dieses Rechnen auf

Gerrit

Grafikkarten, wenn man das immer, was man

Gerrit

immer wieder hört, das ist genau solche Sachen,

Gerrit

wo man eben mehrfach die gleiche Operation rechnet.

Gerrit

Aber das ist auch schon eine Sache,

Gerrit

die, wenn ich jetzt mit reinem Python arbeiten möchte

Gerrit

oder nicht irgendwas Neues programmieren möchte in Python,

Gerrit

mir mein Leben deutlich einfacher mache,

Gerrit

wenn ich sowas benutze wie NumPy.

Gerrit

Denn das Hauptkonzept von NumPy ist eigentlich,

Gerrit

wir haben vektorisierbare Operationen

Gerrit

und stellen sie dem Python-Nutzer zur Verfügung,

Gerrit

ohne dass der sich darüber kümmern muss.

Gerrit

Also wir stellen sie zur Verfügung,

Gerrit

wir stellen sie in effizienter Form zur Verfügung,

Gerrit

ohne dass der Nutzer sich darum kümmern muss,

Gerrit

da irgendwie in C, Fortran oder

Gerrit

was auch immer von niedrigeren Sprachen das

Gerrit

zu machen.

Gerrit

Ja, ich glaube

Jochen

auch, ich habe mal gehört, dass das halt irgendwie der

Jochen

Grund ist, warum Fortran immer noch so eine große Rolle

Jochen

spielt, weil bei

Jochen

Fortran diese Geschichten halt

Jochen

die Schleifen, glaube ich, auch automatisch

Jochen

vektorisierbar sind, bei C halt nicht. Und das ist halt

Jochen

ein Problem, also man muss es dem Compiler halt sagen,

Jochen

weil man da so Seiteneffekte

Jochen

haben kann, dass das Ergebnis

Jochen

der, eine Addition von

Jochen

zum Beispiel zwei Vektoren kann halt wieder

Jochen

irgendwie Einfluss nehmen auf was davor

Jochen

und es ist halt

Jochen

ja, sozusagen nicht garantiert,

Jochen

dass man das halt

Jochen

vektorisieren kann oder dass man es irgendwie parallelisieren kann,

Jochen

sondern es kann halt an einem

Jochen

die Programmlogik kaputt machen, wenn man das halt nicht

Jochen

weiß, dass das geht und in Vortragen geht das

Jochen

halt nur so und daher, aber ja, keine Ahnung.

Gerrit

Also mittlerweile stimmt das glaube ich nicht mehr,

Gerrit

oder nicht mittlerweile, ich glaube seit 15,

Gerrit

20 Jahren. Oh, das kann sein.

Gerrit

Gibt es in C das... Man kann dem

Jochen

Compiler sagen. Restrict Keyword?

Jochen

Ich hoffe, ich mache es jetzt richtig.

Gerrit

muss ich wahrscheinlich schämen, dass ich das nicht kenne, was eben genau

Gerrit

das sagt, okay, also das klassische Problem

Gerrit

ist ja, wenn ich

Gerrit

oder um das, was du vorhin beschrieben hast, nochmal

Gerrit

in anderen Worten zu beschreiben, dass

Gerrit

der Compiler nicht weiß, wenn ich

Gerrit

A und B addiere,

Gerrit

dass eventuell

Gerrit

das B, was ich da addiere, vorher

Gerrit

schon in einem vorigen Durchlauf

Gerrit

anders beschrieben wurde, an einem vorigen

Gerrit

Element der eigentlichen Schleife, also ich habe irgendwie

Gerrit

mein, nehmen wir wieder Vektoren,

Gerrit

es könnte sein, dass ich die erste Komponente zur ersten Komponente addiere

Gerrit

und dann kriege ich eine Komponente raus. Es könnte aber sein, dass ich das

Gerrit

in die zweite Komponente des Vektors

Gerrit

schreibe und das auch tatsächlich möchte, warum auch immer.

Gerrit

Wenn ich C programmieren möchte, ist das anscheinend.

Gerrit

Und

Gerrit

der Compiler geht davon aus, dass er das nicht weiß und

Gerrit

dass er sich das möchte und deswegen optimiert er es nicht weg.

Gerrit

Wenn ich jetzt aber sage,

Gerrit

dieses Array ist restricted oder

Gerrit

restrict, dann

Gerrit

passiert das nicht.

Gerrit

Also man kann das mittlerweile in C lösen.

Gerrit

Ja, genau, natürlich.

Gerrit

Aber das ist auch wieder eine Wissenschaft für

Gerrit

sich, wie man das dann genau

Gerrit

was man alles optimieren kann und wenn man es richtig schnell

Gerrit

haben will, dann muss man sowieso ein Assembly schreiben

Gerrit

und

Gerrit

immer mit GoTo-Schleifen immer hin und her springen.

Gerrit

Ja, aber

Gerrit

Assembly doch.

Gerrit

Nee, Assembly ist glaube ich noch schlimmer,

Gerrit

da gibt es keine GoTo-Schleife, da gibt es

Dominik

Ja, da springst du zur Adresse oder sowas.

Dominik

Genau.

Dominik

Ja.

Dominik

Also auf jeden Fall,

Dominik

das ist ein,

Gerrit

Ja, also auf die Weise kann man dann Python in vielen Sachen

Gerrit

nutzen und jetzt

Gerrit

wieder gesagt, die schamlose Überleitung, nächster Versuch

Gerrit

zu meinen eigentlichen Sachen, die ich gemacht

Gerrit

habe.

Gerrit

Oder zu Sachen, die ich selbst gemacht habe, ist, dass

Gerrit

es in vielen solchen Simulationssachen

Gerrit

das Problem ist,

Gerrit

dass man es eben nicht vektorisierbar

Gerrit

machen kann. Also, was

Gerrit

in meiner vorigen Arbeit

Gerrit

sehr häufig aufgetaucht ist, ist zum Beispiel, dass

Gerrit

wir uns komplizierte Netzwerke von

Gerrit

man kann sich jetzt Neuronen vorstellen

Gerrit

angeguckt haben, die irgendwie miteinander

Gerrit

verknüpft sind und dann

Gerrit

hat man das Problem, dass die Verbindungen

Gerrit

zwischen diesen Knoten zufällig sind und dann

Gerrit

ab dem Punkt kann ich es nicht mehr sinnvoll vektorisieren.

Gerrit

Oder man kann sich

Gerrit

auch vorstellen, man hat komplexe

Gerrit

metabolische Modelle, wie irgendwelche

Gerrit

Spezies irgendwelche Stoffe in

Gerrit

andere Stoffe überführen und so weiter und das ist

Gerrit

eben auch komplex und

Gerrit

nicht vektorisierbar in vielen Fällen und das

Gerrit

muss man dann,

Gerrit

möchte man natürlich auch irgendwie effizient

Gerrit

haben und das Interessante ist, nebenbei

Gerrit

ist auch

Gerrit

viele Leute haben sich vorher immer

Gerrit

die vektorisierbaren Fälle angeguckt,

Gerrit

weil sie ja so schön einfach anzugucken

Gerrit

sind, weil man sie ja schön einfach

Gerrit

programmieren kann und viele

Gerrit

Phänomene zeigen sich eben erst, wenn es nicht vektorisierbar

Gerrit

ist oder wenn eben diese interessanten Fälle passieren

Gerrit

und da habe ich dann eine Software

Gerrit

geschrieben, die gerade das

Gerrit

für den Nutzer macht, dass man

Gerrit

irgendwelche komplizierten Gleichungen hinschreiben

Gerrit

kann, die das System beschreiben und die werden

Gerrit

dann für den Nutzer unter der Haube kompiliert,

Gerrit

nicht vektorisiert

Gerrit

und, oder nicht vektorisierbar und

Gerrit

trotzdem schnell in Python.

Gerrit

Ja, das

Gerrit

kam irgendwie...

Dominik

Wo gibt es das zu finden? Oder ist das alles

Gerrit

private? Das gibt es zu finden,

Gerrit

das ist schöne, freie Software. Ich habe sie,

Gerrit

also es ist eigentlich drei

Gerrit

Software. Das erste ist JIT-Code,

Gerrit

das steht für Just-in-Time-Compilation

Gerrit

for Ordinary Differential Equations.

Gerrit

Also Ordinary Differential Equations

Gerrit

sind gewöhnliche Differenzialgleichungen. Just-in-Time-Compilation

Gerrit

sagt eventuell dem neigten Hörer was.

Gerrit

Das ist dieser Aspekt, dass

Gerrit

man irgendeine Eingabe

Gerrit

hat und die wird dann unter der Haube für den Nutzer

Gerrit

kompiliert. Und das

Gerrit

gibt es dann auch mal für sogenannte Delay-Differential

Gerrit

Equations und Stochastic-Differential

Gerrit

Equations, aber ich glaube, das ist

Gerrit

ein Detail, auf den wir jetzt nicht rumreiten müssen.

Gerrit

Ja, und

Gerrit

das ist ein Werkzeug, was dann

Gerrit

sich herausgestellt hat,

Gerrit

gut, ich habe es, als ich

Gerrit

das gemacht habe, konnte ich das natürlich schon irgendwo absehen,

Gerrit

dass das für viele Leute sehr nützlich ist.

Gerrit

Insbesondere, da wir uns damals

Gerrit

auch in der Forschung damit beschäftigt haben,

Gerrit

genau solche Probleme zu lösen.

Gerrit

Und

Gerrit

ja, eine Sache, die vielleicht auch noch

Gerrit

interessant ist, also man kann jetzt natürlich sagen,

Gerrit

der Nutzer gibt mir irgendwelche Gleichungen und die werden

Gerrit

umgesetzt. Das ist in Python

Gerrit

auch mit

Gerrit

SymPy, also das ist jetzt Symbolic Python,

Gerrit

das wird jetzt wahrscheinlich noch ein Exkurs,

Gerrit

eine schöne Möglichkeit gibt es, die Gleichung

Gerrit

einzugeben. Also SymPy macht

Dominik

was denn? Also das ist jetzt wieder tatsächlich spannend, was

Dominik

für die Heure, die das noch nie gehört haben?

Gerrit

Also normales Rechnen

Gerrit

im Computer macht man ja klassischerweise mit Zahlen.

Gerrit

Eins plus zwei

Gerrit

ist drei, genau. Aber

Gerrit

SymPy rechnet mit

Gerrit

Symbolen, also ganz abstrakten

Gerrit

Objekten wie X. Und das

Gerrit

Schöne an SymPy ist, dass es,

Gerrit

oder auch generell an symbolischen Rechnen, das hat jetzt

Gerrit

SymPy nicht erfunden,

Gerrit

aber das Schöne ist, dass es

Gerrit

dann exakt gewisse Sachen lösen kann.

Gerrit

Zum Beispiel, wenn man sagt X plus X,

Gerrit

steht da nicht X plus X, sondern

Gerrit

da steht da 2x. Oder wenn man sagt

Gerrit

x minus x, dann steht da

Gerrit

nicht 10 hoch minus 16 oder so,

Gerrit

sondern 0.

Gerrit

Und das ist dann auch exakt 0.

Gerrit

Und

Gerrit

ja, es hat sich herausgestellt, dass

Gerrit

diese Library gibt es und die hat auch direkt

Gerrit

Interfaces, um Sachen in

Gerrit

C-Code zu übersetzen, wenn man wirklich Sachen schnell

Gerrit

machen muss, was genau das ist, was ich brauchte.

Gerrit

Und sie

Gerrit

kann auch viele Sachen, die ihnen jetzt noch

Gerrit

für mich wichtig waren, automatisieren,

Gerrit

solche Ausdrücke analysieren, welche Symbole

Gerrit

tauchen da eigentlich auf. Damit

Gerrit

rechnen natürlich und eventuell sogar

Gerrit

Gleichungen lösen, wobei das eine Sache ist, die ich

Gerrit

interessanterweise kaum mache.

Gerrit

Auch wenn man sich irgendwie viele Leute vorstellt, dass das

Gerrit

wichtigste ist, wenn man so ein symbolisches Rechnen

Gerrit

hat, dass man tatsächlich...

Gerrit

Ja, genau. Man kann irgendwelche komplizierten

Gerrit

Gleichungen lösen. Ja, kann man.

Gerrit

Aber man kann es auch als Werkzeug nutzen, um

Gerrit

ganz stumpfe

Gerrit

Routineaufgaben durchzurechnen

Gerrit

und

Gerrit

es einfach als Eingabemaske zu nutzen

Gerrit

oder einfach

Gerrit

auch solche Ausdrücke zu analysieren und zu gucken,

Gerrit

okay, ja, welche Variablen tauchen denn eigentlich

Gerrit

auf? Also nichts, was ein Mensch nicht auch

Gerrit

könnte, aber eben automatisiert.

Gerrit

Kann man die auch, ich meine, wenn man das,

Jochen

wenn es eine gute Methode gibt, die anzugeben, ich, das ist auch

Jochen

vielleicht ein bisschen, kann man

Jochen

dann auch irgendwie sowas sagen wie

Jochen

printe mal das nett raus oder

Jochen

latech dafür oder so,

Jochen

das wäre natürlich auch, weil das

Jochen

mache ich nämlich sonst immer total mühselig von Hand

Jochen

und muss mir den Syntax zusammenklauben irgendwoher.

Jochen

Nee, ich weiß nicht, ob ich sowas sagen würde,

Dominik

der x plus x gleich x Quadrat

Dominik

oder sowas, dass man

Dominik

dann tatsächlich einen LaTeX-Direktor irgendwie kriegt?

Gerrit

Ja, der hat einen LaTeX-Printer.

Gerrit

Ich habe

Gerrit

damit noch nicht viel gearbeitet, insofern kann ich dazu nicht so viel

Gerrit

sagen. Also existiert definitiv.

Gerrit

Was man halt aufpassen muss, ist

Gerrit

die Frage, ob man das dann wirklich

Gerrit

so dem geneigten Leser

Gerrit

verkaufen möchte, wie es da ausgegeben wird.

Gerrit

Die Sachen sind halt so sortiert,

Gerrit

wie Sympa das gerade für richtig hält.

Gerrit

Also man kann das

Gerrit

wahrscheinlich modifizieren, aber dann

Gerrit

macht man sich mehr Arbeit, als es selbst zu schreiben.

Gerrit

Aber auch solche Sachen

Gerrit

gehen ja. Man kann es auch ausgeben, wenn man

Gerrit

unbedingt möchte.

Gerrit

Aber was natürlich so die Sachen sind, die in vielen

Gerrit

Anwendungen gar nicht auftauchen.

Gerrit

In dem Zusammenhang von diesem

Dominik

Gleichung, da würde ich mich irgendwann mal über so ein Programm

Dominik

beschauen, das heißt irgendwie LP-Solver oder so was?

Dominik

Linear Programming oder so was?

Dominik

Achso, ja, lineare Optimierung.

Dominik

Da gibt es einige

Dominik

Software zum...

Dominik

Aber ich glaube, ich meine, da bin ich jetzt

Gerrit

wenig der Experte, ich glaube, das ist dann wieder ein Fall, wo es

Gerrit

numerisch gelöst wird, also mit Zahlen.

Gerrit

Das Interessante hier ist, dass wir wirklich mit

Gerrit

abstrakten Symbolen rechnen. Das ist ein bisschen was anderes.

Gerrit

Also natürlich, ja.

Gerrit

Okay, ja, vielleicht könnte man

Gerrit

das dann kombinieren oder sowas.

Jochen

Ich weiß nicht, ich glaube, das Standardpaket

Jochen

so für so konvexe Optimierung ist CVX-Opt

Jochen

oder so, damit habe ich schon mal

Jochen

ein bisschen was gemacht.

Jochen

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

Jochen

Also, aber ich glaube, das ist

Jochen

nochmal eine andere

Jochen

Richtung wahrscheinlich,

Jochen

obwohl das auch wahrscheinlich alles in dem Scientific

Jochen

Umfeld irgendwie so

Jochen

existiert.

Gerrit

Es gibt sehr viele Standardprobleme mit sehr vielen Lösungen dafür

Gerrit

und schon allein die ganzen Probleme alle mit Namen

Gerrit

hinzuführen, da ist man dann eine ganze

Gerrit

Karriere mit beschäftigt.

Gerrit

Ich weiß nicht, ob das

Jochen

bei dir noch eine Rolle spielt, aber ich habe da so mal früher,

Jochen

da gab es irgendwie sowas wie Sage oder so,

Jochen

das war so eine Distribution von ganz vielen Dingen.

Jochen

Ob das das 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

Gerrit

Sage? Ich kann sowas, also das ist,

Gerrit

es ist sehr komisch.

Gerrit

Es ist weitestgehend Python

Gerrit

und

Gerrit

ist speziell dafür gemacht, so ein Ersatz

Gerrit

für so Sachen wie, ja,

Gerrit

ich glaube, Mathematiker hauptsächlich.

Gerrit

Mathematik und so weiter zu sein. Es ist

Gerrit

ein großer Klotz, den man

Gerrit

sich kompilieren oder runterladen

Gerrit

muss. Der ist dann

Gerrit

600 Megabyte groß oder so

Gerrit

und funktioniert weitestgehend

Gerrit

wie Python, aber nicht

Gerrit

ganz. Also es gibt so

Gerrit

eigenwillige

Gerrit

Modifikationen, sage ich mal,

Gerrit

die dazu dienen, das ansprechender zu machen.

Gerrit

Ob das jetzt gut ist oder nicht,

Gerrit

sei dahingestellt. Also zum Beispiel ist

Gerrit

das, der Zirkum-Flex-Operator

Gerrit

Potenzierung macht, statt

Gerrit

Sternchen, Sternchen. Also Sternchen, Sternchen macht auch noch

Gerrit

Potenzierung, aber man kann es jetzt auch

Jochen

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

Jochen

Also solche

Gerrit

Änderungen sind da drin. Es sind viele Sachen automatisch

Gerrit

geladen als Pakete.

Gerrit

Ähm, in so einem Standard-Namensraum, 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 Standard-Namensraum eben nicht mit 10.000 Dingen vollgemüllt hat und die nicht einfach aus Versehen überschreiben kann und, ähm, weiß, wo die Dinge kommen, ähm, äh, wurden dann wieder zu nicht gemacht.

Gerrit

warum man jetzt den

Gerrit

Zirkum-Flex-Operator unbedingt brauchte,

Gerrit

dafür, ja, ob das so

Gerrit

wichtig ist, gut, ja.

Gerrit

Weiß ich nicht. Also ich habe damit

Gerrit

gearbeitet, es kann ein bisschen

Gerrit

mehr, oder konnte zu dem Zeitpunkt ein bisschen mehr als

Gerrit

simpel, andererseits eben

Gerrit

Sachen Gleichung lösen.

Gerrit

Was wie gesagt die Sache ist, die ich nicht mache, auch wenn

Gerrit

sie irgendwie alle warten, sondern ich nutze es wirklich eben

Gerrit

um Gleichung zu verarbeiten und damit

Gerrit

einfache Sachen zu machen. Deswegen habe ich das

Gerrit

letzten Endes nicht gebraucht.

Gerrit

Und es ist wie gesagt dieser

Gerrit

große monolithische Klotz, den man dann immer

Gerrit

auch komplett updaten muss oder wo man

Gerrit

ja, es war nicht sehr

Gerrit

handhabbar,

Gerrit

aber nicht schön, fand ich.

Gerrit

Aber noch ein kurzer Rückbezug, ist super zum

Gerrit

Code-Golfen, wie gesagt, alles wird in die,

Gerrit

viele Dinge sind im Standard-Namensraum,

Gerrit

das heißt, eine Lösung, ein Python-Programm

Gerrit

kompakter zu machen in Code-Golfen

Gerrit

ist dann, mach es in Sage.

Gerrit

Auch nicht schlecht, ja.

Gerrit

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

Gerrit

Ja,

Jochen

Interessant. Also okay, aber SymPy scheint auf jeden Fall dann, wenn man irgendwie so Gleichungen symbolisch verarbeiten möchte, dann halt so das Mittel der Wahl zu sein. Was gibt es denn noch an Bibliotheken oder Software, die so regelmäßig benutzt werden und da eine wichtige Rolle spielen?

Gerrit

Also ich glaube, NumPy ist

Gerrit

klar, SciPy ist,

Gerrit

stellt einem

Gerrit

viele Simulations und Statistik

Gerrit

und sonst was Tools zur Verfügung.

Gerrit

Nutze ich zum Beispiel auch unter der Haube, um

Gerrit

gewöhnliche Differenzialgleichungen zu integrieren.

Gerrit

Für andere Differenzialgleichungen dann nicht mehr, weil das

Gerrit

komplizierter ist. Da habe ich dann meine eigenen

Gerrit

Integratoren implementiert.

Gerrit

Ja, dann, gut,

Gerrit

es gibt viele Sachen für Datenfahr,

Gerrit

also um wirklich

Gerrit

große Datenmengen und vor allem Daten zu verwalten,

Gerrit

Ich glaube, ihr hattet schon mal eine Folge zu Pandas, insofern werde ich davon nicht so viel erzählen. Kann ich auch gar nicht, weil ich es in der Regel nicht so viel mit Daten zu tun habe, aber 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 und da ist eben das Schöne an Python, denke ich, dass es relativ einfach ist, erstmal irgendwas, 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 zusammen zu nutzen, weil man am Ende eine vollwertige Programmiersprache dahinter hat.

Gerrit

Was immer 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, 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 oder was auch immer.

Gerrit

ja, man kann halt auch

Gerrit

immer, also ich glaube, der Vorteil ist eher

Gerrit

nicht, also weniger, dass man solche

Gerrit

Sachen wie Web-Server oder so weiter nutzen kann, sondern

Gerrit

dass man sagen kann, das hier ist eine universelle

Gerrit

Programmiersprache, die lernen wir jetzt mal bitte alle

Gerrit

und dann können wir dann

Gerrit

machen, was wir wollen und wenn man allgemeine

Gerrit

Programmierkonzepte nutzt, kann man

Gerrit

sie verwenden, ob man jetzt, also muss jetzt gar nicht

Gerrit

in Python sein, aber wenn man

Gerrit

sowas wie objektorientiertes Programmieren einmal

Gerrit

verstanden hat, kann man das dann eben

Gerrit

für Simulationen nutzen oder oder oder.

Dominik

Was ist so die häufigste andere Sprache, die du findest

Dominik

in deinem wissenschaftlichen Umfeld, mit der du

Dominik

dann auch arbeiten wollen würdest oder sagst,

Dominik

das gehört auch dazu? Also arbeiten wollen würden,

Gerrit

das ist ja dahingestellt, ich musste

Gerrit

sage ich mal

Gerrit

einen Kurs

Gerrit

Datenanalyse in MATLAB für Biologen unterrichten.

Gerrit

Das heißt,

Gerrit

ja, das ist so die andere Programmiersprache, mit der

Gerrit

ich viel zu tun hatte. Ich habe es aber

Gerrit

geschafft, das weitestgehend

Gerrit

MATLAB nie anzurühren dazu für. Also es

Gerrit

gibt ja eine freie Alternative namens Octave,

Gerrit

das macht sich mal so für freundefreier Software etwas erträglicher aus,

Gerrit

dem musste ich mich da nicht irgendwie rumschlagen, das zu installieren.

Gerrit

Und ja, ich habe es tatsächlich weitestgehend geschafft,

Gerrit

diesen Kurs zu lehren, ohne das jemals anzurühren.

Gerrit

Und ja, also ich würde auch mit dieser Programmiersprache nicht arbeiten,

Gerrit

weil es gibt Sachen, das Schöne ist,

Gerrit

ich habe es irgendwie so dann zwei Monate vor dem Kurs mich hingesetzt

Gerrit

und das gelernt und wirklich jede Sache, wo ich denke,

Gerrit

okay, wer hat sich das ausgedacht,

Gerrit

das kann doch nur zu tausenden von Fehlern

Gerrit

und sonst was Problemen führen.

Gerrit

Wird da auch zu tausenden von Fehlern und Problemen los?

Gerrit

Ja, flog mir dann die Ohren, ja.

Gerrit

Es passt wirklich zum Teil, wie die Voraussetzung war.

Gerrit

Ich habe ja auch, ja gut, das kann man jetzt wieder nicht vorführen,

Gerrit

aber so ein Beispiel, wo man an einer Stelle,

Gerrit

ich hoffe, ich erzähle jetzt doch noch mal ein bisschen.

Gerrit

Matap hat die großartige Idee gehabt,

Gerrit

dass man das Leerzeichen als Elementtrennungsoperator

Gerrit

in Arrays nutzt.

Gerrit

Ja, ja, ja.

Gerrit

Nämlich, da war doch was.

Gerrit

Genau, also statt Kommata wie in Python.

Gerrit

Und man kann auch Kommata nutzen, man kann auch Semikola nutzen,

Gerrit

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,

Gerrit

was steht für Array?

Gerrit

Okay, soweit so erwartet.

Gerrit

Fünf Leerzeichen plus Leerzeichen drei, dann ist das natürlich acht.

Gerrit

Wenn ich aber eintippe fünf Leerzeichen plus kein Leerzeichen,

Gerrit

Achtung, drei, ist das natürlich das Array, was fünf und drei enthält.

Gerrit

war das Leerzeichen, ja, der

Gerrit

plus 3.

Jochen

Und das Plus gehört dann halt zu der Zahl

Jochen

und sagt einfach nur, das ist jetzt plus 5 und nicht minus.

Gerrit

Genau, ja. Und das

Gerrit

hört sich so noch

Gerrit

okay, kann man noch verstehen. Das Problem ist, wenn jetzt

Gerrit

die Arrays etwas größer und komplizierter werden und da komplizierte

Gerrit

Ausdrücke drinstehen, was manchmal tatsächlich der Fall ist,

Gerrit

dann kann einem

Gerrit

die Formatierung dieses Arrays dann die Probleme

Gerrit

machen. Also, ja.

Gerrit

Das war der Fehler, wo wir wirklich eine halbe Stunde gesucht haben,

Gerrit

um zu verstehen, was da überhaupt passiert.

Gerrit

Ja, das habe ich mir gut verstanden.

Jochen

Man starrt da drauf und denkt sich so,

Jochen

ja.

Gerrit

Und die Sprache ist halt jetzt voll davon.

Gerrit

Das wurde halt in den

Gerrit

80er Jahren entwickelt,

Gerrit

oder so 1987, 86, keine Ahnung.

Gerrit

Und seitdem gefühlt

Gerrit

nicht mehr weiterentwickelt.

Gerrit

Und ja, so bedient es sich auch.

Dominik

Das erinnert mich so ein bisschen an Python, wenn du das Tupel

Dominik

machen übergeben willst, dass du dahinter noch ein Komma machen willst,

Dominik

weil da sonst kein Tupel macht, wenn du da einfach

Dominik

ein Element nur drin hast.

Gerrit

Ja, genau, das ist noch so,

Gerrit

ja, aber das passiert halt andauernd.

Gerrit

Ja, und da gibt es

Gerrit

so zwischendrin gibt es R, das ist schon ein bisschen

Gerrit

besser.

Gerrit

Also erstens ist es frei, zweitens

Gerrit

ist es nicht ganz so irrsinnig,

Gerrit

es hält sich so ein bisschen an Programmierstandards,

Gerrit

aber

Gerrit

ja, damit habe ich noch nicht so

Gerrit

viel zu tun gehabt. Und es gibt natürlich auch diverse

Gerrit

andere Sparen. Das ist jetzt relativ

Gerrit

ein Kombis für Simulationen oder

Gerrit

Sachen, die schnell laufen müssen, ist Julia,

Gerrit

wo ich dann mich

Gerrit

immer noch frage, okay, wieso brauchen

Gerrit

wir jetzt hier noch klammern, weil

Gerrit

die Python ja zum Beispiel abgeschafft hat

Gerrit

und insbesondere, dass ich eine Sprache ist, die sich

Gerrit

in vielen Fällen, so wie ich es verstanden habe, an Python

Gerrit

orientiert. Ja, aber

Gerrit

sehr viel mache ich zur Zeit in Python und wenn es dann

Gerrit

schnell gehen muss, mache ich es eigentlich in C.

Gerrit

Also das sind so die Sprachen, mit denen ich

Gerrit

direkt zu tun habe.

Jochen

Dann direkt tatsächlich als C-Extension

Jochen

oder nimmst du sowas wie Cytan

Jochen

und

Jochen

wandelst das dann halt um

Jochen

in C. Ich mache es tatsächlich

Gerrit

als C-Extension, weil ich es einmal gelernt habe und mich

Gerrit

auskenne. Zum einen und zum anderen

Gerrit

jetzt, um auf meine eigene Software zurückzukommen,

Gerrit

da ist ja wieder gerade das Problem,

Gerrit

dass ich es dann wirklich möglichst schnell haben möchte

Gerrit

und wenn ich den Nutzer dann

Gerrit

Siphon-Code eingeben lasse, habe ich

Gerrit

nicht so viel gewonnen.

Gerrit

Ja, klar. Dann kann ich auch direkt

Gerrit

C-Code machen und dann kann ich auch noch viele Sachen nutzen,

Gerrit

die eben so

Gerrit

in Siphon nicht drin sind.

Gerrit

Also doppelt verlinkte Listen

Gerrit

oder so, glaube ich, würden

Gerrit

Siphon nicht funktionieren.

Gerrit

Also, dann mache ich es schon

Gerrit

einmal Hardcore und kann

Gerrit

dann wenigstens die Sachen, die wirklich

Gerrit

schnell sein müssen, auch radikal

Gerrit

optimieren.

Gerrit

Du sitzt dann am liebsten mit der

Gerrit

Stoppuhr, timet und dann

Gerrit

guckst du dir das dann wirklich an?

Gerrit

Ja, also in einigen Fällen wirklich ja,

Gerrit

zum anderen bilde ich

Gerrit

mir ein, ein bisschen Erfahrung zu haben,

Gerrit

wie man Dinge schnell macht. Also

Gerrit

in vielen Fällen schreibe

Gerrit

ich die Dinge dann hoffentlich auch direkt so, dass sie schnell sind.

Gerrit

Also hintereinander direkt in den Speicher,

Dominik

dass ein Zeiger nicht so schnell oder so viel hin- und herspringen

Dominik

muss oder was es dann so ist. Ja, okay,

Gerrit

auf der Ebene bin ich noch nicht, aber dass man sich halt schon mal

Gerrit

überlegt,

Gerrit

ja, dass das könnte ich

Gerrit

jetzt,

Gerrit

dass man eben hier

Gerrit

diese gewisse Schleifen gar nicht braucht oder

Gerrit

ja,

Gerrit

mit Zeiger-Arithmetik arbeitet oder eben

Gerrit

sich überlegt, okay, jetzt habe ich hier noch einen Funktionsaufruf

Gerrit

und das kostet Zeit und

Gerrit

wie kann ich das

Gerrit

vermeiden oder wie kann ich hier die Suche,

Gerrit

also irgendwelche Suchoperationen, ja.

Dominik

Okay, okay, das hört sich tatsächlich an, als wärt ihr tatsächlich

Dominik

von der schwachen Hardware, die ihr noch zur Verfügung

Dominik

stellt, in den Forschungsinstitutionen

Dominik

so ein bisschen abhängig. Aber ich dachte, die wären eigentlich

Dominik

schon weiter.

Dominik

Abhängig von dieser Komplexität,

Dominik

dieser unheimlich großen Berechnungen.

Gerrit

Naja, also die Hardware kann

Gerrit

ja nur so viel leisten.

Gerrit

Also erstmal, wenn ich ja durch die,

Gerrit

in vielen Fällen gehe ich, indem ich von

Gerrit

Python auf C gehe, hole ich

Gerrit

einen Faktor von 1000 oder so raus.

Gerrit

Bei mir.

Gerrit

Ja, da

Gerrit

will ich jetzt nicht mehr mit der...

Gerrit

Das klingt jetzt ziemlich viel.

Gerrit

Natürlich, also ich könnte das in Python

Gerrit

wahrscheinlich auch noch, wenn ich mich wirklich, wirklich stark

Gerrit

hinsetze, besser machen, dass es

Gerrit

nur noch ein Faktor 100 ist, aber

Gerrit

gerade solche Probleme habe ich eben.

Gerrit

Das muss man ja auch. Also

Gerrit

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

Gerrit

jetzt schon meine exotischen Spezialprobleme,

Gerrit

die ich und vielleicht noch

Gerrit

ein paar kleinere Communities auf der Welt

Gerrit

haben,

Gerrit

wo das wirklich einen riesen Unterschied macht

Gerrit

und wo ich dann eben auch Software geschrieben habe, die

Gerrit

diesen Unterschied dann wegmacht, aber

Gerrit

für Python-Nutzer rausholt.

Gerrit

Die...

Gerrit

So, jetzt war ich...

Gerrit

Was war nochmal deine Frage?

Dominik

Ja, es geht so ein bisschen darum, also wie das dann hinterher

Dominik

aussieht, also warum du diese Geschwindigkeit

Dominik

dann über C rausholen musst, um das nicht

Dominik

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

Dominik

Großrechnung. Einfach mehr Hardware, ja.

Dominik

Genau, mehr Hardware draufschmeißen. Genau.

Gerrit

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

Gerrit

aber diese Hardware muss ja dann auch erstmal, also gerade wenn ich

Gerrit

einen Cluster habe, muss ich mich erstmal damit auseinandersetzen,

Gerrit

wie ich meine Sachen clusterfähig mache.

Gerrit

Und in vielen dieser Fälle ist es auch so, ich möchte das mal eben schnell laufen lassen, sofort das Ergebnis sehen und dann darauf basierend weiterdenken. Also ich habe viele Fälle, da habe ich eine Simulation, ich möchte jetzt verstehen, was passiert da, ich drehe an einem Parameter, ich möchte verstehen, was der Parameter macht und dann möchte ich sofort das Ergebnis sehen. Da hilft mir ein Großrechner nicht viel weiter, wenn ich das jetzt erstmal auf dem Großrechner lagen muss und so weiter und so fort.

Gerrit

Mhm.

Jochen

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

Gerrit

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

Gerrit

Viele Sachen, also gerade 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 die ersten Ergebnisse vom vorigen Zeitschritt.

Gerrit

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

Gerrit

Was ich natürlich machen kann, ist, ich kann diese ganzen Simulationen, die ich habe,

Gerrit

sage, okay, ich möchte jetzt 500 Simulationen laufen lassen, die kann ich dann parallelisieren.

Gerrit

Aber da bin ich natürlich aufgerufen, wenn es schneller geht,

Gerrit

weil wenn es schneller geht, kann ich eben 500 Simulationen laufen lassen statt nur 5.

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 100-fache da auch mit rausziehen kann,

Dominik

weil ich hätte irgendwie gedacht, dass man die Sachen in Python

Dominik

dann irgendwie mit Zeissen oder

Dominik

was, dann irgendwie trotzdem so hinbiegt,

Dominik

dass das bewerbsfähig ist.

Dominik

Ich weiß nicht, wenn man sich jetzt hinsetzt

Gerrit

und das mit Zeissen hinbiegt, dann hat man eventuell

Gerrit

Faktor 10.

Gerrit

Das hängt so ein bisschen vom Problem ab.

Gerrit

Also ich habe wirklich Probleme, da habe ich,

Gerrit

also was ich gemacht habe, ist,

Gerrit

ich schreibe immer erst die Sache komplett in Python.

Gerrit

Wenn ich meine eigenen Sachen baue,

Gerrit

mache ich mir einen

Gerrit

Kern aus Python, von dem

Gerrit

ich weiß, was er tut, der lesbar und

Gerrit

so weiter ist. Und

Gerrit

wo ich erstmal lerne,

Gerrit

den Algorithmus so ein bisschen zu optimieren und

Gerrit

wie speichere ich Dinge und so weiter und so fort.

Gerrit

Und dann gehe ich hin und schreibe das Ganze

Gerrit

nochmal neu in C.

Gerrit

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

Gerrit

Ich habe einfach meine zwei Kerne, ich bombardiere

Gerrit

die mit zufälligen Eingaben und gucke,

Gerrit

ob sie das gleiche tun.

Gerrit

Aber von dem,

Gerrit

davor habe ich halt dann auch einen guten Vergleich.

Gerrit

Weil ich habe das einmal in Python

Gerrit

geschrieben, genau dasselbe.

Gerrit

Vielleicht dann, ehrlicher gesagt, auch nicht

Gerrit

optimiert darauf, dass es besonders schnell ist,

Gerrit

sondern eben auch, dass es lesbar ist und vergleichbar und dass ich

Gerrit

verstehe, was es tut und dass es gut testbar

Gerrit

ist und so weiter und so fort.

Gerrit

Das muss ich dann schon eingestehen, aber es ist

Gerrit

trotzdem, je nach Aufgabenstellung wirklich,

Gerrit

sind es solche großen Faktoren.

Gerrit

Mit Cypher, ja,

Gerrit

wenn ich das jetzt in Cypher programmieren könnte

Gerrit

oder wollte oder meinen Nutzer

Gerrit

das vermuten würde,

Gerrit

dass er das in Cypher programmiert,

Gerrit

ja, okay, dann

Gerrit

wäre es vielleicht nur noch ein Faktor, keine Ahnung,

Gerrit

10, 5, was auch immer,

Gerrit

Aber dann geht natürlich auch sehr viel Programmierzeit

Gerrit

drauf.

Dominik

Wenn du jetzt sagst, so deine Nutzer, das heißt, du

Dominik

stellst tatsächlich so ein Programmierinterface bereit

Dominik

und deine Nutzer machen ihre

Dominik

Dateneingabe oder die Schnittstelle

Dominik

dafür noch komplett selber?

Gerrit

Also meine Nutzer sind Programmierer.

Gerrit

Das muss ich auch immer unterscheiden. Das ist immer sehr

Gerrit

lustig, wenn man dann auf diesem Python-Treffen

Gerrit

sitzt mit allen möglichen Leuten

Gerrit

und die aus dem Web-Bereich und so weiter

Gerrit

kommen und erstmal deren Nutzer natürlich keine

Gerrit

Programmierer sind und sich dann

Gerrit

Gedanken und man ganz andere Vorstellungen

Gerrit

wie man eine Fehlermeldung schmeißt.

Gerrit

Meinen Benutzer schmeiße ich einfach eine Fehlermeldung

Gerrit

und die können die dann hoffentlich auch lesen.

Gerrit

Naja, manchmal.

Gerrit

Also meine Nutzer sind Programmierer

Gerrit

und die brauchen jetzt kein grafisches Interface zum Glück.

Dominik

Du visualisierst dann auch gar nichts von den Lösungen irgendwie,

Dominik

sondern das schmeißt du dann irgendwo rein

Dominik

und dann kann man...

Gerrit

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

Gerrit

Das ist der Plotprogramm der Wahl oder was auch immer.

Gerrit

Gut, meistens ist da Matplotlib.

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 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 einer Insel, das kannst du auch übertragen oder könnte man übertragen auf andere Wissenschaften und andere Anwendungsfälle so ohne weiteres?

Dominik

oder ist das gar nicht möglich?

Gerrit

Ja, also so klein ist die Insel nicht.

Gerrit

Das Problem, gewöhnliche Differenzialgleichung

Gerrit

oder retardierte Differenzialgleichung

Gerrit

und so weiter und so fort zu lösen,

Gerrit

das betrifft schon eine gewisse Menge,

Gerrit

also schon nicht wenig Leute.

Gerrit

Also ich könnte jetzt,

Gerrit

es tut mir schwer, eine Zahl abzuschätzen,

Gerrit

wie viele Wissenschaftler und andere Leute

Gerrit

sich mit so einem Problem beschäftigen.

Gerrit

Wir stinken halt nicht an gegen die Leute,

Gerrit

die partielle Differenzialgleichung haben.

Gerrit

Das sind diese klassischen vektorisierbaren Fälle,

Gerrit

Was man so sieht, wenn Leute Wärmeleitungen

Gerrit

simulieren oder irgendwie

Gerrit

physikalische Verformung und solche Sachen.

Gerrit

Die machen alle Parzelle von Zahlgleichen.

Gerrit

Ja, also

Gerrit

die Insel ist nicht so klein,

Gerrit

aber sie ist, ja,

Gerrit

kleiner als vielleicht andere größere Inseln.

Gerrit

Was jetzt wahrscheinlich keine

Gerrit

sinnvolle Aussage ist.

Gerrit

Ja, also ich meine, gut,

Jochen

ich kenne jetzt vor allen Dingen halt

Jochen

den ganzen

Jochen

Data-Science-Bereich, da auch das

Jochen

das wissenschaftliche Umfeld. Da gibt es halt

Jochen

Differenzialgleichungen hat man da eigentlich nie so wirklich

Jochen

zu tun, auch nicht mit symbolischen. Da wird immer eher so,

Jochen

da packt man die große

Jochen

GPU aus und dann sucht man damit das

Gerrit

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

Gerrit

Ich habe Daten und ich will

Gerrit

sie verstehen. Bei Simulationen geht es darum,

Gerrit

ich habe eine Idee,

Gerrit

wie Sachen funktionieren. Ich möchte jetzt mal gucken, was eigentlich

Gerrit

passiert, wenn ich diese Idee in die Tat umsetze.

Gerrit

Ganz doof gesagt. Ich habe mein Modell und

Gerrit

jetzt lasse ich es mal laufen. Ja, aber da würde

Jochen

mich eigentlich auch mal interessieren, wie ist das denn?

Jochen

Wie kann man das denn dann verifizieren? Ich meine, woher

Jochen

weißt du, dass deine Simulation

Jochen

tatsächlich irgendwie das

Jochen

liefert, was

Jochen

du jetzt bekommen hättest, wenn du 500

Jochen

Gläser

Jochen

mit Nährflüssigkeit irgendwie

Jochen

auf den Fenster Sims gestellt hättest?

Gerrit

Das ist eine große Frage.

Gerrit

Da gibt es natürlich, also das ist

Gerrit

dann wirklich, dass man sagt, okay, wir machen jetzt mal den gleichen Fall

Gerrit

und lassen es laufen und vergleichen das wirklich

Gerrit

jetzt mit der Nährflüssigkeit.

Gerrit

Ich habe jetzt erstmal die Frage auf eine ganz

Gerrit

andere Weise verstanden, die vielleicht auch interessant ist,

Gerrit

nämlich, wie teste ich eigentlich solche Software?

Gerrit

Ich habe häufig

Gerrit

sehr komplexe Systeme.

Gerrit

Ich kann die natürlich mit einer anderen Software

Gerrit

laufen lassen, was ich auch nicht so möchte.

Gerrit

Und ja, dann theoretisch

Gerrit

zu bestimmen, was eigentlich rauskommt,

Gerrit

das war auch sehr spaßig.

Gerrit

Insbesondere ein Fall, den ich jetzt noch nicht so

Gerrit

angeschaut habe, sind dann stochastische Differenzialgleichen.

Gerrit

Das ist so, mehr oder weniger das Gleiche, ich packe noch

Gerrit

Zufall drauf.

Gerrit

Und dann muss man, ja,

Gerrit

dann gibt es ja noch nicht mal eine richtige Lösung.

Gerrit

Also jede Lösung, die ich prinzipiell kriegen könnte,

Gerrit

könnte, oder die ich sehe, könnte richtig sein

Gerrit

für den richtigen Zufall.

Gerrit

Ich kann nur sagen, okay, diese Lösung ist jetzt eher unwahrscheinlich

Gerrit

oder diese Lösung ist eher wahrscheinlich, aber

Gerrit

ich kann ja gar nicht mal

Gerrit

sagen, das ist eine falsche Lösung anhand einer Lösung.

Dominik

Du müsstest ja vor allem erstmal die Verteilung kennen

Dominik

deiner Zielfunktion, damit du weißt, ob das

Dominik

wahrscheinlich ist oder nicht. Genau, das, ja genau,

Gerrit

das heißt, ich kann einfach nur, ich kann nicht mal eine Aussage über

Gerrit

eine Lösung meiner Software machen, ich kann nur eine Aussage

Gerrit

über ein Ensemble von Lösungen, also tausend

Gerrit

Lösungen machen. Und ja,

Gerrit

das sind dann die sehr, sehr langlaufenden

Gerrit

Tests, wo ich erstmal tausend Lösungen berechne,

Gerrit

dann irgendwelche statistischen Verfahren darüber.

Dominik

Ja, aber ich finde, das ist das Interessanteste.

Dominik

Also jetzt von meinem Gusto her,

Dominik

wenn du so eine Verteilungswolke irgendwo hast,

Dominik

die nähert sich ja dann oder verdichtet sich ja dann

Dominik

an den Stellen, wo dann doch die meisten Experimente

Dominik

irgendwo in derselben Richtung ausgehen.

Dominik

Und da hättest du, finde ich, so die höchste Treffgenauigkeit,

Dominik

als wenn du jetzt einfach so ein simuliertes Modell hast

Dominik

und sagst, oh, da kommt jetzt was.

Dominik

Also ich verstehe jetzt ohne Statistik,

Dominik

bei so Simulationen gar nicht, was dabei rauskommt,

Dominik

also wie die Validität einzuschätzen wäre.

Dominik

Wenn du jetzt sagst, du machst jetzt den Test dazu, dann finde ich das

Gerrit

sehr spannend. Sorry, ich rede jetzt vom Software-Test.

Gerrit

Ja, aber ich meine, klar,

Dominik

das hängt ja irgendwie zusammen.

Dominik

Also der Software-Test,

Dominik

der muss ja zwar dann, klar, da muss das Programm

Dominik

funktionieren, weil sonst ist der Test ja Quatsch, aber

Dominik

der ist ja dann auch irgendwie die Basis

Dominik

Voraussetzung dafür, dass das Modell, was du

Dominik

dir ausgedacht hast, dann wenigstens gerade läuft.

Dominik

Ich bin mir nicht sicher,

Gerrit

ob ich das richtig verstanden habe. Also ja, natürlich muss

Gerrit

das, also einerseits

Gerrit

muss das Modell die Realität, oder am Ende wollen wir, dass

Gerrit

das Modell die Realität beschreibt, klar.

Gerrit

Aber die erste Schwierigkeit, ich habe jetzt

Gerrit

irgendwas programmiert, was mir

Gerrit

mein Modell löst, was es behauptet

Gerrit

und die Frage ist, macht es

Gerrit

wirklich die richtige Lösung?

Gerrit

Also einfach wirklich nur einen Software-Test schreiben.

Gerrit

Also einfach nur zu gucken, ich stecke das rein,

Gerrit

kommt das Richtige raus.

Jochen

Und das ist halt, wenn es stochastisch ist, ein bisschen blöd,

Jochen

weil dann kommt halt jedes Mal was anderes raus.

Jochen

Und es könnte alles richtig sein.

Gerrit

Das ist so wie ein Zufallszahn-Generat

Gerrit

testen, geht je nachdem noch, weil ich

Gerrit

einfach ganz viel, ganz schnelle Zufallszahlen

Gerrit

ziehe und dann weiß ich genau, okay, die müssen dann vielleicht gleich

Gerrit

verteilt sein oder so, aber

Gerrit

bei, ja, dem Problem

Gerrit

ist es dann eben nicht so einfach. Also letzten Endes

Gerrit

sind da ganze wissenschaftliche Arbeiten draus

Gerrit

entstanden, nur

Gerrit

auf die Frage, wie, also aus der Frage

Gerrit

heraus, wie teste ich das eigentlich richtig und

Gerrit

so eine Differenz, wo wir feststellen, okay,

Gerrit

die Theorie, die wir haben zu dem, was da rauskommen

Gerrit

muss, stimmt nicht mit dem überein, was da rauskommt

Gerrit

und können wir das... Entweder stimmt die Theorie

Gerrit

nicht oder das Modell ist falsch.

Gerrit

Ja, das ist wohl ein Fehler in der Experimentation.

Gerrit

Also am Ende haben wir festgestellt,

Gerrit

also erstens, ja,

Gerrit

die Theorie könnten wir erweitern, das haben wir auch gemacht

Gerrit

und da sind dann ganze Arbeiten und

Gerrit

Paper draus entstanden, das war gut.

Gerrit

Also Software testen ist was Gutes,

Gerrit

produziert wissenschaftliche Paper.

Gerrit

Die andere Sache ist, wir haben auf die Weise

Gerrit

tatsächlich Fehler im veröffentlichten

Gerrit

Algorithmus gefunden,

Gerrit

wo irgendwie in der großen Tabelle, die

Gerrit

diesen Algorithmus beschreibt, also solche Algorithmen

Gerrit

werden mit Tabellen beschrieben, ist leider so,

Gerrit

dann irgendwo ein Vorzeichenfehler war.

Gerrit

Den haben wir damit gefunden.

Gerrit

Also insofern, ja.

Gerrit

Und den hätten wir wahrscheinlich sonst auch nicht gefunden,

Gerrit

wenn wir uns diese Mühe nicht gemacht hätten.

Gerrit

Und dann hätten wir jetzt wahrscheinlich

Gerrit

eine ganze Menge fehlerhafter Rechnungen.

Gerrit

Und wüssten es nicht.

Gerrit

Wir auch.

Dominik

Wir würden alle für bare Münzen verkaufen,

Dominik

damit Geld verdienen und irgendwelchen großen Papern veröffentlichen.

Dominik

Alle Leute würden nicht zujubeln.

Dominik

Und irgendwann würde einer sagen so, hm.

Jochen

Ja, oder halt auch eben nie.

Jochen

Und das ist halt, dass es einem noch viel mehr Sorgen machen sollte.

Jochen

dass es eben einfach gar nicht schief geht,

Jochen

sondern die Leute einfach...

Gerrit

Das passiert in der Wissenschaft leider viel zu häufig.

Jochen

Ich denke auch, dass das oft passiert, ja.

Jochen

Die Erde ist vielleicht doch eine Scheibe.

Jochen

Man weiß es nicht so genau.

Gerrit

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

Gerrit

aber ja.

Gerrit

Naja, also so ein Paradigmenwechsel,

Gerrit

bevor die mal passieren,

Dominik

da muss ja so ein bisschen schon Arbeit passieren,

Dominik

muss sich irgendjemand aus dem Turm stellen

Dominik

und was runterschmeißen.

Jochen

Aber ihr verwendet auch ganz normal

Jochen

Pytest oder so zum Testen

Jochen

oder habt ihr da noch speziellere Kniffe,

Jochen

die man da benutzen muss,

Jochen

wo man das irgendwie in den Griff kriegen würde.

Gerrit

Also nee, als ich angefangen habe,

Gerrit

habe ich glaube ich sogar noch mit Unitest gearbeitet.

Gerrit

Schande über mein Haupt, ich weiß.

Dominik

Also wenn ihr jetzt gerade irgendwie lustig

Dominik

über Tests nochmal einsteigen wollt,

Dominik

dann können wir gleich gerne noch ein bisschen länger drüber reden,

Dominik

weil da sind noch einige Fragen eingetrudelt.

Dominik

Aber Entschuldigung, das ist vielleicht auch ein ganz anderes Thema.

Gerrit

Aber nee, also ich glaube die klassischen Software-Test-Tools,

Gerrit

das ist nicht so das Problem, die zu nutzen,

Gerrit

wenn man sie nutzen kann.

Gerrit

Das Problem ist eher die Frage, ich habe eben so

Gerrit

eine, sowas wie

Gerrit

eine stochastische Sache

Gerrit

und kann nur eine Aussage über das Ensemble

Gerrit

machen, wie mache ich das eigentlich?

Gerrit

Das ist dann eher eine wissenschaftliche Frage als eine

Gerrit

Softwarefrage oder

Gerrit

die Frage, eine Softwarelösung zu finden.

Dominik

Ja, du musst ein Stichproben ziehen und dann musst du gucken,

Dominik

ob die Stichproben irgendwie der erwarteten Verteilung

Dominik

sprechen, dann muss man wieder eine Fehlerwahrscheinlichkeit

Gerrit

rausholen. Ja, genau, aber das ist

Gerrit

nicht einfach, je nachdem, was man hat.

Gerrit

Die andere

Gerrit

Problematik, oder eine andere

Gerrit

Beispielproblematik, wenn wir gerade dabei sind,

Gerrit

ist sowas wie, ich habe ja gesagt, ich

Gerrit

habe eine symbolische Eingabe, ich übersetze das in C-Code.

Gerrit

Was ist jetzt eigentlich der richtige

Gerrit

C-Code? Also ich kann ja nicht einfach

Gerrit

sagen, okay, ich möchte genau diesen C-Code

Gerrit

haben, der ist dann richtig, sondern ich könnte

Gerrit

ja auch einfach mal, weiß ich was, A plus B oder B plus

Gerrit

A ist in der Stelle gleich.

Gerrit

In den allermeisten Fällen.

Gerrit

Wie entscheide ich, was da richtig

Gerrit

ist? Das kann ich eigentlich nur machen, indem ich

Gerrit

die Ausrechnung wieder vergleiche.

Gerrit

Ein solches Mädchen.

Gerrit

Also das heißt, die Equivalenz von deinen Experimenten

Gerrit

ist schon fraglich dann.

Dominik

Also wenn du die Experimente durchführst, dass sie halt

Dominik

gleich durchgeführt worden sind.

Gerrit

Ich meine nicht bei Experimenten, ich meine erst bei Simulationen.

Gerrit

Ist Simulation kein Experiment?

Gerrit

Also okay, Entschuldigung.

Gerrit

Begrifflich wahrscheinlich da gerade irgendwas verwechselt.

Gerrit

Ist auch etwas, was ich gerade eben Experiment genannt habe

Gerrit

oder als mathematisches Experiment beschrieben habe.

Gerrit

Ja, das könnte

Gerrit

fraglich sein, aber es geht jetzt erst darum, macht meine Software

Gerrit

das, was sie soll.

Gerrit

Also ich kann jetzt eben nicht hingehen und eine kleine

Gerrit

eine Einheit von einem Code

Gerrit

Produktion, also Code Drucker

Gerrit

oder wie die heißen, also einfach eine

Gerrit

Übersetzung von Symbolen in Code, die ich zum Beispiel

Gerrit

nutze, kann ich, ist es gar nicht so einfach

Gerrit

die zu testen, da ich eben keine

Gerrit

ganz klare Aussage habe, was da rauskommen

Gerrit

muss. Da ich eben nicht weiß, in welcher

Gerrit

Reihenfolge zum Beispiel

Gerrit

sind jetzt diese fünf Summanden in

Gerrit

einer Addition.

Gerrit

Da gibt es keine Vorschrift, was da

Gerrit

richtig ist. Und wenn ich, kann ich

Gerrit

natürlich mich drüber hinwegsetzen und sagen, ich

Gerrit

zerteile das jetzt komplett und mache da irgendwie

Gerrit

einen Symbolbaum oder was auch immer, aber dann

Gerrit

muss ich natürlich wieder zerlegen, ist auch nicht schön.

Gerrit

Also

Gerrit

ein Problem mit der ganzen Software war, dass es eigentlich nicht

Gerrit

sehr einfach zu testen war.

Dominik

Okay. Und aber dafür habt ihr

Dominik

was veröffentlicht, wo ihr sagt, hey, das ist so

Dominik

ein voller Fortschritt, das sollte man so tun.

Dominik

Also nicht zum Testen, also

Gerrit

das habe gar nicht ich gemacht, das haben dann andere Leute

Gerrit

haben darauf aufgebaut und haben

Gerrit

wir haben, also

Gerrit

die Geschichte ist eigentlich, wir haben

Gerrit

ich habe dieses Problem entdeckt und dann haben wir irgendwann

Gerrit

uns hingesetzt und eine Bachelorarbeit

Gerrit

aufgesetzt

Gerrit

machen lassen zu dem Thema, okay,

Gerrit

vermessen wir das doch mal bitte, verstehen wir das

Gerrit

ein bisschen besser und hatte dann auch

Gerrit

noch andere Anwendungen, nicht nur den Test, muss man dazu

Gerrit

gestehen. Und ja, das

Gerrit

war, wir haben, da wurden neue Erkenntnisse

Gerrit

gewonnen und veröffentlicht.

Gerrit

Aber das war gar nicht so,

Gerrit

also das war nur etwas, was ich angestoßen

Gerrit

habe und insofern kann ich dir jetzt auch gar nicht

Gerrit

so viel zu erzählen.

Gerrit

Ja, klingt sehr spannend, also dass man tatsächlich

Dominik

so echte Experimente

Dominik

irgendwie begleitet und simuliert

Dominik

mit Python oder halt

Dominik

ein bisschen C, aber halt dann so in die Zukunft

Dominik

damit ein bisschen gucken kann, was könnte denn dabei rauskommen

Dominik

oder welche Lösung für

Dominik

wirklich Probleme, also weiß nicht, ob das nur Medikamente

Dominik

angeht oder kann man

Dominik

andere denken, genau, damit

Dominik

bauen kann, das ist natürlich schon spannend.

Gerrit

Also das ganze Feld, so dynamische Systeme

Gerrit

vorher sagen, ist

Gerrit

sehr vielfältig in Anwendung.

Gerrit

Was ich vorher gemacht habe, waren

Gerrit

Probleme mit

Gerrit

Und 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? Oder wie sagen wir Bevölkerung, plötzlich das Bevölkerungswachstum heraus?

Gerrit

Also das Thema meiner vorigen Forschung war, wie sagen wir, extreme Ereignisse, also verstehen, wie passieren extreme Ereignisse.

Gerrit

Und extreme Ereignisse kann dann so sein wie epileptischer Anfall, kann aber auch so was sein wie Überpopulation, Artensterben, Erdbeben, all solche verschiedenen Dinge.

Dominik

Also was war das Ergebnis? Gibt es so einen entscheidenden Punkt, den man irgendwie erreichen kann, wo dann bestimmte Faktoren identifizierbar sind, die sagen so, hey, jetzt macht's gleich peng?

Dominik

Nee, so weit sind wir

Dominik

leider nicht gekommen.

Gerrit

Also das Ergebnis war dann sowas wie

Gerrit

wir können, wir haben einen neuen Mechanismus

Gerrit

gefunden, wie solche Sachen entstehen können

Gerrit

in der Dynamik eines Systems.

Gerrit

Dann können wir in einigen Fällen, hilft uns das ein bisschen

Gerrit

was vorherzusagen, aber insbesondere können

Gerrit

dann die Leute, die ein konkretes System haben und

Gerrit

mit einem konkreten System was vorhersagen, eventuell

Gerrit

besser verstehen, wie sie das machen.

Gerrit

Okay. Das ist leider nicht sehr

Gerrit

befriedigend, aber

Gerrit

das ist eben Grundlagenforschung.

Gerrit

Das ist Wissenschaft.

Gerrit

Ich fürchte, das ist halt irgendwie so

Jochen

eine der blöden

Jochen

Eigenschaften, die da halt so dabei sind,

Jochen

dass das extrem seltene

Jochen

Geschichten halt, sondern schlecht Statistik

Jochen

zu machen kann, weil es einfach nicht so häufig

Jochen

auftritt. Aber wenn die halt stark genug

Jochen

sind, dann haben sie halt einen großen Einfluss auf das, was

Jochen

passiert und dann ist es halt blöd.

Gerrit

Also Statistik ist die eine Sache und die Phase

Gerrit

können wir jetzt allein mit Statistik vorhersagen.

Gerrit

Wahrscheinlich nicht. Wir müssen verstehen, was passiert da eigentlich.

Gerrit

Und wie kommt es

Gerrit

eigentlich dazu?

Jochen

Und dann geht das überhaupt.

Jochen

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

Jochen

Und was ist wichtig?

Gerrit

Und jetzt mal vielleicht auch nochmal ein Beispiel,

Gerrit

wozu Simulationen gut sind.

Gerrit

Was jetzt immer wieder die Frage war,

Gerrit

ein früher Kollege von mir,

Gerrit

der hat wahrscheinlich die erste Simulation geschrieben,

Gerrit

die macht, was aussieht wie ein epileptischer Anfall.

Gerrit

Ob es jetzt irgendwie wirklich das damit zu tun hat,

Gerrit

muss man dann nochmal untersuchen.

Gerrit

Aber was nicht darauf basiert,

Gerrit

dass wir an irgendeinem Knopf drehen

Gerrit

und irgendeinen Parameter ändern,

Gerrit

also irgendwelche Neurochemikalien oder so im Gehirn ändern,

Gerrit

sondern wir können eine einfache Simulation machen,

Gerrit

die machen epileptischen Anfall, ohne dass wir

Gerrit

was ändern müssen.

Gerrit

Dann einfach, okay, was bringt das Ganze jetzt?

Gerrit

Naja, die Leute, die

Gerrit

ein paar Ebenen in der Anwendung

Gerrit

höher sind, können jetzt hingehen

Gerrit

und sagen, okay, wir haben uns bisher

Gerrit

immer darauf gestützt, was ändert sich da chemikalisch

Gerrit

und so weiter. Könnte es vielleicht was anderes

Gerrit

sein? Könnte es vielleicht einfach

Gerrit

sein, dass das Gehirn anders verknotet

Gerrit

ist oder die Neuronen anders verbunden sind

Gerrit

in Gehirnen, die epileptische Anfälle produzieren

Gerrit

und das ist das Problem.

Gerrit

Und die Frage ist noch offen,

Gerrit

Aber solche Ansätze stößt man dann

Gerrit

eventuell mit Simulationen hervor.

Gerrit

Ja, schön, wenn man das dann heilen kann.

Dominik

Irgendwann dafür sorgt, dass es den Menschen besser geht.

Gerrit

Genau, das ist natürlich das fairen Ziel,

Gerrit

aber leider ist es

Gerrit

nicht so ganz einfach.

Gerrit

Ja, ich weiß halt, kann man

Dominik

aus diesem Elfenbeinturm, wenn ich das mal so nennen darf,

Dominik

irgendwie so runtersteigen, wieder auf die Straße

Dominik

und mit beiden Händen

Dominik

wieder so das ausschütten, was man da so fabriziert.

Dominik

Ja, manchmal passiert das ja einmal,

Dominik

sonst hätten wir ja keine Computer.

Dominik

Ja, genau, also manchmal ist da jemand

Dominik

so ein Magier irgendwo so in den Turm,

Dominik

irgendwann macht dann der Bumm oder diese Kugel leuchtet

Dominik

und auf einmal der Turm fängt an zu leuchten und dann

Dominik

gucken alle, oh, was ist das denn? Und dann, ah, guck mal hier,

Dominik

ich habe was Schönes gefunden.

Jochen

Ich glaube, ja, aber ich fürchte, das kann man nicht wirklich,

Jochen

ich fürchte, das ist bei Wissenschaft noch schlimmer

Jochen

als bei Firmen oder Startups,

Jochen

also es ist ja auch schon irgendwie so, dass man das eigentlich

Jochen

nicht wirklich voraussagen kann, weil

Jochen

naja, es hängt halt davon ab, wie sich die Zukunft

Jochen

entwickelt, die lässt sich schon mal nicht so gut voraussagen

Jochen

und dann sind so viele Faktoren dabei, die man

Jochen

nicht unter Kontrolle hat, dass

Jochen

und bei Wissenschaft hast du

Jochen

jetzt, das ist ja noch übler, du weißt ja, also

Jochen

Das ist alles Alchemie.

Jochen

Naja, oder so ein bisschen Glück auch.

Jochen

Also ich meine, natürlich ist es so, du kannst kein Glück haben,

Jochen

wenn das nicht auch irgendwie funktioniert oder wenn du nicht das Richtige

Jochen

tust, aber ob das, was du da tust, jetzt irgendwie

Jochen

eine sinnvolle,

Jochen

erfolgsversprechende Geschichte ist oder nicht, das hast

Jochen

du halt, würde ich sagen, zum großen Teil gar nicht unbedingt

Jochen

unter Kontrolle.

Gerrit

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

Gerrit

es nicht machen. Wissenschaft geht ja darum, irgendwie,

Gerrit

dass wir neue Sachen herausfinden und

Gerrit

dass wir die Frage beantworten, funktioniert

Gerrit

diese Methode oder so und wenn wir wissen, ob diese Methode

Gerrit

funktioniert, müssen wir es nicht machen.

Jochen

Ich finde das immer wieder beeindruckend, wie man dann, also es ist ja

Jochen

schon, das ist, es hat ja so ein leicht, also ich

Jochen

würde da leicht

Jochen

in Defizitismus verfallen, glaube ich.

Jochen

Man muss ja da sehr motiviert sein, das dann zu tun,

Jochen

wenn man sich im Grunde ausrechnen

Jochen

kann, dass man wahrscheinlich

Jochen

Pech haben wird und das heißt, man

Jochen

gibt sich viel Mühe, aber es kommt nichts mehr raus. Obwohl auf der anderen

Jochen

Seite, das, was man tut, macht natürlich auch Spaß.

Jochen

Ja, aber ich meine, gut,

Gerrit

es ist schon so dieses klassische Klischee,

Gerrit

Die Hauptsache, die man mit einer

Gerrit

Promotion kriegt,

Gerrit

ist eine riesengroße

Gerrit

Enttäuschungsresistenz.

Gerrit

Was war das?

Gerrit

Das ist, ich

Gerrit

verwende Apple Hardware

Gerrit

und

Jochen

es kommuniziert untereinander

Jochen

und mein Telefon hat gerade meinem Computer gesagt,

Jochen

das war Klingeln, was manchmal gut ist,

Jochen

in diesem Fall war es nicht so toll.

Jochen

Manchmal kümmert sich auch noch

Jochen

vorher drum, dass er das alles abstellt.

Jochen

Ja, diesmal habe ich es irgendwie verpennt. Ich glaube,

Jochen

ich mache das gerade mal. Man kann nämlich auch sagen,

Dominik

irgendwie. Die ganzen wissenschaftlichen Probleme, wir kennen die

Dominik

Antwort doch eigentlich schon alle, oder?

Dominik

Ja, kennen wir die? Wie lange? 42.

Dominik

Achso.

Dominik

Stimmt, finde ich.

Dominik

Ja, aber

Dominik

das ist halt,

Jochen

es ist da so ein

Jochen

frustrierendes Potenzial dabei, das glaube ich auch immer,

Jochen

wenn man

Jochen

guckt, was die Politik da auch immer machen möchte,

Jochen

die versucht das dann zu ignorieren, dann macht man so Forschungsprogramme,

Jochen

Ich habe da von einem gehört, es gibt ein großes Forschungs...

Jochen

Also man macht das dann so, man glaubt irgendwie, was war das irgendwie, man kann irgendwie Chips bauen, also normalerweise belichtet man irgendwie Chips sozusagen top-down irgendwie, man überlegt sich eine Architektur, könnte man das nicht auch umgekehrt machen?

Jochen

Also man hat irgendwie so eine Lösung, irgendwie auch wieder, keine Ahnung, irgendeine Art Nährflü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 braucht gerade quasi dann so bottom-up automatisch.

Jochen

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

Jochen

Bräuchte man da nicht so super

Jochen

Ultra-Reihenräume und

Jochen

diese ganzen teuren Gerätschaften.

Jochen

Und da hat man irgendwie,

Jochen

die Idee hört sich wirklich total super an.

Jochen

Und dann gab es irgendein

Jochen

großes Forschungsprojekt,

Jochen

das da wurde auch 100,

Jochen

das sind glaube ich 100 Millionen

Jochen

Euro reingegangen. Und das Problem

Jochen

ist natürlich, wenn jetzt so viele Leute daran arbeiten,

Jochen

also das lief dann ganz lange

Jochen

und irgendwie musste immer noch ein Doktorand,

Jochen

ein Armer, der musste dann

Jochen

geopfert werden, diesem Drachen.

Jochen

Man hat gesagt, der muss tatsächlich an diesem Problem

Jochen

noch arbeiten, damit man sagen kann, dass man an diesem Problem

Jochen

arbeitet. Aber in Wirklichkeit wussten alle schon

Jochen

seit einigen Jahren, naja, das funktioniert

Jochen

aus prinzipiellen Gründen grundsätzlich nicht.

Jochen

Aber man kann ja auch nicht sagen, es funktioniert nicht, dann kriegt man

Jochen

kein Geld mehr, ist auch schlecht. Also

Jochen

haben halt die anderen inzwischen alle was anderes gemacht.

Jochen

Heimlich.

Jochen

Ja, okay.

Jochen

Die große Veröffentlichung schreiben.

Gerrit

Einerseits natürlich auch das große Problem ist, dass man einfach nicht mal

Gerrit

sagen kann, okay, wir haben herausgefunden,

Gerrit

es funktioniert nicht und hier ist

Gerrit

der Grund. Das ist ganz schön haarig.

Dominik

Also ich komme ja aus der VWL eigentlich

Dominik

und da waren dann so Experimente schon

Dominik

problematisch, weil da hat man

Dominik

irgendwelche Modelle gebaut, die dann irgendwelche Prognosen

Dominik

gemacht haben und dann ging

Dominik

dann vor allen Dingen sowas wie der Internationale Währungsfonds

Dominik

dann hin und hat dann diese

Dominik

Modelle ausprobiert

Dominik

mit irgendwelchen Entwicklungsländern, um zu gucken,

Dominik

klappt das mal? Und das hat dann ab und zu mal dazu geführt,

Dominik

dass dann irgendwie so ein Landesgesundheitssystem dann zusammenbrach

Dominik

oder sowas. Und das ist dann vielleicht

Dominik

so ein Mittelgut und das war aber eigentlich

Dominik

das Modell hat dann eigentlich vorhergesagt,

Dominik

das hätte gut funktionieren sollen. Die haben sich dann alle so ein bisschen

Dominik

die Haare gerauft. Die wollten eigentlich auch, dass es dem Land eher gut geht.

Dominik

Also es war jetzt nicht nur irgendwie so Weltbankdruck oder so.

Dominik

Und dann haben die gesagt, Mist, das haben wir jetzt ja falsch gemacht.

Dominik

Haben es beim nächsten Mal, dann haben wir anders ausprobiert.

Dominik

Und dann, ja, das ist halt das

Dominik

Problem, wenn du halt das so was ausprobierst,

Dominik

auf Systemen, die auch heterogen sind und

Dominik

ein bisschen chaotisch reagieren und du weißt nicht genau,

Dominik

was muss man da jetzt eigentlich genau tun.

Dominik

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

Gerrit

Ja, aber noch schlimmer ist es, wenn man das System

Gerrit

selbst beeinflusst durch die Vorhersage. Also das klassische

Gerrit

Ich kann Aktienkurse vorhersagen

Gerrit

und es gibt immer irgendwelche Leute, die

Gerrit

irgendeine neue Methode entwickeln, um

Gerrit

Aktienkurse vorherzusagen.

Dominik

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

Dominik

Ja, oder

Gerrit

beziehungsweise der Problem ist, wenn sie

Gerrit

die dann veröffentlichen,

Gerrit

dann funktioniert es plötzlich nicht mehr.

Gerrit

Ja, genau.

Gerrit

Das ist doch super, dann kannst du antityklisch fahren,

Gerrit

wenn du sowas raushaust.

Gerrit

Du darfst es halt nicht veröffentlichen.

Gerrit

Ja.

Gerrit

Das ist, ja.

Gerrit

Ja, schon interessant.

Dominik

Ja, ich finde das halt sehr, sehr spannend,

Dominik

wenn man irgendwie so Sachen digitalisiert,

Dominik

welche Parameter man überhaupt in diese Modelle einbauen müsste

Dominik

und wie man es schafft, so Reagenzglas-Bedingungen,

Dominik

selbst wenn es jetzt nur, in Anführungszeichen,

Dominik

so ein Glas mit einer Kultur auf einem Fensterbrett in der Sonne ist.

Dominik

Hui.

Gerrit

Wobei, da musst du sagen, also ich bin auch eher die,

Gerrit

es gibt zwei Spezies der Modellierung,

Gerrit

Arten der Modellierung.

Gerrit

Der erste ist der Ansatz, wir wollen es wirklich

Gerrit

möglichst exakt und so weiter hinbiegen,

Gerrit

um wirklich die genaue, perfekte

Gerrit

Vorhersage für dieses Glas auf der Fensterbank zu treffen.

Gerrit

Der andere Ansatz ist,

Gerrit

okay, wir können

Gerrit

das eh nicht,

Gerrit

sondern die Frage ist, okay, wir sehen

Gerrit

dieses Phänomen oder sowas, oder was sind die minimalen

Gerrit

Sachen, die wir brauchen, um dieses Phänomen zu kriegen?

Gerrit

Also das, was ich eben beschrieben habe, was ist das

Gerrit

minimale System, was uns sowas produziert,

Gerrit

wie einen epileptischen Anfall oder irgendwas?

Gerrit

um daraus irgendwie zu verstehen,

Gerrit

was sind eigentlich die Zutaten, die ich brauche.

Gerrit

Und ich gehöre eher zu der letzten Spezies,

Gerrit

weil ich denke, ja, man kriegt eher interessantere Erkenntnisse

Gerrit

und es ist in vielen Fällen auch wahrscheinlich der gesündere Ansatz.

Jochen

Sozusagen, weil man da dann immer weiß,

Jochen

was man eigentlich getan hat sozusagen.

Jochen

Und das bei Phänomenen, die man beobachtet,

Jochen

da sieht man halt nur, was man halt sieht.

Jochen

Aber man weiß, was passiert.

Gerrit

Ja, man kann es auch im Zweifelsfall einfach mal machen.

Gerrit

Also ich mache mir gar nicht die Illusion,

Gerrit

das Gehirn komplett zu simulieren zu können.

Gerrit

Das kann ich nicht, das kann niemand.

Gerrit

Und es gibt ja jetzt gewisse Projekte,

Gerrit

aber ja, ich mache mir diese Illusion gar nicht,

Gerrit

aber ich mache mir, eventuell kriege ich es hin,

Gerrit

einen Teil davon, mal ein Konzept zu verstehen,

Gerrit

welche Auswirkungen gewisse Strukturen haben.

Gerrit

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

Jochen

Ja, aber wie ist das eigentlich mit dem Wissenschaftsbetrieb und der Digitalisierung? Das ist jetzt alles inzwischen, 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, die das bezahlt haben, dass dann halt irgendwie alle Forschungsergebnisse digital veröffentlicht werden und dass das halt irgendwie, ja,

Jochen

Keine Ahnung, ich könnte mir das so vorstellen, dass halt die Wissenschaft so ein bisschen funktioniert wie so eine große freie Software-Community oder so, aber real existieren das so ein bisschen anders.

Gerrit

Ja, also ich meine, man kann mittlerweile sagen, dass ein Großteil der wissenschaftlichen Software, zumindest in den Bereichen, in denen ich unterwegs bin, zum Glück frei ist, also auch frei verfügbar und die Leute sich das zunutze gemacht haben.

Gerrit

Und mein großer Vorteil ist, kein Mensch hat

Gerrit

irgendwas davon, ich habe nichts davon gehabt,

Gerrit

ich würde nichts davon haben, meine Software zu verkaufen.

Gerrit

Ich habe was davon, dass ich ein Paper über

Gerrit

meine Software schreibe,

Gerrit

Leute das zitieren und

Gerrit

falls ihr das schon mal gehört habt, Zitate sind

Gerrit

die wissenschaftliche Währung und

Gerrit

das nützt dann eventuell, um meine Karriere voranzubringen.

Gerrit

Das ist schon mal

Gerrit

gut, aber auch da gibt es noch

Gerrit

Bereiche, wo es Leute gibt, die

Gerrit

ihre Software zwar

Gerrit

gerne allen zur Verfügung stellen, aber schreibt

Gerrit

mir bitte vor eine E-Mail und dann kriegt ihr die zugeschickt

Gerrit

und zitiert mich bitte natürlich.

Gerrit

So

Gerrit

komplett irre Sachen zum Teil,

Gerrit

dass es einfach extrem schwierig ist,

Gerrit

da an sinnvolle Sachen ranzukommen.

Gerrit

Und auch,

Gerrit

ja, die Sachen, also ja,

Gerrit

es ist digital, aber ist es

Gerrit

vernünftig digital?

Gerrit

Und

Gerrit

das ist ja nur die Software-Ebene.

Dominik

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

Dominik

Ja, nee, also

Gerrit

Software ist die eine Sache,

Gerrit

der Software-Ebene

Gerrit

funktionieren

Gerrit

die Teile der Wissenschaft vielleicht doch eher so wie eine

Gerrit

große freie

Gerrit

Software-Community? Ja,

Gerrit

kann man so sagen.

Gerrit

Es ist vielleicht nicht sehr wohl organisiert und durchdacht

Gerrit

und so weiter. Es wäre gut, wenn die Leute

Gerrit

vielleicht mal ein bisschen Ahnung davon hatten, wie man eigentlich Software baut.

Gerrit

Statt nur programmieren zu können,

Gerrit

so ein bisschen.

Gerrit

Auf der anderen Seite, wenn jetzt die eigentliche Wissenschaft,

Gerrit

also die Wissenschaft, wenn man jetzt um die Erkenntnisse

Gerrit

in der Wissenschaft

Gerrit

der Wissenschaft redet, ist es immer noch ein sehr

Gerrit

großes, ja, mein Sandförmchen,

Gerrit

dein Sandförmchen und

Gerrit

großer Neid, dass man

Gerrit

versucht, die eigenen Erkenntnisse

Gerrit

möglichst, die eigenen Daten

Gerrit

möglichst auszuschlachten und all solche Sachen.

Gerrit

Hängt so ein bisschen vom Feld ab, also

Gerrit

gerade die Mathematik, Informatik,

Gerrit

Physik sind da so ein bisschen besser, aber

Gerrit

jetzt bin ich in der Biologie so ein bisschen

Gerrit

und ja, da ist es

Gerrit

immer noch,

Gerrit

ja, da geht es

Gerrit

Ja, auch wirklich darum, okay, ich habe diese Daten

Gerrit

und wenn ich diese Daten habe, dann bin ich,

Gerrit

ja, dann muss ich damit alles Mögliche

Gerrit

machen, möglichst auf einmal und das

Gerrit

große eine Ding landen,

Gerrit

sonst funktioniert

Gerrit

das nicht oder funktioniert es nicht für die Karriere.

Gerrit

Also leider ist es wahrscheinlich auch richtig,

Gerrit

dass es nur

Gerrit

so geht, was

Gerrit

natürlich dämlich ist.

Jochen

Obwohl aus der Physik habe ich das auch manchmal gehört,

Jochen

dass da die Leute dann in Vorträgen

Jochen

sitzen und Fotos machen von dem

Jochen

Experiment gehabt, sodass sie dann

Jochen

die ersten Theoretiker sein konnten, die dann die Theorie dazu

Jochen

zu einem Experiment oder so irgendwie

Gerrit

Ja gut, aber dann machen sie

Gerrit

zumindest nicht den Vortragenden den

Jochen

Ja, ja, ja, das ist, ja

Gerrit

Also natürlich, das gibt es in allen Bereichen

Gerrit

wahrscheinlich irgendwo, das wird man nicht vermeiden können, aber

Gerrit

es gibt da schon große Unterschiede

Gerrit

Also in der, gerade in der Physik und Mathematik gibt es ja

Gerrit

diese Preprint-Kultur, also

Gerrit

muss jetzt vielleicht für die Leute, die es nicht kennen, sagen

Gerrit

In der Wissenschaft

Gerrit

zählen hauptsächlich

Gerrit

so

Gerrit

sogenannte peer-reviewte Veröffentlichung,

Gerrit

also Veröffentlichungen, die andere Wissenschaftler

Gerrit

für einigermaßen gut befunden

Gerrit

haben. Das ist ein gewisser Prozess. Dieser Prozess

Gerrit

dauert

Gerrit

in einigen Feldern oder Fächern

Gerrit

und je nachdem, was man macht, bis zu Jahre.

Gerrit

Also vom Einreichen

Gerrit

des fertigen Manuskripts bis zur

Gerrit

Veröffentlichung. Und in der

Gerrit

Zeit kann natürlich alles Mögliche passieren und andere

Gerrit

Leute können das Gleiche erfinden und so weiter und so fort.

Gerrit

Und da gibt es zumindest, gerade

Gerrit

in Mathe, Physik, Informatik und so weiter,

Gerrit

die Kultur,

Gerrit

dass man sagt, okay, wir haben das Preprint-Server,

Gerrit

das bekannteste ist das Archive,

Gerrit

wo man sagt, okay,

Gerrit

ich reiche das jetzt ein und gleichzeitig

Gerrit

stelle ich das schon mal frei zur Verfügung und

Gerrit

das Journal, bei dem ich das einreiche,

Gerrit

ist auch, kann damit

Gerrit

leben, dass ich das frei zur Verfügung stelle und

Gerrit

sagt mir, nee, das hast du schon veröffentlicht, machen wir nicht.

Gerrit

Und ja, das ist

Gerrit

so langsam im Kommen, jetzt auch

Gerrit

in der Biologie, das ist

Gerrit

auch definitiv gut und

Gerrit

das führt eigentlich auch so ein bisschen dazu, dass dieses,

Gerrit

dass man die Sachen wirklich direkt

Gerrit

nutzen kann. Aber

Gerrit

andererseits in der Biologie dauert es halt auch einfach immer noch

Gerrit

ewig, bevor man die Sachen überhaupt veröffentlicht.

Gerrit

Und ja,

Gerrit

egal, aber das ist jetzt vielleicht auch nicht so.

Gerrit

Ja, du hast noch ein paar

Dominik

Teptermarks, glaube ich, unterlassen.

Dominik

Ja, das kann sein.

Dominik

Das war so eine spannende Geschichte.

Dominik

Was fällt euch noch dazu ein?

Dominik

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

Dominik

Ich kann auch was erzählen.

Jochen

Was Publikationen angeht.

Gerrit

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

Gerrit

Wie gesagt, ich habe eine wissenschaftliche Software

Gerrit

geschrieben, okay, so weit so furchtbar.

Gerrit

Das Hauptproblem ist natürlich jetzt, ich möchte auch

Gerrit

weiterhin als Wissenschaftler bezahlt werden und das

Gerrit

heißt, ich muss zitiert werden, wie ich gerade schon

Gerrit

gesagt habe und dazu muss ich das Ganze veröffentlichen.

Gerrit

Andersrum, Veröffentlichung

Gerrit

und Zitate sind Geld, also muss ich

Gerrit

veröffentlichen.

Gerrit

Und ja, die meisten

Gerrit

Veröffentlichungen in der Wissenschaft sind natürlich immer noch

Gerrit

über eigentliche Forschung oder klassische

Gerrit

Forschung und ich habe irgendwas herausgefunden.

Gerrit

Hier ist es und nicht, ich habe

Gerrit

hier eine neue Software geschrieben, die ich ihr erlaubt,

Gerrit

das zu machen.

Gerrit

Das war's.

Gerrit

Und

Gerrit

ja, diesen Prozess

Gerrit

habe ich durchlaufen. Ich habe ihn erfolgreich durchlaufen. Ich habe es

Gerrit

geschafft, dieses Paper zu veröffentlichen.

Gerrit

Es war aber zum Teil sehr interessant.

Gerrit

Ja, wo fange ich mal an?

Gerrit

Höflich formuliert. Ja, höflich formuliert,

Gerrit

genau. Also der erste Schritt ist

Gerrit

erstmal, dass man ein Journal finden muss,

Gerrit

was überhaupt sagt, okay, ich akzeptiere,

Gerrit

wir akzeptieren solche Veröffentlichungen,

Gerrit

wir finden das gut.

Gerrit

Der zweite Schritt ist dann zu sagen,

Gerrit

ein Journal, bei dem Journal auch,

Gerrit

ja, etwas, natürlich das Ganze zusammenzuschreiben,

Gerrit

was übrigens, also für die Leute,

Gerrit

jetzt wirklich für die Wissenschaftler

Gerrit

und den Zuhörern bedeutend einfacher war,

Gerrit

als klassische Forschungsarbeit zusammenzuschreiben.

Gerrit

Ukulele.

Gerrit

Ja.

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, aber das ist ja so irgendwie eigentlich kein richtiges Paper, also lehne ich es ab.

Gerrit

Obwohl das Journal sagt, genau solche Dinge

Gerrit

würden wir auch gerne haben.

Gerrit

Und ja, ich weiß nicht genau, was da schiefgelaufen

Gerrit

ist, ob das Journal dem Reviewer nicht gesagt hat,

Gerrit

okay, guck mal, das ist okay, oder

Gerrit

ob der Reviewer es nicht verstanden hat, oder

Gerrit

ja, es war auf jeden Fall

Gerrit

ganz komisch, also am Ende bin ich hingegangen und hab,

Gerrit

also man sagt dann natürlich nicht, okay,

Gerrit

ich akzeptiere das, ich werde abgelehnt worden, ich gehe woanders hin

Gerrit

oder so,

Gerrit

sondern

Gerrit

man

Gerrit

kann dann

Gerrit

erst mal das Ganze erwidern

Gerrit

und sagen, ja, du sagst, mein Paper

Gerrit

ist doof, aber ich sage, es ist gut, weil.

Gerrit

Und ja,

Gerrit

mein Argument bestand dann daraus,

Gerrit

dieses Urteil

Gerrit

von diesem Reviewer, der halt

Gerrit

gesagt hat, ja, es ist relevant für die Community,

Gerrit

neben die Kriterien vom Journal zu

Gerrit

stellen, dass er gesagt hat, ja, wir akzeptieren solche

Gerrit

Paper, wenn. Und dann kam im Prinzip

Gerrit

fast genau das Gleiche, was

Gerrit

der Reviewer dann gesagt hat.

Gerrit

Und am Ende

Gerrit

hat es dann auch ohne große Probleme geklappt,

Gerrit

aber es war irgendwie schon lustig.

Gerrit

Dann kommt das nächste Problem, also wenn man das alles

Gerrit

geschafft hat, also wenn quasi

Gerrit

die Wissenschaftler sagen, das ist okay, dann muss das

Gerrit

noch

Gerrit

in eine druckbare Form gebracht werden,

Gerrit

was sich jetzt erstmal ein bisschen albern

Gerrit

anhört, denn ja gut, wir sind jetzt hier

Gerrit

in der Physik, Mathematik und ähnlichem, da sprechen

Gerrit

alle Leute latech und

Gerrit

können in der Regel selbst sehr

Gerrit

gute Sachen produzieren,

Gerrit

die man auch drucken kann,

Gerrit

aber ja, einige

Gerrit

Wobei, kurze

Jochen

Abschweifung, ich glaube für diese

Jochen

Physics Review Letters oder so,

Jochen

das ist ganz wichtig in der Physik, da

Jochen

gibt es ein Word Template, das man benutzen muss,

Jochen

die... Nein, ziemlich sicher nicht.

Gerrit

Also für Physical Review Letters

Gerrit

kann man definitiv auch Technik einreichen.

Gerrit

Und auch, also es geht

Gerrit

mittlerweile, es ist sehr weit verbreitet, man kann

Gerrit

Latex einreichen, die Fahrerzeit wird es eins zu eins

Gerrit

verwendet. Also

Gerrit

das Einreichen ist die eine Geschichte,

Gerrit

Die andere Sache ist, was macht das Journal

Gerrit

dann, was machen am Ende die Schriftsetzer damit?

Gerrit

Sie könnten natürlich, also im Prinzip könnte man

Gerrit

eigentlich hinsehen, wir haben einen Standardstil und den

Gerrit

wenden wir einfach an und dann brauchen wir gar keine Schriftsetzer

Gerrit

mehr. Das ist aber nicht der Fall

Gerrit

in den meisten Journalen,

Gerrit

zumindest in meinem Feld. Und das heißt,

Gerrit

irgendein Schriftsetzer hatte dann zum ersten Mal

Gerrit

in seinem Leben Computercode vor sich

Gerrit

und musste den

Gerrit

setzen. Oh, diese blöden

Gerrit

tabulatorischen Eindrückungen, das sieht aber doof

Gerrit

aus. Ja,

Gerrit

Also, das würde ja noch

Gerrit

gehen.

Gerrit

Also, ja, das wäre auch ein Problem,

Gerrit

aber, also ja,

Gerrit

der Code war an verschiedenen Eindrückungsebenen,

Gerrit

unterschiedliche Codeblöcke waren an unterschiedlichen

Gerrit

Eindrückungsebenen. Ja, das war auch ein Problem,

Gerrit

aber das war nur der Anfang. Das hätte man noch

Gerrit

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

Gerrit

Da gab es auch zum Beispiel, also, was

Gerrit

nach so drei Iterationen,

Gerrit

also, ich habe

Gerrit

ein,

Gerrit

das Resultat der Schriftsätze bekommen,

Gerrit

ich habe gesagt, nee, das geht so nicht, die haben

Gerrit

was Neues versucht, ich habe es bekommen, ich habe gesagt, nee, das geht so nicht

Gerrit

und so weiter und so fort. Nach drei Iterationen

Gerrit

hatte ich ungefähr raus, was da eigentlich

Gerrit

vor sich geht. Und zwar haben die

Gerrit

versucht, meinen Code wie

Gerrit

Formeln zu interpretieren und den

Gerrit

nach Formelregeln gesetzt.

Gerrit

Und Formeln gibt es halt zum Beispiel solche,

Gerrit

also für den Formelsatz gab es die Regel, wenn

Gerrit

die erste, die innerste Klammer,

Gerrit

die man macht, ist rund,

Gerrit

die nächste Klammer ist eckig und danach

Gerrit

kommt geschweift.

Gerrit

Das haben die auch radikal

Gerrit

auf den, ja, das ist

Gerrit

eine Form, in der es sagt, okay, kann man drüber streiten,

Gerrit

ja, das haben die aber radikal auf den Code

Gerrit

angewendet. Tja.

Gerrit

Und wenn dann, dann steht halt Sinus,

Gerrit

eckige Klammer auf, F von I,

Gerrit

eckige Klammer zu.

Gerrit

Ja.

Gerrit

Ja, das, ähm.

Jochen

Das wäre jetzt, das wäre jetzt natürlich dann auch wieder

Jochen

irgendwie eine Anwendung für, für, äh,

Jochen

CodeGolf, ob man das dann so transformieren

Jochen

könnte, dass es, äh, irgendwie

Jochen

am Schluss hat man dann halt noch so ein kleines CodeGolf-Ding,

Jochen

dass das eine wieder in die andere Form übersetzt

Jochen

sodass es halt dann irgendwie ausführbar wird.

Gerrit

Oh, ich mache eine Exkursion.

Gerrit

Ist das, glaube ich, okay?

Gerrit

Das war jetzt nicht Code Golf,

Gerrit

aber so eine Programmieraufgabe.

Gerrit

Ich versuche es jetzt gerade aus dem Gedächtnis zu reproduzieren.

Gerrit

Sagen wir es so wie A, Klammer auf, B plus C,

Gerrit

gleich, gleich, A, B 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 Malzeichen.

Gerrit

so, also man hat jetzt

Gerrit

diesen Code, das könnte man ja in Python machen

Gerrit

und die Aufgabe ist jetzt

Gerrit

davor etwas zu machen, dass

Gerrit

dieser, dass das wahr ergibt

Gerrit

man darf, ja, ich glaube mit der Bedingung, dass

Gerrit

man ja A und B nicht einfach

Gerrit

durch Nullen ersetzen darf oder so

Gerrit

und ja, also

Gerrit

mein Ansatz dafür, es war leider

Gerrit

nicht der schnellste oder der kürzeste

Gerrit

war, dass man sagt, okay, wir machen

Gerrit

erstmal A, B und C zu Symbolen,

Gerrit

dann funktioniert schon mal symbolisches Rechnen, also mit Zympai.

Gerrit

Und dann

Gerrit

überschreiben wir noch für A,

Gerrit

oder fügen wir A, ein

Gerrit

Call-Funktion hinzu,

Gerrit

machen die Call-Methode für A

Gerrit

und sagen halt, dass sie das

Gerrit

macht, was dann rechnisch rauskommen müsste.

Gerrit

Das heißt, dieses A Klammer auf B plus C

Gerrit

würde wie ein Funktionsaufruf ähnlich

Gerrit

interpretiert werden und dann funktionierte das.

Gerrit

Was auch eine sehr schöne

Gerrit

Sache in Python ist, wenn man das einfach mal

Gerrit

weiß, dass man einfach alle Operatoren irgendwie

Gerrit

beliebig definieren kann, wenn man möchte.

Gerrit

Und das auch für sehr viele Sachen nutzen

Gerrit

kann. Ja.

Gerrit

Und eben, um die Historie zu lösen.

Gerrit

Plus mit Ohr überschreiben

Dominik

oder sowas, hast du auch ein True, wenn du ein Bohl draufwirfst.

Dominik

Wenn du das

Dominik

Pluszeichen mit einem Ohr überschreibst

Dominik

oder sowas, also

Dominik

dann könnte das vielleicht funktionieren.

Dominik

Ja.

Dominik

Ich glaube, es musste

Gerrit

für eine, man durfte irgendwie A, B und C nicht überschreiben.

Gerrit

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

Dominik

deswegen das Plus hier und dann den

Dominik

Bolian draufwerfen, dann stimmt das schon.

Dominik

Ja.

Gerrit

Ja gut. Ja, ja. Ne, also ich hatte dann

Gerrit

sehr viel Spaß mit den Schriftsetzern eben, um

Gerrit

Ja, das ist auf jeden Fall schön.

Dominik

An die Klammern anpassen, Einrückungsebenen

Dominik

entfernen. Ja, genau. Sie haben auch irgendwie

Gerrit

den Unterstrich per Hand gezeichnet, das heißt, wenn man den Code

Gerrit

kopiert hat, war der Unterstrich plötzlich weg,

Gerrit

weil es irgendwie kein Unterstrich war. Das Bild war

Jochen

innerhalb von dem PDF dann

Jochen

nicht mehr Text.

Jochen

Genau, es war Text

Gerrit

und anstatt des Unterstrichs, die auch irgendwie

Gerrit

unterschiedlich lang war, war da halt ein Leerzeichen

Gerrit

und da war eine Linie.

Gerrit

Also so per Hand

Gerrit

reingehend sein.

Gerrit

So ein Zeichenobjekt.

Gerrit

Aber wenn man den Text kopiert hat, war das halt nicht da.

Dominik

Dann hat jemand die Taste auf der Tastatur nicht gefunden.

Gerrit

Dann wurden die auch schön typografische

Gerrit

Anführungszeichen im Code.

Gerrit

Sieht einfach viel besser aus.

Gerrit

Ja, ich meine, es sieht tatsächlich

Gerrit

viel besser aus, es funktioniert leider halt auch nicht.

Gerrit

Aber gut,

Gerrit

da kann ich jetzt...

Gerrit

Ja, aber das ist, ich meine,

Jochen

das ist halt, gut, das ist wahrscheinlich

Jochen

eben in der, je nach Community so unterschiedlich,

Jochen

weil jetzt so was in der Informatik oder so,

Jochen

da Pseudocode wird ja schon

Jochen

oft in Papers auch reingeschrieben, ne, aber

Jochen

Naja, ich war

Gerrit

halt, das war, was heißt leider,

Gerrit

ich meine, es war ja, es gab

Gerrit

Sinn, dass ich mich in einer

Gerrit

Community gewandert habe, die das nicht macht und

Gerrit

die haben irgendwie so

Gerrit

ein solches Paper pro Jahr

Gerrit

und ja, das ist

Gerrit

nicht viel.

Jochen

Naja, aber das ist, also

Jochen

ich weiß nicht, diese ganze Publikationspraxis, dass man

Jochen

halt Dinge halt nur publizieren

Jochen

kann, oder ich meine, in der Informatik ist es halt auch

Jochen

so, dass, oder

Jochen

ich meine, es gibt Ausnahmen, aber überwiegend zu

Jochen

der Zeit, wo ich viel Papers gelesen habe, war es halt so,

Jochen

dass die Leute,

Jochen

naja,

Jochen

also, dass man eigentlich nur

Jochen

mathematische Sachen veröffentlichen

Jochen

konnte, also Code und so, eigentlich eher nicht.

Jochen

Man kommt an den Code auf Anfrage

Jochen

dann immer ran, wenn man Leute einschreibt.

Jochen

aber ist es halt nicht Teil

Jochen

der Veröffentlichung und

Jochen

dann war halt, also ich meine

Jochen

es führt halt auch so ein bisschen dazu

Jochen

quasi, dass man

Jochen

da das eh niemand, ich meine an dem Paper

Jochen

ob das jetzt stimmt oder nicht, kann man

Jochen

den Paper halt nicht mehr ansehen, also wenn man nur das überprüft

Jochen

dann weiß man überhaupt nicht, ob das jetzt funktioniert

Jochen

oder nicht und

Jochen

wir haben dann halt da auch teilweise versucht Sachen

Jochen

ja halt

Jochen

sozusagen

Jochen

zu reproduzieren und die Quote

Jochen

der Sachen

Jochen

die so wirklich überhaupt gar nicht, also manchmal

Jochen

kann man vielleicht auch Sachen nicht richtig reproduzieren,

Jochen

weil man es nicht verstanden hat oder selber zu blöd ist,

Jochen

es hinzukriegen oder so. Aber manchmal ist es

Jochen

relativ offensichtlich, dass das nie funktioniert haben

Jochen

kann und die Quote von den Sachen

Jochen

war recht hoch. Also das war schon

Jochen

erschreckend. Und dann denkt man sich so schon, okay,

Jochen

ja, und das waren alles

Jochen

ordentlich peer-reviewte Sachen, die durchgegangen

Jochen

sind, die irgendwo veröffentlicht wurden und so. Also

Jochen

ja.

Jochen

Ja. Aber da muss

Gerrit

man sagen, die Informatik hat es noch gut, wenn man einfach

Gerrit

zu sagen, okay, ich habe hier das, man könnte

Gerrit

zumindest mal hingehen und diesen Standard einführen,

Gerrit

es gibt ja auch Tendenzen in die Richtung zum Glück,

Gerrit

dass man sagt, okay, hier ist jetzt bitte die Software,

Gerrit

ein Programm, was das macht und wenn ich das ausführe,

Gerrit

dann kommt das halt raus.

Gerrit

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

Gerrit

Mit anderen experimentellen Sachen

Gerrit

geht das nicht.

Gerrit

Du kannst halt eben nicht einfach mal ein Jahr

Gerrit

ins Labor setzen, da rumpipitieren und

Gerrit

welche Bakterien wachsen lassen

Gerrit

und gucken, ob das gleiche rauskommt.

Gerrit

Also kann man schon,

Gerrit

das ist aber deutlich schwieriger.

Jochen

Stimmt, ja. Bei anderen ist es noch viel übler.

Jochen

Oder halt so, oh,

Jochen

das war jetzt das Land.

Jochen

Was machen wir jetzt?

Jochen

Wie viele Länder haben wir denn noch?

Jochen

Welche haben noch nie etwas von uns

Jochen

gehört in unseren bisherigen Ergebnissen?

Dominik

Wir lassen das Modell einfach nochmal rechnen.

Dominik

Ja, dann haben wir ein paar so Programme eingeführt.

Dominik

Das musste man dann so machen.

Dominik

Sie haben dann tatsächlich das Modell nicht geändert.

Dominik

Sie haben dann davon überzeugt, das Modell war richtig.

Dominik

Nur die Umstände waren falsch.

Dominik

Doch, zwei oder drei andere Projekte, die auch nicht funktionieren.

Dominik

Also ja, da war ein bisschen Resistenzgang

Dominik

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

Jochen

und irgendwann wird es schon funktionieren.

Jochen

So viel zählt das doch, oder?

Jochen

Ja, ja.

Dominik

SAP war das, das Structural Adjustment Program.

Dominik

Tja.

Dominik

Ja, ja.

Dominik

Aber sozusagen,

Jochen

also ich weiß nicht, wie arbeitest du

Jochen

üblicherweise? Also in Notebooks

Jochen

oder eher

Jochen

Ich versuche mir

Gerrit

mittlerweile angewöhnt, so ein bisschen anzugewöhnt

Gerrit

in Notebooks zu arbeiten, einfach weil es gerade für

Gerrit

wenn man mit Plots zusammenarbeitet

Gerrit

Es ist halt irgendwie einfach, ja

Gerrit

Ganz praktisch. Also ich muss dazu sagen, ich komme

Gerrit

ursprünglich, ich bin

Gerrit

habe sehr früh genug Plot

Gerrit

gelernt und das auch

Gerrit

was jetzt ein Plotting-Programm

Gerrit

ist, was nichts mit Python zu tun hat

Gerrit

weil es eine eigene Programmiersprache ist und

Gerrit

bin damit

Gerrit

sehr zufrieden gewesen und beziehungsweise bin auch in der Lage

Gerrit

gewesen, alles zu machen, ich kannte einfach alle Kniffe

Gerrit

und hab mich deswegen sehr lange

Gerrit

geweigert auf

Gerrit

Python-Plots umzustellen,

Gerrit

was natürlich gewisse Vorteile hat,

Gerrit

da man eben nicht erstmal die Programmiersprache

Gerrit

wechseln muss, um was zu plotten und nicht erstmal

Gerrit

ein Interface schreiben muss und so weiter und so fort.

Gerrit

Insofern, ja,

Gerrit

hink ich da so ein bisschen hinterher,

Gerrit

denke ich, aber mittlerweile, ja,

Gerrit

ist mein, also

Gerrit

ich schreibe die meisten, oder Sachen,

Gerrit

die ich mehrfach verwende, definitiv ganz normal

Gerrit

mit

Gerrit

meiner

Gerrit

Entwicklungsumgebung, die da Unix heißt.

Gerrit

Also Text-Editor und Konsole und was auch immer.

Gerrit

Genau, was für ein Editor bist du?

Gerrit

Ich nutze

Gerrit

NeoWim.

Gerrit

Und

Gerrit

dann, wenn die Sachen einigermaßen

Gerrit

stehen und es wirklich nur darum geht,

Gerrit

entweder schöne Plots zu produzieren

Gerrit

oder rumzuspielen

Gerrit

in dem, was man jetzt an Simulationen geschrieben

Gerrit

hat, dann wechsle

Gerrit

ich mittlerweile dann auch doch mal ins Notebook.

Gerrit

Andererseits, also wenn es jetzt wirklich darum geht,

Gerrit

Software zu schreiben, die andere nutzen sollen,

Gerrit

findet das immer noch,

Gerrit

ja, was heißt, findet das nicht im Notebook statt,

Gerrit

aber dafür ist es, glaube ich, auch nicht gemacht.

Jochen

Ja, ja, das ist auch

Jochen

etwas, was man jetzt immer zunehmend hört, dass

Jochen

Leute das halt benutzen und

Jochen

ja, ich finde es eigentlich relativ

Jochen

einleuchtend, dass das jetzt sich so

Jochen

durchsetzt. Was ich halt noch schade finde,

Gerrit

ist, dass es irgendwie noch immer keine so richtig

Gerrit

schöne,

Gerrit

schön bedienbare

Gerrit

oder intuitive Plot-Umgebung

Gerrit

irgendwie überhaupt gibt.

Gerrit

Also es gibt ja so ein paar,

Gerrit

die hast du bestimmt schon alle ausprobiert.

Gerrit

Du hast ja selber schon gesagt,

Dominik

Alter ihr oder sowas. Mal reingeschaut

Dominik

für Python. Ich glaube, das ist für

Dominik

Scientific-Sachen gar nicht so verkehrt. Gerade für

Dominik

so statistische Plotting nochmal.

Dominik

Habe ich aber selber auch noch nicht so viel benutzt.

Dominik

Vielleicht muss ich da auch nochmal reingucken.

Dominik

Mich stört halt noch

Gerrit

dieses, ich glaube, es wurde mal

Gerrit

Plotting by Side-Effect genannt von

Gerrit

Mudplotlib.

Gerrit

Ja, das stimmt.

Gerrit

Also wahrscheinlich, genau. Vielleicht gibt es

Gerrit

mittlerweile, aber ich meine,

Gerrit

ich habe noch nichts davon gehört, dass irgendwas

Gerrit

eben die ganze,

Gerrit

das ganze Repertoire mitbringt, was man

Gerrit

eben auch braucht. Ich möchte halt,

Gerrit

das Hauptproblem ist, wenn ich jetzt irgendeine

Gerrit

Plotting-Sprache lerne oder irgendein Plotting-Interface

Gerrit

lerne oder was auch immer, möchte ich, dass es

Gerrit

wirklich alles kann.

Gerrit

Irgendwann werde ich dazu kommen, dass ich das brauche,

Gerrit

dass ich dieses Detail einstellen muss und wenn ich das

Gerrit

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

Gerrit

Und das

Gerrit

heißt, das ist so ein bisschen auch

Gerrit

ein Problem, dass natürlich normalerweise

Gerrit

kann man irgendwie ein kleines Tool schreiben

Gerrit

und dann wird das immer größer und so weiter, aber

Gerrit

gerade bei Plot-Sachen,

Gerrit

man muss eigentlich schon mit etwas anfangen, was fast

Gerrit

alles kann, bevor man irgendwie eine Chance

Gerrit

hat, was anderes sich durchzusetzen.

Jochen

Ja, es gibt da, ich weiß nicht,

Jochen

inwiefern Gnuplot das auch

Jochen

übernommen hat, es gab ja dieses sehr einflussreiche

Jochen

Wo, obwohl das ist glaube ich gar nicht so

Jochen

furchtbar alt, Grammar of

Jochen

Graphics irgendwie

Jochen

und unter R

Jochen

hat man ja mit ggplot2 irgendwie da so eine

Jochen

Umsetzung von im Grunde

Jochen

und das ist eigentlich ja schon sehr nett, aber ich

Jochen

fürchte auch, in Python gibt es da nichts, was

Jochen

irgendwie

Jochen

es gibt

Jochen

irgendwie Adaptionen davon

Jochen

in Python, aber ob das jetzt

Jochen

wirklich genauso gut ist, weiß ich auch nicht und

Jochen

es ist immer noch aktiv irgendwie unter Entwicklung

Jochen

furchtbar schlecht ist, Matplotlib auch nicht.

Jochen

Nee, nee, es ist

Gerrit

irgendwie, ich möchte jetzt

Gerrit

einfach mal eine Parabel plotten.

Gerrit

Und jetzt,

Gerrit

sowas wie Gnuplot, was eine

Gerrit

rein plot-orientierte Programmiersprache ist,

Gerrit

ist das eine Zeile.

Gerrit

Und ja, Matplot muss ich,

Gerrit

ich weiß gar nicht, wie ich das

Gerrit

am schnellsten hinbekommen würde.

Gerrit

Dotplot?

Dominik

Ja, den müssen wir schon ein bisschen rumbasteln, glaube ich, aber

Dominik

wenn du es einmal definiert hast,

Gerrit

Also ich glaube wahrscheinlich, wenn mir irgendjemand

Gerrit

einfach für fünf Jahre Geld geben sollte oder so,

Gerrit

würde ich mich daran setzen, dass

Gerrit

ein komplett neuer Nightmare Day sieht.

Gerrit

Cool.

Gerrit

Ja, wir haben noch

Gerrit

den Lieblingspick natürlich,

Dominik

der Pick der Folge oder sowas.

Dominik

Was wäre denn deine Wahl,

Dominik

dein bester Pick für Alt-Weißen-Modul?

Dominik

Ich glaube, eigene Module sind wahrscheinlich

Dominik

ausgeschlossen.

Dominik

Wenn du so dein eigenes Modul da

Dominik

ein bisschen umschmachst.

Dominik

Also. Jetzt musst du das aber kurz

Dominik

erzählen, was ist denn dein eigenes Modul?

Dominik

Nee, nee, nee, mach ich nicht.

Dominik

Ich hab ja auch schon die ganze Zeit drüber geredet.

Gerrit

ja, ich glaube also, das Lieblingsmodul

Gerrit

ist wahrscheinlich immer noch NumPy, weil es einfach

Gerrit

enorm

Gerrit

mächtig die Sachen

Gerrit

bringt, die

Gerrit

gerade, ja,

Gerrit

in Rechen von großen

Gerrit

Datenmengen und auch ansatzweise

Gerrit

also nicht mal sehr großen Datenmengen,

Gerrit

aber auch kleineren Datenmengen

Gerrit

Dinge hinbringt, die

Gerrit

Standard Python nicht hat und

Gerrit

das, ja, ich kann mir

Gerrit

glaube ich kaum, es gibt

Gerrit

sehr wenige Fälle, wo ich es nicht importiere.

Gerrit

Und was

Gerrit

wäre denn Pick der Woche?

Gerrit

Ist das auch ein Pie, oder?

Gerrit

Was ist der Pick der Woche? Ich weiß es auch nicht.

Gerrit

Dann müssen wir doch eigentlich eine wöchentliche Sendung machen.

Gerrit

Ja, ja, fast.

Dominik

Ja, aber ich würde mir so eine kleine Kategorie einführen.

Dominik

Pick der Folge oder sowas.

Dominik

Also was

Gerrit

macht es für mich zum Pick der Folge? Das ist das, was ich diese

Gerrit

Woche genutzt habe oder was ich diese Woche neu gelernt habe.

Gerrit

Ja, oder vielleicht irgendwas Aktuelles. Das wäre

Jochen

was, was in letzter Zeit als cool aufgefallen ist.

Dominik

Das wusste ich gar nicht. Aktuell kann doch was ganz Altes sein.

Dominik

Einfach was nochmal so. Irgendwas Neues.

Dominik

Was soll es der Standard-Tipp sein?

Dominik

Ihr stellt Fragen.

Dominik

Deshalb kann ich mir doch schon mal überlegen.

Dominik

Ja, ich habe nämlich auch noch nicht dran gedacht.

Dominik

Also, was ich neulich zum ersten Mal

Dominik

verwendet habe, was ich

Gerrit

und was ich dann wieder nicht

Gerrit

verwendet habe, weil es mich dann doch nicht glücklich gemacht hat,

Gerrit

war Name-Touple. Ich habe aber gehört, es gibt

Gerrit

jetzt Dataclasses

Gerrit

und muss mich dazu unbedingt einlesen.

Gerrit

Ja. Kann wenig dazu sagen,

Gerrit

aber es ist

Gerrit

wahrscheinlich genau das, was ich

Gerrit

Ja, ich glaube schon.

Jochen

Ja, beziehungsweise es gibt halt für ältere Python-Versionen

Jochen

auch ein Modul,

Jochen

das man einfach so installieren kann. Also es ist jetzt natürlich in der

Jochen

Standard-Bibliothek mit drin oder beziehungsweise

Jochen

in Python selber, aber

Jochen

das

Jochen

Ding heißt Atris oder so

Jochen

und das kann sogar noch deutlich

Jochen

mehr als die

Jochen

Dataclasses. Aber ich glaube auch, dass

Jochen

das Dataclasses, da gab es auch die letzten paar

Jochen

DDF-Treffen

Jochen

und Talks zu, wo halt auch von der

Jochen

Geschwindigkeit wurde gesagt, das ist halt

Jochen

deutlich besser als Name-Toppel und so.

Jochen

Im Grunde gibt es

Jochen

keinen wirklich tollen Grund mehr,

Jochen

außer man braucht jetzt die Indizierbarkeit oder so

Jochen

noch Name-Toppel zu verwenden,

Jochen

weil man das mit Dataclasses oder Atos halt

Jochen

deutlich besser hinkriegt.

Jochen

Ja,

Jochen

das ist auf jeden Fall eine interessante Geschichte.

Jochen

Und dein Weg auch?

Jochen

Ja, ich würde tatsächlich,

Jochen

also was ich in letzter Zeit noch mal

Jochen

angeguckt habe aus

Jochen

unterschiedlichen Gründen und dann doch wieder

Jochen

gar nicht so schlecht fand, ist

Jochen

Django Guardian.

Jochen

Ist halt weg mit Entwicklung, was völlig

Jochen

anderes.

Jochen

Ich kann nicht mitreden.

Jochen

Also da geht's

Jochen

einfach darum, dass man halt häufig das Problem

Jochen

hat, dass man Berechtigungen

Jochen

verwalten möchte auf

Jochen

bestimmte

Jochen

Zeilen in der Datenbank und

Jochen

auf Tabellenebene gibt es das in Django schon

Jochen

eingebaut, dass man da halt Berechtigungen vergeben kann

Jochen

und dann halt auch diese Berechtigung

Jochen

benutzen kann, um irgendwie Zugriff darauf zu

Jochen

regeln, aber

Jochen

für Objekte,

Jochen

Einzelobjekte oder Zeilen

Jochen

geht das halt nicht und Django

Jochen

Guardian erweitert halt das Django Permissions

Jochen

Modell darum, dass das halt dann doch geht,

Jochen

indem da zwei zusätzliche Tabellen

Jochen

eingeführt werden, das, ja, der rammt sich dann

Jochen

relativ wüst aus, wenn man das macht, aber es ist

Jochen

also man denkt zuerst, das kann nicht gehen oder das ist halt

Jochen

furchtbar, aber nee, es funktioniert tatsächlich

Jochen

und zwar sieht es ziemlich gut aus.

Jochen

Und ja, genau, also

Jochen

wenn man dieses Problem hat, sollte man sich vielleicht

Jochen

das mal genauer angucken, weil das sieht

Jochen

doch nach einer halbwegs vernünftigen Lösung aus.

Jochen

Cool, kann man so permission in dem Webtoon

Dominik

lösen, dass irgendwie jeder darauf

Dominik

zugreifen kann, was er will. Ja, ich picke

Dominik

Bandit, das habe ich irgendwie zwischendurch

Dominik

entdeckt, das ist so ein Anfänger, glaube ich,

Dominik

Security-Hinweis, was so alles

Dominik

sicherheitsrelevant sein könnte in dem Code,

Dominik

wenn man so einen Python geschrieben hat.

Gerrit

Da habe ich noch eine Sache, die mich überhaupt nicht interessiert.

Dominik

Nicht ganz viel

Dominik

zu machen, das ist auch nicht so, glaube ich,

Dominik

so ganz tiefgehend, aber so für die ersten Sachen, dass man so ein bisschen

Dominik

was versteht, was man da tut, fand ich das ganz spannend.

Dominik

Erst mal so reinzugucken.

Dominik

Ja, cool.

Dominik

Ich weiß nicht, haben wir noch irgendwas?

Dominik

Ja, das Wissenschaftler muss ja auch nicht.

Dominik

Das ist ja ein bisschen einem geschlossen.

Dominik

Ich kann noch was erzählen.

Dominik

Ich kann auch noch was erzählen.

Gerrit

Wahrscheinlich, wenn ihr mich lasst,

Gerrit

rede ich einfach fünf Stunden lang.

Gerrit

Ja, richtig schlecht.

Gerrit

Aber vielleicht noch eine lustige Sache zum Thema,

Gerrit

was kann man alles, ich glaube, ich habe mein Mikrofon

Gerrit

vorgestellt, sorry. Kann das sein, dass ich

Gerrit

irgendwie lauter bin oder so?

Gerrit

Okay, gut.

Gerrit

Genau, was ich auch noch gemacht

Gerrit

habe, was vielleicht so,

Gerrit

weil es jetzt furchtbar schwer zu erklären sein wird, ist,

Gerrit

ich habe mich ja auch mit der Frage

Gerrit

beschäftigt, also wir bauen Ökosystemmodelle,

Gerrit

habe ich ja schon geredet, und

Gerrit

irgendwann bin ich auf die Frage gekommen,

Gerrit

wie macht man das eigentlich

Gerrit

richtig, beziehungsweise

Gerrit

wir sind auf ein Problem

Gerrit

gestoßen mit einem Modell,

Gerrit

dass wenn ich jetzt, ich habe meine Spezies,

Gerrit

die da irgendwas machen, also von

Gerrit

Tieren oder Bakterien oder was auch immer

Gerrit

und es ist keines passiert,

Gerrit

also nehmen wir mal an, wir haben Elefanten und Giraffen

Gerrit

und was auch immer, was da einfach hervorzustellen ist

Gerrit

und

Gerrit

jetzt

Gerrit

mein Modell sagt immer, eine Spezies

Gerrit

ist eine Variable, also

Gerrit

die Menge an

Gerrit

Individuen einer Spezies.

Gerrit

Und darauf

Gerrit

baue ich ein ganzes Modell auf und

Gerrit

einfach, weil ich diese

Gerrit

Vereinfachung, die ich mache, dass ich sage,

Gerrit

alle Elefanten sind gleich,

Gerrit

alle Giraffen sind gleich.

Gerrit

Und ja,

Gerrit

eine Sache, die wir dann festgestellt haben,

Gerrit

ist, dass gewisse Modelle die Eigenschaften haben,

Gerrit

dass wenn ich jetzt irgendwie aus Versehen

Gerrit

es nicht hinkriege, alle Elefanten korrekt

Gerrit

in einer Spezies zuzuordnen,

Gerrit

angenommen, die Hälfte davon sind blau und rot

Gerrit

angemalt. Nashörner.

Gerrit

Ja, nee, also Nashörner auch,

Gerrit

aber eigentlich sind es wirklich alles Elefanten. Sie haben genau die

Gerrit

gleichen Eigenschaften, es sind nur die Hälfte von denen sind halt rot.

Gerrit

Oder rosa. Nehmen wir rosa Elefanten.

Gerrit

Ist immer gut, über rosa Elefanten zu reden.

Gerrit

Und dann haben wir festgestellt, dass gewisse Modelle

Gerrit

dann andere Ergebnisse produzieren,

Gerrit

wenn wir das machen. Also wenn wir irgendwie

Gerrit

eine Spezies nehmen und die aufteilen

Gerrit

künstlich.

Gerrit

Was nicht gut ist, denn ich möchte

Gerrit

natürlich, dass ein Modell, wenn ich

Gerrit

dieselbe Situation zweimal beschreibe, da soll er auch

Gerrit

tun, ist dasselbe, rauskommen.

Gerrit

Und

Gerrit

okay, was hat das jetzt mit Python zu tun?

Gerrit

Ich bin dann irgendwann hingegangen

Gerrit

und habe, gut, wir haben festgestellt,

Gerrit

wir haben dieses Problem, jetzt mal verstehen, wann taucht dieses Problem

Gerrit

auf? Und dann habe ich mit

Gerrit

Python und SymPy automatisierte Tests

Gerrit

geschrieben für Modelle.

Gerrit

Das heißt,

Gerrit

ich konnte ihm einfach ein Modell geben, hatte einige

Gerrit

Rechnungen gemacht, hatte dann eben die Hälfte der Elefanten

Gerrit

blau angemalt und

Gerrit

mir automatisch gesagt, das ist jetzt ein gutes Modell

Gerrit

und das ist ein schlechtes Modell.

Gerrit

Das ist auch eine etwas

Gerrit

exotischere Sache, die ich dann mit Python

Gerrit

oder mit Genöst

Gerrit

habe, wo man auch sowas wie Sympa

Gerrit

eben benutzen kann, dass man solche Rechnungen

Gerrit

automatisieren kann, die man sonst

Gerrit

sonst würde ich wahrscheinlich heute noch da sitzen

Gerrit

und das Ganze auf dem Papier durchrechnen.

Gerrit

Dann stapeln sich dann die Blöcke irgendwann.

Gerrit

Ja.

Gerrit

Und ich habe jetzt

Gerrit

immer noch trotzdem einen Block nur

Gerrit

vollgeschrieben mit irgendwelchen Formeln.

Jochen

Tja, aber ist denn dann sozusagen rausgekommen, woran das lag?

Jochen

Oder ist das irgendwie, das liegt dann am Modell selber wahrscheinlich?

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,

Gerrit

wo ich noch irgendwie gucken muss, dass ich das veröffentlicht kriege

Gerrit

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 man sagt,

Gerrit

wir finden es nicht heraus, verdammt, scheiße.

Gerrit

aber hier ist eine Software, die euch diese Frage

Gerrit

annähernd beantwortet.

Gerrit

Hätte was für sich gehabt, aber nein, wir haben am Ende

Gerrit

eine Regel gefunden, wann genau es der Fall ist

Gerrit

und jetzt braucht man es dann nicht mehr,

Gerrit

aber natürlich hat es enorm geholfen,

Gerrit

irgendwie ein Gefühl dafür zu kriegen, wann das passiert

Gerrit

und unter welchen Bedingungen

Gerrit

und warum und

Gerrit

das erstmal so da ein bisschen rumzuspielen.

Gerrit

Das war irgendwie

Gerrit

eine Sache, wo ich dann

Gerrit

Zympa wirklich gelernt habe, wertzuschätzen.

Gerrit

Ja, aber würde ich sagen,

Gerrit

dann sind wir doch schon so quasi durch, ne?

Dominik

Ja, ich würde auch sagen, dann sind wir doch mal tatsächlich durch.

Dominik

Vielen Dank, dass du da warst, Gerrit.

Dominik

Ja, Gerrit, vielen Dank, dass du da warst.

Dominik

Ja, vielen Dank.

Dominik

Hat mich auch gefreut, hier zu sein.

Dominik

Einfach über mich selbst reden,

Dominik

zwei Stunden lang, nein, nicht ganz.

Dominik

Ja, ja.

Dominik

Fast.

Jochen

Ja, es scheint auch hier auch eine längere

Dominik

Zeit. Und wir haben es tatsächlich geschafft,

Dominik

ein bisschen wieder Luft. Der Wind ist gerade aufgekommen.

Dominik

Vielleicht konnte ich erinnern, wenn wir es heute aufgenommen haben.

Jochen

Ich bin sehr gespannt, wie das mit den, ja, also es ging nicht.

Jochen

Wir mussten Ventilatoren aufstellen.

Jochen

Nachdem wir in der letzten

Jochen

Episode das Audio schon versaut haben.

Jochen

Vielleicht können wir noch einen draufsetzen.

Jochen

Nicht alle die Verzweiflung treiben

Jochen

mit Ventilatoren-Geräusch, aber hoffentlich

Jochen

wird das

Jochen

irgendwie einer der

Jochen

Post-Processing-Algorithmen

Jochen

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

Dominik

hallo-at-pison-podcast.de und

Dominik

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

Dominik

seid, bleibt uns gewogen, erzählt weiter, was es uns gibt.

Dominik

Ja, wo ihr auch immer gerade seid,

Dominik

was auch immer die Tageszeit ist, auch Tagesnachtzeit.

Dominik

Stopp nicht an Hitzschlag.

Dominik

Ja, bisschen warm.

Dominik

Ja, wir hören uns.

Dominik

Viel Spaß und bis später. Tschüss.