Transcript: European XFEL - Röntgenlaser mit Python
Full episode transcript. Timestamps refer to the audio playback.
Hallo liebe Hörerinnen und Hörer, willkommen beim Python Podcast. Wisst ihr, welche Episode wir heute haben? 42, ist das nicht schön?
Tja.
Das hättet ihr wissen müssen, das ist ja die Antwort auf alles. Bei uns ist natürlich wieder Jochen. Hi Jochen.
Hallo Dominik.
Johannes ist wieder da. Hi Johannes.
Hallo zusammen.
Ja, ich bin Dominik. Und wir haben den Martin heute zu Gast.
Jo.
Hallo.
Hallo Martin.
Hallo.
Schön, dass du auch dabei bist. Was machen wir denn heute? Die Folge heißt Laser des Todes.
Todeslaser?
Todeslaser mit Python.
Todesstrahlen? Ich weiß nicht.
Warum heißt das denn so, Martin?
Ja, ich wollte ein bisschen erzählen, wie wir, ich arbeite in Hamburg an dem Röntgenlaser XFEL
und wie wir das Ganze dort mit Python steuern und wie wir dort unsere Experimente machen.
Klingt interessant, ja.
Und ja, also wenn wir Python nicht hätten, wäre er tot, ist er Todeslaser.
Ja, sehr gut.
Der tote Laser.
Genau.
Ja, das machen wir heute.
Wir reden ein bisschen darüber, was Martin da so in Hamburg mit dem Laser macht und was man noch so mit Python machen kann.
Und wir wollen euch ein bisschen darüber erzählen, was wir von euren Fragen halten.
Und was wir da am interessantesten fanden war so, dass ihr fragtet, wie macht man das denn überhaupt, dass man sich auf dem Laufenden hält.
Da wollen wir einfach so ein bisschen drüber quatschen.
Ja, dann fangen wir doch mit den News an, oder?
Ja, alles klar. Was haben wir denn für News?
Johannes hatte irgendwas ganz Interessantes, habe ich gehört.
Nix, was man öffentlich sagen kann
Achso
Wir nehmen die Folge auch schon zum mehrfachsten Mal wieder auf
Also eigentlich wollten wir euch auch mit Listen beglücken
Aber das werden wir dann mal anders machen
Ihr hört vielleicht, Johannes hört sich heute besonders toll an
Ja, ich habe sogar einen Lob vom Jochen erhalten
Es ist höchst ungewöhnlich, dass die Tonqualität vom Jochen gelobt wird
Ja, es ist erstaunlich
Aber wenn man Geld ausgibt, kann man Probleme lösen
ist sehr überraschend.
Ja, man kann auch Probleme lösen, wenn man kein Geld ausgibt, aber manchmal
braucht man dann länger und ist nerviger und so.
Ja, aber Sachen basteln
und Audio-Hardware ist auch nicht meine
Expertise und so.
Der Geldweg ist immer
eine Möglichkeit.
Wo ist denn News Johannes? Hat er ein neues Mikrofon?
Haben wir noch was anderes?
Jemand war auf der PyCon, habe ich gehört.
Ja, richtig. Ich dachte ja eigentlich,
das hatte ich beim letzten Mal erzählt, dass ich da gar nicht hinfahre.
Schade, schade, weil irgendwie alle Tickets
schon weiter und so. Und dann hat es sich aber doch noch ergeben,
und dass sich irgendwie da Tickets auftun
und
dann konnte ich da doch noch hin, kurzfristig. Und ich dachte auch,
ich hätte keine Zeit, aber ich hatte dann doch Zeit.
Ja, und das war sehr nett. Also
war jetzt die erste, ich war das
letzte Mal auf der PyCon 2019,
also vor zweieinhalb Jahren und
ja, war sozusagen die erste Konferenz dann
wieder nach all der Zeit.
Also man konnte niemanden erkennen, weil die da noch
getan war. Ja, weil Maskenpflicht
und so.
Und ich hatte, genau, das hatte auch jemand von euch
schon irgendwie mal
erzählt, dann hätte man sicher auch das eigene Gesicht irgendwie aufs T-Shirt drucken können oder so, das wäre praktisch gewesen, dann hätte man Leute erkennen können. Oder direkt auf die Maske.
Ja, oder auf die Maske, genau. Bin ich nicht drauf gekommen, aber das wäre natürlich gut gewesen.
Die guten Ideen hatten wir immer erst hinterher.
Ja, auf jeden Fall genau, das mit dem Maskenmann natürlich so ein bisschen, das hat sich noch nicht so angefühlt wie immer, ehrlich gesagt, aber es war auf jeden Fall schon mal ein Schritt in die richtige Richtung.
Und ich war jetzt letztens auch auf der Beyond Teller-Rand, das ist so eine Webentwicklungskonferenz.
Ganz viel Design-Zeugs.
und ganz viel Design und nicht nur
Computerkram, sondern halt auch
Kunst und so.
Und so ein bisschen die Hippeszene, die sich
dafür hält.
Ja, die Hippeszene, das könnte man sagen.
Meine coolen Freunde, die gehen dahin.
Ich war da nur einmal
und dann war es mir zu cool.
Ja.
Aber ja genau, also
die ganze
Atmosphäre da ist halt schon so ein bisschen
Der Vibe ist einfach anders
und ist angenehmer, ehrlich gesagt.
Und da haben die Leute dann schon keine Masken mehr getragen,
was möglicherweise daran lag, dass
die ganzen Regeln dann halt auch
irgendwann obsolet wurden.
Aber auch, dass die Räumlichkeiten einfach besser geeignet waren,
weil viel mehr Raum und so.
Aber es waren auch ein paar interessante Talks, habe ich gesehen.
Sehr interessante Leute, auch international, die angeflogen sind.
Ist eigentlich immer so. Das ist auch komisch.
Das weiß keiner so.
Ich weiß nicht, ob die Leute das wissen, aber das ist tatsächlich eine der
besten
Webkonferenzen so weltweit
und die findet einfach so in Düsseldorf statt,
in so einem alten Theater. Oh, wie freundlich.
Ja.
Kann man die Videos inzwischen ansehen?
Ja, ja. Ich weiß nicht, ob man die aus den Vorjahren immer sehen konnte,
aber gibt es das inzwischen? Doch,
nicht mehr auf Vimeo, weil
Vimeo hat gepivotet
und macht was anderes jetzt.
Aber
die sind jetzt auf YouTube, was natürlich nicht so richtig...
Das ist aber uncool.
YouTube ist ein bisschen uncool, hat nicht den richtigen Vibe, das stimmt schon.
Vimeo war da besser, aber
die gibt es alle auf YouTube.
Ja, insofern kann man sich
einfach mal reingucken und dann
sieht man, was da ist.
Du wolltest noch irgendwas sagen, irgendeine Keynote fandst du total super, hast du gesagt.
Und du wolltest noch was erzählen
zu den Talks, die du auf der PyCon ziemlich gut fandest.
Und von den Trends erzählen.
Und zum Beispiel gab es sowas wie PyScript, habe ich gehört,
wird gerade so ein bisschen durch die...
Ja, wobei das war jetzt dann eher PyCon US,
glaube ich, da war das ein großes Thema, PyScript
und so über Pyodid.
aber... Python US fand ich übrigens auch.
Ja, die war auch, genau.
Da habe ich aber nicht so wahnsinnig viel mitbekommen,
außer irgendwie das, was man halt über Twitter so mitbekommt.
Oh, apropos Cons.
Die DjangoCon ist auch
im Herbst und für die
Europython im Sommer in Dublin,
da gibt es noch Vouchers, wenn ihr bei uns in der Gruppe seid.
Ja, richtig, das stimmt.
Für die DjangoCon kann man noch
ganz kurz Vorträge einreichen.
Also wer noch einen Vortrag bei der DjangoCon machen möchte,
hat jetzt noch die Gelegenheit dazu.
Ja, ich glaube, bis zum 31. Mai.
Wir müssen uns ein bisschen beeilen mit der Veröffentlichung
das heißt noch vorher
Aber ja
Das zählt
Jochen, finde ich ja cool, wir treffen uns dann da
Ja, eigentlich schon, ich habe es bloß bisher noch nicht
geschafft eine Unterkunft zu finden
Also meines direkt in der Idee von der Brewdog Brewery
Ich weiß, es gibt da volle Unterkünfte
und so, aber entweder sind die halt unbezahlbar
oder halt nicht so richtig für mehrere
Leute geeignet oder halt nicht verfügbar in dem Zeitraum
und das ist alles irgendwie ganz schrecklich
Ich habe schon ein Teil gefunden, das relativ entspannt
gerade aufgemacht hat, da gab es noch gar keine
hat erst letzte Woche eröffnet oder so.
Oh, da müssen wir...
Ja, da bewertet man erstmal so,
da fehlen noch die Klobürsten, aber ich glaube,
bis Juli haben das hinbekommen.
Okay, das ist interessant, da muss ich mal gucken.
Ja, also wenn sich dieses Problem
lösen lässt, dann werde ich da auch hinfahren.
Ja, genau,
Konferenzen, achso, was wollte ich...
Ich glaube, wir machen am besten
nochmal mit Christian,
wollten wir eigentlich noch eine Episode machen zu den ganzen
Talks im Einzelnen und sowas,
zum Background zu PyCon.
Für mich tatsächlich der beste
oder interessanteste Talk jetzt
auf der PyCon.de war halt der
von Christian Heimes zum Thema
Python
nach WebAssembly
kompilieren und dann halt Python 3.11
im Browser laufen lassen.
Vielleicht hören wir da auch noch mehr von.
Ja, genau.
Und das war schon
beeindruckend, dass das geklappt hat.
Und ja, da ging es ein bisschen um den Hintergrund.
und das war echt super. Ansonsten
ja, was
ich, den
einen Talk fand ich, den von Stefan Benel
zum Thema Zeiten,
da hatten wir ja auch schon mal, das ist jetzt 20 Jahre geworden, das Projekt
und den fand ich auch super.
Ich fand den
von meinen Ex-Kollegen bei
Billiger super dazu.
Wir machen mal Live-Programming, ein ORM
in Python.
Ich fand den von Idealo,
weil er sich halt mit dem Thema, mit dem
ich mich auch schon lange, oder früher
früher in einer anderen Zeit, wie lange man beschäftigt hat.
Das war so richtig so Blast from the past
Vibes da und
die machen das jetzt gerade, was wir da
früher schon mal gemacht hatten und machen das super
und es war sehr interessant.
Das müsste alles in die Schonungsstellen,
dann kann man sich das alles nämlich mal anschauen, wenn man möchte.
Ja, ich glaube bei dem Vortrag, da sind die Slides leider
nicht da und auch der ist nicht per
Video verfügbar insofern, weiß ich nicht genau
warum, aber
genau.
Da müsste man da eigentlich noch mal eine
kürzere Zusammenfassung zu machen, aber
vielleicht kriegen wir da auch noch mal
die irgendwie dazu mit uns
zusammen eine Sendung zu machen oder so. Müssen wir mal schauen.
Ja,
genau, ja.
PyScript ist halt auch ein interessantes Thema,
ist halt so ähnlich, aber PyScript ist halt ein bisschen anders insofern
als das über PyUdit funktioniert
und das ist halt dann Python 3.10.
Und geht aber auch über WebAssembly rein
in den Browser und der Browser lädt
dann irgendwie Python-Pakete von
70 MB oder sowas und kann dann
und REPL aufmachen im Browser
direkt. Ja, das geht mit
Python 3.11
nachher ein bisschen wie auch, aber
da geht halt tatsächlich sowas wie,
man macht halt ein Jupyter-Notebook
auf. Das ist halt komplett
also auch mit, auch das Backend läuft dann halt
im Browser. Ja, das ist schon ganz nett.
Jupyter-Light nennt sich da, das ist ziemlich cool.
Da kann man auf jeden Fall gerade für diese ganzen Datenverarbeitungsgeschichten,
wenn man da ohne große
Def-Enviaments was bauen will von irgendeinem Gerät,
recht weit kommen.
Man hat halt erstmal diesen ganzen Packaging-Schmerz
nicht mehr so, man muss kein Python installieren
Also wenn einem dann jemand fragt, ja gut,
dieses Jupyter, voll cool, wie installiere ich denn jetzt Python
auf meinem Windows oder so?
Ja, es artet mal ein bisschen aus
Ja, ist ein bisschen
schwierig, genau
Ja, insbesondere dann, wenn schon welche da sind
und dass dann irgendwelche Konflikte mit irgendwelchen Dingen
die so laufen sollen, ist das manchmal so ein bisschen
ein Schmerz, aber damit haben wir jetzt
vielleicht weniger zu tun und PyScript ist so recht
einfach auch zu bedienen. Du kannst einfach sagen PySkript und dann schreibst du
Python rein in den Browser und dann...
Aber irgend sowas gab es doch früher auch
schon mal. Es gab auch irgendwelche
für Python im Browser.
Du wirst mir jetzt noch erzählen, wenn dir das war. Da hatten wir
das letzte Mal drüber gesprochen.
Wie ist das denn? PySkript? Ja, aber ich habe es natürlich nicht nachgeguckt.
Das wäre jetzt einfach...
Ich weiß es auch nicht mehr. Ich weiß nur auch,
es gab sowas schon mal und das aus irgendwelchen Gründen
ist das wieder versandet oder so.
Da war nicht so... Aber ich weiß auch nicht
genug darüber, um irgendwas dazu sagen zu können.
Ich habe gesagt, warum ich angefangen zu reden. Das war doof.
Ich weiß, dass es mal so eine Lösung gab
für, also so eine Universität
hat man das gemacht, um Leuten Python
beizubringen, dass man halt irgendwie
so einen kleinen Python-Interpreter
im Browser hatte, aber das war halt kein vollständiger
Es war keine Art Micro-Python
mit einem verringerten
Bild-Ins und nicht so viel
Batterien dabei. Und der war halt roh
in JavaScript programmiert, was dann auch zu
vielen schönen Dingen geführt hat, aber
zum Ausprobieren ist das
natürlich eine schöne Sache gewesen. Oh, damit kennt sich ja auch
besonders gut aus.
Das wird sicher noch interessant, da machen wir bestimmt noch was zu
Funktioniert denn er endlich jetzt mit Django 4?
Ja, schon lange
Ja, gut auch
Python 3.11
Auf Python 3.11
gibt es ja inzwischen Betas
und die Performance-Vergleiche sehen
sehr gut aus. Wie viel schneller ist das?
20% habe ich gehört, stimmt das?
Ja, so wie von 3.9 auf 3.10
einfach nochmal zu viel schneller geworden
Schön. Sehr gut, sehr gut
Das ist schon nicht schlecht. Es gibt auch jetzt auch Diskussionen
darüber, ob man den Gil jetzt nicht einfach mal
abschafft oder so eine Alternativversion, oder?
Ja, da gibt's,
also da hat einer bei Facebook,
ich hab den Namen vergessen, der hat da irgendwie
immer und lange Diskussionen darüber.
Also es gibt diese alten,
dieses alte Projekt
von, wie heißt der, Hastings, ich weiß nicht,
diese Gilectomy-Geschichte. Unladen Swallow.
Ja, ist das
das Gleiche? Ich weiß gar nicht. Ich weiß nicht.
Aber auf jeden Fall gibt's das auch.
Ist auch nix geworden. Nee, aber der
Ansatz jetzt, also, wie heißt der, Sam
Ich hab den Namen vergessen.
Stackels Python gibt es auch schon seit Ewigkeiten,
was auch niemand benutzt.
Oh, das weiß ich nicht. Soweit ich weiß,
wie heißt das? Eve Online oder so
benutzt Stackels.
Ah, echt? Ja, dann schau mal,
Johannes. Aber die sind noch auf Python 2.
Jochen hat gerade was von einem Computerspiel erzählt, wo er
die Technologie kennt und das war gegen dich.
Aha.
Maler ist nämlich Johannes, der sich mit den Spielen auskennt.
Ja, ich kenn mich mit den Spielen aus,
nicht mit der Technik dahinter.
Sehr gut.
So gut aussehen, ja.
Nee, aber der jetzige Ansatz ist auch so,
dass da viele Leute gesagt haben,
die drauf geguckt haben,
oh, der sieht so aus,
als ob das wirklich funktionieren könnte.
Insofern, ja, könnte sein,
dass es, also bis es soweit ist,
wird es natürlich noch eine ganze Zeit lang dauern.
Aber ja, allein,
dass jemand da so viel Arbeit reingesteckt hat,
das ist auch schon lange nicht mehr passiert.
Auf der anderen Seite, ehrlich gesagt,
also meine Position dazu ist ja so,
ja, so wahnsinnig wichtig ist das jetzt halt nicht,
weil ich meine,
Das wäre ja auch nochmal eine interessante Frage
Ich weiß nicht, ob euch irgendwie eine Situation
oder ich habe da Schwierigkeiten, ich weiß nicht
dass man tatsächlich irgendwie I.O.
multiplexen will und gleichzeitig ganz viel
CPU braucht, weil dann wäre es gut
Gil irgendwie loszuwerden
aber ich habe die Situation nicht so oft
Also das Projekt ist übrigens NoGil
und da gab es einen Blogartikel zu
bei der PSF Blog
Ah ok, kann sein
NoGil
Man darf auch nicht vergessen, dass es ganz viele
andere Sprachen, die so
interpretiert sind, auch einen Gill haben, der
aber längst nicht so viel diskutiert wird,
nicht so viel irgendwie im Weg
steht.
Es soll tatsächlich einen Compiler-Flag geben
in Python 3.12, wo man
den Gill mit abstellen kann.
Du kannst auch selber
den freigeben,
das kannst du auch machen.
Gut, du musst dann halt
schon auch eine C-Extension schreiben,
aber geht schon. Und wenn
du sowas benutzt wie NumPy oder so,
und dann machen das natürlich alle.
Es werden sowieso auch immer alle Prozessoren benutzt.
Also hier steht, dass das das einzige Feature wäre,
was wirklich Concurrency
between Threads verhindern würde.
Das verstehe ich
nicht sofort. Ja, also Concurrency,
das ist halt die Frage, also ich glaube,
ich verstehe, was das meint, aber das bedeutet halt,
was momentan nicht geht, ist,
dass du sozusagen
mit mehreren
Threads mehr als eine CPU benutzt
gleichzeitig. Das geht nicht.
Also eine Thread pro
CPU. Ne.
Alle Threads eine CPU. Aha.
Genau. Das ist halt
das, was der Gil macht. Jeder Python-Interpreter kann
nur eine CPU haben. Ja. Oder?
Okay, also muss ich mehrere, ja, muss ich den
Interpreter multiplexen. Musst du Multiprocessing
machen, dann ist das dann auch wieder Mist.
Ja, oder du kannst halt, wenn du halt
unten drunter sitzt, wenn du sowas wie ein Handpipel bist oder so
und da hat dir gerade jemand gesagt, multipliziere
mal diese beiden Matrizen, dann kannst du auch irgendwie
sagen, okay, ich weiß, was ich tue,
Gil gebe ich frei und
dann. Und auch diese ganzen Netzwerksachen, die
geben den GIL üblicherweise auch immer wieder frei.
Also wenn du irgendwie viele I.O. machst mit
Select Calls oder sonst irgendwelchen Sachen, hast du ja auch
keinen GIL in der Anzahl. Also wartest du nicht immer auf
eine, sondern du wartest schon
auf alle gleichzeitig. Aber du kannst dann, wenn
Pakete kommen, halt immer nur eins bearbeiten.
Ja.
Na gut.
Dann bin ich mal gespannt, was es da in 3.11
und 3.12 und 3.13 und 3.14
und so weiter
geben wird. Spannend.
Ja. Okay, dann sind wir mit den
News durch.
haben wir nicht geschafft, vielen Dank
zu kommen wir jetzt zu unseren Userfragen
ach Userfragen, genau, ja, richtig
hatten wir
wir haben auch eine längere Pause gemacht
muss man sagen, das könnte natürlich auch dazu
geführt haben, dass es mehr war als normalerweise
ja
und zwar, aber wir hatten auch mehrere Leute
die quasi das gleiche Thema
sozusagen ein bisschen angefragt haben
und zwar, das war
wie haltet ihr euch eigentlich
auf aktuellen Stand, wo kommt der an Neuigkeiten
Informationen ran
Ja, also
Ja, das war die eine Frage und die andere Frage, wo du sagtest,
dass es fast dasselbe war, wie fange ich denn damit überhaupt
an mit dem Quereinstieg?
Ich fand ja, das waren zwei unterschiedliche Dinge.
Ja, das sind unterschiedliche Fragen im Grunde.
Aber ich würde die gerne auch beide beantworten.
Wie haltet ihr euch denn auf dem Laufenden?
Ich halte doch mal den Martin.
Ich, also ich glaube
meistens dadurch, dass ich einfach Jochen anrufe,
aber ich glaube, diese Optionen haben jetzt
nicht so viele
der Zuhörer.
Schreibt uns immer eine E-Mail, wir machen einen neuen
News-Kanal auf.
Ja, aber ansonsten...
Bist du auf Twitter?
Sowas wie Twitter mache ich tatsächlich gar nicht.
Ich lese tatsächlich sehr viel einfach Dokumentation
der Sachen, die ich neu verwende
und was dann immer Neues
kommt, dann wird immer...
Das ist, glaube ich, ein ziemlich guter Tipp, dass man tatsächlich weiß,
welche Sachen man verwenden möchte und
dann davon die offizielle Doku liest. So kommt man
tatsächlich, das ist eine Antwort auf die zweite
glaube ich am schnellsten
in die Themen rein.
Es gibt da ja auch dann immer typischerweise
What's New in den Dokumentationen
und da steht tatsächlich auch die wichtigen Sachen drin.
Also daher habe ich meine
Insider-Infos. Das finde ich tatsächlich gut, weil viele Leute, die
anfangen, die prügeln sich so ein bisschen mit
irgendwelchen Tutorials rum oder YouTube-Sachen
oder so und ich finde tatsächlich, dass genau das
in die Hand zu nehmen, was man braucht und dann
die Doku lesen, viel effektiver.
Ja, okay, aber
um nochmal auf das News-Thema zurückzugehen.
Jochen, wovor kriegst du denn deine News?
Ja, ich tatsächlich
heutzutage meistens über Twitter
Ich habe früher irgendwie sehr viel RSS
konsumiert und davor Newsnet
und heute ist es hauptsächlich Twitter
wobei man da ein bisschen
aufpassen muss, wenn man auf Twitter
irgendwie neu ist und nicht viele Leute
abonniert hat, dann
kriegt man die ganze Zeit irgendwie Nachrichten oder
Tweets in die Timeline gedrückt über Celebrities
und Fußballer und Fußballer-Frisuren
und weiß ich nicht, so Zeugs, wo man sich sagt, hä?
Aber wenn man das
eine Weile benutzt hat und dann so ein bisschen selber kuratiert hat, dann ist es schon ziemlich gut.
Also man muss es hart kuratieren und dann kann man Sachen filtern, wie das der Johannes auch gern macht.
Ja, ich finde auch, also Twitter ist eine gute Quelle für Neuigkeiten,
aber man muss da wirklich ganz knallhart filtern. Ich habe eine ganz lange Liste mit
Wörtern, die mich nicht interessieren. Da sind
Celebrity-Namen drauf und Politiker-Namen drauf und
politische Institutionen drauf und Themen, die mich einfach nicht interessieren.
Also man muss sich seine eigene Filterblase bauen und quasi sich von der Welt so abschotten, dass man nur die Dinge konsumiert, die weitesten brauchen sind.
Zumindest auf Twitter, weil die meisten Meinungen, die auf Twitter kommen, sind ja erstmal unqualifiziert.
Also ich würde das auch Anfängern tatsächlich nicht empfehlen wollen, weil das ist ganz schön schwierig rauszufinden, was einen überhaupt interessiert oder was gute Qualität hat, wenn man auch gar nicht weiß, was man sucht.
Wenn man tatsächlich über technische Themen auf Twitter reden möchte, dann kann man ruhig alles, dann kann man ruhig Democrats und Republicans und Biden und die ganzen Namen, die es da so gibt, einfach alle rausfiltern, weil da hat man ja nichts davon.
Da muss man dann aber schon eben
man kann jedem mal eine Chance geben
ein Follow geben ist leicht
aber man muss dann auch sich das durchaus
wert sein und jemandem wieder entfolgen
und dann bildet sich so nach einer Weile
eine Sammlung raus von
Dingen, die man lesen kann
Ich glaube, dass das vielleicht auch der Challenge ist im Internet
Ich habe da auch irgendwann gesagt
man legt sich so seine Linklisten an oder sowas
und diese pflegen ist auch aufwendig
und zwar auch die Infos, die guten zu finden
und die zu karatieren ist gar nicht so
wenig Teil der eigentlichen Arbeit dann auch.
Also um da halt erstmal rauszufinden, was sind denn
die wichtigen Dinge und sie dann zu teilen. Ich habe auch so ein kleines
Linklist, wo man halt für Einchecker
glaube ich so ganz gute Tipps findet, wie man da
die ersten Schritte gehen könnte.
Aber da hinzukommen, das dauert halt einen Moment.
Du musst die erstmal entdecken und auch dann filtern.
Die müssen wir alle angucken und dann selber
so ein Gespür dafür entwickeln, was man
denn gebrauchen kann, was einem liegt und
sowas.
Ein guter Trick ist auch, das über Personen
zu machen. Also zum Beispiel, wenn man den Jochen auf
Twitter findet, dann kann man ja gucken,
wem der Jochen so folgt.
Oder er kann lesen, was der so den ganzen Tag macht.
Ja, aber ich mache da nicht viel. Also insofern, das hilft nicht.
Aber tatsächlich, genau, wenn man sich anguckt,
wem ich folge, könnte man wahrscheinlich eine ganze Menge
Python-relevante Sachen finden, das stimmt.
Ja, oder bei anderen Leuten
in der Community sicher auch.
Und ich glaube auch leider, das ist halt
auch sowas, das ist mit der Zeit, glaube ich, schwerer geworden.
Weil wenn ich, ich gucke halt auch
ab und zu so auf YouTube und so. Und es gibt
auch super Sachen auf YouTube, aber
wenn man... Auch da muss man ganz ehrlich ausgehen.
ganz arg ausfällen und man muss halt
sich durch viel Zeug durchgucken, wo ich jetzt sagen würde,
so, aber das weiß man halt nicht, wenn man anfängt.
Ja, gerade die Bars und Bars, man kann so sich versumpfen
in irgendwelchen Dingen von Leuten, die selber eigentlich gar keine Ahnung
haben, beim Lernen dann erstmal was aufnehmen nach dem Motto,
ich hab erst mal einen YouTube-Kanal gemacht.
Ja, gar nicht so einfach, ja.
Das macht's halt schwer, ja. Also insofern,
YouTube hat übrigens auch immer noch
RSS-Feeds, also da kann man auch die Kanäle
alle mit per RSS
abrufen.
Ich will das nicht auf YouTube haben.
YouTube hat auch eine Archi, die man benutzen kann, die kann man sogar in Python benutzen.
Ja, das stimmt. Aber das sollte ich vielleicht nochmal so als Tipp genau,
meine bevorzugte Art, YouTube-Content zu konsumieren, ist übrigens,
den ohne Bild zu hören, weil ich nicht so viel Zeit habe,
wenn ich das höre, dann gleichzeitig auf den Bildschirm zu gucken,
weil ich gleichzeitig irgendwie spüle oder einkaufen gehe oder sowas meistens.
Und was ich mache, mein Podcatcher-Podcast-Player kann das,
aber das können bestimmt andere auch.
Da kann man, der hat so ein,
der macht so ein Sideload
Action
ins Share-Sheet
bei iOS und wenn man dann sagt,
man ist auf einem YouTube-Video, es gibt ja auch ganz
viele Talks, also das achtet vielleicht auf Konferenztalks
oder so, man guckt sich die Konferenzen an,
guckt, welche Themen sind da so interessant, wenn man auf einem
Talk ist auf YouTube und sagt Share.
Da muss man ganz arg filtern.
Also selbst auf den guten
Konferenzen, die Hälfte
der Talks, einfach denen, die mich
nicht interessieren. Und dann auch da muss man einfach nicht Sachen angucken.
Ja, aber das ist so wie mit allen Dingen. Wenn die ganzen Content kann man zu Lebzeiten
ja gar nicht konsumieren und da muss man vielleicht ein bisschen sich einfach ausruhen.
Ich habe es früher immer so gemacht, ich habe erstmal so das Lästige weggerockt und
dann versucht dann zu den guten Sachen zu kommen. Das ist eine ganz doofe Idee. Man muss
erst mal mit den guten Sachen anfangen, weil dann fällt das Lästige immer weg.
Es gibt auch einfach so viel Content, dass man da nicht durchkommen kann und dann, wenn
irgendwas einem nicht gefällt, dann muss man es einfach wegdrücken. Und das muss man aber
auch lernen.
Ja, das ist nicht so einfach. Also vor allem, was dann auch wichtiger ist, dass man halt auch führt dann auch irgendwann mit noch einem Talk und noch einem Talk und noch eine Dokumentation, sondern auch mal ins Machen kommt. Also halt tatsächlich an Projekten sitzt, die man irgendwie versucht weiterzubringen, umzusetzen, Dinge, die einen interessieren, irgendwie, dass man da einsteigt. Weil das ist das, was am weitesten und am schnellsten weiterbringt, weil man am schnellsten auf die Probleme stößt, die man auch lösen muss oder möchte. Und da halt dann die relevanten Sachen sich rauszusuchen, die einem da weiterhelfen, ist wahrscheinlich effektiver, als erstmal die Grundlagen dafür zu lesen. Was nicht immer ist. Es ist schon nett, wenn man bestimmte Sachen hat.
Ja, aber es klingt so ein bisschen vom Thema ab vielleicht.
Wobei, wenn du YouTube-Videos anhörst, warum dann nicht direkt Podcasts?
Ja, weil es da nur begrenzt viele gibt.
Also ich meine, ich höre natürlich auch Podcasts.
Also da werden vor allen Dingen, ja, TalkPythonToMe, PodcastInit sind vielleicht so die beiden.
Der deutsche Python-Podcast soll sehr gut sein.
Aber das ist ja so ein bisschen irgendwie, dass, ja, da sind die Leute rum.
Martin hatte gerade noch eine Idee.
Ja, was immer beim Lernen für mich immer sehr wichtig war, ist Code anderer Leute zu lesen. Und das macht man natürlich idealerweise dadurch, dass man andere Leute Code reviewt. Das ist dann immer das Ideal. Dann kann man denen sogar noch sagen, blöde Kommentare reinwirken.
genau das.
Ich mache das glücklicherweise beruflich und glücklicherweise
habe ich sehr gute Kollegen, die sehr gute Programmierer
sind und dann, ich habe
sehr viel einfach dadurch gelernt, dass ich
deren Code gelesen und
blöde Kommentare darüber abgegeben habe.
Aber das ist ehrlich gesagt
schon so ein bisschen die
steile Stelle an der Lernkurve irgendwie.
Also beide Sachen, sowohl einfach so
sich durch die Dokumentation von Projekten lesen,
wie auch fremde Leute Code lesen. Ich erinnere
mich da noch dran, dass das halt, also klar,
ich würde absolut zustimmen, da kann man super viel
lernen, aber es ist halt auch echt anstrengend.
Also vor allen Dingen, wenn das halt
so Sachen sind, die man gar nicht mehr...
Aber ja, da kann man
echt viel lernen.
Es gibt ein Buch mit dem Titel
Learning Python the Hard Way.
Ja, das ist jetzt schon.
Habe ich auch mitgelehnt.
Ja, finde ich gut.
Aber es ist
sehr witzig, weil einige Leute, die dann
fremden Code lesen oder eigene Code lesen,
stolpern dann irgendwann darauf mal wieder. Ich habe das glaube ich schon mal
erzählt, aber ich kenne die Geschichte, wie Jochen
und meinen Code reviewte.
Ah, nee, oh Gott, oh Gott, oh Gott,
schmeiß mal weg, mach mal neu.
Ja, okay, neu gemacht, weg schon.
Dann wieder, ah, Gott, oh Gott, oh Gott,
was ist das denn, schmeiß mal weg, mach mal neu.
Irgendwann ein bisschen später wieder so,
oh nee, Gott, oh Gott, was ist das denn?
Jochen, das habe ich von dir gekauft.
Ja, seinen eigenen Code später
in der Partie.
Einen eigenen Code ansehen.
Past Me war schon ein ganz schlechter...
Ja, ja, ein halbes Jahr später so,
oh Gott, oh Gott, oh Gott,
was ist das denn, kann das weg?
Ja.
Ja, also das Wichtigste ist weitermachen, glaube ich, und dass man halt am Beiweit
so ein bisschen in der Frage, wie viel Zeit man investieren muss.
Ich habe noch zwei Sachen, die ich als Quelle habe. Die eine ist Hacker News,
das ist aber mehr so, was halt so für den groben Überblick
möglich ist, ja, und auch da muss man ganz arg filtern, ja, und vielleicht
am Tag einen oder zwei Links rausholen und auf keinen Fall in die Diskussion gucken,
weil das ist ganz schrecklich. Ja, ich würde auch nicht ablegen alle die Links,
und ich würde, wenn ich mir Zeit nehme,
die dann direkt angucken.
Wenn es interessant ist, kann man sich
das ja ansehen und das
in seinen Dienststand rein synthetisieren
oder zumindest wissen, dass es etwas gibt.
Das ist wirklich mehr so eine Discovery-Sache.
Was gibt es denn?
Und da kommen auch immer wieder Python-Sachen
durch, wo man sich dann die Dokumentation
ansehen kann.
Aber das ist wirklich so
low-level.
Aber was ich ganz viel mache, ist eben über
RSS-Feeds von Personen
ins Blog lesen. Also zum Beispiel
Jochen's Blog
hier auf dem Dorf wird abends geläutet.
Das ist
die etwas altmodische
Push-Notification
Methode.
Das ist Feierabend. Hier ist jetzt Feierabend
auf dem Dorf. Kann man auch nicht so gut wegdrücken.
Es gibt keinen Spam-Filter.
Nee. Aber Jochens Blog
zum Beispiel, der
Jochen veröffentlicht ja seine Weaknotes.
Das heißt, da weiß ich auf jeden Fall ungefähr, was der Jochen so
Ich gucke mir von den Podcasts eigentlich gar nichts an und von den Artikeln nur die Überschriften, aber es ist so ein am Puls der Zeit bleiben, was man da halt hat.
Ja, also Johannes macht ja auch Wignotes und die gucke ich mir auch mal an. Ich finde das immer sehr interessant. Ich finde da immer Dinge, die ich nicht gesehen hatte, die bei mir nicht vorbeigekommen sind. Ich dachte, super, das ist ja total interessant. Das hilft auch auf jeden Fall.
Also ein paar Newsletter vielleicht auch, aber
da kann man auch was interessiert, dann direkt lesen.
Also ein paar bessere sind vielleicht
irgendwie Data Science Weekly oder Python Weekly
oder so.
Ja.
Genau, ich weiß nicht, ich habe ein paar
Postgres Weekly auch noch,
der ist auch noch ganz gut.
Und es gibt noch so einen anderen, den ich gerade
vergessen habe, den muss ich mir nicht schon uns einfach reinschreiben,
vielleicht finde ich den ja noch.
Ja, Newsletter.
Tja, aber ansonsten,
also mit Leuten reden finde ich immer so,
das Beste eigentlich.
Wie schon gesagt, das ist immer Jochen anrufen, fragen.
Ja, nein, aber
wirklich, also wenn man halt irgendwie auf die lokalen
Treffen geht, da trifft man andere Leute,
die sich vielleicht mit demselben Thema beschäftigen.
Ich glaube, das ist eine gute Idee, weil die
wissen meistens auch so ein bisschen was oder jeder weiß
so ein bisschen was mehr und dann hat man das,
irgendwer hat das mal Schwarmintelligenz genannt
oder so. Das finde ich gar nicht so schlecht.
Da kommt immer so ein bisschen was raus. Da kommt man immer
mehrere Schritte weiter, als wenn man da alleine
gegen die Wand läuft und da sich dann
abwälzt und dann drüber klettern will. Das ist, dauert
und ganz angenehm Ja ansonsten glaube ich dann sind wir damit auch mehr oder weniger Achso Quereinstieg andere Frage Das w vielleicht auch nochmal Ja also die Frage ist was bedeutet Quereinstiegen
Wie viel Zeit investierst du? Ist halt auch da die Frage.
Wie viel Zeit kannst du denn auch, wenn dich Python
nur so nebenbei interessiert, dann hast du
vielleicht fünf Wochen die Stunde Zeit.
Fünf Wochen die Stunde,
fünf Stunden die Woche.
Das ist zwar schon ganz schön viel, wenn man sich überlegt,
dass man so fünf Stunden die Woche für so ein Hobby erübrigt.
Aber wenn man das jetzt mit jemandem vergleicht...
und Jochen unterhalten sich über die Programmiersprache Python
mitkommt, weil man möchte ja vielleicht auch ein Level haben.
Ja, aber ich finde es
schwierig. Also ich meine, das sind halt eben,
im Rückblick ist es halt so viel Zeit,
die man investiert hat. Wenn einem das jemand
gesagt hätte, wie viel Arbeit das ist, dann hätte man
dann gar nicht angefangen.
Dann hätte man lieber
Holz.
Dann gehe ich spazieren und gucke mir
die Bäume an und die Blüten und denke mir, ach ja.
Aber der Grund, warum
das dann passiert ist, ist ja eigentlich, dass
das einfach Spaß gemacht hat. Und dann
merkt man das nicht so. Dann denkt man sich,
Hups, schon wieder ein Tag vorbei.
Oder eher in der Nacht.
Es muss halt gut sein.
Es muss halt einen Spaß machen und irgendwie liegen.
Also wenn euch das wirklich so...
Man darf ja auch nicht so viel Stress machen.
Der Dominik stresst uns ja jetzt,
weil ich mir hier so viele Stunden reintun muss.
Es geht ja auch, man kann es auch nebenher machen.
Man kann es auch zum Spaß machen.
Ja, man sollte es zum Spaß machen.
Ja, auf jeden Fall.
Python ist sehr gut, um es zum Spaß zu machen.
Aber halt tatsächlich auch für euren Lebensunterhalt.
Also es geht eigentlich ganz gut.
Aber man muss halt dann bereit sein, auch was zu tun.
Ich wollte jetzt niemanden stressen, aber es geht halt darum, wenn du
einen Quereinstieg wirklich finden willst und sagst, du hast dich
entscheiden, das ist jetzt dein Ding, dann
mach es ordentlich.
Würde ich jetzt behaupten.
So regionale Treffen
sind da, glaube ich, was super gut ist.
Als ich nach Düsseldorf gekommen bin, bin ich einfach
in den Python-Fuhr gegangen und jeden
Donnerstag da hingegangen.
Ich kenne das ja, im Chaosdorf
im Computerclub in Düsseldorf.
Jeden Donnerstagabend
ist Python-Fuhr und da kommen einfach Leute, die
interessiert haben. Das hat auch gar kein Programm
und gar keine Agenda oder so, sondern
es ist einfach gleichgesinnte
Treffen und das
führt dann schon automatisch dazu,
dass man darüber spricht. Und dann kann man ja auch gucken,
ob man irgendwo was hat, was man gerne
machen möchte oder ob man irgendein Thema hat, was
einen interessiert und da findet sich dann immer jemand, der
irgendwas dazu sagen kann oder auch
jemand anders, der ein Thema hat, wo man
dann selbst was dazu sagen kann. Und dann
kommt man da so in den Austausch rein. Also das ist
auch eine ganz nützliche Sache.
Ja, kann ich nur bestätigen.
Ja, ja. Okay, gut.
Dann würde ich sagen, wir sind
in diesem Themenbereich auch beschäftigt.
Dann können wir ja noch das Kapitel anfangen.
Um den Laser des Todes geht es dann jetzt.
Ja, genau.
Ja, da musst du glaube ich
erstmal ein bisschen ausholen, Martin.
Was ist das denn?
Und was macht ihr da überhaupt?
Du musst doch nochmal von dem Institut vielleicht erzählen.
Also wir sind der European XFEL.
Das XFEL steht für
Röntgenfreie Elektronenlaser.
Wir sind eine Großforschungseinrichtung
in Hamburg oder eher bei
Hamburg und
ja, wir haben dort
einen der
stärksten Röntgenquellen
der Welt.
Ja, ich glaube, wir sind aktuell sogar Nummer
1. Da ist
immer so ein Wettlauf, wer da jetzt gerade
Finanzverfahren hat.
Eine der
Ja, es gibt ja auch nicht so viel auf der Welt.
also so ein Röntgen und Laser zusammen, das ist tatsächlich gar nicht so einfach, das kostet dann halt auch gleich mal anderthalb Milliarden Euro.
Warum macht man das zusammen?
Ja, also Röntgen ist halt ganz praktisch, also es geht effektiv, ein großer Witz daran ist, dass man effektiv ein sehr, sehr gutes Mikroskop hat, man kann deutlich kleinere Sachen sehen, als man mit einem normalen Lichtmikroskop sehen kann,
weil die Wellenlänge von Röntgenlicht tausendmal kürzer ist als die von Sichtbewerben Licht
und dann kann man halt tausendmal kleinere Sachen sehen
und dadurch kann man dann zum Beispiel sich das Spike-Protein von Corona angucken
das war bei uns natürlich gerade das Thema schlechthin
naja, also das ist auch alles sehr interessant
aber bis die wissenschaftlichen Ergebnisse dann tatsächlich in der Praxis ankommen
wird hoffentlich Corona vorbei sein
ist natürlich trotzdem interessant
ja und
solche Sachen können wir uns dann halt angucken
wobei wir auch viele andere Sachen machen
also zum Beispiel
meine Gruppe hat sich viel um Magnetismus gekümmert
da ging es um
tatsächlich solche banalen Sachen wie
wie schnell kann man eigentlich grundsätzlich
also prinzipiell auf eine Festplatte schreiben
ja die Forschung
tatsächlich war es so, dass man
lange Zeit Angst hatte, man könnte
gar nicht so, also man käme da an eine Grenze, dass man also prinzipiell physikalisch
nicht schneller eine Festplatte schreiben kann als
ich weiß nicht, was damals vorgeschlagen wurde und dann haben wir das mal
also nicht wir, also die Physik hat das nachgemessen und festgestellt
nee, diese Grenze gibt es gar nicht, die man sich da gedacht hat, das geht sogar tausendmal
schneller als man sich das gedacht hatte und ja, dann
wollte man halt eigentlich wissen, ja was passiert denn da, also offensichtlich
hatte man das Problem nicht verstanden
und wir haben uns dann tatsächlich
mit einem solchen Randgläser
stellen wir uns die Frage,
wie schnell geht das eigentlich und
richtig, also die eine Sache
ist, dass man sehr kleinere Sachen sich angucken kann
und das andere ist, dass man sich sehr, sehr schnelle
Prozesse angucken kann, weil wir
sehr kurze Pulse machen
können, also wir kommen unter
eine Femtosekunde drunter, wem das
was sagt, also 0,1501
Sekunden.
Das ist sehr langsam.
also schnell
ja genau
und das ist der andere Grund warum man sich das
warum man das macht und
dann auch noch im Röntgenbereich
es hat halt dann auch noch die gleichen
Vorteile die man normalerweise beim Röntgen
hat, dass man halt durch Sachen so gewissermaßen
halb durchgucken kann und
dann so in Sachen reingucken kann
das ist natürlich dann
auch noch ein schöner Nebeneffekt
und dann das Ding läuft dann permanent
und macht die irgendwelche Experimente
und die wertet ihr dann irgendwie aus mit Bildern, die auf Platten gespeichert werden, die ihr dann...
Ja, also wir haben da uns so...
Also da gibt es halt diesen Laser, der ist halt dreieinhalb Kilometer lang
und am Ende kriegen wir dann immer wochenweise, verwenden wir den dann.
Das gibt es dann irgendwelche Benutzer, nennen wir die, die dann uns Ideen geben, was man denn da messen könnte
und die kommen dann bei uns vorbei.
Also heutzutage kommt es nicht mehr bei uns vorbei wegen Corona,
aber jetzt müssen wir es alle mal selber machen,
sehr anstrengend, aber normalerweise kommen die
bei uns vorbei und machen dann
mit dem
Röntgenlaser Experimente.
Und genau
da
kommt dann halt die Flexibilität tatsächlich von Python
ins Spiel, dass wir
ja im Prinzip, also
wir haben da immer
mehrere Teams und wir
wechseln uns typischerweise ab, also eine Woche
kriegt das eine Team, das eine Team darf den
Röntgenlaser verwenden, dann nächste Woche den anderen.
und Jochen unterhalten sich über die Programmiersprache Python
und Jochen unterhalten sich über die Programmiersprache Python
und das machen wir tatsächlich alles mit Python
und zwar vorwiegend deshalb, weil wenn dann so ein Benutzer vor uns steht
und dann sagt, ja, wir haben hier die Probe
und der Röntgenlaser ist leider viel zu stark, wir müssen die Probe
jetzt immer hin und her bewegen, damit wir nicht immer denselben Punkt treffen,
sondern damit er halt nicht kaputt geht, dann muss ich mich halt hinsetzen
und das dann programmieren, dass dann die Probe halt
geschickt so hin und her wackelt,
dass sie dabei nicht
kaputt geht, dass wir sie mit einem Laser beschießen.
Und dann hat der verschiedene Achsen in den Motoren,
die er irgendwie kennt und dann könnte er mit tausend Motoren
viele Dimensionen, die der irgendwie
möglich sind. Ja, richtig.
Und wir
brauchen natürlich die Flexibilität,
dass wir dann, also wir haben wirklich
für eine Woche schreiben wir dann tatsächlich
so viel
Code ist das ja praktischerweise in Python
jetzt auch nicht, aber es macht es halt möglich,
und Jochen unterhalten sich über die Programmiersprache Python
und Jochen unterhalten sich über die Programmiersprache Python
machen wir jetzt nicht mehr hier den Golf
12, sondern wir machen jetzt
ein Clown-Car und
fahr doch mal bitte irgendwie
die Motoren so, dass das dann passiert.
Ja, aber hopp, hopp. Genau.
Und so läuft das bei uns tatsächlich die ganze Zeit.
Und das macht es halt deshalb
Python.
Und ja,
die andere Sache ist, dass wir
natürlich dann immer sehr viele Sachen dann parallel machen
müssen, dass halt
dann die Motoren häufig dann
irgendwie parallel fahren müssen, dass man da
den Laser anschaltet,
den Motor hin und her fährt und der ausschaltet.
Habt ihr denn Joystick für oder sowas?
Ja, der Punkt ist,
dass es ja automatisch gehen soll.
Deshalb kein Joystick.
Aber wenn ihr jetzt eingreifen müsst oder so?
Ja, nee, das geht tatsächlich.
Also das ist glücklicherweise selten genug,
dass wir dann wirklich so mit Maus
und Klick auf Buttons dann das machen.
Das ist...
Ja, wobei da
dann natürlich
und
und das ist halt der große Vorteil,
dass wir halt nicht, wie das bei einer
Automobilfabrik wäre oder auch
tatsächlich auch in der Forschung
in anderen Bereichen ist, dass man halt
lange vorher einen Antrag
schreiben muss und dann gibt es dort eine
Softwareabteilung, die dann da irgendwelche
Entwicklungen für einen macht.
Also das wäre für uns einfach nicht flexibel
genug. Wir müssen wirklich
sofort eingreifen können
und das können wir auch.
Aber dann kommt wieder die ganze
Sache mit dem, dass wir die ganze Zeit Sachen parallel machen
müssen. Und
ja, da kommt dann halt wieder der vorhin erwähnte
Gil ins Spiel.
Dass wir halt eben tatsächlich
kein Multithreading machen,
weil Multithreading
ist ja der Horror.
Und dann tatsächlich alles
mit Async.io machen.
Das ist ja das, was normalerweise immer
die ganzen Leute im Web
ganz viel machen. Wir machen jetzt
kein Web, aber tatsächlich ist es
so, dass Async.io sich auch für
für Steuerung von Sachen super
eignet. Das heißt, wenn man
fünf Motoren gleichzeitig bewegen
will und dann warten das muss,
bis die alle angekommen sind,
das lässt sich super
in so einer Async.io-Umgebung
schreiben. Das heißt, ihr kommt mit Batteries
in Kludel quasi zurecht?
Jein.
Also, ja.
Wir
führen so ein bisschen Katalog darüber,
und Jochen unterhalten sich über die Programmiersprache Python
ist, dass wir geguckt haben, also
als wir uns entscheiden mussten,
wie machen wir denn unsere
Experimentesteuerung, da haben wir uns gedacht, okay,
die Datenauswertung läuft schon unter Python,
lass uns das doch uns einfach noch ein
Niveau vorher auch schon machen
und machen dann auch schon
die Steuerung des Experimentes in Python
und das hat natürlich auch dann
den Vorteil, dass man das dann die Übergabe der Daten,
also wenn wir dann
unsere Kameras steuern,
da muss man dann natürlich dann halt
gewissermaßen den Auslöser der Kamera
und Jochen unterhalten sich über die Programmiersprache Python
mit ein bisschen Daten zusammen und muss gerade überlegen, wie viel sind das?
Ja, mal gucken. Also 2 Megapixel mal 2 Byte macht 4 Megabyte mal 5000, 20 Gigabyte pro Sekunde.
Kleiner Datendurchsatz.
Ja, da muss man, also, habt ihr so viel Platz bei euch?
Läuft das dann die ganze Woche quasi so durch oder nur zu bestimmten, oder wie viel Zeit pro Woche,
wenn ihr messt, fallen denn dann tatsächlich Daten an?
Tatsächlich ist es so, dass ein großer Teil einer solchen Woche
erstmal in Einrichtung und Charakterisierung besteht.
Also wenn wir weniger als einen Tag brauchen, dann machen wir richtig gut.
Aber die restlichen, also ein Tag der Woche ist eh immer Maschinentag,
da wird repariert, gewartet und was weiß ich was gemacht.
Einen Tag lang brauchen wir sicherlich auch noch zum Einrichten.
Wir haben noch fünf Tage übrig und in den fünf Tagen
Ja, da können wir auch schon mal dann wirklich
also, ja
ich würde sagen 15, 20 Stunden
können wir dann tatsächlich auch schon messen und ja
das sind Datenmengen, die dann da durchfließen
und
weil da dann das große Problem natürlich
auch wieder ist, dass wir nach
Möglichkeit, dass alles dann wieder ausgewertet werden muss
Also eines der großen Vorteile
unseres... Ein Terabyte pro
Minute habe ich gerade ausgerichtet
Ja, um solche
Größenordnung geht es.
Glücklicherweise bin ich nicht
für das Datenmanagement zuständig.
Das sind eine Million Terabyte in eurem 15 Stunden.
1000 Terabyte.
Das kann ich sagen.
1000 Terabyte.
1080 Terabyte.
Ja, ja.
Petabyte ist bei uns
jede Woche.
Das ist nichts
Besonderes.
also unsere
Daten, also die Leute, die bei uns
ich bin glücklicherweise nicht dafür zuständig, die Daten
zu speichern und zu halten
aber die, die das sind
haben damit tatsächlich
das tut tatsächlich weh
und
man versucht natürlich dann immer die Daten
einzudampfen, dass man halt
versucht doch nur die Daten
zu speichern, wo wirklich was Relevantes drauf ist
also
von den 5000 Bildern
pro Sekunde.
Naja, das, also
nicht
auf allen Ecken des Bildes
sind immer interessante Daten drauf.
Vielleicht läuft dann irgendeine Reaktion, die mal 2 Sekunden
dauert oder nur eine zehntel Sekunde mal Flak hat
oder sowas und die muss man vielleicht haben.
Ja, also je nachdem.
Also es gibt zum Beispiel, also
was viel gemacht wird,
ist, wenn wir da solche Proteine
in den Strahl schießen, dass man dann
ja, also...
Jetzt hast du wieder was gesagt, was macht ihr?
Ihr stießt Proteine in den Strahl.
Genau, also zum Beispiel dieses
berühmte Spike-Protein von
Corona. Also das
Problem ist, wenn man mit einem Röntgenlaser da drauf schießt, dann ist
das Protein kaputt.
Das heißt... Das bricht durch.
Das explodiert. Das explodiert.
Ja, also das ist
die Magie, dass wir so schnell
sind, dass wir gewissermaßen
ein Foto schießen. Also wie muss ich das sagen?
Ihr habt irgendeine Trägersubstanzflüssigkeit, in der
schwimmt das rum und das ist auf so einem Glas drauf
und das schießt dann der Laser rein, oder?
Ne, das wird tatsächlich, also
ja, das ist in einer gelösten
typischerweise in einer
Lösung und
das wird dann in ein
gewissermaßen ein feiner Strahl
sozusagen wie ein
Finkelstrahl sozusagen,
der dann mit dem Laser
beschossen wird und da das sofort kaputt geht,
muss halt das die ganze Zeit nachgefüttert werden,
deshalb wird das mit Hochdruck
als ein sehr dünner Strahl
durch...
Da kommen die ganze Zeit Proteine, fließen da so durch.
Genau.
Das heißt, irgendwer pinkelt Proteine dann über diesen und da kommt der Laser, der ballert dann dazwischen.
Genau.
Und immer wenn was passiert, wird fotografiert, 5000 Mal pro Sekunde.
Genau.
Also immer dann, wenn der Laser schießt.
Der Laser schießt bis zu 5000 Mal pro Sekunde.
Je nachdem, was man genau macht, kann das auch mal mehr oder weniger sein.
Und der ist dreieinhalb Kilometer lang.
Das heißt, es gibt so eine Riesenröhre irgendwo da und da schießt er durch.
Richtig.
Das ist eine Tunnelröhre, die ist mit so einer Tunnelbohrmaschine gebohrt worden,
die dann
von, also wir sind,
das fängt in Hamburg an und ist tatsächlich so lang,
dass wir dann, dass das Experiment selbst
dann nicht mehr in Hamburg stattfindet, weil
zu weit weg. Genau, da sind wir
in Schleswig-Holstein.
Wie lange braucht der Strahl?
Ja, Lichtgeschwindigkeit, ne?
Ja, das ist wahrscheinlich ein Augenblick.
Ja, so Mikrosekunden, ja.
Aber ihr könnt es schneller wahrnehmen.
Ich habe gesagt, Phantosekunden könnt ihr auch.
Ja, ja, also das hat ja nichts miteinander zu tun.
Das ist ja, also wie lang der,
Tatsächlich ist es so, dass in unserer Tunnelröhre mehrere von diesen Röntgenblitzen hintereinander sich auf unsere Probe zubewegen.
Sogar ganz viele.
Tatsächlich ist es nicht so, dass da 5000 so gleichmäßige Sekunden kommen, sondern die kommen immer in Trains, nennen wir das, von 500 auf einmal an.
Und das dann 10 mal die Sekunde.
und die 500, die kommen halt sehr schnell hintereinander an
und dann kommt eine Pause und dann kommen die nächsten 500.
Und dabei kann man tatsächlich sehen, wie dann durch diesen Strahl,
der muss ja dann auch relativ schnell mit Druck da durch,
die ganzen Proteine zerstäuben oder explodieren.
Die bleiben in dem Wasserstrahl einfach gelöst.
Und jetzt ist es natürlich so, dass,
also das ist mir weniger Zufall,
und Jochen unterhalten sich über die Programmiersprache Python
Ja, das ist eine Riesenmagie, die da passiert.
Und ja, wie gesagt, ich bin nicht in der Gruppe, die das macht.
Aber man kann so wirklich Molekülstrukturen tatsächlich sehen.
Also so wie man sich das aus dem Chemieunterricht früher vorstellt.
So quasi, man sieht die, nein.
Also man sieht halt ein Streumuster dieses Moleküls.
Nun ja, also da sind dann so auf der Kamera so ein paar Punkte drauf und dann macht man damit ganz, ganz, ganz viel Rechenleistung, muss das Ganze zurückgerechnet werden.
und da sind dann, also
Clusterweise sind dann die
Rechner, die dann, also gewissermaßen
ist es so, dass
das Molekül befindet sich halt in einer
zufälligen Orientierung und
deshalb muss man auch ganz oft drauf schießen, weil man es dann
gewissermaßen einmal aus allen Richtungen betrachtet,
man sieht aber gewissermaßen nur den Schatten
des Moleküls,
ja gewissermaßen, also am Ende sind
das immer nur ein paar Punkte auf dem Detektor
und aus denen muss man das sich dann wieder mit
unglaublich viel Rechenaufwand
zurückrechnen.
dafür gibt es dann aber auch wieder ganze Arbeitsgruppen
also ganze Institute, die sich nur mit dieser
Rückberechnung
beschäftigen
weil man nur diese einzelnen partiellen Bilder aus verschiedenen
Blinkwinkeln hat und die man dann quasi zu einem ganzen
genau und daraus kann man dann
tatsächlich am Ende das ganze
Molekül wieder
rekonstruieren und weiß dann
kann man das irgendwie kalibrieren
dass man hinterher weiß, ob man das Richtige
zurückgerechnet hat, dass man etwas nimmt
wo man die Struktur kennt
da drin.
Natürlich haben wir angefangen mit
Molekülen, die wir schon kennen.
Und
Mathematik lügt auch nicht.
Ja, oder es ist einfach schon mit
anderen Methoden
gemessen worden und dann
weiß man, was da geht.
Wobei ich mich persönlich weniger
mit Molekülen beschäftige als mit Magneten.
Und
die haben das große Problem, dass datentechnisch
das sogar eher
anstrengender ist, weil
und
Ja, also was man halt macht, also mit Röntgenstrahlen kann man halt sehen, ob der Magnet magnetisch ist, gerade.
Also eine Festplatte speichert man ja dadurch, dass man auf einer klassischen Festplatte, also keine Solid State, sondern auf einer klassischen, dass man dort eine magnetische Schicht hat und dann den Magneten entweder so rum oder so rum dreht.
und was wir dann machen ist, dass wir
schießen mit einem
handelsüblichen
Laser,
auch mit einem Hochintensitätslaser
da drauf, dann
wird das heiß und dadurch
wird der Magnet demagnetisiert
und danach schießt man einmal mit dem XL
drauf und guckt, ob er noch magnetisch
ist und dann kann man die Zeit zwischen den
beiden
ändern und gucken dann,
wie schnell, wie lange es denn dauert so einen Magneten zu demagnetisieren und das ist dann halt die
kürzeste Zeit, mit der man grundsätzlich ein Daten auf einer Festplatte schreiben könnte.
Die Zeiten, die glücklicherweise so schnell sind, das weiß man inzwischen, dass das für
also ein Computer tatsächlich dann am Ende egal ist. Es geht also tatsächlich nur noch darum,
das tatsächlich prinzipiell zu verstehen, was da eigentlich passiert und nicht mehr
auszuschließen, dass man da in irgendein physikalisches Limit läuft mit der Technologie,
wo man jetzt irgendwie wahnsinnig viel investiert.
Das ist eine Magnetechnologie, mit der man mit Laser die Platten beschießt, um die Sachen zu speichern?
Also das Problem ist, dass das Einzige, was so schnell ist, sind Laser.
Und deshalb müssen wir Laser nehmen.
Also wie eine Technologie dazu aussehen würde, die Frage braucht man da...
Aber das hört sich an, es wäre deutlich schneller als SSD.
Ja, genau.
Wie gesagt, das ist
viel, viel schneller als alles.
Also das Schalten eines solchen Magneten
geht prinzipiell
viel, viel schneller, als das jemals ein Computer
schreiben kann.
Es gibt
keine theoretische
Grenze. Keine physikalische Grenze, die da
irgendwo ist. Es gibt eine, aber die ist so weit
von gut und böse,
dass wir diese 100 Jahre nicht mehr erreichen werden.
Genau, vor allen Dingen nicht bis
SSDs übernehmen.
Das ist aber nicht
das Problem, oder, warum Festplatten langsam sind
sondern das Problem ist, dass die richtige
Stelle nicht da ist
Ja, genau, dass
dieses Problem, wie gesagt, ist keins mehr
das ist damals, das ist ja auch schon wieder
30 Jahre her, dass damals
die meinten, in das physikalische Limit zu laufen
und dann
Eine schöne Vorstellung
Ja
Vor 30 Jahren hat man gedacht, jetzt
können Computer gar nicht mehr schneller werden
das ist jetzt leider vorbei
aber es hat sich dann leider
zum Glück doch rausgestellt
ja
ich fand das aber ganz interessant
ich glaube das interessiert vielleicht noch andere Menschen
wie funktioniert denn das jetzt überhaupt
so ein Magnetspeicherband
wenn du sagst, da muss man Magneten
drehen, dann speichert man
irgendwas? Ja also effektiv
also so eine Magnetplatte
wie sie in Festplatten
vor der Zeit von Essen
genau verbaut waren
Es ist ja einfach nur eine
magnetische Struktur
also irgendein
Stoff, der grundsätzlich magnetisch ist
und den kann man halt
da kann man sich so winzige
kleine
Magnetchen vorstellen, aus denen das
draufsteht, aus denen das besteht
aus denen es natürlich ganz ganz ganz viele
gibt, nämlich wie jedes Bit, das gespeichert werden
soll, eins
und dadurch, dass man dann
mit einer Magnetspule drüber fährt
dreht man das entweder so, dass der Nordpol nach oben steht oder der Südpol nach oben steht.
Und so speichert man Daten auf einer Magnetfestplatte?
So speichert man Daten auf einer Magnetfestplatte und danach dann
und umgekehrt wird das ausgelesen dadurch, dass man
dann halt misst, ob denn jetzt gerade der Nordpol oder der Südpol oben ist.
Und wir wollten, also
da gibt es halt Grenzen, wie schnell man das schreiben kann, aber wie gesagt, es gibt sie effektiv
nicht, weil es ging halt die Frage tatsächlich,
wie weit kann ich denn so einen Magneten
den Nordpol zum Südpol rumdrehen?
Also grundsätzlich,
wie lange dauert das eigentlich,
dass sich dieser Magnet dreht?
Dreht sich da
wirklich was oder wird das umgepolt?
Ja, gut,
das kann man
in der Definitionsfrage...
Was heißt denn dann umgepolt?
Ja, gut, es geht da immer um
die Spins der Elektronen Also Elektronen haben gewisserma ein Oben und ein Unten und in Magneten ist es so dass die Spins also dass die Benachbarte Elektronen aneinander gekoppelt sind dahingehend dass die wenn das eine Elektron nach oben zeigt zeigt das andere gerne auch nach oben
und dann bilden die so halt so eine Gang sozusagen und wenn dann gruppenmäßig sich alle zeigen dann in eine Richtung.
Und der Witz an einem Magneten ist, dass dann benachbarte Elektronen aneinander gekoppelt sind.
Also alle Elektronen haben einen oben und einen unten, aber normal sind sie nicht aneinander gekoppelt.
Das heißt, in einem Stück Holz passiert da nicht viel.
Also kann man mit einem Magneten die Spins rumdrehen, das kann man machen, das bringt aber nicht viel.
während man mit einem Magneten die Elektronen umdreht und dann auch das Magnetfeld wieder ausschaltet, dann bleiben die Elektronen halt in derselben Richtung stehen, wie sie vorher waren.
Das wäre auch gar nicht
klar gewesen. Das bedeutet, dass es
überhaupt Magnete gibt
aus Metall. Das ist der gleiche Effekt
wie etwas darin zu speichern.
Im Grunde ist das
das, was man darin gespeichert hat.
Ja.
Cool.
Also einem normalen Magneten ist das
die Information halt
ein Bit.
Ja.
Bei einer Festplatte sind es dann
ganz, ganz, ganz viele nebeneinander und man muss dann
aufpassen, dass die sich...
Sie sollen,
das ist immer das Problem, die Elektronen sollen sich ein bisschen
gegenseitig beeinflussen, weil sie ansonsten ihre
Position nicht halten, aber denen ist es aber auch nicht zu viel,
aber das ist dann
dann wieder
sehr viel Wissenschaft.
Die Dichte, wie die ineinander hängen und so weiter.
Genau, da kann man unglaublich viel mit rumspielen.
Eine schöne Sache
an der ganzen Geschichte ist übrigens, dass das
und Jochen unterhalten sich über die Programmiersprache Python
und Rost.
Und es stimmt.
Es trifft sich, glaube ich, ganz gut.
Und Kassetten und so weiter
und Magnetbänder funktionieren ganz ähnlich.
Halt nicht digital, sondern
mit einer analogen
Magnetisierung.
Wer das noch kennt
von früher, oh, jetzt habe ich mich geoutet.
Kassetten,
hm, was könnte das sein?
Hohen zurückspulen, durchreißen, aneinanderkleben.
Genau.
Ja, sehr schick
In einem Land vor unserer Zeit
Habt ihr denn da schon immer Python verwendet
oder seit wann verwendet ihr Python
oder überall oder gibt es auch noch
andere Technologien, die verwendet werden?
Ja, also es gibt auch immer noch eine
gewisse
Menschen, die sich nicht davon abbringen
lassen, weiterhin C++ zu
programmieren
Sie sind nicht tot zu kriegen
Nein, also tot wollen wir sie auch gar nicht
haben, aber
überzeugt,
haben wir es auch noch nicht geschafft.
Ihr habt es auch nicht geschafft, sich vor den Laser zu stoßen.
Genau.
Tatsächlich ist es so, dass in der
Physik jahrzehntelang
war C++ tatsächlich einfach die Sprache
schlechthin. Es wurde einfach alles in C++ geschrieben.
Stimmt gar nicht, außer das,
was in Fortran geschrieben wurde. Das ist dann halt wieder
eine Generation weiter vorher.
Und ja, es gibt auch noch die Fortran-Leute.
Die sind glücklicherweise
inzwischen sehr wenige geworden.
Es gibt sie immer noch, aber inzwischen ist das so, C++ ist jetzt halt doch nicht mehr die modernste Sprache und jetzt die neue Welle, da ist Python einfach, gibt es auch Rust?
Er hat auch noch vordran Bauteile.
Genau, natürlich, ja.
Ja, selbstverständlich.
Ist gar nicht so weit von uns entfernt.
Ich erinnere mich nur gerade an ein Zitat, ich weiß gar nicht, wer das mal ursprünglich gesagt hat,
aber ein sehr wissenschaftlicher Fortschritt ist immer so
one funeral at a time.
Ja, natürlich.
Also es ist tatsächlich, also in der Welt der Physik war,
nicht nur da, in vielen anderen Bereichen auch,
war der Witz an Python eigentlich, dass man damit halt unglaublich viele verschiedene Bibliotheken,
auch aus Steinzeit, aus Vortrag und Steinzeit oder was weiß ich wo,
zusammenkleben kann und dass das am Ende
irgendwie trotzdem alles dann zusammenläuft
und das ist zum
größten Teil das, was
also das war halt
das Killer-Feature, dass man
die ganzen alten Fortran-Bibliotheken
tatsächlich bis heute weiterverwendet hat.
Python als Glue.
Absolut.
Ja und ich glaube auch, ich weiß gar nicht, wie
einer der großen Vorteile
bei Fortran ist halt, dass man, also weshalb das
glaube ich, jedenfalls, was ich weiß, für numerische
Geschichten oft verwendet wird, ist das halt da
die Sprache so, ist das die Compiler automatisch
vektorisieren können, was ja bei C und C++
eigentlich nicht geht. Also geht auch, aber man muss dann
halt selber quasi dem Compiler
sagen, was er tun soll.
Ja, beziehungsweise du kannst so Datentypen
definieren, die Vektoren sind
und diese ganzen Operationen gehen dann
automatisch und wenn du eben einen 16-breiten Vektor
hast, dann
hat der Compiler
genügend Informationen, um da
schlaue Sachen draus zu machen.
Gerade jetzt heutzutage, ja,
wo es ja Prozessoren gibt, die ganz viele
Operationen auf 8 oder auf 16 Sachen gleichzeitig
machen können und das kriegst du dann halt
einfach so umsonst, weil du dein Programm
so geschrieben hast, dass du immer direkt
16 Sachen gleichzeitig machst
und dann kompilierst du es und es wird
dann halt automatisch schneller und das
ist schon verlockend, das kann ich schon verstehen
da
ist eine schöne
Abstraktionsebene gefunden
glaube ich, dass man
eben nicht wie bei C++ oder bei C
jeden Maschinenbefehl selber schreiben muss
und gleichzeitig hast du trotzdem noch genügend tiefe Abstraktionen, um schnelle Programme schreiben zu können.
Das eigentliche Problem an Vortragen ist, glaube ich eher, dass einfach die Sprache schon alt ist.
Diese Sachen, die man heute als Komfort für sich so kennt und auch nicht vermissen möchte, die gibt es halt einfach nicht.
Ja, also Altphilologen in der Computersprache
selten, dass Leute so ein Interesse daran haben,
ein forensisches, erstmal die alten Sprachen nochmal
nachzulernen, statt was Neues,
Modernes anzufangen. Das macht man da eher nicht.
Wobei, also den Markt gibt es ja
durchaus noch und auch wieder.
Kobol-Entwickler. Ich weiß von einigen Firmen, die wieder
Kobol-Programmierer ausbilden, weil sie es halt noch
brauchen. Und genauso gibt es
wissenschaftliche Einrichtungen, die
Fortrad-Programmierer ausbilden, weil sie es halt
noch benutzen, weil sie es noch brauchen.
Möchte man das denn entwickeln?
Ja genau, ich dachte mir gerade, dass Leute da ausbilden wollen, verstehe ich, dass Leute sich da ausbilden lassen, das ist schwerer zu verstehen.
Ja gut, das ist ja auch eine ökonomische Abwägung.
Naja gut, aber die ist auch nicht gerade.
Ich habe auch eine Fortran-Vorlesung in der Universität gehört, das war schon interessant auch, einfach auch mal aus historischer Sicht.
Man kann ja auch durchaus viel davon lernen, nur jeden Tag machen möchte ich es nicht.
Ja, man muss auch dazu eindeutig sagen, dass tatsächlich das eigentliche Rechnen in Python wegen des GIL funktioniert halt nicht. Wenn es wirklich darum geht, möglichst viele Multiplikationen und Additionen auf dem Prozessor zu jagen, da braucht man mit Python gar nicht anzufangen, sondern da muss man dann wirklich halt über NumPy zum Beispiel, das kann das dann ja.
und da kommt dann auch wieder, gut okay,
da kommt dann auch, tatsächlich
ist da nicht
so viel Fortran drunter, wie man
sich das denkt, weil gerade
die großen alten Fortran-Bibliotheken
tatsächlich
mehrfach nachimplementiert
wurden, also es gibt da ja die
großen, also die
wichtigste sind immer noch die BLAS,
die
Basic Linear Algebra
Subroutines, die halt sowas wie Matrix-Multiplikation
enthalten, die halt von den
Prozessorenherstellern oder
sehr enthusiastischen
Hobbyisten
handoptimiert wurden,
teilweise bis in die
Assembler-Ebene runter, um möglichst schnell
auf einem Prozessor
sowas wie Matrizen-Multifikationen machen zu können.
Und das ist tatsächlich,
also das
ist noch eine
Fortran-API, aber unten drunter
ist tatsächlich irgendwas handoptimiertes,
weshalb das eigentlich
mehr so Schein als Sein ist,
dass das
noch fortran sei. Aber das
ist halt so eine bewährte
API und so eine bewährte API, die wirft man auch
nicht weg, vor allen Dingen, weil die API ist ja auch nicht das, was
weh tut.
Und das Programmieren, das tut natürlich dann
erst recht weh, weil wenn man dann tatsächlich
auf Assembler runtergeht und das
machen die, dann
das tut natürlich weh.
Oder natürlich
heutzutage auch auf Grafikkarten ist das
ja auch dann sehr beliebt und das ist dann halt sehr schön, dass es dann halt so
standardisierte Bibliotheks-APIs gibt, bei denen es dann eigentlich völlig egal
ist, auf was das dann am Ende läuft.
Ja, das ist interessant, weil man denkt halt manchmal, dann Python wir langsam, aber wenn man dann sowas wie NumPy benutzt, hat man ja
quasi die Python-API, die man dann ansprechen kann, in der man entwickelt und da unten drunter
sind dann ja viel mehr... Genau, und das ist halt wieder die Sache mit dem
Python als Glue.
wobei ich sagen muss, dass was jetzt tatsächlich
ein eher größeres Problem bei uns ist
da zerbrechen sich auch gerade viel schlaue Leute die Köpfe drüber
das ist nämlich zuverlässige Datenauswertung
das Problem ist das, was ich erzählt habe, von wie wir unsere Experimentsteuerung machen
dass man da schnell mal was runterhackt, das ist ja ganz schön
für sowas, aber das Problem ist, am Ende wollen die Daten ja auch ausgewertet werden
und tatsächlich, also was wir sehr viel
mit Jupyter Notebooks machen,
die haben aber immer das Problem, dass man sich
fünf Minuten nachdem man die Aussetzung gemacht hat,
nicht mehr daran erinnern kann, was man eigentlich gemacht hat
und welches denn der
Jupyter Notebook Zellen man denn jetzt nur ausgeführt hat
und welche nicht und an welcher man schnell noch einen Parameter
gedreht hat und welche nicht.
Wer lange mit Jupyter Notebooks gearbeitet hat,
kennt das wahrscheinlich sehr gut.
Und was natürlich der
Reproduzierbarkeit, also reproduzierbar
sind unsere Daten in dem Sinne ja sowieso nicht,
und Jochen unterhalten sich über die Programmiersprache Python
vergleicht, wie ich das eine auswerte und was ich das andere auswerte und wenn man dann zwischendurch
das typische Notebook wieder mal vergessen hat, was man da eigentlich gemacht hat, dann
ist das sehr unpraktisch und das ist tatsächlich
bei uns aktuell, also was heißt aktuell, das ist schon
seit längerem ein Problem, wie man das in Hand hat, dass man
da reproduzierbar Daten auswertet. Tatsächlich ist es sogar so, dass
schon das Problem, dass wir, naja, also wir
Wertender Daten aus und nach einem halben Jahr kommt einer an
und hat nochmal eine Idee, wie man da vielleicht nochmal
mit einem anderen Blickwinkel drauf guckt und dann
sollte es einem besser nicht passieren, dass man versehentlich
NumPy upgedatet hat und plötzlich
funktionieren die Skripte nicht mehr.
Oder kommen zu einem anderen Ergebnis.
Das ist dann tatsächlich
ein Problem, weshalb wir tatsächlich
angefangen haben, einfach komplette
Virtual Envs
nehmen wir jetzt gerade noch.
Wir haben darüber nachgedacht, jetzt ein Conda zu nehmen
und dann die kompletten Virtual Envs mit
den Daten zusammen zu speichern.
und Virtual Env ist dann verglichen mit den Daten einfach winzig,
damit man, wenn man ein Jahr später nochmal versucht,
die gleiche Auswertung zu machen, dann tatsächlich zum gleichen Ergebnis kommt.
Ja, aber das stelle ich mir auch, weil die ganzen Betriebssystem-Bibliotheken
hat man in Virtual Env ja nicht drin, also Libc oder auch diverse andere Geschichten.
Das heißt, wenn die sich geupdatet haben, dann kann...
Das ist richtig, das heißt, dann müsste man dann konsequenterweise
weiter zu Docker-Containern gehen oder
ähnlichen Technologien.
Ja, Ansible hilft
ja nicht, weil Ansible würde dann ja dasselbe
Problem haben mit den
Systembibliotheken, dass man das
installiert ja auch typischerweise nur auf ein
existierendes System drauf. Ja, aber du kannst ja
sagen, was der Extern installieren soll
und wenn du das Betriebssystem selber auswählen kannst, dann
kannst du wahrscheinlich auch die Pakete pinnen.
Ja, das ist richtig.
Aber ich muss ganz
ehrlich gestanden sagen, daran arbeiten wir noch.
Also bisher sind wir ganz stolz darauf, da sind wir glaube ich schon fast Vorreiter, nein wahrscheinlich nicht, aber dass wir wenigstens unsere Daten mit den Virtual Env's speichern, dass wir wenigstens da eine verlässliche Datenauswertung haben.
Also in der Physik war es bisher doch recht häufig üblich, dass man die Daten auswertet und dann wenn man eine Publikation macht, die Auswertung auf eine CD brennt und dann mit ins Archiv gibt.
Ich weiß nicht, wie oft jemand tatsächlich so eine CD wieder rausgeholt hat.
Und wenn, ob die dann noch funktioniert, das war sehr unklar.
Das war dann doch eine eher symbolische Aktion.
Und das bei den Physikern.
Ja, also da...
Ja gut, das ist ja noch vergleichsweise fortgeschritten.
In der Medizin wirst du halt die Auswertung gemacht und dann sind die Daten fertig.
Oder du drückst sie aus.
Ja, wobei
ich glaube, dass die Medizin
sogar im Gegenteil mit solchen Sachen
sogar weiter ist, weil sie
ja, also gerade
wenn in irgendwelche Zulassungsverfahren
gehen, da gucken die Leute tatsächlich
Ja, Zulassungsverfahren, klar
Aber Forschungspapers
normalerweise, also wenn du eine Appendix hast
kannst du, wie der Dominik sagt,
kannst du ja abtippen
Wenn du die Rohdaten überhaupt kriegst
Ja, also bei uns ist
die Rohdaten zu kriegen illusorisch
weil sie sind einfach zu groß.
Wie lange speichert ihr denn eure Daten?
Wie lange könnte man denn zu euch kommen und sagen,
hier, ich habe mir jetzt noch was eingefallen?
Das ist eine Frage, die ich dir tatsächlich
noch nicht beantworten kann, weil noch sind
die Platten nicht voll.
Ah, okay.
Irgendwann ist das Ziel
der Serverraum.
Der Serverraum steht gar nicht bei uns, sondern
irgendwo in Hamburg ist da so ein
Serverraum. Den habe ich noch nie gesehen. Weiß ich nicht, wie groß der ist.
Ich weiß nicht,
wie viel Platz da ist, wie viel Platz wir grundsätzlich
noch finanzieren können. Also bisher
muss man sagen,
es gibt so Wochen, wo wir so viele Daten
produzieren. Wenn wir mit
unserem Hauptdetektor arbeiten, dann ist das so, dann
kommt da so viel Daten raus. Wenn wir nicht mit
unserem Hauptdetektor arbeiten, es gibt auch
völlig andere Experimente, wo man
alle 10 Sekunden ein Bild schießt
von 2 Megapixel
und dann, ja,
Das ist ja fast redundant dann im Vergleich.
Genau, das ist dann, wenn du plötzlich beginnst, dass tatsächlich dann Virtual Env das Größte auf der Platte ist.
Aber das ist dann auch egal, weil im Vergleich, also dann hat man halt...
Das spielt keine Rolle.
Genau, das geht dann unter.
Das ist dann auch immer sehr schön dann.
Also da muss man sagen, wenn man da mit unserem Hauptdetektor mit 5000 Bildern pro Sekunde arbeitet,
dann muss man halt wirklich, da hängt halt
wirklich auch Rechenpower hinten dran, das
ausrechnet und dann gibt es dann
ganze Stäbe von Leuten, die nur dafür zuständig sind
das am Laufen zu halten, dass dann die ganzen
Prozessketten da hinten dann das nur machen
während wenn wir dann nur alle 10 Sekunden
ein Bild nehmen, ist das viel schöner, weil dann
kann man das tatsächlich auch alles mit
ein paar Python-Skripten machen und
dann ist man auch deutlich flexibler
darin
irgendwas Schönes zu machen
In welchem
das kommt mir jetzt gerade so in den Sinn, weil
in welchem Format werden die Daten denn dann abgespeichert?
Wird das einfach, also es gibt ja
diese diverse Formate für wissenschaftliche
Zwecke, also NetCDF
oder wie heißt das?
Also unseres ist HD5.
Ja, genau.
Oder SQLite habe ich jetzt gerade gedacht, könnte man ja auch nehmen.
HD5 nehmen wir.
Wobei,
da muss man eine ganze Menge daran rum
entwickeln, dass wir
überhaupt schnell genug schreiben können.
Tatsächlich ist das so, dass wir in
mehrere
HD5-Dateien parallel reinschreiben
weil ansonsten die
HD5-Bibliothek doch an ihre
Grenzen käme
Ich finde sowas super spannend
weil in diesen Bereichen
trifft man dann auch so Probleme
die man sich so als normaler Entwickler gar nicht
vorstellen kann
schon allein die
Bandbreite zu haben, die Daten aus diesem
Sensor auslesen zu können, das muss ja
gigantisch sein und das geht ja weit über das hinaus, was man so als normaler
Mensch in einem Computer je sehen kann und
wenn man sich überlegt, wie viel Bandbreite da an Speicherplatz einfach rauskommen
muss, da zerbrechen viele
von den Abstraktionen, die man normalerweise so hat. Ja, bei uns kommen tatsächlich die Glasfaser
da bündelweise aus den Detektoren raus und
das ist, ja, da hängt richtig Rechenpower dahinter.
Ja klar und das muss dann in irgendwelche Speicherbänke
reingehen und von den Speicherbänken muss es
irgendwo auf
Speicher gehen, aber
ein Kabel reicht an keiner Stelle, das heißt
das muss sicherlich alles parallel sein
Ja genau, das
da
stapelweise an Rechnern stehen dann da übereinander, die das dann
verteilen. Die es alle gleichzeitig
abkriegen. Ja, ja, ja
Das ist tatsächlich
das ist immer sehr lustig
Ich finde das immer so lustig,
dass wenn wir anfangen Daten zu nehmen, dann dauert das mehrere Sekunden,
bis alle TCP-Verbindungen aufgebaut sind, um dann die Daten
zu, einfach nur das Aufbauen der Verbindungen dauert mehrere Sekunden.
Das ist ja schon.
Ja, das hört man sich tatsächlich recht witzig vor, wenn die Sachen durcheinander fliegen,
so eine Riesenmenge, wie man den auffangen will.
Also das ist auf jeden Fall, glaube ich, eher Big Data dann tatsächlich irgendwo, so ein bisschen
Ja, wobei es auf der einen Seite natürlich schon, dass es natürlich Big Data ist, also von der reinen schieren Größe her
Auf der anderen Seite, also was man normalerweise unter Big Data sind, sind halt deutlich strukturierter, als dass wir das haben
Wir haben da ja einfach nur Bilddaten
Bilddaten, ja
Okay, also argumentiert ihr die direkt oder sowas?
Oder gibt es ein Post-Processing, dass da viele Informationen mal reinfließen?
oder ist das einfach nur dann pro Experiment
irgendwie so ein Metainformationsding?
Also wir müssen tatsächlich
während des Experiments darauf reagieren können.
Das heißt,
während des Experiments werden bereits alle Daten
rudimentär
ausgewertet,
damit wir eine Idee kriegen, ob die Daten
überhaupt gut sind.
Wir können es uns nicht leisten, dort mehrere Stunden
lang irgendwas zu messen und am Ende festzustellen,
dass wir leider vergessen haben, die Probe
in den Strahl zu fahren oder so etwas.
und ja, sowas passiert halt auch.
Oder auch, dass man dann halt feststellt,
okay, wir haben mit viel zu viel Intensität gemessen,
also das ist völlig ausgeleuchtet, der Detektor, man sieht gar nichts mehr
oder es war jetzt alles viel zu dunkel oder was weiß ich was,
das kann ja alles gleich passieren.
Und deshalb muss die ganze Zeit auch,
währenddessen werden die Daten rudimentär ausgewertet,
und Jochen unterhalten sich über die Programmiersprache Python
besser, also Visualisierung doch besser in einer
Web-Anwendung und nicht
so mit einem
Standalone-Desktop-Ding.
Genau, aber
die Entscheidung ist damals dafür gefallen
und
das läuft jetzt so.
Und das ist ja auch Python, also
so ist es jetzt nicht.
Und ihr habt auch keine Lizenz-Systeme, weil ihr eine öffentliche
Institution seid wahrscheinlich?
Nee, ist das ja nicht.
Wir sind eine öffentliche Institution, aber
Python ist doch LGPL.
Genau.
sogar als es GPL war, da wir grundsätzlich
alles, naja, sagen wir so,
wir würden, also eigentlich sollte
alles quelloffen sein.
Ja,
wir halten uns da dran, dass jeder,
in der GPL steht ja drin, dass
jedem, dem man den Binärcode gibt, dann auch den Quellcode
geben muss. Das tun wir auch. Bisher ist es
allerdings so, dass bisher noch keiner vorbeigekommen ist
mit dem Binärcode.
und ich glaube, der Grund, dass wir es noch nicht veröffentlicht haben, ist, dass wir das Ganze noch so machen wollten,
dass das schön aussieht, damit es uns nicht zu peinlich ist.
Ja, gerade
in der Anfangszeit ist
das ist doch alles sehr schnell
gestrickt worden. Das Schöne ist,
dass es mit Python geht, dass man mit Python auch
mit schön gestricktem Code,
also mit schnell gestricktem Code am Ende doch
noch sehr schöne Sachen
rauskriegt.
Es ist total witzig,
ich war vor ein paar Jahren auch in so einem Big Data
Projekt drin, kommerzieller Natur,
nicht ganz so groß wie eures und
da gibt es auch eine Visualisierungsoberfläche,
auch in PyQt geschrieben ist.
Und auch da wird über eine Weblösung
nachgedacht und man ist aber noch nicht so weit.
Also es ist schön zu hören, dass die Probleme
doch überall die gleichen sind.
Also grundsätzlich finde ich ja PyQt 5
ist tatsächlich eigentlich
eine sehr schöne Bibliothek, wenn man so eine
Desktop-Anwendung
machen will.
Aber wenn man ehrlich ist,
sind solche Desktop-Anwendungen
eigentlich heutzutage so ein bisschen
nicht mehr.
Ja, man hat das ja früher gemacht,
weil es halt nicht anders ging, weil du halt irgendwelche Grafiken anzeigen musstest
und dann irgendwelche interaktiven Sachen machen musstest mit diesen Grafiken
und dann, ja, normal vor fünf bis zehn Jahren war das im Web noch nicht so einfach,
aber heutzutage ist es ja kein Problem mehr.
Genau, also wir haben angefangen damals mit der Programmierung, also 2009,
damals tatsächlich noch Python 2.
Ja.
und wir haben dann glücklicherweise den Umstieg schnell genug geschafft.
Ja, aber genau, damit habt ihr schon immer die Motoren und so gescheitert,
weil dann hattet ihr das Problem, dass ihr da quasi ja nicht blockieren konntet,
während ein Motor sich verstellt hat, schon länger.
Und als I.O. gibt es ja jetzt erst seit 2015, 14, 15, irgendwann ging das los.
Ja, also
vorher waren wir einfach noch nicht so weit
dass wir, also
in Betrieb gegangen sind wir 2017
und vorher
hatten wir ein paar
Demonstrationsdinger noch nur da rumstehen
es hat lange gedauert
die tausend Motoren da überhaupt einzubauen
und erst wenn du dann genügend von denen
eingebaut hast, stellst du dir dann halt die Frage
dass man die auch tatsächlich parallel fährt
und dann haben wir
glücklicherweise noch im richtigen Moment
die Kurve gekriegt und das Ganze
nochmal, also dann kam
im richtigen Moment auch Async.io
vorbei und dann konnte man das alles
gleichzeitig. Bei den 1000 Modulen muss ich immer
an das von Johannes veröffentlichte
Ding da zum Raumschiff fliegen denken.
Du hast doch mal...
Ja, das ist irgendwie so ein Blockantrag,
ich weiß nicht, mit der Steuerung, die man da machen kann.
Ich weiß nicht,
ich denke schon die ganze Zeit darüber nach, wie man das
wohl in der Home-Automatisierung
verwenden könnte.
tausend Motoren in der Küche platziert,
die dann, keine Ahnung, die Gewürze dosieren.
Aber wie ist das denn?
Wobei wir dann,
das muss man auch der Ehrlichkeit
noch dazu gestehen, noch einmal
eine Ebene unten drunter haben. Das ist
dann eine
kommerzielle Lösung tatsächlich von einer
Firma namens Beckhoff, die dann
die Motoren, die eigentliche
Motorensteuerung macht.
Das, was wir in Python bisher nicht
machen, ist die Echtzeitsachen.
Dafür ist, glaube ich,
auch einfach nicht gut genug.
Also nicht die geeignete Sprache.
Also wenn
der Motor dann
tatsächlich, also da muss man
dann irgendwann am Ende unten mit
mindestens mal 100 Hertz dann den Motor abfragen,
wo bist du denn jetzt? Und dann ihn dann
dementsprechend schneller oder langsamer machen.
Und das geht
mit Python
eher nicht.
Also ein Realtime-Python wäre mir jetzt nicht gut.
Das ist auch häufig so, ja.
Das ist auch häufig so, glaube ich, dass man dann
nach so einer Schicht hat, wo man einfach sagt, ich möchte,
dass der Motor zum Zeitpunkt X an der Stelle
Y ist und das dann einfach
wegschiebt und sagt,
sorg mal dafür. Ja, dafür haben wir uns
eine kommerzielle Lösung gekauft, aber ich
muss sagen, dass die kommerzielle Lösung
genau das Problem hat, dass kommerzielle Lösungen
immer haben, dass wir da dann,
wenn man da an eine Grenze kommt,
dann ist die Grenze
auch hart.
Da läuft man mit dem Kopf gegen die Wand.
Oder man muss viel Geld ausgeben.
Richtig, also jetzt ist es tatsächlich so, dass wenn man für anderthalb Milliarden so einen Tunnel gegraben hat, dann kann man auch mal tatsächlich ein bisschen Geld in die Hand nehmen, aber das ist nicht so.
irgendwo ein Ende haben. Ja, genau.
Und es ist, also
für ganz Kleinigkeiten will man dann
auch nicht mehr, ja,
und
solche kommerziellen Lösungen scheitern
doch am Ende sehr an der Flexibilität.
Muss auch sagen, dass die,
die,
als wir auf die Idee gekommen sind,
dem Hersteller Beckhoff zu erzählen,
dass wir unsere Projekte
in einer Versionskontrolle halten, da
haben die
schon ganz schön geschluckt.
und als es dann hieß, wir finden aber nicht Subversion, sondern Git, da haben die richtige Angst bekommen.
Das ist tatsächlich in der Welt der Automatisierung, sind das alles noch Träumereien, sowas macht man nicht.
und Jochen unterhalten sich über die Programmiersprache Python
und die IDE, die speichert halt die Sachen in ihrem eigenen Format.
Also ich weiß nicht, also das ist am Ende ist das auch nur,
also die Sprache, die die haben, ist eine Pascal-ähnliche Sprache,
die international genormt ist und dafür tatsächlich auch gar nicht so doof ist.
Also es ist sehr interessant diese Welt sich mal anzugucken Zum Beispiel also die Welt von Steuerungssoftware von wie nennt sich das Speicherprogrammierer aber Steuerung nennt sich das auf Deutsch da gibt es eine Programmiersprache die so ganz andere grunds Eigenschaften haben die zum Beispiel keine dynamische Speicherverwaltung kennen und das absichtlich nicht weil wenn man eine Maschine hat dann braucht man nicht pl mehr Speicher
Und bei denen wird, das ist eine Sprache, die von vorne...
Man will das, man will das auch gar nicht, weil das...
Das macht ja eher Abschlüsse.
Das ist ganz schlecht.
Und das sind dann
konzeptuell andere Sprachen, die aber auch
für den Anwendungsfall tatsächlich sehr gut
sind, muss ich sagen.
Und das Einzige ist, dass die dann irgendwie
in IDEs reingepackt
werden und das
sieht dann sehr Pascal-ähnlich aus und warum
man dann diesen Pascal-Code
dann am Ende in XML-Dateien
reinstecken muss,
habe ich nicht verstanden.
Weil man mit XML alles macht.
weil man mit XML einfach alles machen kann.
Spezifikation, ganz so die Idee.
Deshalb und dann dieses XML dann wiederum in eine Versionskontrolle wie Git reinzutun,
ist dann, ja also irgendwie fühlt sich das nicht gut an.
Also insbesondere wenn man dann mergen will und dann, ja was passiert denn,
wenn da dann in dem XML rundherum sich was geändert hat und will das dann mergen.
das ist ja
ja
da gibt es dann noch solche Sachen wie
dass dann die
also
man kompiliert dann seinen Code
und man hat dann ja immer
den Computer der vor einem steht
und dann als zweites
diese speicherprogrammierbare Steuerung
die dann möglicherweise an der Maschine
verbaut ist
und jetzt ist es so, dass die gesamten
Debug-Informationen, die schreibt man natürlich nicht
mit auf die Maschine drauf
am Ende kommt noch der Kunde
vorbei und dekompiliert
den Code. Das heißt,
die Debug-Informationen des Codes
sind nicht mit dem Code zusammen, sondern
auf deiner Maschine, auf deiner
eigenen. Und wenn du dann
nach drei Jahren wieder kommst und
der Kunde sagt, an der Maschine
kannst du mal gucken, was da los ist, dann
musst du dann deinen eigenen Debug-Code bei dir
wiederfinden.
Wie löst
man das? Ja, das ist ganz einfach.
Man speichert, also
man kompiliert das und
checkt dann das Binary mit
in Subversion ein.
Ja.
Yay.
Das sind
alles Sachen, da
dreht sich einem als
Python-Programmierer der Magen um.
Aber
naja,
dafür läuft es
dann halt,
ja, die haben halt auch Zuverlässigkeitsanforderungen.
Ja, aber wäre da nicht,
also, weil das höre ich auch immer aus dem Musikbereich
oder sowas, was auf Echtzeit ankommt, die verwenden
da oft jetzt, also CircuitPython oder
MicroPython oder sowas.
Kann man, wäre das nicht eine Idee, das mit sowas
zu machen, weil...
Ja,
also ich wäre
dafür...
Da bewegt sich, glaube ich, einiges.
Ja, definitiv.
In den letzten Jahren.
Wobei ich da,
eigentlich ganz...
Also ich habe das tatsächlich mal probiert.
Also glücklicherweise...
Das ist tatsächlich so gebaut,
dass die ganzen Motoren hängen dann
an...
Wie nennt man das? Klemmen dran.
Also an Motorklemmen.
Auf Englisch Terminals. Vielleicht hilft das besser.
Die dann halt miteinander per Ethernet
miteinander verbunden sind.
Und tatsächlich mit Ethernet, da läuft kein
IP drüber, sondern direkt
über Ethernet und das
ist dann in einer
Echtzeitversion namens EtherCAT.
Glücklicherweise ist das
Protokoll vollständig veröffentlicht
und ich habe dann tatsächlich
mal, das ist ja nicht so das Problem, dann sich mit
Python diese Pakete, die man da über das Netzwerk
schicken muss, dann halt zusammenzubauen
und dann kann man das damit tatsächlich
machen. Ja und dann
merkt man halt dann plötzlich, dass dann
dass man halt nicht redet, dass man
nicht Echtzeit ist.
Und da tut dann auf einmal Echtzeit tatsächlich
nämlich W.
Also es fängt dann schon mit an,
dass der Hersteller dann anfängt, solche Sachen zu machen,
wie dass die
Buffer,
die in den Netzwerkkarten drin sind,
abgeschaltet werden müssen,
weil die die Latenz kaputt machen.
Ja, klar.
Das heißt, wahrscheinlich willst du dann auch gar kein Betriebssystem
haben, sondern du willst vielleicht im Kernel sein oder so.
Die Firma Beckhoff
hat einen sehr engen Vertrag mit
Microsoft, dass sie
direkt am
Kernel von Microsoft arbeiten
können.
Aber mit Linux könnte man das doch auch.
Da gibt es doch sogar irgendwie im Linux-Kernel
so eine Schnittstelle, wo man...
Es gibt ja auch so RT-Linux-Sachen.
Es gibt auch
in Deutschland
einen zweiten Hersteller, der
tatsächlich das Ganze
auf Linux macht. Das geht
alles, auch mit Realtime und allem drum und dran.
Ja, mein Unternehmen hat sich, also wir sind zwar eine staatliche Einrichtung, aber rein rechtlich sind wir ein Unternehmen im Staatseigentum.
Und wir haben uns damals, also was heißt wir, hätte man mich gefragt, ich hätte es nicht genommen, aber man hat sich halt für eine Windows-Lösung entschieden, weil das ja professionell ist.
Achso, das ist ein richtiger Anfänger.
Ja gut.
Jetzt ist mir auch eingefallen, was der Johannes meinte,
den Bitcontroller, den hätte ich gerne da für die
Steuerung dieser Motoren. Geht das, Johannes?
Achso. Ja, das
da hast du irgendwo einen Controller drin,
der sowas macht, ja. Ja.
Das geht da oft
ganz tief runter.
In dem Bereich bewegt
sich ganz viel
auch was so
Industrie 3 und Industrie 4 angeht,
weil man halt ganz viel mit
Rechenleistung erschlagen kann.
Ich habe vor einigen Jahren bei einem kleinen deutschen Hardwarehersteller, bei einem mittelständischen Hardwarehersteller Beratung gemacht und die hatten noch ganz viele so Sachen, die halt aus einer Zeit kommen, wo du alles ausnutzen musstest, was so ein Prozessor halt mitgebracht hat.
und heutzutage ist es ja mehr so,
ja, hier hast du den Prozessor,
der 180 Megahertz hat und vier Kerne
und der kostet auch nur 5 Euro.
Da ist es dann schon so ein bisschen egal.
Da kannst du schon viele Sachen machen,
die du früher halt einfach nicht machen konntest,
einfach durch Rechenleistung erschlagen.
Und wenn du aber nur ein Megahertz hast
und nur einen Prozessor
und musst aber acht Motoren gleichzeitig steuern
und die sollen auch gewisse Kurven einhalten,
dann ist das halt anstrengender
und deshalb ist ganz viel
von dieser Hardware noch so ein bisschen
anders aufgebaut
als man das vielleicht heutzutage machen würde
auch weil sich diese
Welten sehr langsam bewegen, auch weil da
sehr viel Geld drin ist
diese Geräte, die
ihr da gekauft habt, um eure
1000 Motoren zu steuern, die werden sicherlich
alle ein paar Euro gekostet haben
Ja, definitiv
Interessanterweise ist es dann so, dass das bis heute so ist
dass dieser
und
Feedback kommen, ob der Motor schon weit genug ist oder nicht.
Und heute werden die dann tatsächlich getrennt
von zwei Prozessen dann emuliert.
Das macht eigentlich heutzutage gar keinen Sinn mehr.
Dann läuft auf dem einen Prozessorkern die langsamere Steuerung,
die dann irgendwie so mit 100 Hertz arbeitet und daneben noch
eine zweite, die dann mit 10 Kilohertz arbeitet und die dann über
ganz magische Dinge sich miteinander
unterhalten.
Das wird dann sehr bald sehr hanebüchen.
Das ist alles halt nur noch historisch zu
erklären. Und ja, ich würde
sowas gerne alles durch Python ersetzen,
aber so schnell bin ich nun auch wieder
nicht, da alleine die
Industrie kurz mal umzukrempeln.
Ja, nein.
Aber wir sind ja jetzt zu viert hier.
Also schon mal viermal schneller.
Ja, das ist das.
Interessanterweise habe ich das einmal ausprobiert, dass
tatsächlich so eine Steuerung
in Linux zu basteln und stellte dann fest, dass tatsächlich
die beste dafür geeignete Hardware ein Raspberry Pi war
und zwar deshalb, weil dessen Netzwerkkarte...
Keine Buffer hat.
Genau.
Das war dann auch sehr praktisch, weil so ein Ding ist einfach auch bei
weitem schnell genug und auch zuverlässig genug.
Interessant auch, was man da so alles achten muss, wenn man
also die Steuerung zusammenstecken möchte.
Ja,
faszinierend.
Sehr, sehr interessant.
Ja,
ich weiß nicht,
vielleicht, was ist denn,
was findest du denn so bei dieser ganzen
Geschichte, das mit Python zu steuern,
was sind die Dinge, die dich da
interessieren oder was fandest du cool oder was funktioniert
mit Python noch nicht so gut oder
ja, ich weiß nicht.
Also was mich immer
wieder begeistert ist, mit welcher
Geschwindigkeit, man einfach so kleine, praktische
Sachen machen kann.
Also wie ich da
erwähnt habe, dass man da einfach ein Foto nimmt
und dann auf das Foto draufklickt und
dann fährt der Motor dorthin.
Das sind so Dinge,
für die würde man
halt nicht das als Auftrag
stellen und dass dann monatelang ein Entwickler
dran sitzen. Aber in Python waren
das alles dann auch am Ende
auch nur ein paar Zeilen.
Also diese
kleinen, schönen Dinge,
und Jochen unterhalten sich über die Programmiersprache Python
und Jochen unterhalten sich über die Programmiersprache Python
und ja, also sehr schnell geht. Also was ich auch sehr schön finde, ist das, was ich gerne mag einfach, gut, das ist die Geschmackssache, dass wir kommen, also wir haben halt unglaublich viele irgendwelche experimentellen Gerätschaften, dass wir dann, also der Strahl, der da bei uns in den Strahl reinpinkelt, der wird halt von einer Hochdruckpumpe gesteuert.
und dann kommt da plötzlich mein Kollege mit dieser Pumpe da an, stellt sie vor dich hin und sagt, ja, das muss ja heute Nachmittag laufen.
Und das ist dann eigentlich gar nicht so das Problem, weil man halt Batteries included immer gleich alles da hat
und hat unglaublich schnelle Entwicklungszeiten.
Also ein großes Problem ist, dass der User kommt da mit so einem Ding an, also der Benutzer, muss ich auf Deutsch sagen,
kommt da mit irgendeinem Ding an,
das hat, das, das, das,
keine Ahnung, das kostet
100.000 Euro, bringt der da jetzt,
der kann mir nicht Monate
vorher das zum Ausprobieren schicken,
damit ich dafür was programmiere.
Das geht nicht, sondern der kommt drei Tage
vorher an und sagt,
sorg mal dafür, dass diese Pumpe da läuft
und das da
in den Strahl reinpinkelt und
dann
heißt es und los und
und dann ist es halt echt von Vorteil, dass man da völlig, ja, auch das, was einer mal gemeint hat, das habe ich mal gehört, Expressibility, dass man in Python recht komplexe Sachen schön ausdrücken kann, dass man, also, ja, wie sieht das, also, ja, natürlich,
und die elektroorganisierte Programmierung.
Klassen gibt es überall.
Das machen ja inzwischen alle.
Aber dass man dann in der Klasse dann tatsächlich,
also wir haben dann eine Pumpe
und die kann dann an, aus und was weiß ich was,
Druck und Volumen oder so etwas.
Und dann kann man da,
dann schreibt man halt rein, Klasse Pumpe,
Class Pumpe,
natürlich alles auf Englisch, weil
das ist ja nicht in seiner Firma. Und dann schreibt man einfach direkt
die Parameter rein, Druck
an, aus, sonst etwas.
und
das ist dann gleichzeitig
aus Sicht des Benutzers
sind das dann
die Buttons, auf die man draufklicken kann oder die Funktionalität,
die man von dem verwenden kann und gleichzeitig
auf der anderen Seite
steht dann bereits reingeschrieben,
was man denn dem Gerät
sagen muss, dass
das auch so funktioniert.
Wir haben uns dann ein ganzes Framework zusammengeschrieben,
das dann, wie heißt das bei
euch Webleuten, Django Forms
oder so,
dass wir halt
Forms, die halt keine Webseiten sind
sondern Beschreibungen für Geräte sind
und die kann man halt dann die
Parameter, die so ein Gerät hat, einfach reinschreiben
und die halt dann aus der Benutzerseite
sehen, die kann man da
irgendwie Werte reinschreiben und
ja, dann unser Framework
guckt sich dann halt an und auf der anderen Seite
schickt es dann die Kommandos an die Pumpe raus
und das kann man alles so
in einem Framework machen
und einfach so hinschreiben und
und ja, also wie das in einer anderen Programmiersprache aussehen würde, weiß ich, da das ja Konkurrenz immer noch in C++ macht und da müssen dann halt Kopfstände gemacht werden, weil also wie soll ich denn da deklarativ da in C++ überhaupt da was hinschreiben?
Da wird dann immer
so ausführbarer Code dann
hingeschrieben, der dann
magische Datenstrukturen
im Hintergrund aufbaut
Furchtbar
Man kann halt
in sowas wie C++
nichts deklarativ hinschreiben, wo man einfach
sagen kann, das ist so
und das dann von einem
Framework auslesen lassen, sondern
man kann halt nur Code hinschreiben
und das
ist halt das, was
so ein Framework halt
sehr mächtig macht.
Und mit solchen Sachen kann ich dann halt
innerhalb von einem Nachmittag so eine
blöde Pumpe zum Laufen kriegen.
Wie lange wird jetzt
die++-Entwickler dafür brauchen?
Auch eine Woche wahrscheinlich.
Jetzt sind wir wieder bei
einem der wichtigsten Dinge, glaube ich, für Python.
Das ist also dieses
Time-To-Market.
Genau.
Und das ist bei uns, wie gesagt,
und Jochen unterhalten sich über die Programmiersprache Python
aber dass auch unsere Wissenschaftler tatsächlich
bereits in der Lage sind
sich dann so einfache Sachen selber
zusammenzuschreiben
das ist mit Python, ja gut
was auch daran liegt, dass in der Physik
doch Python inzwischen sehr weit verbreitet ist
und man dann sagen konnte, hier das machst du doch schon
in der Datenauswertung, du machst doch schon immer deine
Jupyter Notebooks mit deinem Python
hier guck mal, da schreibst du ein bisschen anders
und dann kannst du damit auch irgendwelche Motoren
nach links oder rechts fahren
das wird man verstehen dann, ja
Python ist ja so gesehen auch nicht schwer
von der Sonntagsher dann
Überhaupt nicht
Ich finde das ist eine der schönsten
Sachen an Python ist
man kann es
zu, also eigentlich vollständig
verstehen
Wir hatten mal da Bewerbungsgespräche
wo dann
sich C++ und
Python Programmeer beworben haben
die haben wir dann immer gefragt
bei einer Skala von 1 bis 10
wie gut sind deine C++-Kenntnisse
und wenn dann einer sagte
9
dann war das sozusagen eine Herausforderung
sich eine fiese Template-Geschichte zu überlegen
die keiner kennt
oder keiner kann
die kann man ja problemlos
problemlos
sofort aus dem Hut zaubern
also ich muss die Antwort ja nicht kennen, ich muss nur die Frage stellen
während
wenn dann da ein Python-Programmierer steht
und sagt
gut, wie gut ist dein Niveau
Python 9?
Da muss ich sagen, dass ich schon
also sogar, also Fangfragen
zu stellen schon, also ich glaube,
dass es viele Leute
gibt, vielleicht sogar in diesem Podcast,
die 90% von Python verstanden
haben.
Ja, wobei es auch schwerer wird mit der Zeit, also in letzter Zeit
kommt halt immer mehr dazu und
ich meine, ja, das wird
auch nicht, oder das ist auch etwas, was viele Leute
beklagen, dass es halt für Anfänger jetzt immer schwerer wird,
weil halt der Sprachumfang, also gerade wenn man jetzt sowas nimmt wie
Typ-Annotationen oder so, finde ich persönlich auch gar
nicht mehr so furchtbar einfach
immer das so hinzuschreiben, dass es dann passt
das ist halt schon
das ist halt wieder so ein ganz eigenes
Python wird halt irgendwie umfangreicher
mit der Zeit
also es war auch früher
Das hört sich auch an einer guten Episode an
die man da mal aufnehmen könnte
Fangfragen und die Ecken und Kanten
Ich überlege, weil mir fällt sofort ein Ding
ein, schreib mal die
Funktion
min oder max in Python hinzuschreiben,
ist halt sehr, sehr einfach.
Schreibt mal die Type-Annotation richtig
dafür hin.
Die Type-Annotationen
sind wesentlich mehr Code als die Funktion selber.
Das ist echt
schwierig.
Nimm zwei Parameter vom Typ any und gib zurück.
Ja, ja, aber
darf nicht any, gut, das geht natürlich,
dann ist es einfach, aber es darf nicht any sein und es sollte
keine Forza Negatives haben.
Dann ist es halt schon so.
Ja, wobei ich bei Type Annotations, muss sagen, ich habe mich da nie wirklich reingefuchst, weil, also zumindest das, was ich von gesehen habe, vielleicht klärt ihr mich eines Besseren auf, also was mich jetzt interessiert, also Typen interessieren mich jetzt tatsächlich eigentlich wenig, weil bei uns, was eher reinkommt, ist eher die Frage Einheiten, also so etwas wie ein Motor bewegt sich typischerweise um eine Länge
und das berühmte Beispiel
des irgendeiner abgestürzten
Satelliten auf dem Mars oder so etwas
ist ja hinlänglich bekannt, wo sie da dann
Zoll mit Millimeter verwechselt haben.
Wenn man da geschickt annotieren
könnte und meint... Ja, das ist ein Type, oder?
Nee. Ja, gut, also
schon irgendwie, aber dann halt
auch... Nee, das ist doch kein Type.
Nein. Der Type ist Zahl.
Genau. So kann
man das sehen. Oder man kann jetzt für jeden
Einzelnen dann auch wieder
Ich würde versuchen, sowas zu definieren.
Ja, aber dann
bist du lange beschäftigt.
Also bis man da einmal sämtliche Einheiten,
die man dann durchmacht...
Wahrscheinlich ist halt die Frage, wenn der Input falsch ist, woher weiß man dann, welche Einheit ist denn das dann?
Wenn das nur Zahl ist.
Das ist ganz einfach, weil man kann
einfach den Gattekomma verschieben und dann hat man
eine andere Skala.
Das ist halt
die Grenze.
Das sind die Grenzen von so einem Typsystem.
Du hast immer Sachen, die vom gleichen Typ sind,
aber unterschiedliche Bedeutung haben.
Das klassische
Beispiel ist die String-Format-Methode.
Printf im klassischen
Sinne. Die nimmt zwei Strings
und der eine ist das Format und der andere ist das, was
in das Format eingesetzt wird. Und du kannst
die nicht auf Typebene unterscheiden,
weil das sind beide Strings.
Und diese Grenze gibt es immer.
Immer eine Grenze
zwischen Bedeutung und
Inhalt.
Das beste Beispiel in der App von Python war damals
ja, wo jetzt besser Python 3
eingeführt wurde, dass
Bytes und Strings, es gibt
vielleicht noch welche von euch, die lang genug an Python
dabei sind, dass das mal früher 1 war.
Ja, das war schrecklich.
Ja, was auch interessanterweise
daran liegt, dass halt Python
älter ist als der Unicode-Standard und man das
halt damals einfach noch nicht machen konnte.
Und Java ist halt ein bisschen jünger und Java konnte
es halt gleich rechtlich machen, aber Python halt nicht.
Und dann, ja.
Und das war, glaube ich, das einzige Mal, dass von der Seite
irgendwelche Lacher kamen.
Ja, aber wenn man zum Beispiel
die Unterscheidung zwischen Bytes und Unicode
einfach hätte durch Type Annotations
machen können,
dann hätte man gar keine neue Python-Version machen können
müssen, sondern hätte einfach nur das
annotiert und
deine IDE sagt dir
dann, ach, an der Stelle versuchst du aber
Unicodes plus Bytes zu machen, das geht doch nicht.
Böse, böse.
Und
ja.
Habt ihr denn eine Lösung für dieses Einheitenproblem?
Habt ihr da was, was
Kannst du uns Tipps geben?
Es gibt eine Bibliothek namens Pint, die ist ganz gut,
aber die arbeitet halt erst auf der Ausführungsebene,
nicht auf der IDE-Ebene,
dass man halt die Werte, die tatsächlich,
die haben dann eine Einheit
und das funktioniert dann auch ganz gut,
da kann man sich dann Meter, Millimeter addieren
und das macht dann alles Richtige
und wenn man versucht, Meter mit Sekunden zu addieren,
dann sagt er einem, das geht nicht,
aber das Blöde ist, das macht es halt erst auf Ausführungsebene,
Wenn man dann irgendwie tausend Meter reingegeben hat, aber tausend Sekunden meinte, ist dann doof.
Ja genau, also dann stürzt es einfach ab.
Oder es wird halt eine Exception geworfen, klar.
Es wäre natürlich schön, wenn man das bereits, Type Annotations laufen ja halt viel früher.
Das ist ja schon in der ADI das Richtige.
Da sieht man da schon, dass das passiert.
Und nicht erst, wenn dann blöderweise ein einziges Mal diese komische Funktion beim Landen auf dem Jupyter ausgeführt wird.
und dann halt eine Exception geworfen wird, anstatt dass...
Ja, das ist dann halt der falsche Zeitpunkt.
Das sind so einige Experimente, die man einmal machen kann, das ist schon sehr kritisch von mir.
Ja, ja, ja.
Ja, das ist...
Ich bin mal auch gespannt.
Ich meine, TypeScript geht da ja auch sehr...
Forsch voran.
Ja, genau.
Und da habe ich das letztens gesehen, ich weiß nicht genau, dass da Leute...
Man kann fast aus den, wenn man die Type-Annotationen richtig schreibt, kann man fast den Code da schon generieren, sozusagen.
Weil da schon so viel Information drin ist, dass man sagen kann, okay, jetzt ist klar, was die Funktion machen muss.
Aber es fühlt sich irgendwie auch ein bisschen, also es ist auf der einen Seite interessant, auf der anderen Seite denkt man sich so, wow, das ist aber ganz anders.
Ja, aber ich glaube tatsächlich, diese ganzen Typen-Geschichten heben wir uns bei einer anderen Folge auf.
Ja, ja, das, genau, müssen wir mal irgendwann, ja, genau.
Ich fand das sehr interessant, Martin. Vielen Dank dafür.
Das ist immer total spannend, für was Python alles so benutzt wird.
Was man da so stolpert.
Das ist super wichtig.
Was man da für schöne Sachen mit zaubern kann.
Ein bisschen Magie hinter.
Und man hat halt immer so die schnelle
Magie in den Fingern.
Habt ihr noch
irgendwas zu diesem Thema oder
kommen wir langsam dem Ende entgegen?
Möchtest du noch was erzählen, Martin?
Nö, ich glaube, ich bin jetzt dann auch durch.
Also ich fand es super spannend, dieser ganze Problembereich, lauter Sachen, die man so als normaler Programmierer, sage ich mal, nicht so sieht, die da auftreten und dass Python da trotzdem gut funktioniert. Ich finde es großartig. Ich finde es super spannend und ich finde es großartig.
Dann haben wir immer die Tradition, dass wir einen Pick der Folge machen
Ich weiß nicht, ob du das schon kennst
Du musst ein Python-Modul irgendwo raussuchen und sagen, warum du das toll findest
Du musst nichts mit deinem Thema zu tun haben
Du kannst auch was anderes mal nehmen, musst nicht unbedingt einen Python
Er hat ja gerade schon Pint gesagt
Da kann man den Kürtel mal noch aufnehmen
Soll ich mal anfangen?
Ich habe nämlich einen
Ja. Achso, ich weiß nicht. Ich habe vor einer
Weile eine Bibliothek gefunden, die heißt
Deutschland.
Pip install Deutschland.
Ist noch keine
1.0, ist leider noch eine
kleinere Version. Und
das sind einfach Sachen
drin mit Daten über Deutschland.
Verschiedene APs
angebunden, verschiedene Dinge
angebunden, sodass man
einfach sich Sachen über Deutschland
anschauen kann. Hast du es gerade
offen, Dominik? Bundesanzeiger.
Genau, einfach
interessante Daten über Deutschland.
Die Geografie und
genau, Autobahndaten,
das Presseportal, die Polizei
Brandenburg, Autobahndaten,
Reisewarnungen, Zollwarnungen,
das Presseportal der Bundestag,
das man sich
abrufen kann.
Ja, und das ist jetzt Version 0.1.9,
also Deutschland ist noch nicht reif
genug für eine
1.0, aber
und wer mit deutschen Daten arbeiten möchte,
kann sich die so einfach reinholen.
Auf eine sehr pythonische Art und Weise.
Also ich habe auch von Johannes was gebraucht.
Man müsste mehr damit machen.
Johannes hat mir nicht was über PyTest erzählt
und ich habe gesehen, dass man Rich auch mit PyTest machen kann
und PyTest Rich genommen,
weil einfach das es dann ein bisschen hübschere PyTest-Ausgabe gibt.
Ja.
Ja.
Du wolltest was außerhalb von PyPy nehmen?
Ja, genau.
Ich habe deswegen nur so gemeckert,
weil ich was hatte, was da nicht reinpasst,
deswegen dachte ich, muss ich da mal schon mal gleich irgendwie
entsprechend
mich positionieren. Genau, was ich
picken wollte, das habe ich von der PyCon mitgebracht
und das hat der
in einem Lightning Talk, Florian
Bruhin von einer der
Pettest-Maintainer hat das vorgestellt
und zwar, weil er
immer nachgucken musste, wie Fstring
Geschichten, mit denen man ja wahnsinnig viel
machen kann, wie man das denn dazu
in welchem Fall macht, hat er
eine Seite schnell mal hochgezogen
die nennt sich fstring.help
slash cheat
slash, also so ein
Cheat-Sheet
für Python F-Syncs
und ja, das ist tatsächlich
sehr gut gemacht und
hat mir auch schon geholfen, finde ich super.
Genau, sollte man sich irgendwo hinlegen,
wo man das dann irgendwie wiederfindet.
Ja.
Die etwas
ältere Variante davon heißt PyFormat.
PyFormat.info.
Ah, okay.
kann man über Prozent und Punkt Format
Formatierung nachlesen. Habe ich auch schon
sehr, sehr häufig aufrufen müssen.
Ja.
Vielen Dank, Martin, dass du dabei warst und uns mit deinem Wissen bereichert hast.
Ja.
Danke auch, dass ich
schön erzählen konnte.
Danke, Johannes.
Und bleibt uns alle gewogen.
Hört uns, schreibt uns wieder rein.
Irgendwelche Kommentare an hallo.pythonpodcast.de
Genau.
Und einfach bis zum nächsten Mal.
Tschüss.
Bis dann, ciao