Transkript: European XFEL - Röntgenlaser mit Python
Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.
Ja, 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.
Dass hätte wir wissen müssen, 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 der Dominik.
Und wir haben den Martin heute sogar.
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.
Ja.
Ich weiß nicht.
Warum heißt das denn so, Martin?
Ja, ich wollte ein bisschen erzählen, wie wir, ich arbeite in Hamburg an Röntgen Laser Xfell und wie wir das Ganze dort mit Python steuern und wie wir dort unsere Experimente machen.
Das klingt interessant.
Und ja, also wenn wir Python nicht hätten, wäre er tot, ist er Todeslaser.
Nein.
Ja, sehr 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, da würde ich sagen, 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, okay.
Wir nehmen die Folge auch schon mal zum mehrfachsten Mal wieder auf.
Also eigentlich wollten wir euch ja auch mit Listen beglücken, aber das werden dann mal ein anderes.
Die laufen noch nicht weg.
Ihr hört vielleicht Johannes hört sich heute besonders toll an.
Ja, ich habe sogar ein 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.
Man kann auch Probleme lösen, wenn man kein Geld ausgibt, aber manchmal braucht man dann länger und ist nerviger und so, aber
Sachen basteln und Audio-Hardware ist auch nicht meine Expertise und so.
Es ist der Geldweg immer eine Möglichkeit.
Also größte News, Johannes hat ein neues Mikrofon, dann haben wir noch was anderes.
Haben wir noch was anderes, ja, wir haben zum Beispiel.
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 wettend und so.
Und dann hat er sich aber doch noch ergeben, dass ich 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.
Man konnte niemanden erkennen, weil die da noch
Maskenpflicht und so.
Und ich hätte, genau, das hatte auch jemand von euch schon schon irgendwie mal erzählt, da hätte man sich ja auch das eigene Gesicht irgendwie aufs C-Shirt drücken können oder so, das wäre praktisch gewesen, hätten wir total 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.
Haben wir immer erst hinterher, gell?
Ja, auf jeden Fall, genau.
Das mit den Masken war doch 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 Tellerrand, das ist so eine Webentwicklungskonferenz, die in Düsseldorf.
Ganz viel Design und nicht nur Computerkram, sondern halt auch Kunst und so.
So ein bisschen
die Hippes-Sähne, die sich dafür hält ja auch die Insel.
Ja, die Hippes-Sähne, das könnte man sagen.
Also meine coolen Freunde, die gehen dahin.
Du weißt jetzt nicht, ich habe es
nicht geschafft.
Ich war da nur einmal und dann war es mir zu cool.
Ja.
Aber ja, genau, also die, es ist deutlich, also die ganze Atmosphäre da ist halt schon so ein bisschen, ja, wie soll ich das sagen?
Der Vibe ist einfach anders und ist angenehmer, ehrlich gesagt.
Und da haben die Leute 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 waren auch ein paar interessante Talks, habe ich gesehen.
Also sehr interessante Leute auch international, die
umgeflogen sind.
Ist eigentlich immer so.
Das ist auch komisch, das weiß keiner so, oder 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 praktisch.
Und da kommt immer so die.
Kann man mir die Videos inzwischen ansehen?
Ja, ja.
Ich weiß, dass 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 ist.
Das ist super uncool.
YouTube ist so 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 da, also man kann sich einfach mal reingucken und dann sieht man interessant.
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 cool 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 Pyudit.
PyCon US fand ich übrigens auch.
Ja, die war auch, genau.
Da habe ich aber nicht so wahnsinnig viel von mitbekommen, außer irgendwie das, was man halt über Twitter so mitbekommen.
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.
Ja, da 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.
Da müssen wir uns ein bisschen beeilen mit der Veröffentlichung, dass das noch vorher.
Aber ja, ich bin ja auch nicht so gut.
Das zählt.
YouPeißen wollte auch hinjochen.
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 eines direkt in der Nähe von der Blue Dog Brewery.
Ja, also ich weiß, es gibt da tolle Unterkünfte und so, aber entweder sind die halt unbezahlbar oder halt nicht so richtig irgendwie für mehrere Leute geeignet oder halt nicht verfügbar in dem Zeitraum und das ist alles irgendwie ganz schrecklich.
Ich habe so ein Teil gefunden, das relativ entspannt gerade aufgemacht hat, da gab es noch gar keine großen Kreditungen.
Hat erst letzte Woche eröffnet oder so.
Oh, da ist man.
Okay.
Ja, die Bewertung erstmal so, mm, da fehlen noch die Klobürsten, aber ich glaube, das bis Juli haben wir 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 glaube, wir machen am besten nochmal mit den, also mit Christian wollten wir eigentlich noch eine Episode machen zu den ganzen Talks im Einzelnen und sowas, da so ein interessanter Talking ist.
Oder Background zu Pykon, aber also für mich tatsächlich der beste oder interessanteste Talk jetzt auf der auf der Pykon.de war halt der von Christian Heimes zum Thema Python nach WebAssembly kompilieren und dann halt, also Python 3.11 im Browser laufen lassen.
Vielleicht hören wir da auch noch mehr von.
Ja, genau, vielleicht.
Und das war schon beeindruckend, dass das geklappt hat.
Und ja, da ging es ein bisschen um die Hintergründe, das war echt super.
Ansonsten, ja, was den Talk von ich, äh, 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-Programm ein ORM in Python.
Ich fand den von Idealo, weil er sich halt mit dem Thema, mit dem ich mich auch schon lange, lange oder lange früher in einer anderen Zeit, wie lange mal beschäftigt da wird.
Ja, das war so richtig so Blast from the Past, Vibes da und ja, die machen das jetzt gerade, was wir da früher schon mal gemacht hatten und machen das super und es war sehr interessant.
Ich müsste alles immer in die Show Notes stellen, 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 irgendwie verfügbar.
Insofern weiß ich nicht genau warum, aber ja.
Da müsste man da eigentlich nochmal eine kurzere Zusammenfassung zu machen, aber vielleicht auch.
Ja, müssen wir irgendwann mal machen.
Vielleicht kriegen wir da auch nochmal 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, das ist halt so ähnlich, aber PyScript ist halt ein bisschen anders, insofern, als das über PyUD funktioniert und das ist halt dann Python 3.10.
Und geht aber auch unter WebAssembly rein in den Browser.
Ja.
Und der Browser lädt dann irgendwie Python-Pakete von 70 MB oder sowas und kann dann ein REPL aufmachen im Browser direkt.
Ja, das geht mit Python 3.11 nach WebAssembly auch, aber da geht halt tatsächlich sowas wie, man macht halt ein Jupyter-Notebook auf.
Das halt komplett im, also auch mit auf das Backend läuft dann halt im Browser.
Ja, das ist schon ein bisschen.
JupyterLite nennt sich das, das ist ziemlich cool.
Weil da kann man auf jeden Fall gerade für diese ganzen Datenverarbeitungsgeschichten, wenn man da ohne große Dev-Environments 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.
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 man.
Ich bin aber ein bisschen aus.
Ja, das ist ein bisschen schwierig, genau.
Ja, insbesondere dann, wenn schon welche da sind und das dann irgendwelche Konflikte gibt mit irgendwelchen Dingen, die sonst so laufen sollen, ist das manchmal so ein bisschen ein Schmerz.
Aber damit haben wir jetzt dann vielleicht weniger zu tun.
Und PyScript ist so recht einfach auch zu bedienen.
Du kannst einfach sagen, PyScript und dann schreibst du Python rein in den Browser und dann.
Aber irgend sowas gab es doch früher auch schon mal.
Es gab schon irgendwelche solche Lösungen für
Python im Browser.
Du würdest du denn doch erzählen, wenn ihr das war.
Da hatten wir doch letztes Mal drüber gesprochen.
Wie ist das denn in Python-Status?
Ja, aber ich habe es natürlich nicht nachgeguckt, Python.
Das wäre jetzt so einfach.
Ja, ich weiß es auch nicht mehr, ich weiß nur auch, ja, es gab sowas schon mal und das ist aus irgendwelchen Gründen ist das wieder versandet oder so oder war nicht so, aber ich weiß es auch nicht genug darüber, um irgendwas dazu sagen zu können, ehrlich gesagt, warum ich angefangen zu reden, das war doof.
Ja, ich weiß, dass es mal so eine Lösung gab für eine, 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 kein.
Ja, so eine Art Micro-Python irgendwie mit dem Verbuild-Ins und nicht so viele 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 es sich ja auch jetzt besonders gut aus, Johannes.
Also zumindest mit dem Script-Type von JavaScript nicht.
Mit TypeScript machst du.
Ja, ja.
Darf ich jetzt ein bisschen damit arbeiten?
Es ist gar nicht so schlimm, wie man sich das vorstimmt.
Ja, wir wollten über Typen wollten wir auch nochmal sprechen.
Jetzt haben wir schon wieder alles verraten, was demnächst kommt und Postgres kommt.
Okay, aber ja, vielleicht dachte ich, was machen wir denn so demnächst?
Aber was ist denn noch in der News drin?
Haben wir noch was vergessen?
Da war nämlich gar nicht so viel Großes diesmal.
Nee, diesmal war irgendwie ansonsten nicht so weit.
Also doch, was noch, das gibt jetzt im Sommer, das kann man schon mal ankündigen.
Wagtail Release 3.0, das wird sich ja noch interessant, da machen wir bestimmt noch was zu.
Funktioniert es denn ja auch endlich jetzt mit Django 4?
Ja, schon lange, schon lange.
Ja, auch.
Ja, doch.
Ich weiß nicht, Python
3.11 auf Python 3.11 gibt es ja inzwischen Betas, genau, und die Performance-Vergleiche sehen sehr gut aus.
Wie viel schneller ist es?
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 doch 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, ach, den Namen vergessen, der hat da irgendwie anderthalb Jahre so.
Immer und lange Diskussionen darüber.
Also es gibt diese alten fortgeschrittener Vorschlag.
Dieses alte Projekt von wie heißt der Hessings, ich weiß nicht, diese Gelectomy-Geschichte.
Unladen Swallow.
Ja, das gibt's.
Ist das das gleiche?
Ich weiß
gar nicht.
Ich weiß nicht, aber das ist, auf jeden Fall gibt es das auch.
Ja, aber auch nichts geworden.
Nee, aber der Ansatz jetzt, also wie heißt der?
Sam, ich habe den Namen vergessen.
Douglas Python gibt es auch schon seit Ewigkeiten, was auch niemand benutzt.
Oh, das weiß ich nicht.
Also soweit ich weiß, dieses?
Eve Online oder so benutzt Douglas?
Ah, echt?
Ja.
Ja, dann
guck mal Johannes an.
Aber die sind auch auf Python 2.
Und das war gegen dich.
Wunderbar.
Malerweise nämlich Johannes derjenige, der sich mit den Spielen auskennt.
Ja, ich kenne mich mit den Spielen aus, nicht mit der Technik dahinter.
Die ist mir geil.
Na gut.
Muss nur gut aussehen.
Nee, aber der jetzige Ansatz ist auch so, dass da viele Leute gesagt haben, mich 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 nicht.
Ich weiß nicht, dass man tatsächlich irgendwie I.O.
multiplexen will und gleichzeitig ganz viel CPU braucht, weil dafür, dann wäre es gut, ein Gill irgendwie loszuwerden.
Aber ich habe die Situation nicht so oft.
Also das Projekt ist ein No Gil und da gab es einen Blogartikel zu bei der PSF-Block.
Ah, okay.
Kann sein.
No Gil.
No Gil.
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, längst nicht so viel irgendwie im Weg steht.
Deshalb JavaScript hat es auch.
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.
Wenn du halt, gut, du musst dann halt schon auch eine C-Extension schreiben, aber geht schon.
Und wenn du sowas benutzt wie NumPy oder so, dann machen das natürlich alle.
Also da wird sowieso auch immer alle Prozessoren benutzt und so.
Also hier steht, dass das das einzige Feature wäre, was wirklich Konkurrenz between Threads verhindern würde.
Das verstehe ich nicht sofort.
Ja, also Concurrency, also das ist halt die Frage, also ich glaube, ich verstehe, was das meint, aber das bedeutet halt, also 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.
Nee, 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.
Du musst im Multiprocessing machen,
dann bin ich dann auch wieder Mist.
Ja, oder du kannst halt, wenn du halt unten drunter sitzt, wenn du so etwas wie ein Humpy bist oder so und da sagt dir, 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 Gill üblicherweise ja auch immer wieder frei.
Also wenn du irgendwie viel I.O.
machst mit Select Calls oder sonst irgendwelchen Sachen, hast du ja auch kein Gelind dann und so.
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, ne?
Haben wir News geschafft, vielen Dank.
Weil zu kommen wir jetzt zu unseren User-Fragen.
Ach, die User-Fragen, ja genau, ja, richtig.
Hatten wir dieses 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 so auf aktuellem Stand?
Wo kommt der an Neuigkeiten und Informationen ran?
Ja, das war die eine Frage und die andere Frage, wo du sagtest, das ist fast dasselbe, war, wie fange ich denn damit überhaupt an?
Mit dem Quereinstieg.
Ich fand ja, das waren zwei unterschiedliche Dinge.
Und das sind unterschiedliche Fragen im Grunde.
Aber ich würde die gerne auch beide beantworten.
Wie haltet ihr euch denn auf dem laufenden?
Ich wollte doch mal den Martin.
Ich, also ich glaube, meistens lade ich das sich auf 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 Newskanal auf.
Ja, aber ansonsten.
Naja, also.
Bist du auf Twitter?
Ich bin tatsächlich, also 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 ganz gut.
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 Frage, glaube ich, am schnellsten in die Themen rein.
Also 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.
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, also 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, wofür kriegst du denn deine News?
Ja, ich tatsächlich heutzutage meistens über Twitter.
Ich habe früher irgendwie sehr viel RSS konsumiert und davor ein Usenet.
Und heute ist es hauptsächlich Twitter, wobei man da zum Beispiel 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ßballerfrisuren und weiß ich nicht, so Zeugs, wo man sich da so hält.
Aber wenn man das eine Weile benutzt hat und dann so ein bisschen selber kuriatiert hat, dann ist es schon ziemlich gut.
Also man muss es hart kuratieren und dann kann man Sachen filtern, wie das der Johannes auch gerne 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 Politikernamen 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.
Zumindest auf Twitter.
Die meisten Meinungen, die auf Twitter kommen, sind ja erstmal unqualifiziert und deshalb sind es so ein bisschen.
Also ich würde das auch Anfängern tatsächlich nicht empfehlen wollen, weil das ist ganz schön schwierig, rauszufinden, was einen denn überhaupt interessiert oder was gute Qualität hat, wenn man noch gar nicht weiß, was man sucht.
Wenn man 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, ja, also man kann jedem mal eine Chance geben, ja, jedem, 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 mal lesen.
Ja, ich glaube, das ist vielleicht noch eine der Challenges im Internet, ne?
Also ich habe da auch irgendwann, man legt sich so seine Linklisten an oder sowas.
Und die zu pflegen ist 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, ja.
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, muss sie erstmal entdecken und auch dann filtern.
Fluchtquellen gibt es denn, die muss man 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 man kann lesen, was der so den ganzen Tag macht.
Ihr habt euch weiterhin.
Also insofern, das hilft nicht.
Aber tatsächlich, genau, wenn man sich anguckt, wem ich folge, könnte man wahrscheinlich eine ganze Menge Pfalten relevante Sachen finden.
Das stimmt.
Ja, oder hält bei anderen Leuten in der Community sicher auch.
Und ich glaube auch leider, das ist halt auch so, was mit der Zeit, glaube ich, schwerer geworden.
Weil wenn ich, ich gucke halt auch mal ab und zu so auf YouTube und so.
Und es gibt auch super Sachen auf YouTube, aber wenn man muss ganz arg ausfällen und man muss halt durch viel Zeug durchgucken, wo ich jetzt sagen würde, so, und das weiß man halt nicht, wenn man anfängt.
Ja, gerade die Baswords.
Man kann so sich versummen in irgendwelchen Dingen von Leuten, die selber eigentlich gar keine Ahnung haben und beim Lernen dann erstmal was aufnehmen nach dem Motto, ich habe erstmal einen YouTube-Kanal gemacht.
Ja, gar nicht so einfach, ja.
Das macht es halt schwer.
Also insofern, was ich es auch mache.
YouTube hat übrigens auch immer noch RSS-Feeds.
Also da kann man auch die Kanäle mit per RSS abrufen.
So mache ich nichts.
Ich will das nicht auf YouTube haben.
YouTube hat auch eine API, 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, irgendwie vor einem, also wenn ich, wenn ich das höre, dann irgendwie gleichzeitig auf den Bildschirm zu gucken, weil ich gleichzeitig irgendwie spüle oder einkaufen gehe oder sowas meistens.
Und was ich mache, und mein Podcatcher, Podcast-Player kann das, aber das können bestimmt andere auch, da kann man, der hat so einen, der macht so ein Sideload-Action ins Share-Sheet bei iOS.
Und wenn man dann sagt, irgendwie, man ist auf einem YouTube-Video, es gibt ja auch ganz viele Talks, also das, ach, das ist vielleicht auch ganz interessant, Konferenz-Talks oder so, man guckt sich die Konferenzen an, guckt, welche Themen sind, da so interessant und wenn man auf dem Talk ist auf YouTube und sagt,
da muss man ganz arg filtern.
Stimmt?
Auch da muss
man ganz arg filtern.
Also selbst auf den guten Konferenzen sind die Hälfte der Talks einfach Themen, die mich nicht interessieren.
Und dann auch da muss man einfach nichts Sachen angucken.
Mit allen Dingen, ne?
Wenn den ganzen Content kann man zu Lebzeiten ja gar nicht konsumieren.
Und da muss man vielleicht ein bisschen sich einfach ausholen.
Ich habe es früher immer sogar 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.
Muss erstmal mit den guten Sachen anfangen, weil dann fällt das Lästige 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 aufhört, dann auch irgendwann mit noch einen Talk und noch einen 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, das ist schon nett, wenn man bestimmte Sachen hat.
Ja, aber es hängt so ein bisschen vom Thema ab, vielleicht.
Wobei es.
Ich höre,
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 Podcasts.
Talk Python to me, PodcastInit sind vielleicht so die beiden.
Deutsche Python-Podcasts soll sehr gut sein.
Aber das ist ja so ein bisschen irgendwie das.
Da hat man die
Leute rum.
Martin hatte gerade noch eine Idee.
Ja, was ich immer noch, was immer beim Lernen für mich immer sehr wichtig war, ist, Code anderer Leute zu lesen.
Und also das macht man natürlich idealerweise dadurch, dass man anderer Leute Code reviewt.
Das ist dann immer das Ideal.
Dann kann man denen sogar noch sagen.
Oh Gott, oh Gott, oh Gott, oh Gott.
Blöde Kommentare reinwirken, genau das.
Also dann ich mache halt 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 fremder Leute Code lesen.
Ich erinnere mich da noch dran, dass das halt, also klar, ich würde es abzuzustimmen, da kann man super viel lernen, aber es ist halt auch echt anstrengend.
Also vor allen Dingen, wenn das halt so Sachen sich gar nicht.
Aber ja, da kann man echt viel lernen.
Das ist, ja.
Es gibt da ein Buch mit dem Titel Learning Python the Hard Way.
Ah, ja.
Ja.
Habe ich auch mitgelernt.
Ja, finde ich gut.
Aber es ist sehr witzig, weil einige Leute, die dann fremden Code lesen oder eigene Code lesen, stolpern dann irgendwann drauf mal wieder.
Ich habe das, glaube ich, schon mal erzählt, aber ich kenne die Geschichte, wie Jochen hat meinen Code reviewed und dann, ah, nee, oh Gott, oh Gott, oh Gott, ne, schmeiß mal weg, mach mal neu.
Ja, okay, neu gemacht, weggeschonen.
Und dann wieder, ah Gott oh Gott, oh Gott, na, was ist das denn?
Schmeiß weg, mach mal neu.
Und dann so, ah, irgendwann wie ein bisschen später wieder so, oh nee, Gott oh Gott, was das denn?
Und Joch, das habe ich von dir Copy-Paste.
Ja, wenn man seinen eigenen Code später entseht, dann das auch nicht tatsächlich.
In den Code ansehen und past me war schon ein ganz schlechter.
Ja, ja, also
ein halbes Jahr später, so, oh Gott, oh Gott, oh Gott.
Was das denn, kann das weg.
Ja, das wichtiges weitermachen, glaube ich, und dass man halt am Ball bleibt.
Ist so ein bisschen eine Frage, wie viel Zeit noch investieren.
Ich habe noch zwei Sachen, die ich als Quell habe.
Die eine ist Hacker News.
Das ist aber mehr so, was halt so für den groben Überblick möglich ist.
Und auch da muss man ganz arg filtern 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, sondern ich würde, wenn ich was mir Zeit nehme, dann direkt angucken.
Wenn es interessant ist, kann man sich das ja ansehen und das in seinen Wissensstand reinsynthetisieren 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, das ist so Low Level.
Aber was ich ganz viel mache, ist eben über RSS-Feeds von Personen des Blog lesen.
Also zum Beispiel Jochens.
Blog?
Ja, ja, hier auf dem Dorf wird abends geladet.
Das ist die etwas altmodische Push-Notification.
Jetzt ist Feierabend.
Hier ist jetzt Feierabend auf dem Dorf.
Das kann man auch nicht so gut wegdrücken.
Es gibt keinen Spamfilter.
Nee, nee.
Aber Jochens Blog zum Beispiel, der Jochen veröffentlicht ja seine Weeknotes, ja.
Das heißt, dann weiß ich auf jeden Fall ungefähr, was der Jochen so gemacht hat.
Ich gucke mir von den Podcasts ganz 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 genau, also Johannes macht ja auch Wiknotes und die gucke ich mir auch mal an und finde das immer sehr interessant.
Also ich finde da immer irgendwie Dinge, die ich nicht gesehen hatte, die irgendwie bei mir nicht vorbeigekommen sind.
Ich dachte, ah super, das ist ja total interessant.
Also das hilft auch auf jeden Fall.
Also ein paar Newsletter vielleicht auch, aber da kann auch dann einen was interessiert, dann direkt lesen.
So, also ein paar bessere sind vielleicht irgendwie Data Science Weekly oder Python Weekly oder so.
Ja.
Ja, ja, ja.
Genau, ich weiß nicht, ich habe ein paar, ich habe Postgres Weekly auch noch, der ist auch noch ganz gut.
Und es gab noch so einen anderen, den ich gerade vergessen habe, da muss ich mir die Show-Notes 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 sagtest du mal Jochen anrufen, Fragen.
Ja, ich.
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, was man irgendwer hat, das mal Schwarmintelligenz genannt oder so.
Das fand 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überklettern will.
Das dauert immer ein bisschen länger.
Und manchmal fällt man dann in so Lücken rein, die niemand sehen wollte oder die man selber gar nicht entdecken wollte und verlierst so ein bisschen den Fokus und das ist vielleicht ganz angenehm.
Ja, ja, ansonsten glaube ich, dann sind wir damit auch mehr oder weniger.
Achso, du mal ein Quereinstieg, andere Frage, ne?
Das wäre vielleicht auch nochmal.
Ja, also die Frage ist, was bedeutet Quereinstieg und wie viel Zeit investierst, ist halt auch da, die Frage, ne?
Wie viel Zeit kannst du denn aufwenden, wenn dich Python so nebenbei interessiert, dann hast du vielleicht fünf Wochen die Stunde Zeit.
Also 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.
Also ich habe zum Beispiel gemacht, die ersten zwei Jahre 70 Stunden die Woche ungefähr investiert.
Und dann braucht man halt für denselben Stoff.
Gessen Fall ist das genau gleich effektiv.
28 Jahre, wie für diese zwei Jahre, um einfach dieselbe Menge irgendwie aufzunehmen, wenn man fünf Stunden die Woche macht.
Also rein rechnerisch.
Und das ist halt einfach so die Frage.
Also, wie viel Zeit steckt man wirklich rein, um weiterzukommen und was will man damit anfangen?
Also, wenn man jetzt einen Doppel, sollte man vielleicht den harten Weg gehen, ja, the hard way und sich wirklich die Sachen so ein bisschen auf den Grund angucken, damit man vielleicht irgendwo mitkommt, weil man möchte ja vielleicht auch ein Level haben.
Ja, aber ich finde es schwierig, also ich meine, das sind halt eben, auch wenn man 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 nicht angefangen gedacht, lieber mit Holz, genau.
Oder irgendwie gehe ich spazieren und gucke mir irgendwie 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 sich das auch, dass das, dass das halt einfach Spaß gemacht hat.
Und dann merkt man das nicht so.
Dann denkt man sich, hups, schon wieder ein Tag vorbei.
Ja, genau, aber das ist ja in der Nacht.
Es muss halt gut sein, es muss halt einem Spaß machen, irgendwie liegen.
Also wenn euch das wirklich so, wir will jetzt auch Spaß gemacht.
Man könnte viel Stress machen.
Ja, genau.
Der Dominik stresst uns ja jetzt, dass man hier so
viele Stunden reintun muss, aber 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 einen Lebensunterhalt.
Also das 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 jetzt einen Querantieg wirklich finden willst und sagst, du hast dich entscheiden, das ist jetzt dein Ding, dann mach's ordentlich.
Tja, würde ich jetzt behaupten.
So, so regionale Treffen sind da, glaube ich, was super gut ist.
Also ich bin, als ich nach Düsseldorf gekommen bin, bin ich einfach in den Python Vu gegangen und jeden Donnerstag.
Für alle hingegangen.
Ich kenne das das in Karlsdorf, in Düsseldorf.
Genau, im Computerclub in Düsseldorf.
Jeden Donnerstagabend ist Python Fu 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 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 schon bestätigen.
Ja, ja.
Okay, gut, dann würde ich sagen, das ist mit diesem Themenbereich auch beschäftigt.
Dann können wir dann ein neues Kapitel anfangen.
Um den Laser des Todes geht es dann jetzt.
Ja.
Ja, da musst du den auch erstmal ein bisschen ausholen, Martin.
Was ist das denn?
Und was macht ihr da überhaupt?
Also du musst doch nochmal von dem Institut leichterzählen im Hintergrund und dann.
Also wir sind der European XFL.
Das XFL steht für Röntgen freier Elektronen Laser.
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 eins.
Da ist immer so ein Wettlauf, wer da jetzt gerade Genaz verbunden ist.
Kein Understatement, eine der Essen.
Ja, es gibt ja auch nicht so viele 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 sie von Sichtbewerbenlicht und dann sogar mehr als tausendmal.
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, also 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, also 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 halt, 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 sich 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 so 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 ihr 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.
Da gibt es dann irgendwelche Benutzer, nennen wir die, die dann uns Ideen geben, was man denn dort messen könnte.
Und die kommen dann bei uns vorbei.
Also heutzutage kommt sie immer bei uns vorbei wegen Corona, aber jetzt müssen wir das alles mal selber machen, sehr anstrengend.
Aber normalerweise kommen die dann 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 we have da immer mehrere Teams und wir wechseln uns typischweise ab.
Also eine Woche kriegt das eine Team darf den Röntgenlaser verwenden, dann nächste Woche den anderen.
Insgesamt, es sind immer drei Teams parallel, insgesamt sind wir sechs Teams, also immer drei, erst die einen drei, dann die anderen drei, wieder die einen, drei, die anderen drei.
Und ja, dann kommen unsere Benutzer halt vorbei und die haben dann die verrücktesten Ideen, was sie dann mit dem Ex machen wollen.
Und dann stehen sie dann vor uns und sagen, ja, da macht mal.
Und häufig muss man dann halt Sachen, also wir haben dann noch das Bonusproblem, dass es halt ein Röntgenlaser ist.
Und da sollte man halt nicht unbedingt daneben stehen, also wirklich gefährlich ist das eigentlich auch nicht.
Also gerüchteterweise, wenn man da in anderen Weltregionen ist, dann ist denen das auch egal.
Da stellen sich einfach direkt daneben, aber bei uns ist das in Deutschland nicht erlaubt und das heißt, es muss alles ferngesteuert werden und alles automatisiert werden.
Und alles ferngesteuert, okay, das machen es alle als Computer.
Um mal so eine Größenordnung zu geben, also anstatt dass ich mich dorthin stelle und was rumschraube, muss dann halt ein Motor das tun.
Wir haben dort weit über 1000 Motoren, die dort gesteuert werden.
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öntgen Laser ist leider viel zu stark.
Wir müssen denen jetzt 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 habt ihr dann verschiedene Achsen in den Motoren, die ihr irgendwie kennt und dann könnt ihr mit tausend Motoren, das heißt, viele Dimensionen, die dir irgendwie möglich sind.
Ja, richtig.
Und das, so, und wir brauchen wirklich die Flexibilität, dass wir dann, also wir haben wirklich, für eine Woche schreiben wir dann tatsächlich, ja, so viel Code ist das ja praktischerweise in Python jetzt auch nicht, aber es macht es halt möglich, dass man halt da live dann programmiert und live dann Dinge ändert.
Also uns passierte dann regelmäßig, dass wir festgestellt haben, oh, das ist alles nicht stabil genug.
Wir schießen die ganze Zeit daneben und können das aber messen, um wie viel wir daneben schießen und dann muss halt ein kleines Python-Programm geschrieben werden, womit wir dann immer messen, wie weit schießen wir denn daneben und fahren dann die ganze Zeit den Laser wieder dahin, dass wir halt nicht mehr daneben schießen.
Also ein kleines bisschen IoT in groß.
Ja, also dazu muss man sagen, für echtes IoT sind wir noch nicht mal sonderlich groß, also so eine Automobilfabrik ist da.
Achso, IoT, nein, also ja.
Ja, also es gibt da deutlich größere Einrichtungen, die ähnliche Sachen machen.
Automobilfabriken zum Beispiel, die haben da auch tausende von Motoren.
Aber die werden typischerweise jahrelang vorbereitet und laufen dann jahrelang durch.
Ein bisschen so, als würde einer in der Autofabrik sagen, und morgen machen wir jetzt nicht mehr hier den Golf 12, sondern wir machen jetzt einen 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, Motoren hin und her fährt und der ausschaltet.
Habt ihr
denn einen Joystick für oder sowas?
Ja, der Punkt ist das ja, dass es ja automatisch gehen soll.
Deshalb kein Joystick.
Ja, 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, da kann man, also gerade wenn man so flexibel ist, kann man dann halt auch sehr schöne flexible Sachen machen, dass wir dann, also anstatt ein, also viel schöner als ein Joystick ist, dass wir das hinbekommen haben, dass man, ja, wir machen einfach ein Foto der Probe, bevor wir sie in den Laser reinschießen und dann können wir einfach auf das Foto draufklicken und dann schießt der Laser dahin.
Das sind jetzt alle Spielereien, die lassen sich mit so kleinen Skripten schnell mal zusammenschreiben.
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 Gill ins Spiel.
Dass wir halt eben tatsächlich kein Multithreading machen, weil Multithreading ist ja der Horror.
Und dann tatsächlich alles mit AsyncI.O 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 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, sie kommt mit Batteries Included quasi zurecht.
Jein, also ja, wir führen so ein bisschen Katalog darüber, welche Pakete wir so verwenden.
Ich glaube, inzwischen sind wir so bei 30 Paketen, die wir da noch mit reinmachen.
Also natürlich insbesondere ganz wichtig sind sowas wie NumPy und SciPy.
Die sind, also daher kommt das ursprünglich eigentlich, dass die Datenauswertung in der Physik schon schon länger mit NumPy und SciPy gemacht wird.
Das ist da schon sehr beliebt, schon recht lange.
Und dass man dann halt das gewissermaßen den umgekehrten Weg gegangen ist, dass wir geguckt haben, ja, wo, also als wir uns entscheiden mussten, wie machen wir denn mit unserer Experimentsteuerung, da haben wir doch 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, das ist ein Kontrollproblem und das Auslesen der Daten ist dann ein fast schon ein Big Data Problem.
Und wenn man das mit demselben machen kann, dann ist das natürlich super.
Also so, um mal Größenordnung zu geben, unsere Hauptkamera, die wir da verwenden, ist halt eine 2-Megapixel-Kamera, die mit 5000 Bildern pro Sekunde aufnimmt.
Da kommen ein bisschen Daten zusammen?
Ja, da kommt ein bisschen Daten zusammen.
Du musst gerade überlegen, wie viel sind das?
Ja, mal gucken.
Also 2 Megapixel mal 2 Byte macht 4 Megabyte mal 5020 Gigabyte pro Sekunde?
Kleiner Datendurchsatz.
Ja, da muss man so viel
Platz bei euch.
Läuft das dann die ganze Woche quasi so durch oder nur zu bestimmten Zeit 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 waren 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 wobei 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 ausgerechnet.
Ja, auf solche Größenordnungen geht es.
Glücklicherweise bin ich nicht fürs Datenmanagement zuständig.
Das sind eine Million Terabyte in euren 15 Stunden.
Das kann ich sagen.
Oh, da habe ich Petabyte.
1080 Terabyte.
Ja, ja, das ist, wir haben da, also wir, also Petabyte ist bei uns.
Jede Woche.
Ja, ja, ja.
Das ist nichts, also jetzt 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, also das tut tatsächlich weh.
Und ja gut, man versucht dann natürlich dann immer die Daten irgendwie 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 zwei Sekunden dauert oder nur eine Zehntelsekunde mal Flak hat oder sowas und die müssen wir vielleicht haben.
Ja, also je nachdem.
Also es gibt zum Beispiel 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, das hat, glaube ich, was macht die Stiß Proteine in den Strahl?
Genau, also zum Beispiel dieses berühmte Spike-Protein von Corona.
Also das Problem ist, wenn man einen 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 das gewissermaßen in Foto schießen.
Ihr habt irgendeine Trägersubstanzflüssigkeit, in der schwimmt das rum und das ist auf so ein Glas drauf und das schießt dann der Laser rein, oder?
Nee, das wird tatsächlich, also ja, das ist in eine gelöst, typischerweise in einer Lösung und das wird dann in gewissermaßen ein feiner Strahl, sozusagen wie ein Pinkelstrahl 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.
Also das heißt, irgendwer pinkelt Proteine dann über diesen, und da kommt der Laser, der ballert dann dazwischen.
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.
Also je nachdem, was man genau macht, kann das kann das auch mal mehr oder weniger sein.
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 bis zu 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, dann sind wir bereits 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 ja gesagt, Phantosekunden könnt ihr ja auch.
Ja, ja, also das hat ja nichts miteinander zu tun.
Das ist ja.
Also wie lange der, also tatsächlich ist es so, dass in unserer Tunnelröhre mehrere von diesen Röntgenblitzen hintereinander sich auf unsere auf unsere Probe zubewegen.
Sogar ganz viele.
Tatsächlich kommt das, es ist nicht so, dass da 5000 so irgendwie so gleichmäßig und eine Sekunde kommen, sondern die kommen mal 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 in die nächsten 500.
Und dabei kann man dann tatsächlich sehen, wie dann durch diesen Strahl, der muss ja dann auch relativ schnell mit Druck dadurch die ganzen Proteine zerstäuben oder explodieren.
Die bleiben in dem Wasserstrahl einfach gelöst.
Und jetzt ist es natürlich so, dass ob wir da, also das ist mehr oder weniger Zufall, ob man jetzt mit dem Röntgenlaser tatsächlich eins der Proteine trifft oder nicht.
Und wenn man eins trifft, dann hat man halt ein Signal.
Und wenn man gerade keins trifft, dann hat man kein Signal.
Und idealerweise schmeißt man dann natürlich die Bilder, wo kein Signal ist, einfach weg.
Wobei ich jetzt ganz ehrlich gesagt nicht in der Gruppe bin, die da für das Wegschmeißen zuständig ist.
Wie gut die da jetzt schon sind, weiß ich tatsächlich nicht.
Muss man auch erstmal herausfinden, oder dass da ein Signal ist.
Ja, das ist eine Riesenmagie, die da passiert.
Und ja, wie gesagt, ich bin nicht in der Gruppe, die das macht.
Deshalb.
Aber man kann so wirklich Molekülstrukturen tatsächlich sehen.
Also wie man sich das aus dem Chemieunterricht früher vorstellt, 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 Rechenleistungen, muss das Ganze zurückgerechnet werden.
Und da sind dann da, 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 dann 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 und dann?
Ah ja, okay.
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, mit anderen Methoden gemessen worden und dann weiß man, was da geht.
Wobei ich mich persönlich weniger mit Molekülen beschäftige, als halt mit Magneten.
Und die haben das große Problem, dass datentechnisch das sogar eher anstrengender ist, weil wenn man da so einen Magneten reinhält, den muss man nicht reinschießen, sondern der bleibt da einfach stehen.
Und das heißt, da ist dann auf jedem Bild was drauf.
Das sorgt dafür, dass wir dann noch viel mehr Daten haben.
Dafür ist das dann mit dem Rückrechnen nicht so schwer, weil es da meistens um deutlich einfacher ist.
Wenn du da Magneten reinhält, dann gibt es eine gewisse Abweichung dann immer in eine Ecke, oder?
Ja, also was man halt macht, also mit Röntgenstrahlen kann man halt sehen, ob der Magnet magnetisch ist, gerade.
Also, in einer 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 Magnet entweder so rum oder so rumdreht.
Und was wir dann machen, ist, dass wir schießen mit einem handelsüblichen Laser, ja, also mit 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 lange es denn dauert, so einen Magneten zu demagnetisieren.
Und das ist dann halt die kürzeste Zeit, mit der man grundsätzlich einen Daten auf einer Festplatte schreiben könnte.
Zeiten, die glücklicherweise so schnell sind, das weiß man inzwischen, dass das für einen 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 einer Technologie, wo man jetzt irgendwie wahnsinnig viel habt.
Das ist eine Magnettechnologie, mit die 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, das wäre deutlich schneller als SSD.
Ja, genau.
Also, wie gesagt, das ist viel, viel schneller als alles.
Also das Schalten solchen Magneten geht prinzipiell viel, viel schneller, als dass jemals ein Computer dort schreiben können.
Und weshalb wir da keine, es gibt, schreibt theoretisch, es gibt keine theoretische Grenze.
Keine physikalische Grenze, die da irgendwie ein Problem ist.
Es gibt eine, aber die ist so weit von gut und böse, dass.
Dass wir die diese 100 Jahre nicht mehr erreichen werden.
Genau, vor allen Dingen nicht bis SSD zu übernehmen.
Vielleicht, das ist aber nicht das Problem oder warum Festplatten langsam sind, sondern die richtige Stelle nicht da ist.
Ja, genau.
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.
Schöne Vorstellung.
Vor 30 Jahren hatten wir 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.
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 oder Zeit von Essen genau verbaut waren.
Es ist ja einfach nur eine magnetische Struktur, also irgendein Stoff, der grundsätzlich magnetisch ist und oben drüber, und den kann man halt da kann man sich so winzige kleine Magnetchen vorstellen, aus denen das draufsteht, aus denen das besteht, von denen es natürlich ganz, ganz, ganz viele gibt, nämlich wie das Bitz, das gespeichert werden soll, eins.
Und ja, 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 die dann halt misst, ob denn jetzt gerade der Nordpol oder der Südpol oben ist.
Und genau, und wir wollten, also da gibt es halt Grenzen, wie schnell man da 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 es eigentlich, dass sich dieser Magnet dreht?
Dreht sich da wirklich was oder wird das umgepolt?
Ja, gut, das kann man die Definitionsfrage.
Was heißt denn dann Umpol?
Ja, also es geht da immer um die Spins der Elektronen.
Also Elektronen haben gewissermaßen ein oben und ein unten.
Und in Magneten ist es so, dass das ist, was ein Magnet ist.
Ein Magnet ist so, dass die Spins, also dass die Elektronen, benachbarte Elektronen aneinander gekoppelt sind, dahingehend, dass die, wenn das eine Elektronen 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 in eine Richtung.
Und der Witz an einen Magneten ist, dass dann benachbarte Elektronen aneinander gekoppelt sind.
Also alle Elektronen haben ein Oben und ein 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 die, wenn man mit meinem Magneten die Elektronen umdreht und danach 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 man, dass es überhaupt Magnete gibt aus Metall, dass es der gleiche Effekt wie etwas darin zu speichern.
Im Grunde ist das das, was man da drin gespeichert hat.
Sozusagen die Art, ja, also ja.
Ja.
Cool.
Also einen normalen Magneten ist die Information halt ein Bit.
Ja, bei einer Festplatte sind halt dann ganz, ganz, ganz viele nebeneinander.
Und man muss dann aufpassen, dass die sich beeinflussen und so weiter.
Also sie sollen, das ist nur das Problem, Elektronen sollen sich ein bisschen gegenseitig beeinflussen, weil sie ansonsten ihre Position nicht halten.
Aber denen ist aber auch nicht zu viel.
Aber das ist dann wieder sehr viel Wissenschaft.
Die Dichte, wie in die anderen hängen und so weiter.
Genau, da kann man unglaublich viel mit rumspielen.
Das ist dann Technik.
Eine schöne Sache an der ganzen Geschichte ist übrigens, dass das Material, was man da lange Zeit verwendet hat, das war Eisenoxid.
Also Rost.
Eine Scheibe voll Rost und daraus baut man sich so viele Magneten, dass man seine Sachen drauf speichern kann.
Finde ich sehr schön.
Heute nicht mehr, heute benutzt man Kobalt und irgendwelche komplizierten Sachen, aber für die meiste Zeit war es einfach Eisenoxid.
Ich kenne halt den Kosename für Festplatten dieser älteren Bauart.
Leute nennen das rotierenden Rost.
Also das ist halt, ja, trifft es, 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.
Jetzt wisst ihr alle, dass ich alt bin.
Kassetten, hm, was könnte das sein?
Vorückspulen, durchreißen, einander kleben.
Genau.
Ja, sehr schick.
Habt ihr denn da schon immer Python verwendet?
Oder seit wann wann verwendet ihr Python?
Oder überall oder gibt es auch noch andere Technologien, die verwendet werden oder welche?
Ja, also es gibt auch immer noch eine gewisse Menschen, die sich nicht davon abbringen lassen, weiterhin C<unk> 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.
Ich habe es noch nicht geschafft, dich vor den Laser zu stoßen.
Genau.
Und ja, tatsächlich ist es so, dass in der Physik jahrzehntelang war C<unk> tatsächlich einfach die Sprache schlechthin.
Es wurde einfach alles in C<unk> 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 sie auch noch, die Fortran-Leute, die sind glücklicherweise inzwischen sehr wenige geworden.
Aber es gibt sie immer noch.
Aber ja, inzwischen ist das so, ja, C<unk> ist jetzt halt doch nicht mehr die modernste Sprache und jetzt die neue Welle, da ist Python einfach.
Gibt es
auch Rust?
Hat auch noch Fortranbauteil.
Genau, natürlich, ja.
Ja, selbstverständlich.
Also das ist ja klar.
Das ist gar nicht so weit von uns entfernt.
Ich erinnere mich nur gerade an Zitat, ich weiß gar nicht, wer das mal ursprünglich gesagt hat, aber der wissenschaftliche Fortschritt ist nur so one funeral at a time.
Ja, natürlich, also das 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 Fortran 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 weiterverwenden kann.
Heißern als Galoo.
Absolut.
Ja, und ich glaube auch, ich weiß gar nicht, wie viel, also einer der großen Vorteile bei Fortran ist halt, dass man, also weshalb das glaube ich, jedenfalls, was ich weiß, für numerische Geschichten auch verwendet wird, ist, dass halt da die Sprache so ist, dass die Compiler automatisch vektorisieren können, was ja bei C und C<unk> eigentlich nicht geht.
Es geht auch, aber man muss dann halt selber quasi mit 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, 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<unk> oder bei C jeden Maschinenbefehl selber schreiben muss und gleichzeitig hast du trotzdem noch genügend genügend tiefe Abstraktionen, um schnelle Programme schreiben zu können.
Das eigentliche Problem an Fortran ist, glaube ich, eher, dass einfach die Sprache schon alt ist.
Und dass die ganzen Sachen, die man heute als Komfort für sich so kennt und auch nicht vermissen möchte, die gibt es da halt einfach nicht.
Ja, also so altphilologen in der Computersprache selten, dass Leute so ein Interesse daran haben, ein forensisches erstmal die alten Sprachen nochmal alle nachzulernen.
Statt was Neues, Modernes anzufangen.
Oder eher nicht.
Wobei, also den Markt gibt es ja durchaus noch und auch wieder.
Cobol entsprechend.
Firmen, die wieder Cobol-Programmierer ausbilden, weil sie es halt noch brauchen.
Und genauso gibt es wissenschaftliche Einrichtungen, die Fortranprogrammierer 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 ich, 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 mehr.
Ich habe gerade Fortranvorlesungen an der Universität gehört, das war schon interessant auch, einfach auch mal aus historischer Sicht, ja.
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 Gill funktioniert halt nicht.
Nee, klar.
Wenn es wirklich darum geht, möglichst viele Multiplikationen und Additionen auf den Prozessor zu jagen, da braucht man mit Python gar nicht anzufangen.
Sondern da muss man dann wirklich halt über NumPy zum Beispiel dann, 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 die Matrixmultiplikation enthalten, die halt von den Prozessorenherstellern oder sehr enthusiastischen Hobbyisten handoptimiert wurden, teilweise bis in die Assembler-Ebene runter, um möglichst schnell auf einen Prozessor sowas die Matrizmultikation 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 wegfallen, 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 geht 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 da ist es dann halt sehr schön, dass es dann da halt so standardisierte Bibliotheks-APys gibt, bei denen es dann eigentlich völlig egal ist, auf was das dann am Ende läuft.
Ja, das war interessant, weil man denkt halt manchmal dann, Python wir langsam, aber wenn man dann sowas wie NumPy benutzt, hat man ja quasi die Python-APy, 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 wird auch, da denken wir, zerbrechen sich auch gerade viele 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 Auswertung 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 welche man schnell noch einen Parameter gedreht hat und welche nicht.
Wer länger mit Jupyter Notebooks gearbeitet hat, kennt das wahrscheinlich sehr gut.
Hin und her.
Ja, und was natürlich der Reproduzierbarkeit, also reproduzierbar sind unsere Daten in dem Sinne ja sowieso nicht, weil wir sind der einzige Röntgenlaser, der diese Intensitäten schafft.
Das heißt, wir können die nur bei uns reproduzieren, aber wenn man wenigstens mal die Auswertung der tatsächlich vorhandenen Daten reproduzierbar machen könnte, wäre das ja schon mal schön.
Ja, weil sonst muss man auch erstmal wieder warten, bis man so einen Slot gebucht hat, wo dann das Dreier-Team dann reingeht, mit der ganzen Preparation das nochmal macht.
Genau, ja, aber gut, aber dann auch die Auswertung, also es wäre zum Beispiel auch mal eine gute Idee, dass man, wenn man zum Beispiel zwei verschiedene vergleichbare Materialien sich anguckt, dass man mal vergleicht, wie das eine auswertet und was das andere auswertet.
Und wenn man dann zwischendurch das new Jupyter Notebook wieder mal vergessen hat, was man da eigentlich gemacht hat, dann ist das sehr unpraktisch.
Und das ist tatsächlich ein, also bei uns aktuell, also was heißt aktuell?
Also es ist schon seit länger ein Problem, wie man das denn handhabt, dass man da reproduzierbar Daten auswertet.
Tatsächlich ist es sogar so, dass schon das Problem ist, naja, also wir werten da Daten aus und am 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 kommt zu einem anderen Ergebnis?
Das ist dann tatsächlich ein Problem, weshalb wir tatsächlich angefangen, also haben einfach komplette Virtual Envs nehmen wir jetzt gerade noch.
Wir haben darüber nachgedacht, das ist ein Konda zu nehmen und dann die kompletten Virtual Envs mit den Daten zusammenzuspeichern.
So ein 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 Betriebssystemenbibliotheken hat man im Virtual Eng ja nicht drin, also Libc oder auch diverse andere Geschichten.
Das heißt, wenn die sich geabtrettet haben, dann kann.
Das ist richtig.
Das heißt, dann müsste man dann konsequenterweise weiter zu Docker-Containern gehen oder ähnlichen Technologien.
Oder Ensible irgendwas bauen, ne?
Ja, Ensible hilft ja nicht, weil Ensible da würde dann ja dasselbe Problem haben mit den Systembibliotheken, dass man das Ensible installiert ja auch typischerweise nur auf ein existierendes System drauf.
Ja, aber du kannst ja sagen, welches, was du da extern installieren sollt 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 halt wenigstens unsere Daten mit den Virtual Entspeichern, dass wir wenigstens da eine verlässliche Datenauswertung haben, dass wir, 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.
Das ist auch sehr unklar.
Das war dann doch eine eher symbolische Aktion.
Und das bei den Physikern.
Ja, also.
Das ist ja noch vergleichsweise fortgeschritten.
In der Medizin wirst du halt die Auswertung gemacht und dann sind die Daten fertig.
Oder drückst du aus.
Ja, wobei ich glaube, dass die Medizin da sogar im Gegenteil mit solchen Sachen sogar weiter ist.
Ja, also gerade wenn in irgendwelche Zulassungsverfahren gehen, da gucken die Leute tatsächlich an.
Aber Forschungspaper ist normalerweise, also wenn du einen Appendix hast, kannst du, wie der Dominik sagt, kannst du ja abtippen.
Wenn du die Rohdaten überhaupt kriegst, reicht ja aus.
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.
Wie lange läuft es?
Irgendwann ist das Ziel erläutert.
Wie groß ist der Sterw?
Der Serverraum steht gar nicht bei uns, sondern da 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 mussten wir noch, dazu 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 viele Daten raus.
Wenn wir nicht mit unserem Hauptdetektor arbeiten, es gibt auch völlig andere Experimente, wo man alle zehn Sekunden ein Bild schießt von zwei Megapixel.
Und dann, ja, dann.
Das ist ja fast redundant dann im Vergleich.
Genau, das ist dann, 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 mal sehr schön.
Also da muss man sagen, also wenn man da mit, wenn man unserem Hauptdetektor mit den 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, haben wir auch 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 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 Format werden die Daten denn dann abgespeichert?
Also es gibt ja diese diverse Formate für wissenschaftliche Zwecke, also NetCDF oder wie heißt das?
Ich weiß es nicht.
Ja, also unser ist HDF5.
Oder SQLite, habe ich jetzt gerade gedacht, könnte man ja auch nehmen, aber.
HD5 nehmen wir.
Wobei, da muss man eine ganze Menge daran rumentwickeln, 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 es
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 rauslesen zu können, das muss ja gigantisch sein.
Und das geht ja weit über das hinaus, was man so als normale 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, es muss sicherlich alles parallel sein.
Ja, genau.
Da stapelweise an Rechnern stehen dann da übereinander, die das dann verteilen.
Die es alle gleichzeitig abkriegen.
Ja, das ist, also das ist tatsächlich, 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 Verbindung dauert mehrere Sekunden.
Das ist ja schon lange.
Ja, das hätte man sich tatsächlich recht wichtig vor, wenn dann irgendwie die Sachen durcheinander fliegen, da haben so eine Riesenmenge, wie man denen auffangen will.
Also es 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 das, was wir da haben.
Wir haben da ja einfach nur
Bilddaten, hohe Bilddaten, ja.
Okay, also argmentiert 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, also wir müssen tatsächlich während des Experiments darauf reagieren können.
Das heißt, wir die ganzen, während des Experimentes 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 Fallstrahl zu fahren oder so etwas.
Ja, sowas passiert halt auch irgendwie.
Und uh, and then, yeah, oder auch, dass man dann halt, dass man halt feststellt, okay, wir haben mit viel zu viel Intensität gemessen, da sieht, also there's völlig ausgeleuchtet, der Detektor, man sieht garlics more, or it was always too dunk, or 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, dass man sofort sehen kann, was da passiert.
Wobei wir das, ja, das Ganze wird dann auch visualisiert, wobei wir das meiner Meinung nach noch sehr steinzeitlich machen.
Das machen wir nämlich.
Da verwenden wir tatsächlich Pi QT.
Version das Nummer, weißt du die?
Pi 5, also Pi QT5, also schon das Neueste.
Und ja, also wenn man mich heute fragen würde, würde ich ja natürlich sagen, das macht man doch viel besser mit einer, also Visualisierung doch besser in einer Web-Anwendung.
Und nicht so mit einem Standalone-Desttop-Ding.
Genau, aber ja, die Entscheidung ist damals dafür gefallen.
Das ist jetzt so.
Und das ist ja auch Python, also so ist es jetzt nicht.
Und ihr habt auch keine Lizenzprobleme, 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 ja sagen wir so, wir würden, also eigentlich sollte alles quelloffen sein.
Ja, wir halten uns daran, dass jeder in der GPL steht ja drin, dass jedem, dem man den Binär-Code gibt, dann auch den Quellcode geben muss.
Das tun wir auch.
Bisher ist das alles so, dass bisher noch keiner vorbeigekommen ist mit dem Binärfreund.
Ein Schlupfloch.
Ja, und ich glaube, der Grund, dass wir es noch nicht veröffentlicht haben, ist, dass A, wir noch nicht, vielleicht haben wir es inzwischen sogar schon veröffentlicht, dass wir das Ganze auch noch so machen wollten, dass das schön aussieht, damit es uns nicht zu peinlich ist.
Ja, gerade, also gerade in der Anfangszeit ist der, das ist doch alles sehr schnell gestrickt worden.
Was ja das Schöne ist, dass es um Python geht, dass man in Python auch mit schön gestricktem Code, also mit schnell gestricktem Code am Ende doch doch noch sehr schöne Sachen darauskriegt.
Ja.
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, die auch in Pycute 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, PyQT5 ist tatsächlich eigentlich grundsätzlich 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 es 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, und also wir haben angefangen damals mit der Programmierung in 2009.
Damals tatsächlich noch Python 2.
Wir haben dann glücklicherweise den Umstieg schnell genug geschafft.
Ja, aber genau, damit habt ihr schon immer die Motoren und so gestaltet, 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 also gibt es ja jetzt erst seit 2015, 14, 2015, irgendwann da 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 ja ein paar Demonstrationsdinger noch nur da rumstehen.
Es hat lange gedauert, die 1000 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 glücklicherweise im richtigen Moment auch Async Euro vorbei.
Und dann konnte man das alles gleichzeitig.
Bei den 1000-Modoren muss ich immer an das von Johannes veröffentlichte Ding da zum Raumschiff fliegen denken.
Du hast auch mal.
Welche Raumschiffe fliege ich?
Ja, das ist irgendwie so ein Blockanteig, ich weiß nicht, mit der Steuerung, die man da machen würde.
Wie hieß das nochmal?
Ich weiß nicht.
Ich denke schon die ganze Zeit drüber nach, wie man das wohl in der Homautomatisierung verwenden könnte, wo man seine tausend Motoren in der Küche platziert, die dann, keine Ahnung, die Gewürze dosieren oder die.
Aber wie ist das denn, Junge?
Ich muss ja mal nicht mal nachsichen ausschauen.
Wobei wir dann, das muss man auch dann der Ehrlichkeit halber noch dazu gestehen, noch einmal eine Ebene unten drunter haben.
Das ist dann eine kommerzielle Lösung tatsächlich von einer Firma namens Beckov, die dann die Motoren, die eigentliche Motoransteuerung macht.
Das, was wir in Python bisher nicht machen, ist die Echtzeitsachen.
Dafür ist, glaube ich, Python auch einfach nicht gut genug.
Also nicht die geeignete Sprache, weil, also wenn man, wenn der Motor dann tatsächlich, also da muss man dann irgendwann am Ende unten dann mit, also 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 Real-Time-Python
jetzt nicht.
Häufig so, ja.
Das ist auch häufig so, glaube ich, dass man dann noch so eine 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, das kommerzielle Lösungen immer haben, dass wir da dann, also wenn man da an eine Grenze kommt, dann ist die Grenze auch hart.
Da kommt man 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.
Es muss einfach 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.
Ich muss auch sagen, dass die, als wir auf die Idee gekommen sind, dem Hersteller Bäckhoff 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 richtig Angst bekommen.
Das ist tatsächlich in der Welt der Automatisierung, ist das alles noch, sind das noch Träumereien.
So was macht man nicht.
Da werden noch irgendwelche Projekte von Projektleitern geleitet und dann Anträge geschrieben und dann irgendwie die Versionen einzeln auf irgendwelche festen Datenträger transferiert und dann an den Kunden ausgeliefert.
Und warum ist das, warum kriegen die Angst?
Weil das man kriegt da halt so eine komplette.
Die viel zu schnell.
Viel zu schnell.
Nee, die liefern einem halt eine komplette Idee und die Idee, 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ätzliche Eigenschaften haben, die zum Beispiel keine dynamische Speicherverwaltung kennen und das absichtlich nicht, weil wenn man eine Maschine hat, dann braucht man nicht plötzlich mehr Speicher.
Und bei denen wird, das ist eine Sprache, die von vorne rein.
Man will das auch gar nicht, weil das abstürzen.
Oder ganz schlecht.
Und das sind dann kommt es ja zu 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 machen.
Weil man mit XML einfach alles machen kann.
Deshalb und dann dieses XML dann wiederum in eine Versionskontrolle wie Git reinzutun, ist dann, ja, also irgendwie fühlt sich das, fühlt sich das nicht gut an.
Also insbesondere, wenn man dann mergen will und dann, ja, was passiert denn, wenn da dann der in dem XML rundherum sich was geändert hat und will das dann mergen?
Das ist ja, ja, was, das, ja.
Da gibt es dann noch solche Sachen wie, dass dann, 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, die dann halt an der Maschine verbaut ist.
Und jetzt ist es so, dass, also 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.
So, 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.
Das sind alles Sachen, da dreht sich einem als Python-Programmierer der Magen um.
Aber naja, dafür läuft es da dann halt.
Ja, die haben halt auch Zuverlässigkeitsanforderungen.
Ja, aber wer da nicht, also weil das höre ich auch immer so aus dem Musikbereich oder so, was auf Echtzeit ankommt, die verwenden da oft jetzt also CircuitPython oder MikroPython oder sowas.
Kann man, wäre das nicht eine Idee, das mit sowas zu machen?
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, so, also glücklicherweise, also diese 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 Ethercut.
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, dass halt man nicht Echtzeit ist.
Und da tut dann auf einmal Echtzeit tatsächlich weh.
Also es fängt dann dann mit schon an, dass der Hersteller dann anfängt, solche Sachen zu machen wie, dass die Buffer, die in den Netzwerkkar drin sind, abgeschaltet werden müssen, weil ansonsten, weil die die Latenz kaputt machen.
Ja, klar.
Weshalb die dann tatsächlich.
Das heißt, wahrscheinlich willst du dann auch gar kein Betriebssystem haben, sondern du willst direkt 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 in Linux so eine Schnittstelle, wo man
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 Real-Time 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 wir, ich 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, natürlich durch Brickler-Anfänger.
Ja, gut.
Jetzt ist mir auch eingefallen, was du Johannes meinst, die Bit-Controller, den hätte ich gerne da für die Steuerung dieser Motoren.
Geht das, Johannes?
Achso.
Ja, da hast du irgendwo hast du einen Controller drin, der sowas macht, ja.
Ja.
Das geht da oft ganz, 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 einen Prozessor, der 180 MHz 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 MHz 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 tausend 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 diese ganzen kleinen Prozesseörchen gewissermaßen emuliert werden.
Also früher war es immer so, man hatte immer eine langsamere Steuerung, die solche Sachen machen, die nur an- und ausgehen, also so ein Ventil auf Ventil zu.
Man hat eine schnelle Steuerung gehabt, die Motoren halt mit, da muss man muss halt schnell ein 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 da eine auf dem einen Prozessorkern, die langsamere Steuerung, die dann irgendwie so mit 100 Hertz, also arbeitet und daneben noch eine zweite, die dann mit 10 Kilohertz arbeitet und die dann über ganz magische Dinger 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 die alleine die Industrie kurz mal umzukrempeln.
Ja, nein.
Ja, aber wir
sind ja jetzt zu viert hier, also es sind schon mal viermal schnell.
Ich habe, interessanterweise habe ich das dann mal 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.
Ja, interessant auch, was man da so alles achten muss, wenn man da so die Steuerung zusammenstecken möchte.
Ja, faszinierend.
Ja, sehr, sehr interessant.
Ja, ich weiß nicht, vielleicht, was ist denn, was findest du denn so bei dieser ganzen Geschichte, das mit Phalten zu steuern, was sind die Dinge, die dich da interessieren oder was fandest du cool oder was funktioniert mit Python noch nicht so gut?
Also was mich immer wieder begeistert, ist, mit welcher Geschwindigkeit man einfach so kleine praktische Sachen machen kann.
Und dann da drauf das Foto draufklickt und dann fährt der Motor dorthin.
Das ist, das sind so Dinge, für die würde man halt nicht das als Auftrag stellen und dass dann monatelang einen Entwickler dran sitzen.
Aber in Python waren das alles dann am Ende auch nur ein paar Zeilen.
Und also diese kleinen, schönen Dinge, die das Leben einfacher machen, das ist tatsächlich das, was ich da, dafür mögen mich auch meine Kollegen, dass den also nicht unbedingt, die so absolut notwendig sind, sondern die einfach einem das Leben vereinfachen, dass man einfach die.
Die Usability.
Genau, dass man die Kapazität hat, das zu tun, weil man so schnell programmieren kann, weil man so schnell Sachen raushauen kann, dass man seine Kollegen glücklich machen kann.
Mit schönen, also dass die, dass die halt auch keine Hemmungen haben, mir zu fragen, hier Martin, da muss man immer so blöd klicken und das funktioniert nicht richtig.
Kannst du das nicht mal schön machen und dann wird ja kein Problem, hacke ich dir zusammen und dann, ja, da muss man ein bisschen aufpassen, dass man nicht zu sehr hackt und dass man am Ende das dann am Ende auch noch irgendwie zu einem brauchbaren Projekt macht und dass das dann nicht irgendwie so einem Datengrab auf irgendeiner Festplatte landet.
Ja, ist schon richtig, aber das ist halt das, was das Schöne daran ist.
Und dass das halt auch alles sehr schnell geht.
Also was ich auch sehr schön finde, ist, dass ich gerne mag einfach, gut, das ist eine 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 großen, 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, ja, so Batteries included halt immer gleich alles da hat.
Und halt unglaublich schnelle Entwicklungszeiten.
Also ein großes Problem ist, dass man, ja, da kommt der, der User kommt dann mit so einem Ding an, also der Benutzer, muss ich auf Deutsch zu sagen, kommt da mit irgendeinem Ding an.
Das hat, das, das, das, keine Ahnung, das kostet 100.000 Euro, bringt der da jetzt, da kann man, der kann mir nicht Monate vorher das zum Ausprobieren schicken, damit ich da für was programmiere.
Das geht nicht, sondern der kommt drei Tage vorher an und sagt, sorgt mal dafür, dass diese Pumpe da läuft und das da in den Strahl reinpinkelt.
Und dann heißt es, und los, und dann ist es halt echt von Vorteil, dass man da völlig, ja, auch das, was einer mal gemeint hat, da 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 objektorientierte Programmierung, Klassen gibt es überall.
Das machen ja inzwischen alle, aber dass man dann in der Klasse dann tatsächlich, also wir haben da eine Pumpe und die kann dann an, aus und was weiß ich das, 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 wir sind ja in nationaler Firma.
Und dann schreibt man einfach direkt die Parameter rein, Druck an, aus und sonst etwas.
Und das ist dann gleichzeitig von 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 da ein ganzes Framework zusammengeschrieben, das dann, ja, wie heißt das bei euch Webleuten, Django Forms oder so?
Dass wir halt Forms halt keine Webseiten sind, sondern Beschreibungen für Geräte sind.
Und in die kann man halt dann die Parameter, die so ein Gerät hat, einfach reinschreiben.
Und die halt aus der Benutzerseite sehen die, kann man da dann irgendwelche 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 ja, also wie das in einer anderen Programmiersprache aussehen würde, weiß ich, da das ja Konkurrenz immer noch in C<unk> macht.
Und da müssen dann halt Kopfstände gemacht werden, weil, also wie soll ich denn da deklarativ da in C<unk> überhaupt da was hinschreiben?
Da wird dann immer so ausführbarer Code hingeschrieben, der dann magische Datenstrukturen im Hintergrund aufbaut.
Die dann irgendwie aus.
Furchtbar.
Furchtbar.
Man kann halt in sowas wie C<unk> 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 der C<unk> Entwickler dafür brauchen?
Auch eine Woche wahrscheinlich.
Ja, genau.
Jetzt sind wir wieder bei einem der wichtigsten Dinge, glaube ich, für Python auch, oder?
Das ist also dieses Time-Two.
Ich nenne es jetzt mal Market.
Genau.
Also und das ist bei uns, wie gesagt, wir haben Experimente im Wochentakt, ist bei uns halt halt unglaublich viel Wegwerf-Code einfach.
Das ist dann das, was wir Makros nennen, wobei es auch keine Makros, also das ist jetzt nicht einfach Code, der runtergeschrieben ist, sondern wirklich haben wir dann genauso ein Framework, mit dem man dann so Parameter dann deklarieren kann und am Ende dann Sachen ausgeführt werden können.
Und das Schöne daran ist auch, dass wir es geschafft haben, dass, also ich bin nun angestellt tatsächlich als Programmierer, 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 denn 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.
Genau.
Das ist dann.
Python ist ja so gesehen auch nicht schwer von der Syntax her dann.
Nee, überhaupt nicht.
Auch nicht so.
Ich finde, das ist eines der schönsten Sachen an Python ist, man kann es zu, also eigentlich vollständig verstehen.
Also wir hatten mal da Bewerbungsgespräche, wo dann sich C<unk> und Python-Programmierer beworben haben, die haben wir dann immer gefragt, ja, bei einer Skala von 1 bis 10, wie gut sind deine C<unk>-Kenntnisse?
Und wenn dann einer sagte, neun,
dann war das sozusagen eine Herausforderung, irgendwie sich eine fiese Template-Geschichte zu überlegen, die keiner kennt.
Oder keiner kann.
Und die kann man ja, die kann man ja problemlos, problemlos sofort aus dem Hut zaubern.
Also ich musste die Antwort ja nicht kennen, ich musste bloß die Fragen stellen.
Während wenn dann da ein Python-Programmierer steht und sagt, wie gut ist dein Niveau Python 9, dann 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 Typannotationen 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, ja, also Python wird halt irgendwie umfangreicher mit der Zeit.
Ja, also es war auch früher immer.
Ja, ja, ja, die man da
mal aufnehmen könnte.
Fangfragen und die Ecken und Kanten.
Ich überlege, weil mir fällt sofort ein Ding ein.
Mach mal, schreib mal die, also die Funktion Min oder Max in Python hinzuschreiben, ist halt sehr, sehr einfach.
Schreibt mal die Type-Annotationen richtig dafür hin.
Das ist halt, ja, das ist halt, die Type-Annotationen sind wesentlich mehr Code als die Funktion selber.
Das ist echt schwierig.
Nehmt zwei Parameter vom Typ Ani und gibt zurück.
Ja, ja, aber Typ Ani.
Gut, das geht natürlich dann, ist es einfach, aber es darf nicht Any sein und es sollte keine Fortsmann, keine Fortsmaker-Tipps haben.
Dann ist es halt schon so, oh.
Ja, wobei ich bei Type Annotations, ich muss sagen, ich habe mich da nie wirklich reingefuxt, weil, also zumindest das, was ich von gesehen habe, vielleicht erklärt ihr mich eines Besseren auf.
Also was mich jetzt interessieren, also Typen interessieren mich jetzt tatsächlich eigentlich wenig, weil bei uns, was eher reinkommt, ist eher die Frage Einheiten.
Also so etwas wie so 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 manchmal.
Ja, das ist dann Type, oder?
Nee.
Ja, gut, also schon irgendwie, aber dann halt auch das.
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.
Ja, ich würde versuchen, sowas zu definieren.
Ja, und aber dann ist.
Genau, also bis man da einmal sämtliche Einheiten, die man dann.
Ja, wahrscheinlich ist halt die Frage, wenn der Input falsch ist, woher weiß man dann, welche Einheit ist denn das dann, ne, wenn das nur Zahl ist.
Ganz einfach, weil man kann das ja einfach das Komma verschieben und dann hat man eine andere Skala in der anderen.
Ja, aber man könnte halt auch sagen
die Grenze, ja.
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, ja, 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 Type-Ebene unterscheiden, weil das sind beide Strings.
Und diese Grenze gibt es immer.
Also das beste Beispiele.
Immer eine Grenze Bedeutung und Inhalt.
Ja, das beste Beispiel innerhalb von Python war damals ja, wo jetzt halt Python 3 eingeführt wurde, dass Bytes und Strings, es gibt vielleicht noch welche von euch, die lang genug bei Python dabei sind, dass das mal früher 1 war.
Das war schrecklich.
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 richtig machen, aber Python halt nicht.
Und dann, ja.
Und das war, glaube ich, das einzige Mal, das von der Seite irgendwelche Lache kam.
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 IDI 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 wir uns Tipps geben?
Es gibt eine Bibliothek namens Pint, die ist ganz gut, die dann halt den, aber die arbeitet halt erst auf der Ausführungsebene, nicht auf der ID-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 1000 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 IDI 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 Jupiter ausgeführt wird und dann halt eine Exception geworfen wird, anstatt das.
Ja, das ist dann halt der falsche Zeitpunkt.
Das ist also so einige Experimente, die man einmal machen kann, das ist schon sehr kritisch, ja.
Ja, ja, ja.
Ja, das ist, ich bin mir noch nicht so, ich bin mal auch gespannt, ich meine, Type-Script geht da ja auch sehr.
Forsch voran.
Ja, genau.
Und da habe ich das letztens gesehen, ich weiß nicht genau, dass da Leute, dass man auch noch, man kann fast aus den, wenn man die Type-Annotationen richtig schon, kann man fast den Code da schon generieren, sozusagen, weil da schon so viel Informationen drin ist, dass man halt 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, boah, das ist aber ganz anders.
Ja, aber ich glaube tatsächlich, diese ganzen Typen-Geschichten heben wir uns mal für eine andere
Folge auf.
Ja, ja, das müssen wir mal irgendwann.
Ja.
Nein, also ich fand das sehr interessant, Martin.
Vielen Dank dafür.
Das ist immer total spannend, für was Python alles so benutzt wird und über was man da so stolpert.
Das ist super wichtig.
Was man da für schöne Sachen mit zaubern kann.
Hast du ein bisschen Magie hinter.
Und man hat halt immer so die schnelle Magie in den Fingern, dass ich mal das irgendwie.
Ja, habt ihr noch irgendwas zu diesem Thema oder kommen wir langsam dem Ende entgegen?
Möchtest du noch was erzählen, Martin?
Nö, wir sind jetzt dann auch durch.
Also ich fand
es super spannend.
Dieser ganze Problembereich, lauter Sachen, die man so als normaler Programmierer, sag 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.
Also du musst ein Python-Modul irgendwo raussuchen und sagen, warum du das toll findest.
Musst nichts mit deinem Thema zu tun.
Da kann auch was anderes nehmen, muss nicht unbedingt Python.
Er hat ja gerade schon Pint gesagt.
Da kann man den kurzen.
Du hast doch einen Freischos oder draus, Pint.
Soll ich mal anfangen, weil ich habe nämlich einen.
Ja.
Ja, achso, ich weiß nicht.
Ich habe vor einer Weile eine Bibliothek gefunden, die heißt Deutschland.
Pip Install Deutschland.
Es ist noch nicht, ist noch keine 1.0, es ist leider noch eine kleinere Version.
Und das sind einfach Sachen drin mit Daten über Deutschland.
Verschiedene APIs angebunden, verschiedene Dinge angebunden.
So dass man einfach sich Sachen über Deutschland anschauen kann.
Hast du es gerade offen, Dominik?
Bundesanzeiger.
Genau.
Answer.
Einfach interessante Daten über Deutschland, ja.
Geografie und genau, Autobahndaten, das Presseportal, die Polizei Brandenburg, Reisewarnungen, Zollwarnungen.
Das Presseportal der Bundesdaten.
Und das ist jetzt Version 0.1.9, also Deutschland ist noch nicht reif genug für eine 1.0, aber 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 man sagt.
Man musste 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 Ridge genommen.
Man ja einfach, dass es dann ein bisschen hübschere PyTest-Ausgabe gibt.
Ja, äh.
Doch, du wolltest was außerhalb von PyPi 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 positionieren.
Genau, was ich picken würde, das habe ich von der PyCon mitgebracht und das hat der in einem Lightning Talk, Florian Buhin von einer der Pet-Test-Mainter hat das vorgestellt.
Und zwar, weil er immer nachgucken musste, wie F-String-Geschichten dann nun, mit denen man ja wahnsinnig viel machen kann, wie man das denn zu in dem welchem Fall macht, hat er ja eine Seite schnell mal hochgezogen, die nennt sich F-String.help slash Cheat slash, also so ein Cheat-Sheet für Python-F-Strings.
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.
Die etwas ältere Variante davon heißt PyFormat, Pyformat.info.
Ah, okay.
Kann man über Prozent- und Punktformat-Formatierung nachlesen.
Habe ich auch schon, habe ich mich schon sehr, sehr häufig aufrufen müssen.
Ja.
Vielen Dank, Martin, dass du dabei warst und mit deinem Wissen bereichert hast.
Ja.
Danke auch, dass ich das schön erzählen konnte.
Ja, genau.
Danke Johannes und bleibt uns alle gewogen.
Hört uns schalten es wieder rein.
Irgendwelche Kommentare an hallo atpythonpodcast.de.
Genau.
Und einfach bis zum nächsten Mal.
Autra.
Tschüss.
Tschüss.
Bis dann.
Ciao.