Transcript: European XFEL - Röntgenlaser mit Python

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Hallo liebe Hörerinnen und Hörer, willkommen beim Python Podcast. Wisst ihr, welche Episode wir heute haben? 42, ist das nicht schön?

Tja.

Das hättet ihr wissen müssen, das ist ja die Antwort auf alles. Bei uns ist natürlich wieder Jochen. Hi Jochen.

Hallo Dominik.

Johannes ist wieder da. Hi Johannes.

Hallo zusammen.

Ja, ich bin Dominik. Und wir haben den Martin heute zu Gast.

Jo.

Hallo.

Hallo Martin.

Hallo.

Schön, dass du auch dabei bist. Was machen wir denn heute? Die Folge heißt Laser des Todes.

Todeslaser?

Todeslaser mit Python.

Todesstrahlen? Ich weiß nicht.

Warum heißt das denn so, Martin?

Ja, ich wollte ein bisschen erzählen, wie wir, ich arbeite in Hamburg an dem Röntgenlaser XFEL

und wie wir das Ganze dort mit Python steuern und wie wir dort unsere Experimente machen.

Klingt interessant, ja.

Und ja, also wenn wir Python nicht hätten, wäre er tot, ist er Todeslaser.

Ja, sehr gut.

Der tote Laser.

Genau.

Ja, das machen wir heute.

Wir reden ein bisschen darüber, was Martin da so in Hamburg mit dem Laser macht und was man noch so mit Python machen kann.

Und wir wollen euch ein bisschen darüber erzählen, was wir von euren Fragen halten.

Und was wir da am interessantesten fanden war so, dass ihr fragtet, wie macht man das denn überhaupt, dass man sich auf dem Laufenden hält.

Da wollen wir einfach so ein bisschen drüber quatschen.

Ja, dann fangen wir doch mit den News an, oder?

Ja, alles klar. Was haben wir denn für News?

Johannes hatte irgendwas ganz Interessantes, habe ich gehört.

Nix, was man öffentlich sagen kann

Achso

Wir nehmen die Folge auch schon zum mehrfachsten Mal wieder auf

Also eigentlich wollten wir euch auch mit Listen beglücken

Aber das werden wir dann mal anders machen

Ihr hört vielleicht, Johannes hört sich heute besonders toll an

Ja, ich habe sogar einen Lob vom Jochen erhalten

Es ist höchst ungewöhnlich, dass die Tonqualität vom Jochen gelobt wird

Ja, es ist erstaunlich

Aber wenn man Geld ausgibt, kann man Probleme lösen

ist sehr überraschend.

Ja, man kann auch Probleme lösen, wenn man kein Geld ausgibt, aber manchmal

braucht man dann länger und ist nerviger und so.

Ja, aber Sachen basteln

und Audio-Hardware ist auch nicht meine

Expertise und so.

Der Geldweg ist immer

eine Möglichkeit.

Wo ist denn News Johannes? Hat er ein neues Mikrofon?

Haben wir noch was anderes?

Jemand war auf der PyCon, habe ich gehört.

Ja, richtig. Ich dachte ja eigentlich,

das hatte ich beim letzten Mal erzählt, dass ich da gar nicht hinfahre.

Schade, schade, weil irgendwie alle Tickets

schon weiter und so. Und dann hat es sich aber doch noch ergeben,

und dass sich irgendwie da Tickets auftun

und

dann konnte ich da doch noch hin, kurzfristig. Und ich dachte auch,

ich hätte keine Zeit, aber ich hatte dann doch Zeit.

Ja, und das war sehr nett. Also

war jetzt die erste, ich war das

letzte Mal auf der PyCon 2019,

also vor zweieinhalb Jahren und

ja, war sozusagen die erste Konferenz dann

wieder nach all der Zeit.

Also man konnte niemanden erkennen, weil die da noch

getan war. Ja, weil Maskenpflicht

und so.

Und ich hatte, genau, das hatte auch jemand von euch

schon irgendwie mal

erzählt, dann hätte man sicher auch das eigene Gesicht irgendwie aufs T-Shirt drucken können oder so, das wäre praktisch gewesen, dann hätte man Leute erkennen können. Oder direkt auf die Maske.

Ja, oder auf die Maske, genau. Bin ich nicht drauf gekommen, aber das wäre natürlich gut gewesen.

Die guten Ideen hatten wir immer erst hinterher.

Ja, auf jeden Fall genau, das mit dem Maskenmann natürlich so ein bisschen, das hat sich noch nicht so angefühlt wie immer, ehrlich gesagt, aber es war auf jeden Fall schon mal ein Schritt in die richtige Richtung.

Und ich war jetzt letztens auch auf der Beyond Teller-Rand, das ist so eine Webentwicklungskonferenz.

Ganz viel Design-Zeugs.

und ganz viel Design und nicht nur

Computerkram, sondern halt auch

Kunst und so.

Und so ein bisschen die Hippeszene, die sich

dafür hält.

Ja, die Hippeszene, das könnte man sagen.

Meine coolen Freunde, die gehen dahin.

Ich war da nur einmal

und dann war es mir zu cool.

Ja.

Aber ja genau, also

die ganze

Atmosphäre da ist halt schon so ein bisschen

Der Vibe ist einfach anders

und ist angenehmer, ehrlich gesagt.

Und da haben die Leute dann schon keine Masken mehr getragen,

was möglicherweise daran lag, dass

die ganzen Regeln dann halt auch

irgendwann obsolet wurden.

Aber auch, dass die Räumlichkeiten einfach besser geeignet waren,

weil viel mehr Raum und so.

Aber es waren auch ein paar interessante Talks, habe ich gesehen.

Sehr interessante Leute, auch international, die angeflogen sind.

Ist eigentlich immer so. Das ist auch komisch.

Das weiß keiner so.

Ich weiß nicht, ob die Leute das wissen, aber das ist tatsächlich eine der

besten

Webkonferenzen so weltweit

und die findet einfach so in Düsseldorf statt,

in so einem alten Theater. Oh, wie freundlich.

Ja.

Kann man die Videos inzwischen ansehen?

Ja, ja. Ich weiß nicht, ob man die aus den Vorjahren immer sehen konnte,

aber gibt es das inzwischen? Doch,

nicht mehr auf Vimeo, weil

Vimeo hat gepivotet

und macht was anderes jetzt.

Aber

die sind jetzt auf YouTube, was natürlich nicht so richtig...

Das ist aber uncool.

YouTube ist ein bisschen uncool, hat nicht den richtigen Vibe, das stimmt schon.

Vimeo war da besser, aber

die gibt es alle auf YouTube.

Ja, insofern kann man sich

einfach mal reingucken und dann

sieht man, was da ist.

Du wolltest noch irgendwas sagen, irgendeine Keynote fandst du total super, hast du gesagt.

Und du wolltest noch was erzählen

zu den Talks, die du auf der PyCon ziemlich gut fandest.

Und von den Trends erzählen.

Und zum Beispiel gab es sowas wie PyScript, habe ich gehört,

wird gerade so ein bisschen durch die...

Ja, wobei das war jetzt dann eher PyCon US,

glaube ich, da war das ein großes Thema, PyScript

und so über Pyodid.

aber... Python US fand ich übrigens auch.

Ja, die war auch, genau.

Da habe ich aber nicht so wahnsinnig viel mitbekommen,

außer irgendwie das, was man halt über Twitter so mitbekommt.

Oh, apropos Cons.

Die DjangoCon ist auch

im Herbst und für die

Europython im Sommer in Dublin,

da gibt es noch Vouchers, wenn ihr bei uns in der Gruppe seid.

Ja, richtig, das stimmt.

Für die DjangoCon kann man noch

ganz kurz Vorträge einreichen.

Also wer noch einen Vortrag bei der DjangoCon machen möchte,

hat jetzt noch die Gelegenheit dazu.

Ja, ich glaube, bis zum 31. Mai.

Wir müssen uns ein bisschen beeilen mit der Veröffentlichung

das heißt noch vorher

Aber ja

Das zählt

Jochen, finde ich ja cool, wir treffen uns dann da

Ja, eigentlich schon, ich habe es bloß bisher noch nicht

geschafft eine Unterkunft zu finden

Also meines direkt in der Idee von der Brewdog Brewery

Ich weiß, es gibt da volle Unterkünfte

und so, aber entweder sind die halt unbezahlbar

oder halt nicht so richtig für mehrere

Leute geeignet oder halt nicht verfügbar in dem Zeitraum

und das ist alles irgendwie ganz schrecklich

Ich habe schon ein Teil gefunden, das relativ entspannt

gerade aufgemacht hat, da gab es noch gar keine

hat erst letzte Woche eröffnet oder so.

Oh, da müssen wir...

Ja, da bewertet man erstmal so,

da fehlen noch die Klobürsten, aber ich glaube,

bis Juli haben das hinbekommen.

Okay, das ist interessant, da muss ich mal gucken.

Ja, also wenn sich dieses Problem

lösen lässt, dann werde ich da auch hinfahren.

Ja, genau,

Konferenzen, achso, was wollte ich...

Ich glaube, wir machen am besten

nochmal mit Christian,

wollten wir eigentlich noch eine Episode machen zu den ganzen

Talks im Einzelnen und sowas,

zum Background zu PyCon.

Für mich tatsächlich der beste

oder interessanteste Talk jetzt

auf der PyCon.de war halt der

von Christian Heimes zum Thema

Python

nach WebAssembly

kompilieren und dann halt Python 3.11

im Browser laufen lassen.

Vielleicht hören wir da auch noch mehr von.

Ja, genau.

Und das war schon

beeindruckend, dass das geklappt hat.

Und ja, da ging es ein bisschen um den Hintergrund.

und das war echt super. Ansonsten

ja, was

ich, den

einen Talk fand ich, den von Stefan Benel

zum Thema Zeiten,

da hatten wir ja auch schon mal, das ist jetzt 20 Jahre geworden, das Projekt

und den fand ich auch super.

Ich fand den

von meinen Ex-Kollegen bei

Billiger super dazu.

Wir machen mal Live-Programming, ein ORM

in Python.

Ich fand den von Idealo,

weil er sich halt mit dem Thema, mit dem

ich mich auch schon lange, oder früher

früher in einer anderen Zeit, wie lange man beschäftigt hat.

Das war so richtig so Blast from the past

Vibes da und

die machen das jetzt gerade, was wir da

früher schon mal gemacht hatten und machen das super

und es war sehr interessant.

Das müsste alles in die Schonungsstellen,

dann kann man sich das alles nämlich mal anschauen, wenn man möchte.

Ja, ich glaube bei dem Vortrag, da sind die Slides leider

nicht da und auch der ist nicht per

Video verfügbar insofern, weiß ich nicht genau

warum, aber

genau.

Da müsste man da eigentlich noch mal eine

kürzere Zusammenfassung zu machen, aber

vielleicht kriegen wir da auch noch mal

die irgendwie dazu mit uns

zusammen eine Sendung zu machen oder so. Müssen wir mal schauen.

Ja,

genau, ja.

PyScript ist halt auch ein interessantes Thema,

ist halt so ähnlich, aber PyScript ist halt ein bisschen anders insofern

als das über PyUdit funktioniert

und das ist halt dann Python 3.10.

Und geht aber auch über WebAssembly rein

in den Browser und der Browser lädt

dann irgendwie Python-Pakete von

70 MB oder sowas und kann dann

und REPL aufmachen im Browser

direkt. Ja, das geht mit

Python 3.11

nachher ein bisschen wie auch, aber

da geht halt tatsächlich sowas wie,

man macht halt ein Jupyter-Notebook

auf. Das ist halt komplett

also auch mit, auch das Backend läuft dann halt

im Browser. Ja, das ist schon ganz nett.

Jupyter-Light nennt sich da, das ist ziemlich cool.

Da kann man auf jeden Fall gerade für diese ganzen Datenverarbeitungsgeschichten,

wenn man da ohne große

Def-Enviaments was bauen will von irgendeinem Gerät,

recht weit kommen.

Man hat halt erstmal diesen ganzen Packaging-Schmerz

nicht mehr so, man muss kein Python installieren

Also wenn einem dann jemand fragt, ja gut,

dieses Jupyter, voll cool, wie installiere ich denn jetzt Python

auf meinem Windows oder so?

Ja, es artet mal ein bisschen aus

Ja, ist ein bisschen

schwierig, genau

Ja, insbesondere dann, wenn schon welche da sind

und dass dann irgendwelche Konflikte mit irgendwelchen Dingen

die so laufen sollen, ist das manchmal so ein bisschen

ein Schmerz, aber damit haben wir jetzt

vielleicht weniger zu tun und PyScript ist so recht

einfach auch zu bedienen. Du kannst einfach sagen PySkript und dann schreibst du

Python rein in den Browser und dann...

Aber irgend sowas gab es doch früher auch

schon mal. Es gab auch irgendwelche

für Python im Browser.

Du wirst mir jetzt noch erzählen, wenn dir das war. Da hatten wir

das letzte Mal drüber gesprochen.

Wie ist das denn? PySkript? Ja, aber ich habe es natürlich nicht nachgeguckt.

Das wäre jetzt einfach...

Ich weiß es auch nicht mehr. Ich weiß nur auch,

es gab sowas schon mal und das aus irgendwelchen Gründen

ist das wieder versandet oder so.

Da war nicht so... Aber ich weiß auch nicht

genug darüber, um irgendwas dazu sagen zu können.

Ich habe gesagt, warum ich angefangen zu reden. Das war doof.

Ich weiß, dass es mal so eine Lösung gab

für, also so eine Universität

hat man das gemacht, um Leuten Python

beizubringen, dass man halt irgendwie

so einen kleinen Python-Interpreter

im Browser hatte, aber das war halt kein vollständiger

Es war keine Art Micro-Python

mit einem verringerten

Bild-Ins und nicht so viel

Batterien dabei. Und der war halt roh

in JavaScript programmiert, was dann auch zu

vielen schönen Dingen geführt hat, aber

zum Ausprobieren ist das

natürlich eine schöne Sache gewesen. Oh, damit kennt sich ja auch

besonders gut aus.

Das wird sicher noch interessant, da machen wir bestimmt noch was zu

Funktioniert denn er endlich jetzt mit Django 4?

Ja, schon lange

Ja, gut auch

Python 3.11

Auf Python 3.11

gibt es ja inzwischen Betas

und die Performance-Vergleiche sehen

sehr gut aus. Wie viel schneller ist das?

20% habe ich gehört, stimmt das?

Ja, so wie von 3.9 auf 3.10

einfach nochmal zu viel schneller geworden

Schön. Sehr gut, sehr gut

Das ist schon nicht schlecht. Es gibt auch jetzt auch Diskussionen

darüber, ob man den Gil jetzt nicht einfach mal

abschafft oder so eine Alternativversion, oder?

Ja, da gibt's,

also da hat einer bei Facebook,

ich hab den Namen vergessen, der hat da irgendwie

immer und lange Diskussionen darüber.

Also es gibt diese alten,

dieses alte Projekt

von, wie heißt der, Hastings, ich weiß nicht,

diese Gilectomy-Geschichte. Unladen Swallow.

Ja, ist das

das Gleiche? Ich weiß gar nicht. Ich weiß nicht.

Aber auf jeden Fall gibt's das auch.

Ist auch nix geworden. Nee, aber der

Ansatz jetzt, also, wie heißt der, Sam

Ich hab den Namen vergessen.

Stackels Python gibt es auch schon seit Ewigkeiten,

was auch niemand benutzt.

Oh, das weiß ich nicht. Soweit ich weiß,

wie heißt das? Eve Online oder so

benutzt Stackels.

Ah, echt? Ja, dann schau mal,

Johannes. Aber die sind noch auf Python 2.

Jochen hat gerade was von einem Computerspiel erzählt, wo er

die Technologie kennt und das war gegen dich.

Aha.

Maler ist nämlich Johannes, der sich mit den Spielen auskennt.

Ja, ich kenn mich mit den Spielen aus,

nicht mit der Technik dahinter.

Sehr gut.

So gut aussehen, ja.

Nee, aber der jetzige Ansatz ist auch so,

dass da viele Leute gesagt haben,

die drauf geguckt haben,

oh, der sieht so aus,

als ob das wirklich funktionieren könnte.

Insofern, ja, könnte sein,

dass es, also bis es soweit ist,

wird es natürlich noch eine ganze Zeit lang dauern.

Aber ja, allein,

dass jemand da so viel Arbeit reingesteckt hat,

das ist auch schon lange nicht mehr passiert.

Auf der anderen Seite, ehrlich gesagt,

also meine Position dazu ist ja so,

ja, so wahnsinnig wichtig ist das jetzt halt nicht,

weil ich meine,

Das wäre ja auch nochmal eine interessante Frage

Ich weiß nicht, ob euch irgendwie eine Situation

oder ich habe da Schwierigkeiten, ich weiß nicht

dass man tatsächlich irgendwie I.O.

multiplexen will und gleichzeitig ganz viel

CPU braucht, weil dann wäre es gut

Gil irgendwie loszuwerden

aber ich habe die Situation nicht so oft

Also das Projekt ist übrigens NoGil

und da gab es einen Blogartikel zu

bei der PSF Blog

Ah ok, kann sein

NoGil

Man darf auch nicht vergessen, dass es ganz viele

andere Sprachen, die so

interpretiert sind, auch einen Gill haben, der

aber längst nicht so viel diskutiert wird,

nicht so viel irgendwie im Weg

steht.

Es soll tatsächlich einen Compiler-Flag geben

in Python 3.12, wo man

den Gill mit abstellen kann.

Du kannst auch selber

den freigeben,

das kannst du auch machen.

Gut, du musst dann halt

schon auch eine C-Extension schreiben,

aber geht schon. Und wenn

du sowas benutzt wie NumPy oder so,

und dann machen das natürlich alle.

Es werden sowieso auch immer alle Prozessoren benutzt.

Also hier steht, dass das das einzige Feature wäre,

was wirklich Concurrency

between Threads verhindern würde.

Das verstehe ich

nicht sofort. Ja, also Concurrency,

das ist halt die Frage, also ich glaube,

ich verstehe, was das meint, aber das bedeutet halt,

was momentan nicht geht, ist,

dass du sozusagen

mit mehreren

Threads mehr als eine CPU benutzt

gleichzeitig. Das geht nicht.

Also eine Thread pro

CPU. Ne.

Alle Threads eine CPU. Aha.

Genau. Das ist halt

das, was der Gil macht. Jeder Python-Interpreter kann

nur eine CPU haben. Ja. Oder?

Okay, also muss ich mehrere, ja, muss ich den

Interpreter multiplexen. Musst du Multiprocessing

machen, dann ist das dann auch wieder Mist.

Ja, oder du kannst halt, wenn du halt

unten drunter sitzt, wenn du sowas wie ein Handpipel bist oder so

und da hat dir gerade jemand gesagt, multipliziere

mal diese beiden Matrizen, dann kannst du auch irgendwie

sagen, okay, ich weiß, was ich tue,

Gil gebe ich frei und

dann. Und auch diese ganzen Netzwerksachen, die

geben den GIL üblicherweise auch immer wieder frei.

Also wenn du irgendwie viele I.O. machst mit

Select Calls oder sonst irgendwelchen Sachen, hast du ja auch

keinen GIL in der Anzahl. Also wartest du nicht immer auf

eine, sondern du wartest schon

auf alle gleichzeitig. Aber du kannst dann, wenn

Pakete kommen, halt immer nur eins bearbeiten.

Ja.

Na gut.

Dann bin ich mal gespannt, was es da in 3.11

und 3.12 und 3.13 und 3.14

und so weiter

geben wird. Spannend.

Ja. Okay, dann sind wir mit den

News durch.

haben wir nicht geschafft, vielen Dank

zu kommen wir jetzt zu unseren Userfragen

ach Userfragen, genau, ja, richtig

hatten wir

wir haben auch eine längere Pause gemacht

muss man sagen, das könnte natürlich auch dazu

geführt haben, dass es mehr war als normalerweise

ja

und zwar, aber wir hatten auch mehrere Leute

die quasi das gleiche Thema

sozusagen ein bisschen angefragt haben

und zwar, das war

wie haltet ihr euch eigentlich

auf aktuellen Stand, wo kommt der an Neuigkeiten

Informationen ran

Ja, also

Ja, das war die eine Frage und die andere Frage, wo du sagtest,

dass es fast dasselbe war, wie fange ich denn damit überhaupt

an mit dem Quereinstieg?

Ich fand ja, das waren zwei unterschiedliche Dinge.

Ja, das sind unterschiedliche Fragen im Grunde.

Aber ich würde die gerne auch beide beantworten.

Wie haltet ihr euch denn auf dem Laufenden?

Ich halte doch mal den Martin.

Ich, also ich glaube

meistens dadurch, dass ich einfach Jochen anrufe,

aber ich glaube, diese Optionen haben jetzt

nicht so viele

der Zuhörer.

Schreibt uns immer eine E-Mail, wir machen einen neuen

News-Kanal auf.

Ja, aber ansonsten...

Bist du auf Twitter?

Sowas wie Twitter mache ich tatsächlich gar nicht.

Ich lese tatsächlich sehr viel einfach Dokumentation

der Sachen, die ich neu verwende

und was dann immer Neues

kommt, dann wird immer...

Das ist, glaube ich, ein ziemlich guter Tipp, dass man tatsächlich weiß,

welche Sachen man verwenden möchte und

dann davon die offizielle Doku liest. So kommt man

tatsächlich, das ist eine Antwort auf die zweite

glaube ich am schnellsten

in die Themen rein.

Es gibt da ja auch dann immer typischerweise

What's New in den Dokumentationen

und da steht tatsächlich auch die wichtigen Sachen drin.

Also daher habe ich meine

Insider-Infos. Das finde ich tatsächlich gut, weil viele Leute, die

anfangen, die prügeln sich so ein bisschen mit

irgendwelchen Tutorials rum oder YouTube-Sachen

oder so und ich finde tatsächlich, dass genau das

in die Hand zu nehmen, was man braucht und dann

die Doku lesen, viel effektiver.

Ja, okay, aber

um nochmal auf das News-Thema zurückzugehen.

Jochen, wovor kriegst du denn deine News?

Ja, ich tatsächlich

heutzutage meistens über Twitter

Ich habe früher irgendwie sehr viel RSS

konsumiert und davor Newsnet

und heute ist es hauptsächlich Twitter

wobei man da ein bisschen

aufpassen muss, wenn man auf Twitter

irgendwie neu ist und nicht viele Leute

abonniert hat, dann

kriegt man die ganze Zeit irgendwie Nachrichten oder

Tweets in die Timeline gedrückt über Celebrities

und Fußballer und Fußballer-Frisuren

und weiß ich nicht, so Zeugs, wo man sich sagt, hä?

Aber wenn man das

eine Weile benutzt hat und dann so ein bisschen selber kuratiert hat, dann ist es schon ziemlich gut.

Also man muss es hart kuratieren und dann kann man Sachen filtern, wie das der Johannes auch gern macht.

Ja, ich finde auch, also Twitter ist eine gute Quelle für Neuigkeiten,

aber man muss da wirklich ganz knallhart filtern. Ich habe eine ganz lange Liste mit

Wörtern, die mich nicht interessieren. Da sind

Celebrity-Namen drauf und Politiker-Namen drauf und

politische Institutionen drauf und Themen, die mich einfach nicht interessieren.

Also man muss sich seine eigene Filterblase bauen und quasi sich von der Welt so abschotten, dass man nur die Dinge konsumiert, die weitesten brauchen sind.

Zumindest auf Twitter, weil die meisten Meinungen, die auf Twitter kommen, sind ja erstmal unqualifiziert.

Also ich würde das auch Anfängern tatsächlich nicht empfehlen wollen, weil das ist ganz schön schwierig rauszufinden, was einen überhaupt interessiert oder was gute Qualität hat, wenn man auch gar nicht weiß, was man sucht.

Wenn man tatsächlich über technische Themen auf Twitter reden möchte, dann kann man ruhig alles, dann kann man ruhig Democrats und Republicans und Biden und die ganzen Namen, die es da so gibt, einfach alle rausfiltern, weil da hat man ja nichts davon.

Da muss man dann aber schon eben

man kann jedem mal eine Chance geben

ein Follow geben ist leicht

aber man muss dann auch sich das durchaus

wert sein und jemandem wieder entfolgen

und dann bildet sich so nach einer Weile

eine Sammlung raus von

Dingen, die man lesen kann

Ich glaube, dass das vielleicht auch der Challenge ist im Internet

Ich habe da auch irgendwann gesagt

man legt sich so seine Linklisten an oder sowas

und diese pflegen ist auch aufwendig

und zwar auch die Infos, die guten zu finden

und die zu karatieren ist gar nicht so

wenig Teil der eigentlichen Arbeit dann auch.

Also um da halt erstmal rauszufinden, was sind denn

die wichtigen Dinge und sie dann zu teilen. Ich habe auch so ein kleines

Linklist, wo man halt für Einchecker

glaube ich so ganz gute Tipps findet, wie man da

die ersten Schritte gehen könnte.

Aber da hinzukommen, das dauert halt einen Moment.

Du musst die erstmal entdecken und auch dann filtern.

Die müssen wir alle angucken und dann selber

so ein Gespür dafür entwickeln, was man

denn gebrauchen kann, was einem liegt und

sowas.

Ein guter Trick ist auch, das über Personen

zu machen. Also zum Beispiel, wenn man den Jochen auf

Twitter findet, dann kann man ja gucken,

wem der Jochen so folgt.

Oder er kann lesen, was der so den ganzen Tag macht.

Ja, aber ich mache da nicht viel. Also insofern, das hilft nicht.

Aber tatsächlich, genau, wenn man sich anguckt,

wem ich folge, könnte man wahrscheinlich eine ganze Menge

Python-relevante Sachen finden, das stimmt.

Ja, oder bei anderen Leuten

in der Community sicher auch.

Und ich glaube auch leider, das ist halt

auch sowas, das ist mit der Zeit, glaube ich, schwerer geworden.

Weil wenn ich, ich gucke halt auch

ab und zu so auf YouTube und so. Und es gibt

auch super Sachen auf YouTube, aber

wenn man... Auch da muss man ganz ehrlich ausgehen.

ganz arg ausfällen und man muss halt

sich durch viel Zeug durchgucken, wo ich jetzt sagen würde,

so, aber das weiß man halt nicht, wenn man anfängt.

Ja, gerade die Bars und Bars, man kann so sich versumpfen

in irgendwelchen Dingen von Leuten, die selber eigentlich gar keine Ahnung

haben, beim Lernen dann erstmal was aufnehmen nach dem Motto,

ich hab erst mal einen YouTube-Kanal gemacht.

Ja, gar nicht so einfach, ja.

Das macht's halt schwer, ja. Also insofern,

YouTube hat übrigens auch immer noch

RSS-Feeds, also da kann man auch die Kanäle

alle mit per RSS

abrufen.

Ich will das nicht auf YouTube haben.

YouTube hat auch eine Archi, die man benutzen kann, die kann man sogar in Python benutzen.

Ja, das stimmt. Aber das sollte ich vielleicht nochmal so als Tipp genau,

meine bevorzugte Art, YouTube-Content zu konsumieren, ist übrigens,

den ohne Bild zu hören, weil ich nicht so viel Zeit habe,

wenn ich das höre, dann gleichzeitig auf den Bildschirm zu gucken,

weil ich gleichzeitig irgendwie spüle oder einkaufen gehe oder sowas meistens.

Und was ich mache, mein Podcatcher-Podcast-Player kann das,

aber das können bestimmt andere auch.

Da kann man, der hat so ein,

der macht so ein Sideload

Action

ins Share-Sheet

bei iOS und wenn man dann sagt,

man ist auf einem YouTube-Video, es gibt ja auch ganz

viele Talks, also das achtet vielleicht auf Konferenztalks

oder so, man guckt sich die Konferenzen an,

guckt, welche Themen sind da so interessant, wenn man auf einem

Talk ist auf YouTube und sagt Share.

Da muss man ganz arg filtern.

Also selbst auf den guten

Konferenzen, die Hälfte

der Talks, einfach denen, die mich

nicht interessieren. Und dann auch da muss man einfach nicht Sachen angucken.

Ja, aber das ist so wie mit allen Dingen. Wenn die ganzen Content kann man zu Lebzeiten

ja gar nicht konsumieren und da muss man vielleicht ein bisschen sich einfach ausruhen.

Ich habe es früher immer so gemacht, ich habe erstmal so das Lästige weggerockt und

dann versucht dann zu den guten Sachen zu kommen. Das ist eine ganz doofe Idee. Man muss

erst mal mit den guten Sachen anfangen, weil dann fällt das Lästige immer weg.

Es gibt auch einfach so viel Content, dass man da nicht durchkommen kann und dann, wenn

irgendwas einem nicht gefällt, dann muss man es einfach wegdrücken. Und das muss man aber

auch lernen.

Ja, das ist nicht so einfach. Also vor allem, was dann auch wichtiger ist, dass man halt auch führt dann auch irgendwann mit noch einem Talk und noch einem Talk und noch eine Dokumentation, sondern auch mal ins Machen kommt. Also halt tatsächlich an Projekten sitzt, die man irgendwie versucht weiterzubringen, umzusetzen, Dinge, die einen interessieren, irgendwie, dass man da einsteigt. Weil das ist das, was am weitesten und am schnellsten weiterbringt, weil man am schnellsten auf die Probleme stößt, die man auch lösen muss oder möchte. Und da halt dann die relevanten Sachen sich rauszusuchen, die einem da weiterhelfen, ist wahrscheinlich effektiver, als erstmal die Grundlagen dafür zu lesen. Was nicht immer ist. Es ist schon nett, wenn man bestimmte Sachen hat.

Ja, aber es klingt so ein bisschen vom Thema ab vielleicht.

Wobei, wenn du YouTube-Videos anhörst, warum dann nicht direkt Podcasts?

Ja, weil es da nur begrenzt viele gibt.

Also ich meine, ich höre natürlich auch Podcasts.

Also da werden vor allen Dingen, ja, TalkPythonToMe, PodcastInit sind vielleicht so die beiden.

Der deutsche Python-Podcast soll sehr gut sein.

Aber das ist ja so ein bisschen irgendwie, dass, ja, da sind die Leute rum.

Martin hatte gerade noch eine Idee.

Ja, was immer beim Lernen für mich immer sehr wichtig war, ist Code anderer Leute zu lesen. Und das macht man natürlich idealerweise dadurch, dass man andere Leute Code reviewt. Das ist dann immer das Ideal. Dann kann man denen sogar noch sagen, blöde Kommentare reinwirken.

genau das.

Ich mache das glücklicherweise beruflich und glücklicherweise

habe ich sehr gute Kollegen, die sehr gute Programmierer

sind und dann, ich habe

sehr viel einfach dadurch gelernt, dass ich

deren Code gelesen und

blöde Kommentare darüber abgegeben habe.

Aber das ist ehrlich gesagt

schon so ein bisschen die

steile Stelle an der Lernkurve irgendwie.

Also beide Sachen, sowohl einfach so

sich durch die Dokumentation von Projekten lesen,

wie auch fremde Leute Code lesen. Ich erinnere

mich da noch dran, dass das halt, also klar,

ich würde absolut zustimmen, da kann man super viel

lernen, aber es ist halt auch echt anstrengend.

Also vor allen Dingen, wenn das halt

so Sachen sind, die man gar nicht mehr...

Aber ja, da kann man

echt viel lernen.

Es gibt ein Buch mit dem Titel

Learning Python the Hard Way.

Ja, das ist jetzt schon.

Habe ich auch mitgelehnt.

Ja, finde ich gut.

Aber es ist

sehr witzig, weil einige Leute, die dann

fremden Code lesen oder eigene Code lesen,

stolpern dann irgendwann darauf mal wieder. Ich habe das glaube ich schon mal

erzählt, aber ich kenne die Geschichte, wie Jochen

und meinen Code reviewte.

Ah, nee, oh Gott, oh Gott, oh Gott,

schmeiß mal weg, mach mal neu.

Ja, okay, neu gemacht, weg schon.

Dann wieder, ah, Gott, oh Gott, oh Gott,

was ist das denn, schmeiß mal weg, mach mal neu.

Irgendwann ein bisschen später wieder so,

oh nee, Gott, oh Gott, was ist das denn?

Jochen, das habe ich von dir gekauft.

Ja, seinen eigenen Code später

in der Partie.

Einen eigenen Code ansehen.

Past Me war schon ein ganz schlechter...

Ja, ja, ein halbes Jahr später so,

oh Gott, oh Gott, oh Gott,

was ist das denn, kann das weg?

Ja.

Ja, also das Wichtigste ist weitermachen, glaube ich, und dass man halt am Beiweit

so ein bisschen in der Frage, wie viel Zeit man investieren muss.

Ich habe noch zwei Sachen, die ich als Quelle habe. Die eine ist Hacker News,

das ist aber mehr so, was halt so für den groben Überblick

möglich ist, ja, und auch da muss man ganz arg filtern, ja, und vielleicht

am Tag einen oder zwei Links rausholen und auf keinen Fall in die Diskussion gucken,

weil das ist ganz schrecklich. Ja, ich würde auch nicht ablegen alle die Links,

und ich würde, wenn ich mir Zeit nehme,

die dann direkt angucken.

Wenn es interessant ist, kann man sich

das ja ansehen und das

in seinen Dienststand rein synthetisieren

oder zumindest wissen, dass es etwas gibt.

Das ist wirklich mehr so eine Discovery-Sache.

Was gibt es denn?

Und da kommen auch immer wieder Python-Sachen

durch, wo man sich dann die Dokumentation

ansehen kann.

Aber das ist wirklich so

low-level.

Aber was ich ganz viel mache, ist eben über

RSS-Feeds von Personen

ins Blog lesen. Also zum Beispiel

Jochen's Blog

hier auf dem Dorf wird abends geläutet.

Das ist

die etwas altmodische

Push-Notification

Methode.

Das ist Feierabend. Hier ist jetzt Feierabend

auf dem Dorf. Kann man auch nicht so gut wegdrücken.

Es gibt keinen Spam-Filter.

Nee. Aber Jochens Blog

zum Beispiel, der

Jochen veröffentlicht ja seine Weaknotes.

Das heißt, da weiß ich auf jeden Fall ungefähr, was der Jochen so

Ich gucke mir von den Podcasts eigentlich gar nichts an und von den Artikeln nur die Überschriften, aber es ist so ein am Puls der Zeit bleiben, was man da halt hat.

Ja, also Johannes macht ja auch Wignotes und die gucke ich mir auch mal an. Ich finde das immer sehr interessant. Ich finde da immer Dinge, die ich nicht gesehen hatte, die bei mir nicht vorbeigekommen sind. Ich dachte, super, das ist ja total interessant. Das hilft auch auf jeden Fall.

Also ein paar Newsletter vielleicht auch, aber

da kann man auch was interessiert, dann direkt lesen.

Also ein paar bessere sind vielleicht

irgendwie Data Science Weekly oder Python Weekly

oder so.

Ja.

Genau, ich weiß nicht, ich habe ein paar

Postgres Weekly auch noch,

der ist auch noch ganz gut.

Und es gibt noch so einen anderen, den ich gerade

vergessen habe, den muss ich mir nicht schon uns einfach reinschreiben,

vielleicht finde ich den ja noch.

Ja, Newsletter.

Tja, aber ansonsten,

also mit Leuten reden finde ich immer so,

das Beste eigentlich.

Wie schon gesagt, das ist immer Jochen anrufen, fragen.

Ja, nein, aber

wirklich, also wenn man halt irgendwie auf die lokalen

Treffen geht, da trifft man andere Leute,

die sich vielleicht mit demselben Thema beschäftigen.

Ich glaube, das ist eine gute Idee, weil die

wissen meistens auch so ein bisschen was oder jeder weiß

so ein bisschen was mehr und dann hat man das,

irgendwer hat das mal Schwarmintelligenz genannt

oder so. Das finde ich gar nicht so schlecht.

Da kommt immer so ein bisschen was raus. Da kommt man immer

mehrere Schritte weiter, als wenn man da alleine

gegen die Wand läuft und da sich dann

abwälzt und dann drüber klettern will. Das ist, dauert

und ganz angenehm Ja ansonsten glaube ich dann sind wir damit auch mehr oder weniger Achso Quereinstieg andere Frage Das w vielleicht auch nochmal Ja also die Frage ist was bedeutet Quereinstiegen

Wie viel Zeit investierst du? Ist halt auch da die Frage.

Wie viel Zeit kannst du denn auch, wenn dich Python

nur so nebenbei interessiert, dann hast du

vielleicht fünf Wochen die Stunde Zeit.

Fünf Wochen die Stunde,

fünf Stunden die Woche.

Das ist zwar schon ganz schön viel, wenn man sich überlegt,

dass man so fünf Stunden die Woche für so ein Hobby erübrigt.

Aber wenn man das jetzt mit jemandem vergleicht...

und Jochen unterhalten sich über die Programmiersprache Python

mitkommt, weil man möchte ja vielleicht auch ein Level haben.

Ja, aber ich finde es

schwierig. Also ich meine, das sind halt eben,

im Rückblick ist es halt so viel Zeit,

die man investiert hat. Wenn einem das jemand

gesagt hätte, wie viel Arbeit das ist, dann hätte man

dann gar nicht angefangen.

Dann hätte man lieber

Holz.

Dann gehe ich spazieren und gucke mir

die Bäume an und die Blüten und denke mir, ach ja.

Aber der Grund, warum

das dann passiert ist, ist ja eigentlich, dass

das einfach Spaß gemacht hat. Und dann

merkt man das nicht so. Dann denkt man sich,

Hups, schon wieder ein Tag vorbei.

Oder eher in der Nacht.

Es muss halt gut sein.

Es muss halt einen Spaß machen und irgendwie liegen.

Also wenn euch das wirklich so...

Man darf ja auch nicht so viel Stress machen.

Der Dominik stresst uns ja jetzt,

weil ich mir hier so viele Stunden reintun muss.

Es geht ja auch, man kann es auch nebenher machen.

Man kann es auch zum Spaß machen.

Ja, man sollte es zum Spaß machen.

Ja, auf jeden Fall.

Python ist sehr gut, um es zum Spaß zu machen.

Aber halt tatsächlich auch für euren Lebensunterhalt.

Also es geht eigentlich ganz gut.

Aber man muss halt dann bereit sein, auch was zu tun.

Ich wollte jetzt niemanden stressen, aber es geht halt darum, wenn du

einen Quereinstieg wirklich finden willst und sagst, du hast dich

entscheiden, das ist jetzt dein Ding, dann

mach es ordentlich.

Würde ich jetzt behaupten.

So regionale Treffen

sind da, glaube ich, was super gut ist.

Als ich nach Düsseldorf gekommen bin, bin ich einfach

in den Python-Fuhr gegangen und jeden

Donnerstag da hingegangen.

Ich kenne das ja, im Chaosdorf

im Computerclub in Düsseldorf.

Jeden Donnerstagabend

ist Python-Fuhr und da kommen einfach Leute, die

interessiert haben. Das hat auch gar kein Programm

und gar keine Agenda oder so, sondern

es ist einfach gleichgesinnte

Treffen und das

führt dann schon automatisch dazu,

dass man darüber spricht. Und dann kann man ja auch gucken,

ob man irgendwo was hat, was man gerne

machen möchte oder ob man irgendein Thema hat, was

einen interessiert und da findet sich dann immer jemand, der

irgendwas dazu sagen kann oder auch

jemand anders, der ein Thema hat, wo man

dann selbst was dazu sagen kann. Und dann

kommt man da so in den Austausch rein. Also das ist

auch eine ganz nützliche Sache.

Ja, kann ich nur bestätigen.

Ja, ja. Okay, gut.

Dann würde ich sagen, wir sind

in diesem Themenbereich auch beschäftigt.

Dann können wir ja noch das Kapitel anfangen.

Um den Laser des Todes geht es dann jetzt.

Ja, genau.

Ja, da musst du glaube ich

erstmal ein bisschen ausholen, Martin.

Was ist das denn?

Und was macht ihr da überhaupt?

Du musst doch nochmal von dem Institut vielleicht erzählen.

Also wir sind der European XFEL.

Das XFEL steht für

Röntgenfreie Elektronenlaser.

Wir sind eine Großforschungseinrichtung

in Hamburg oder eher bei

Hamburg und

ja, wir haben dort

einen der

stärksten Röntgenquellen

der Welt.

Ja, ich glaube, wir sind aktuell sogar Nummer

1. Da ist

immer so ein Wettlauf, wer da jetzt gerade

Finanzverfahren hat.

Eine der

Ja, es gibt ja auch nicht so viel auf der Welt.

also so ein Röntgen und Laser zusammen, das ist tatsächlich gar nicht so einfach, das kostet dann halt auch gleich mal anderthalb Milliarden Euro.

Warum macht man das zusammen?

Ja, also Röntgen ist halt ganz praktisch, also es geht effektiv, ein großer Witz daran ist, dass man effektiv ein sehr, sehr gutes Mikroskop hat, man kann deutlich kleinere Sachen sehen, als man mit einem normalen Lichtmikroskop sehen kann,

weil die Wellenlänge von Röntgenlicht tausendmal kürzer ist als die von Sichtbewerben Licht

und dann kann man halt tausendmal kleinere Sachen sehen

und dadurch kann man dann zum Beispiel sich das Spike-Protein von Corona angucken

das war bei uns natürlich gerade das Thema schlechthin

naja, also das ist auch alles sehr interessant

aber bis die wissenschaftlichen Ergebnisse dann tatsächlich in der Praxis ankommen

wird hoffentlich Corona vorbei sein

ist natürlich trotzdem interessant

ja und

solche Sachen können wir uns dann halt angucken

wobei wir auch viele andere Sachen machen

also zum Beispiel

meine Gruppe hat sich viel um Magnetismus gekümmert

da ging es um

tatsächlich solche banalen Sachen wie

wie schnell kann man eigentlich grundsätzlich

also prinzipiell auf eine Festplatte schreiben

ja die Forschung

tatsächlich war es so, dass man

lange Zeit Angst hatte, man könnte

gar nicht so, also man käme da an eine Grenze, dass man also prinzipiell physikalisch

nicht schneller eine Festplatte schreiben kann als

ich weiß nicht, was damals vorgeschlagen wurde und dann haben wir das mal

also nicht wir, also die Physik hat das nachgemessen und festgestellt

nee, diese Grenze gibt es gar nicht, die man sich da gedacht hat, das geht sogar tausendmal

schneller als man sich das gedacht hatte und ja, dann

wollte man halt eigentlich wissen, ja was passiert denn da, also offensichtlich

hatte man das Problem nicht verstanden

und wir haben uns dann tatsächlich

mit einem solchen Randgläser

stellen wir uns die Frage,

wie schnell geht das eigentlich und

richtig, also die eine Sache

ist, dass man sehr kleinere Sachen sich angucken kann

und das andere ist, dass man sich sehr, sehr schnelle

Prozesse angucken kann, weil wir

sehr kurze Pulse machen

können, also wir kommen unter

eine Femtosekunde drunter, wem das

was sagt, also 0,1501

Sekunden.

Das ist sehr langsam.

also schnell

ja genau

und das ist der andere Grund warum man sich das

warum man das macht und

dann auch noch im Röntgenbereich

es hat halt dann auch noch die gleichen

Vorteile die man normalerweise beim Röntgen

hat, dass man halt durch Sachen so gewissermaßen

halb durchgucken kann und

dann so in Sachen reingucken kann

das ist natürlich dann

auch noch ein schöner Nebeneffekt

und dann das Ding läuft dann permanent

und macht die irgendwelche Experimente

und die wertet ihr dann irgendwie aus mit Bildern, die auf Platten gespeichert werden, die ihr dann...

Ja, also wir haben da uns so...

Also da gibt es halt diesen Laser, der ist halt dreieinhalb Kilometer lang

und am Ende kriegen wir dann immer wochenweise, verwenden wir den dann.

Das gibt es dann irgendwelche Benutzer, nennen wir die, die dann uns Ideen geben, was man denn da messen könnte

und die kommen dann bei uns vorbei.

Also heutzutage kommt es nicht mehr bei uns vorbei wegen Corona,

aber jetzt müssen wir es alle mal selber machen,

sehr anstrengend, aber normalerweise kommen die

bei uns vorbei und machen dann

mit dem

Röntgenlaser Experimente.

Und genau

da

kommt dann halt die Flexibilität tatsächlich von Python

ins Spiel, dass wir

ja im Prinzip, also

wir haben da immer

mehrere Teams und wir

wechseln uns typischerweise ab, also eine Woche

kriegt das eine Team, das eine Team darf den

Röntgenlaser verwenden, dann nächste Woche den anderen.

und Jochen unterhalten sich über die Programmiersprache Python

und Jochen unterhalten sich über die Programmiersprache Python

und das machen wir tatsächlich alles mit Python

und zwar vorwiegend deshalb, weil wenn dann so ein Benutzer vor uns steht

und dann sagt, ja, wir haben hier die Probe

und der Röntgenlaser ist leider viel zu stark, wir müssen die Probe

jetzt immer hin und her bewegen, damit wir nicht immer denselben Punkt treffen,

sondern damit er halt nicht kaputt geht, dann muss ich mich halt hinsetzen

und das dann programmieren, dass dann die Probe halt

geschickt so hin und her wackelt,

dass sie dabei nicht

kaputt geht, dass wir sie mit einem Laser beschießen.

Und dann hat der verschiedene Achsen in den Motoren,

die er irgendwie kennt und dann könnte er mit tausend Motoren

viele Dimensionen, die der irgendwie

möglich sind. Ja, richtig.

Und wir

brauchen natürlich die Flexibilität,

dass wir dann, also wir haben wirklich

für eine Woche schreiben wir dann tatsächlich

so viel

Code ist das ja praktischerweise in Python

jetzt auch nicht, aber es macht es halt möglich,

und Jochen unterhalten sich über die Programmiersprache Python

und Jochen unterhalten sich über die Programmiersprache Python

machen wir jetzt nicht mehr hier den Golf

12, sondern wir machen jetzt

ein Clown-Car und

fahr doch mal bitte irgendwie

die Motoren so, dass das dann passiert.

Ja, aber hopp, hopp. Genau.

Und so läuft das bei uns tatsächlich die ganze Zeit.

Und das macht es halt deshalb

Python.

Und ja,

die andere Sache ist, dass wir

natürlich dann immer sehr viele Sachen dann parallel machen

müssen, dass halt

dann die Motoren häufig dann

irgendwie parallel fahren müssen, dass man da

den Laser anschaltet,

den Motor hin und her fährt und der ausschaltet.

Habt ihr denn Joystick für oder sowas?

Ja, der Punkt ist,

dass es ja automatisch gehen soll.

Deshalb kein Joystick.

Aber wenn ihr jetzt eingreifen müsst oder so?

Ja, nee, das geht tatsächlich.

Also das ist glücklicherweise selten genug,

dass wir dann wirklich so mit Maus

und Klick auf Buttons dann das machen.

Das ist...

Ja, wobei da

dann natürlich

und

und das ist halt der große Vorteil,

dass wir halt nicht, wie das bei einer

Automobilfabrik wäre oder auch

tatsächlich auch in der Forschung

in anderen Bereichen ist, dass man halt

lange vorher einen Antrag

schreiben muss und dann gibt es dort eine

Softwareabteilung, die dann da irgendwelche

Entwicklungen für einen macht.

Also das wäre für uns einfach nicht flexibel

genug. Wir müssen wirklich

sofort eingreifen können

und das können wir auch.

Aber dann kommt wieder die ganze

Sache mit dem, dass wir die ganze Zeit Sachen parallel machen

müssen. Und

ja, da kommt dann halt wieder der vorhin erwähnte

Gil ins Spiel.

Dass wir halt eben tatsächlich

kein Multithreading machen,

weil Multithreading

ist ja der Horror.

Und dann tatsächlich alles

mit Async.io machen.

Das ist ja das, was normalerweise immer

die ganzen Leute im Web

ganz viel machen. Wir machen jetzt

kein Web, aber tatsächlich ist es

so, dass Async.io sich auch für

für Steuerung von Sachen super

eignet. Das heißt, wenn man

fünf Motoren gleichzeitig bewegen

will und dann warten das muss,

bis die alle angekommen sind,

das lässt sich super

in so einer Async.io-Umgebung

schreiben. Das heißt, ihr kommt mit Batteries

in Kludel quasi zurecht?

Jein.

Also, ja.

Wir

führen so ein bisschen Katalog darüber,

und Jochen unterhalten sich über die Programmiersprache Python

ist, dass wir geguckt haben, also

als wir uns entscheiden mussten,

wie machen wir denn unsere

Experimentesteuerung, da haben wir uns gedacht, okay,

die Datenauswertung läuft schon unter Python,

lass uns das doch uns einfach noch ein

Niveau vorher auch schon machen

und machen dann auch schon

die Steuerung des Experimentes in Python

und das hat natürlich auch dann

den Vorteil, dass man das dann die Übergabe der Daten,

also wenn wir dann

unsere Kameras steuern,

da muss man dann natürlich dann halt

gewissermaßen den Auslöser der Kamera

und Jochen unterhalten sich über die Programmiersprache Python

mit ein bisschen Daten zusammen und muss gerade überlegen, wie viel sind das?

Ja, mal gucken. Also 2 Megapixel mal 2 Byte macht 4 Megabyte mal 5000, 20 Gigabyte pro Sekunde.

Kleiner Datendurchsatz.

Ja, da muss man, also, habt ihr so viel Platz bei euch?

Läuft das dann die ganze Woche quasi so durch oder nur zu bestimmten, oder wie viel Zeit pro Woche,

wenn ihr messt, fallen denn dann tatsächlich Daten an?

Tatsächlich ist es so, dass ein großer Teil einer solchen Woche

erstmal in Einrichtung und Charakterisierung besteht.

Also wenn wir weniger als einen Tag brauchen, dann machen wir richtig gut.

Aber die restlichen, also ein Tag der Woche ist eh immer Maschinentag,

da wird repariert, gewartet und was weiß ich was gemacht.

Einen Tag lang brauchen wir sicherlich auch noch zum Einrichten.

Wir haben noch fünf Tage übrig und in den fünf Tagen

Ja, da können wir auch schon mal dann wirklich

also, ja

ich würde sagen 15, 20 Stunden

können wir dann tatsächlich auch schon messen und ja

das sind Datenmengen, die dann da durchfließen

und

weil da dann das große Problem natürlich

auch wieder ist, dass wir nach

Möglichkeit, dass alles dann wieder ausgewertet werden muss

Also eines der großen Vorteile

unseres... Ein Terabyte pro

Minute habe ich gerade ausgerichtet

Ja, um solche

Größenordnung geht es.

Glücklicherweise bin ich nicht

für das Datenmanagement zuständig.

Das sind eine Million Terabyte in eurem 15 Stunden.

1000 Terabyte.

Das kann ich sagen.

1000 Terabyte.

1080 Terabyte.

Ja, ja.

Petabyte ist bei uns

jede Woche.

Das ist nichts

Besonderes.

also unsere

Daten, also die Leute, die bei uns

ich bin glücklicherweise nicht dafür zuständig, die Daten

zu speichern und zu halten

aber die, die das sind

haben damit tatsächlich

das tut tatsächlich weh

und

man versucht natürlich dann immer die Daten

einzudampfen, dass man halt

versucht doch nur die Daten

zu speichern, wo wirklich was Relevantes drauf ist

also

von den 5000 Bildern

pro Sekunde.

Naja, das, also

nicht

auf allen Ecken des Bildes

sind immer interessante Daten drauf.

Vielleicht läuft dann irgendeine Reaktion, die mal 2 Sekunden

dauert oder nur eine zehntel Sekunde mal Flak hat

oder sowas und die muss man vielleicht haben.

Ja, also je nachdem.

Also es gibt zum Beispiel, also

was viel gemacht wird,

ist, wenn wir da solche Proteine

in den Strahl schießen, dass man dann

ja, also...

Jetzt hast du wieder was gesagt, was macht ihr?

Ihr stießt Proteine in den Strahl.

Genau, also zum Beispiel dieses

berühmte Spike-Protein von

Corona. Also das

Problem ist, wenn man mit einem Röntgenlaser da drauf schießt, dann ist

das Protein kaputt.

Das heißt... Das bricht durch.

Das explodiert. Das explodiert.

Ja, also das ist

die Magie, dass wir so schnell

sind, dass wir gewissermaßen

ein Foto schießen. Also wie muss ich das sagen?

Ihr habt irgendeine Trägersubstanzflüssigkeit, in der

schwimmt das rum und das ist auf so einem Glas drauf

und das schießt dann der Laser rein, oder?

Ne, das wird tatsächlich, also

ja, das ist in einer gelösten

typischerweise in einer

Lösung und

das wird dann in ein

gewissermaßen ein feiner Strahl

sozusagen wie ein

Finkelstrahl sozusagen,

der dann mit dem Laser

beschossen wird und da das sofort kaputt geht,

muss halt das die ganze Zeit nachgefüttert werden,

deshalb wird das mit Hochdruck

als ein sehr dünner Strahl

durch...

Da kommen die ganze Zeit Proteine, fließen da so durch.

Genau.

Das heißt, irgendwer pinkelt Proteine dann über diesen und da kommt der Laser, der ballert dann dazwischen.

Genau.

Und immer wenn was passiert, wird fotografiert, 5000 Mal pro Sekunde.

Genau.

Also immer dann, wenn der Laser schießt.

Der Laser schießt bis zu 5000 Mal pro Sekunde.

Je nachdem, was man genau macht, kann das auch mal mehr oder weniger sein.

Und der ist dreieinhalb Kilometer lang.

Das heißt, es gibt so eine Riesenröhre irgendwo da und da schießt er durch.

Richtig.

Das ist eine Tunnelröhre, die ist mit so einer Tunnelbohrmaschine gebohrt worden,

die dann

von, also wir sind,

das fängt in Hamburg an und ist tatsächlich so lang,

dass wir dann, dass das Experiment selbst

dann nicht mehr in Hamburg stattfindet, weil

zu weit weg. Genau, da sind wir

in Schleswig-Holstein.

Wie lange braucht der Strahl?

Ja, Lichtgeschwindigkeit, ne?

Ja, das ist wahrscheinlich ein Augenblick.

Ja, so Mikrosekunden, ja.

Aber ihr könnt es schneller wahrnehmen.

Ich habe gesagt, Phantosekunden könnt ihr auch.

Ja, ja, also das hat ja nichts miteinander zu tun.

Das ist ja, also wie lang der,

Tatsächlich ist es so, dass in unserer Tunnelröhre mehrere von diesen Röntgenblitzen hintereinander sich auf unsere Probe zubewegen.

Sogar ganz viele.

Tatsächlich ist es nicht so, dass da 5000 so gleichmäßige Sekunden kommen, sondern die kommen immer in Trains, nennen wir das, von 500 auf einmal an.

Und das dann 10 mal die Sekunde.

und die 500, die kommen halt sehr schnell hintereinander an

und dann kommt eine Pause und dann kommen die nächsten 500.

Und dabei kann man tatsächlich sehen, wie dann durch diesen Strahl,

der muss ja dann auch relativ schnell mit Druck da durch,

die ganzen Proteine zerstäuben oder explodieren.

Die bleiben in dem Wasserstrahl einfach gelöst.

Und jetzt ist es natürlich so, dass,

also das ist mir weniger Zufall,

und Jochen unterhalten sich über die Programmiersprache Python

Ja, das ist eine Riesenmagie, die da passiert.

Und ja, wie gesagt, ich bin nicht in der Gruppe, die das macht.

Aber man kann so wirklich Molekülstrukturen tatsächlich sehen.

Also so wie man sich das aus dem Chemieunterricht früher vorstellt.

So quasi, man sieht die, nein.

Also man sieht halt ein Streumuster dieses Moleküls.

Nun ja, also da sind dann so auf der Kamera so ein paar Punkte drauf und dann macht man damit ganz, ganz, ganz viel Rechenleistung, muss das Ganze zurückgerechnet werden.

und da sind dann, also

Clusterweise sind dann die

Rechner, die dann, also gewissermaßen

ist es so, dass

das Molekül befindet sich halt in einer

zufälligen Orientierung und

deshalb muss man auch ganz oft drauf schießen, weil man es dann

gewissermaßen einmal aus allen Richtungen betrachtet,

man sieht aber gewissermaßen nur den Schatten

des Moleküls,

ja gewissermaßen, also am Ende sind

das immer nur ein paar Punkte auf dem Detektor

und aus denen muss man das sich dann wieder mit

unglaublich viel Rechenaufwand

zurückrechnen.

dafür gibt es dann aber auch wieder ganze Arbeitsgruppen

also ganze Institute, die sich nur mit dieser

Rückberechnung

beschäftigen

weil man nur diese einzelnen partiellen Bilder aus verschiedenen

Blinkwinkeln hat und die man dann quasi zu einem ganzen

genau und daraus kann man dann

tatsächlich am Ende das ganze

Molekül wieder

rekonstruieren und weiß dann

kann man das irgendwie kalibrieren

dass man hinterher weiß, ob man das Richtige

zurückgerechnet hat, dass man etwas nimmt

wo man die Struktur kennt

da drin.

Natürlich haben wir angefangen mit

Molekülen, die wir schon kennen.

Und

Mathematik lügt auch nicht.

Ja, oder es ist einfach schon mit

anderen Methoden

gemessen worden und dann

weiß man, was da geht.

Wobei ich mich persönlich weniger

mit Molekülen beschäftige als mit Magneten.

Und

die haben das große Problem, dass datentechnisch

das sogar eher

anstrengender ist, weil

und

Ja, also was man halt macht, also mit Röntgenstrahlen kann man halt sehen, ob der Magnet magnetisch ist, gerade.

Also eine Festplatte speichert man ja dadurch, dass man auf einer klassischen Festplatte, also keine Solid State, sondern auf einer klassischen, dass man dort eine magnetische Schicht hat und dann den Magneten entweder so rum oder so rum dreht.

und was wir dann machen ist, dass wir

schießen mit einem

handelsüblichen

Laser,

auch mit einem Hochintensitätslaser

da drauf, dann

wird das heiß und dadurch

wird der Magnet demagnetisiert

und danach schießt man einmal mit dem XL

drauf und guckt, ob er noch magnetisch

ist und dann kann man die Zeit zwischen den

beiden

ändern und gucken dann,

wie schnell, wie lange es denn dauert so einen Magneten zu demagnetisieren und das ist dann halt die

kürzeste Zeit, mit der man grundsätzlich ein Daten auf einer Festplatte schreiben könnte.

Die Zeiten, die glücklicherweise so schnell sind, das weiß man inzwischen, dass das für

also ein Computer tatsächlich dann am Ende egal ist. Es geht also tatsächlich nur noch darum,

das tatsächlich prinzipiell zu verstehen, was da eigentlich passiert und nicht mehr

auszuschließen, dass man da in irgendein physikalisches Limit läuft mit der Technologie,

wo man jetzt irgendwie wahnsinnig viel investiert.

Das ist eine Magnetechnologie, mit der man mit Laser die Platten beschießt, um die Sachen zu speichern?

Also das Problem ist, dass das Einzige, was so schnell ist, sind Laser.

Und deshalb müssen wir Laser nehmen.

Also wie eine Technologie dazu aussehen würde, die Frage braucht man da...

Aber das hört sich an, es wäre deutlich schneller als SSD.

Ja, genau.

Wie gesagt, das ist

viel, viel schneller als alles.

Also das Schalten eines solchen Magneten

geht prinzipiell

viel, viel schneller, als das jemals ein Computer

schreiben kann.

Es gibt

keine theoretische

Grenze. Keine physikalische Grenze, die da

irgendwo ist. Es gibt eine, aber die ist so weit

von gut und böse,

dass wir diese 100 Jahre nicht mehr erreichen werden.

Genau, vor allen Dingen nicht bis

SSDs übernehmen.

Das ist aber nicht

das Problem, oder, warum Festplatten langsam sind

sondern das Problem ist, dass die richtige

Stelle nicht da ist

Ja, genau, dass

dieses Problem, wie gesagt, ist keins mehr

das ist damals, das ist ja auch schon wieder

30 Jahre her, dass damals

die meinten, in das physikalische Limit zu laufen

und dann

Eine schöne Vorstellung

Ja

Vor 30 Jahren hat man gedacht, jetzt

können Computer gar nicht mehr schneller werden

das ist jetzt leider vorbei

aber es hat sich dann leider

zum Glück doch rausgestellt

ja

ich fand das aber ganz interessant

ich glaube das interessiert vielleicht noch andere Menschen

wie funktioniert denn das jetzt überhaupt

so ein Magnetspeicherband

wenn du sagst, da muss man Magneten

drehen, dann speichert man

irgendwas? Ja also effektiv

also so eine Magnetplatte

wie sie in Festplatten

vor der Zeit von Essen

genau verbaut waren

Es ist ja einfach nur eine

magnetische Struktur

also irgendein

Stoff, der grundsätzlich magnetisch ist

und den kann man halt

da kann man sich so winzige

kleine

Magnetchen vorstellen, aus denen das

draufsteht, aus denen das besteht

aus denen es natürlich ganz ganz ganz viele

gibt, nämlich wie jedes Bit, das gespeichert werden

soll, eins

und dadurch, dass man dann

mit einer Magnetspule drüber fährt

dreht man das entweder so, dass der Nordpol nach oben steht oder der Südpol nach oben steht.

Und so speichert man Daten auf einer Magnetfestplatte?

So speichert man Daten auf einer Magnetfestplatte und danach dann

und umgekehrt wird das ausgelesen dadurch, dass man

dann halt misst, ob denn jetzt gerade der Nordpol oder der Südpol oben ist.

Und wir wollten, also

da gibt es halt Grenzen, wie schnell man das schreiben kann, aber wie gesagt, es gibt sie effektiv

nicht, weil es ging halt die Frage tatsächlich,

wie weit kann ich denn so einen Magneten

den Nordpol zum Südpol rumdrehen?

Also grundsätzlich,

wie lange dauert das eigentlich,

dass sich dieser Magnet dreht?

Dreht sich da

wirklich was oder wird das umgepolt?

Ja, gut,

das kann man

in der Definitionsfrage...

Was heißt denn dann umgepolt?

Ja, gut, es geht da immer um

die Spins der Elektronen Also Elektronen haben gewisserma ein Oben und ein Unten und in Magneten ist es so dass die Spins also dass die Benachbarte Elektronen aneinander gekoppelt sind dahingehend dass die wenn das eine Elektron nach oben zeigt zeigt das andere gerne auch nach oben

und dann bilden die so halt so eine Gang sozusagen und wenn dann gruppenmäßig sich alle zeigen dann in eine Richtung.

Und der Witz an einem Magneten ist, dass dann benachbarte Elektronen aneinander gekoppelt sind.

Also alle Elektronen haben einen oben und einen unten, aber normal sind sie nicht aneinander gekoppelt.

Das heißt, in einem Stück Holz passiert da nicht viel.

Also kann man mit einem Magneten die Spins rumdrehen, das kann man machen, das bringt aber nicht viel.

während man mit einem Magneten die Elektronen umdreht und dann auch das Magnetfeld wieder ausschaltet, dann bleiben die Elektronen halt in derselben Richtung stehen, wie sie vorher waren.

Das wäre auch gar nicht

klar gewesen. Das bedeutet, dass es

überhaupt Magnete gibt

aus Metall. Das ist der gleiche Effekt

wie etwas darin zu speichern.

Im Grunde ist das

das, was man darin gespeichert hat.

Ja.

Cool.

Also einem normalen Magneten ist das

die Information halt

ein Bit.

Ja.

Bei einer Festplatte sind es dann

ganz, ganz, ganz viele nebeneinander und man muss dann

aufpassen, dass die sich...

Sie sollen,

das ist immer das Problem, die Elektronen sollen sich ein bisschen

gegenseitig beeinflussen, weil sie ansonsten ihre

Position nicht halten, aber denen ist es aber auch nicht zu viel,

aber das ist dann

dann wieder

sehr viel Wissenschaft.

Die Dichte, wie die ineinander hängen und so weiter.

Genau, da kann man unglaublich viel mit rumspielen.

Eine schöne Sache

an der ganzen Geschichte ist übrigens, dass das

und Jochen unterhalten sich über die Programmiersprache Python

und Rost.

Und es stimmt.

Es trifft sich, glaube ich, ganz gut.

Und Kassetten und so weiter

und Magnetbänder funktionieren ganz ähnlich.

Halt nicht digital, sondern

mit einer analogen

Magnetisierung.

Wer das noch kennt

von früher, oh, jetzt habe ich mich geoutet.

Kassetten,

hm, was könnte das sein?

Hohen zurückspulen, durchreißen, aneinanderkleben.

Genau.

Ja, sehr schick

In einem Land vor unserer Zeit

Habt ihr denn da schon immer Python verwendet

oder seit wann verwendet ihr Python

oder überall oder gibt es auch noch

andere Technologien, die verwendet werden?

Ja, also es gibt auch immer noch eine

gewisse

Menschen, die sich nicht davon abbringen

lassen, weiterhin C++ zu

programmieren

Sie sind nicht tot zu kriegen

Nein, also tot wollen wir sie auch gar nicht

haben, aber

überzeugt,

haben wir es auch noch nicht geschafft.

Ihr habt es auch nicht geschafft, sich vor den Laser zu stoßen.

Genau.

Tatsächlich ist es so, dass in der

Physik jahrzehntelang

war C++ tatsächlich einfach die Sprache

schlechthin. Es wurde einfach alles in C++ geschrieben.

Stimmt gar nicht, außer das,

was in Fortran geschrieben wurde. Das ist dann halt wieder

eine Generation weiter vorher.

Und ja, es gibt auch noch die Fortran-Leute.

Die sind glücklicherweise

inzwischen sehr wenige geworden.

Es gibt sie immer noch, aber inzwischen ist das so, C++ ist jetzt halt doch nicht mehr die modernste Sprache und jetzt die neue Welle, da ist Python einfach, gibt es auch Rust?

Er hat auch noch vordran Bauteile.

Genau, natürlich, ja.

Ja, selbstverständlich.

Ist gar nicht so weit von uns entfernt.

Ich erinnere mich nur gerade an ein Zitat, ich weiß gar nicht, wer das mal ursprünglich gesagt hat,

aber ein sehr wissenschaftlicher Fortschritt ist immer so

one funeral at a time.

Ja, natürlich.

Also es ist tatsächlich, also in der Welt der Physik war,

nicht nur da, in vielen anderen Bereichen auch,

war der Witz an Python eigentlich, dass man damit halt unglaublich viele verschiedene Bibliotheken,

auch aus Steinzeit, aus Vortrag und Steinzeit oder was weiß ich wo,

zusammenkleben kann und dass das am Ende

irgendwie trotzdem alles dann zusammenläuft

und das ist zum

größten Teil das, was

also das war halt

das Killer-Feature, dass man

die ganzen alten Fortran-Bibliotheken

tatsächlich bis heute weiterverwendet hat.

Python als Glue.

Absolut.

Ja und ich glaube auch, ich weiß gar nicht, wie

einer der großen Vorteile

bei Fortran ist halt, dass man, also weshalb das

glaube ich, jedenfalls, was ich weiß, für numerische

Geschichten oft verwendet wird, ist das halt da

die Sprache so, ist das die Compiler automatisch

vektorisieren können, was ja bei C und C++

eigentlich nicht geht. Also geht auch, aber man muss dann

halt selber quasi dem Compiler

sagen, was er tun soll.

Ja, beziehungsweise du kannst so Datentypen

definieren, die Vektoren sind

und diese ganzen Operationen gehen dann

automatisch und wenn du eben einen 16-breiten Vektor

hast, dann

hat der Compiler

genügend Informationen, um da

schlaue Sachen draus zu machen.

Gerade jetzt heutzutage, ja,

wo es ja Prozessoren gibt, die ganz viele

Operationen auf 8 oder auf 16 Sachen gleichzeitig

machen können und das kriegst du dann halt

einfach so umsonst, weil du dein Programm

so geschrieben hast, dass du immer direkt

16 Sachen gleichzeitig machst

und dann kompilierst du es und es wird

dann halt automatisch schneller und das

ist schon verlockend, das kann ich schon verstehen

da

ist eine schöne

Abstraktionsebene gefunden

glaube ich, dass man

eben nicht wie bei C++ oder bei C

jeden Maschinenbefehl selber schreiben muss

und gleichzeitig hast du trotzdem noch genügend tiefe Abstraktionen, um schnelle Programme schreiben zu können.

Das eigentliche Problem an Vortragen ist, glaube ich eher, dass einfach die Sprache schon alt ist.

Diese Sachen, die man heute als Komfort für sich so kennt und auch nicht vermissen möchte, die gibt es halt einfach nicht.

Ja, also Altphilologen in der Computersprache

selten, dass Leute so ein Interesse daran haben,

ein forensisches, erstmal die alten Sprachen nochmal

nachzulernen, statt was Neues,

Modernes anzufangen. Das macht man da eher nicht.

Wobei, also den Markt gibt es ja

durchaus noch und auch wieder.

Kobol-Entwickler. Ich weiß von einigen Firmen, die wieder

Kobol-Programmierer ausbilden, weil sie es halt noch

brauchen. Und genauso gibt es

wissenschaftliche Einrichtungen, die

Fortrad-Programmierer ausbilden, weil sie es halt

noch benutzen, weil sie es noch brauchen.

Möchte man das denn entwickeln?

Ja genau, ich dachte mir gerade, dass Leute da ausbilden wollen, verstehe ich, dass Leute sich da ausbilden lassen, das ist schwerer zu verstehen.

Ja gut, das ist ja auch eine ökonomische Abwägung.

Naja gut, aber die ist auch nicht gerade.

Ich habe auch eine Fortran-Vorlesung in der Universität gehört, das war schon interessant auch, einfach auch mal aus historischer Sicht.

Man kann ja auch durchaus viel davon lernen, nur jeden Tag machen möchte ich es nicht.

Ja, man muss auch dazu eindeutig sagen, dass tatsächlich das eigentliche Rechnen in Python wegen des GIL funktioniert halt nicht. Wenn es wirklich darum geht, möglichst viele Multiplikationen und Additionen auf dem Prozessor zu jagen, da braucht man mit Python gar nicht anzufangen, sondern da muss man dann wirklich halt über NumPy zum Beispiel, das kann das dann ja.

und da kommt dann auch wieder, gut okay,

da kommt dann auch, tatsächlich

ist da nicht

so viel Fortran drunter, wie man

sich das denkt, weil gerade

die großen alten Fortran-Bibliotheken

tatsächlich

mehrfach nachimplementiert

wurden, also es gibt da ja die

großen, also die

wichtigste sind immer noch die BLAS,

die

Basic Linear Algebra

Subroutines, die halt sowas wie Matrix-Multiplikation

enthalten, die halt von den

Prozessorenherstellern oder

sehr enthusiastischen

Hobbyisten

handoptimiert wurden,

teilweise bis in die

Assembler-Ebene runter, um möglichst schnell

auf einem Prozessor

sowas wie Matrizen-Multifikationen machen zu können.

Und das ist tatsächlich,

also das

ist noch eine

Fortran-API, aber unten drunter

ist tatsächlich irgendwas handoptimiertes,

weshalb das eigentlich

mehr so Schein als Sein ist,

dass das

noch fortran sei. Aber das

ist halt so eine bewährte

API und so eine bewährte API, die wirft man auch

nicht weg, vor allen Dingen, weil die API ist ja auch nicht das, was

weh tut.

Und das Programmieren, das tut natürlich dann

erst recht weh, weil wenn man dann tatsächlich

auf Assembler runtergeht und das

machen die, dann

das tut natürlich weh.

Oder natürlich

heutzutage auch auf Grafikkarten ist das

ja auch dann sehr beliebt und das ist dann halt sehr schön, dass es dann halt so

standardisierte Bibliotheks-APIs gibt, bei denen es dann eigentlich völlig egal

ist, auf was das dann am Ende läuft.

Ja, das ist interessant, weil man denkt halt manchmal, dann Python wir langsam, aber wenn man dann sowas wie NumPy benutzt, hat man ja

quasi die Python-API, die man dann ansprechen kann, in der man entwickelt und da unten drunter

sind dann ja viel mehr... Genau, und das ist halt wieder die Sache mit dem

Python als Glue.

wobei ich sagen muss, dass was jetzt tatsächlich

ein eher größeres Problem bei uns ist

da zerbrechen sich auch gerade viel schlaue Leute die Köpfe drüber

das ist nämlich zuverlässige Datenauswertung

das Problem ist das, was ich erzählt habe, von wie wir unsere Experimentsteuerung machen

dass man da schnell mal was runterhackt, das ist ja ganz schön

für sowas, aber das Problem ist, am Ende wollen die Daten ja auch ausgewertet werden

und tatsächlich, also was wir sehr viel

mit Jupyter Notebooks machen,

die haben aber immer das Problem, dass man sich

fünf Minuten nachdem man die Aussetzung gemacht hat,

nicht mehr daran erinnern kann, was man eigentlich gemacht hat

und welches denn der

Jupyter Notebook Zellen man denn jetzt nur ausgeführt hat

und welche nicht und an welcher man schnell noch einen Parameter

gedreht hat und welche nicht.

Wer lange mit Jupyter Notebooks gearbeitet hat,

kennt das wahrscheinlich sehr gut.

Und was natürlich der

Reproduzierbarkeit, also reproduzierbar

sind unsere Daten in dem Sinne ja sowieso nicht,

und Jochen unterhalten sich über die Programmiersprache Python

vergleicht, wie ich das eine auswerte und was ich das andere auswerte und wenn man dann zwischendurch

das typische Notebook wieder mal vergessen hat, was man da eigentlich gemacht hat, dann

ist das sehr unpraktisch und das ist tatsächlich

bei uns aktuell, also was heißt aktuell, das ist schon

seit längerem ein Problem, wie man das in Hand hat, dass man

da reproduzierbar Daten auswertet. Tatsächlich ist es sogar so, dass

schon das Problem, dass wir, naja, also wir

Wertender Daten aus und nach einem halben Jahr kommt einer an

und hat nochmal eine Idee, wie man da vielleicht nochmal

mit einem anderen Blickwinkel drauf guckt und dann

sollte es einem besser nicht passieren, dass man versehentlich

NumPy upgedatet hat und plötzlich

funktionieren die Skripte nicht mehr.

Oder kommen zu einem anderen Ergebnis.

Das ist dann tatsächlich

ein Problem, weshalb wir tatsächlich

angefangen haben, einfach komplette

Virtual Envs

nehmen wir jetzt gerade noch.

Wir haben darüber nachgedacht, jetzt ein Conda zu nehmen

und dann die kompletten Virtual Envs mit

den Daten zusammen zu speichern.

und Virtual Env ist dann verglichen mit den Daten einfach winzig,

damit man, wenn man ein Jahr später nochmal versucht,

die gleiche Auswertung zu machen, dann tatsächlich zum gleichen Ergebnis kommt.

Ja, aber das stelle ich mir auch, weil die ganzen Betriebssystem-Bibliotheken

hat man in Virtual Env ja nicht drin, also Libc oder auch diverse andere Geschichten.

Das heißt, wenn die sich geupdatet haben, dann kann...

Das ist richtig, das heißt, dann müsste man dann konsequenterweise

weiter zu Docker-Containern gehen oder

ähnlichen Technologien.

Ja, Ansible hilft

ja nicht, weil Ansible würde dann ja dasselbe

Problem haben mit den

Systembibliotheken, dass man das

installiert ja auch typischerweise nur auf ein

existierendes System drauf. Ja, aber du kannst ja

sagen, was der Extern installieren soll

und wenn du das Betriebssystem selber auswählen kannst, dann

kannst du wahrscheinlich auch die Pakete pinnen.

Ja, das ist richtig.

Aber ich muss ganz

ehrlich gestanden sagen, daran arbeiten wir noch.

Also bisher sind wir ganz stolz darauf, da sind wir glaube ich schon fast Vorreiter, nein wahrscheinlich nicht, aber dass wir wenigstens unsere Daten mit den Virtual Env's speichern, dass wir wenigstens da eine verlässliche Datenauswertung haben.

Also in der Physik war es bisher doch recht häufig üblich, dass man die Daten auswertet und dann wenn man eine Publikation macht, die Auswertung auf eine CD brennt und dann mit ins Archiv gibt.

Ich weiß nicht, wie oft jemand tatsächlich so eine CD wieder rausgeholt hat.

Und wenn, ob die dann noch funktioniert, das war sehr unklar.

Das war dann doch eine eher symbolische Aktion.

Und das bei den Physikern.

Ja, also da...

Ja gut, das ist ja noch vergleichsweise fortgeschritten.

In der Medizin wirst du halt die Auswertung gemacht und dann sind die Daten fertig.

Oder du drückst sie aus.

Ja, wobei

ich glaube, dass die Medizin

sogar im Gegenteil mit solchen Sachen

sogar weiter ist, weil sie

ja, also gerade

wenn in irgendwelche Zulassungsverfahren

gehen, da gucken die Leute tatsächlich

Ja, Zulassungsverfahren, klar

Aber Forschungspapers

normalerweise, also wenn du eine Appendix hast

kannst du, wie der Dominik sagt,

kannst du ja abtippen

Wenn du die Rohdaten überhaupt kriegst

Ja, also bei uns ist

die Rohdaten zu kriegen illusorisch

weil sie sind einfach zu groß.

Wie lange speichert ihr denn eure Daten?

Wie lange könnte man denn zu euch kommen und sagen,

hier, ich habe mir jetzt noch was eingefallen?

Das ist eine Frage, die ich dir tatsächlich

noch nicht beantworten kann, weil noch sind

die Platten nicht voll.

Ah, okay.

Irgendwann ist das Ziel

der Serverraum.

Der Serverraum steht gar nicht bei uns, sondern

irgendwo in Hamburg ist da so ein

Serverraum. Den habe ich noch nie gesehen. Weiß ich nicht, wie groß der ist.

Ich weiß nicht,

wie viel Platz da ist, wie viel Platz wir grundsätzlich

noch finanzieren können. Also bisher

muss man sagen,

es gibt so Wochen, wo wir so viele Daten

produzieren. Wenn wir mit

unserem Hauptdetektor arbeiten, dann ist das so, dann

kommt da so viel Daten raus. Wenn wir nicht mit

unserem Hauptdetektor arbeiten, es gibt auch

völlig andere Experimente, wo man

alle 10 Sekunden ein Bild schießt

von 2 Megapixel

und dann, ja,

Das ist ja fast redundant dann im Vergleich.

Genau, das ist dann, wenn du plötzlich beginnst, dass tatsächlich dann Virtual Env das Größte auf der Platte ist.

Aber das ist dann auch egal, weil im Vergleich, also dann hat man halt...

Das spielt keine Rolle.

Genau, das geht dann unter.

Das ist dann auch immer sehr schön dann.

Also da muss man sagen, wenn man da mit unserem Hauptdetektor mit 5000 Bildern pro Sekunde arbeitet,

dann muss man halt wirklich, da hängt halt

wirklich auch Rechenpower hinten dran, das

ausrechnet und dann gibt es dann

ganze Stäbe von Leuten, die nur dafür zuständig sind

das am Laufen zu halten, dass dann die ganzen

Prozessketten da hinten dann das nur machen

während wenn wir dann nur alle 10 Sekunden

ein Bild nehmen, ist das viel schöner, weil dann

kann man das tatsächlich auch alles mit

ein paar Python-Skripten machen und

dann ist man auch deutlich flexibler

darin

irgendwas Schönes zu machen

In welchem

das kommt mir jetzt gerade so in den Sinn, weil

in welchem Format werden die Daten denn dann abgespeichert?

Wird das einfach, also es gibt ja

diese diverse Formate für wissenschaftliche

Zwecke, also NetCDF

oder wie heißt das?

Also unseres ist HD5.

Ja, genau.

Oder SQLite habe ich jetzt gerade gedacht, könnte man ja auch nehmen.

HD5 nehmen wir.

Wobei,

da muss man eine ganze Menge daran rum

entwickeln, dass wir

überhaupt schnell genug schreiben können.

Tatsächlich ist das so, dass wir in

mehrere

HD5-Dateien parallel reinschreiben

weil ansonsten die

HD5-Bibliothek doch an ihre

Grenzen käme

Ich finde sowas super spannend

weil in diesen Bereichen

trifft man dann auch so Probleme

die man sich so als normaler Entwickler gar nicht

vorstellen kann

schon allein die

Bandbreite zu haben, die Daten aus diesem

Sensor auslesen zu können, das muss ja

gigantisch sein und das geht ja weit über das hinaus, was man so als normaler

Mensch in einem Computer je sehen kann und

wenn man sich überlegt, wie viel Bandbreite da an Speicherplatz einfach rauskommen

muss, da zerbrechen viele

von den Abstraktionen, die man normalerweise so hat. Ja, bei uns kommen tatsächlich die Glasfaser

da bündelweise aus den Detektoren raus und

das ist, ja, da hängt richtig Rechenpower dahinter.

Ja klar und das muss dann in irgendwelche Speicherbänke

reingehen und von den Speicherbänken muss es

irgendwo auf

Speicher gehen, aber

ein Kabel reicht an keiner Stelle, das heißt

das muss sicherlich alles parallel sein

Ja genau, das

da

stapelweise an Rechnern stehen dann da übereinander, die das dann

verteilen. Die es alle gleichzeitig

abkriegen. Ja, ja, ja

Das ist tatsächlich

das ist immer sehr lustig

Ich finde das immer so lustig,

dass wenn wir anfangen Daten zu nehmen, dann dauert das mehrere Sekunden,

bis alle TCP-Verbindungen aufgebaut sind, um dann die Daten

zu, einfach nur das Aufbauen der Verbindungen dauert mehrere Sekunden.

Das ist ja schon.

Ja, das hört man sich tatsächlich recht witzig vor, wenn die Sachen durcheinander fliegen,

so eine Riesenmenge, wie man den auffangen will.

Also das ist auf jeden Fall, glaube ich, eher Big Data dann tatsächlich irgendwo, so ein bisschen

Ja, wobei es auf der einen Seite natürlich schon, dass es natürlich Big Data ist, also von der reinen schieren Größe her

Auf der anderen Seite, also was man normalerweise unter Big Data sind, sind halt deutlich strukturierter, als dass wir das haben

Wir haben da ja einfach nur Bilddaten

Bilddaten, ja

Okay, also argumentiert ihr die direkt oder sowas?

Oder gibt es ein Post-Processing, dass da viele Informationen mal reinfließen?

oder ist das einfach nur dann pro Experiment

irgendwie so ein Metainformationsding?

Also wir müssen tatsächlich

während des Experiments darauf reagieren können.

Das heißt,

während des Experiments werden bereits alle Daten

rudimentär

ausgewertet,

damit wir eine Idee kriegen, ob die Daten

überhaupt gut sind.

Wir können es uns nicht leisten, dort mehrere Stunden

lang irgendwas zu messen und am Ende festzustellen,

dass wir leider vergessen haben, die Probe

in den Strahl zu fahren oder so etwas.

und ja, sowas passiert halt auch.

Oder auch, dass man dann halt feststellt,

okay, wir haben mit viel zu viel Intensität gemessen,

also das ist völlig ausgeleuchtet, der Detektor, man sieht gar nichts mehr

oder es war jetzt alles viel zu dunkel oder was weiß ich was,

das kann ja alles gleich passieren.

Und deshalb muss die ganze Zeit auch,

währenddessen werden die Daten rudimentär ausgewertet,

und Jochen unterhalten sich über die Programmiersprache Python

besser, also Visualisierung doch besser in einer

Web-Anwendung und nicht

so mit einem

Standalone-Desktop-Ding.

Genau, aber

die Entscheidung ist damals dafür gefallen

und

das läuft jetzt so.

Und das ist ja auch Python, also

so ist es jetzt nicht.

Und ihr habt auch keine Lizenz-Systeme, weil ihr eine öffentliche

Institution seid wahrscheinlich?

Nee, ist das ja nicht.

Wir sind eine öffentliche Institution, aber

Python ist doch LGPL.

Genau.

sogar als es GPL war, da wir grundsätzlich

alles, naja, sagen wir so,

wir würden, also eigentlich sollte

alles quelloffen sein.

Ja,

wir halten uns da dran, dass jeder,

in der GPL steht ja drin, dass

jedem, dem man den Binärcode gibt, dann auch den Quellcode

geben muss. Das tun wir auch. Bisher ist es

allerdings so, dass bisher noch keiner vorbeigekommen ist

mit dem Binärcode.

und ich glaube, der Grund, dass wir es noch nicht veröffentlicht haben, ist, dass wir das Ganze noch so machen wollten,

dass das schön aussieht, damit es uns nicht zu peinlich ist.

Ja, gerade

in der Anfangszeit ist

das ist doch alles sehr schnell

gestrickt worden. Das Schöne ist,

dass es mit Python geht, dass man mit Python auch

mit schön gestricktem Code,

also mit schnell gestricktem Code am Ende doch

noch sehr schöne Sachen

rauskriegt.

Es ist total witzig,

ich war vor ein paar Jahren auch in so einem Big Data

Projekt drin, kommerzieller Natur,

nicht ganz so groß wie eures und

da gibt es auch eine Visualisierungsoberfläche,

auch in PyQt geschrieben ist.

Und auch da wird über eine Weblösung

nachgedacht und man ist aber noch nicht so weit.

Also es ist schön zu hören, dass die Probleme

doch überall die gleichen sind.

Also grundsätzlich finde ich ja PyQt 5

ist tatsächlich eigentlich

eine sehr schöne Bibliothek, wenn man so eine

Desktop-Anwendung

machen will.

Aber wenn man ehrlich ist,

sind solche Desktop-Anwendungen

eigentlich heutzutage so ein bisschen

nicht mehr.

Ja, man hat das ja früher gemacht,

weil es halt nicht anders ging, weil du halt irgendwelche Grafiken anzeigen musstest

und dann irgendwelche interaktiven Sachen machen musstest mit diesen Grafiken

und dann, ja, normal vor fünf bis zehn Jahren war das im Web noch nicht so einfach,

aber heutzutage ist es ja kein Problem mehr.

Genau, also wir haben angefangen damals mit der Programmierung, also 2009,

damals tatsächlich noch Python 2.

Ja.

und wir haben dann glücklicherweise den Umstieg schnell genug geschafft.

Ja, aber genau, damit habt ihr schon immer die Motoren und so gescheitert,

weil dann hattet ihr das Problem, dass ihr da quasi ja nicht blockieren konntet,

während ein Motor sich verstellt hat, schon länger.

Und als I.O. gibt es ja jetzt erst seit 2015, 14, 15, irgendwann ging das los.

Ja, also

vorher waren wir einfach noch nicht so weit

dass wir, also

in Betrieb gegangen sind wir 2017

und vorher

hatten wir ein paar

Demonstrationsdinger noch nur da rumstehen

es hat lange gedauert

die tausend Motoren da überhaupt einzubauen

und erst wenn du dann genügend von denen

eingebaut hast, stellst du dir dann halt die Frage

dass man die auch tatsächlich parallel fährt

und dann haben wir

glücklicherweise noch im richtigen Moment

die Kurve gekriegt und das Ganze

nochmal, also dann kam

im richtigen Moment auch Async.io

vorbei und dann konnte man das alles

gleichzeitig. Bei den 1000 Modulen muss ich immer

an das von Johannes veröffentlichte

Ding da zum Raumschiff fliegen denken.

Du hast doch mal...

Ja, das ist irgendwie so ein Blockantrag,

ich weiß nicht, mit der Steuerung, die man da machen kann.

Ich weiß nicht,

ich denke schon die ganze Zeit darüber nach, wie man das

wohl in der Home-Automatisierung

verwenden könnte.

tausend Motoren in der Küche platziert,

die dann, keine Ahnung, die Gewürze dosieren.

Aber wie ist das denn?

Wobei wir dann,

das muss man auch der Ehrlichkeit

noch dazu gestehen, noch einmal

eine Ebene unten drunter haben. Das ist

dann eine

kommerzielle Lösung tatsächlich von einer

Firma namens Beckhoff, die dann

die Motoren, die eigentliche

Motorensteuerung macht.

Das, was wir in Python bisher nicht

machen, ist die Echtzeitsachen.

Dafür ist, glaube ich,

auch einfach nicht gut genug.

Also nicht die geeignete Sprache.

Also wenn

der Motor dann

tatsächlich, also da muss man

dann irgendwann am Ende unten mit

mindestens mal 100 Hertz dann den Motor abfragen,

wo bist du denn jetzt? Und dann ihn dann

dementsprechend schneller oder langsamer machen.

Und das geht

mit Python

eher nicht.

Also ein Realtime-Python wäre mir jetzt nicht gut.

Das ist auch häufig so, ja.

Das ist auch häufig so, glaube ich, dass man dann

nach so einer Schicht hat, wo man einfach sagt, ich möchte,

dass der Motor zum Zeitpunkt X an der Stelle

Y ist und das dann einfach

wegschiebt und sagt,

sorg mal dafür. Ja, dafür haben wir uns

eine kommerzielle Lösung gekauft, aber ich

muss sagen, dass die kommerzielle Lösung

genau das Problem hat, dass kommerzielle Lösungen

immer haben, dass wir da dann,

wenn man da an eine Grenze kommt,

dann ist die Grenze

auch hart.

Da läuft man mit dem Kopf gegen die Wand.

Oder man muss viel Geld ausgeben.

Richtig, also jetzt ist es tatsächlich so, dass wenn man für anderthalb Milliarden so einen Tunnel gegraben hat, dann kann man auch mal tatsächlich ein bisschen Geld in die Hand nehmen, aber das ist nicht so.

irgendwo ein Ende haben. Ja, genau.

Und es ist, also

für ganz Kleinigkeiten will man dann

auch nicht mehr, ja,

und

solche kommerziellen Lösungen scheitern

doch am Ende sehr an der Flexibilität.

Muss auch sagen, dass die,

die,

als wir auf die Idee gekommen sind,

dem Hersteller Beckhoff zu erzählen,

dass wir unsere Projekte

in einer Versionskontrolle halten, da

haben die

schon ganz schön geschluckt.

und als es dann hieß, wir finden aber nicht Subversion, sondern Git, da haben die richtige Angst bekommen.

Das ist tatsächlich in der Welt der Automatisierung, sind das alles noch Träumereien, sowas macht man nicht.

und Jochen unterhalten sich über die Programmiersprache Python

und die IDE, die speichert halt die Sachen in ihrem eigenen Format.

Also ich weiß nicht, also das ist am Ende ist das auch nur,

also die Sprache, die die haben, ist eine Pascal-ähnliche Sprache,

die international genormt ist und dafür tatsächlich auch gar nicht so doof ist.

Also es ist sehr interessant diese Welt sich mal anzugucken Zum Beispiel also die Welt von Steuerungssoftware von wie nennt sich das Speicherprogrammierer aber Steuerung nennt sich das auf Deutsch da gibt es eine Programmiersprache die so ganz andere grunds Eigenschaften haben die zum Beispiel keine dynamische Speicherverwaltung kennen und das absichtlich nicht weil wenn man eine Maschine hat dann braucht man nicht pl mehr Speicher

Und bei denen wird, das ist eine Sprache, die von vorne...

Man will das, man will das auch gar nicht, weil das...

Das macht ja eher Abschlüsse.

Das ist ganz schlecht.

Und das sind dann

konzeptuell andere Sprachen, die aber auch

für den Anwendungsfall tatsächlich sehr gut

sind, muss ich sagen.

Und das Einzige ist, dass die dann irgendwie

in IDEs reingepackt

werden und das

sieht dann sehr Pascal-ähnlich aus und warum

man dann diesen Pascal-Code

dann am Ende in XML-Dateien

reinstecken muss,

habe ich nicht verstanden.

Weil man mit XML alles macht.

weil man mit XML einfach alles machen kann.

Spezifikation, ganz so die Idee.

Deshalb und dann dieses XML dann wiederum in eine Versionskontrolle wie Git reinzutun,

ist dann, ja also irgendwie fühlt sich das nicht gut an.

Also insbesondere wenn man dann mergen will und dann, ja was passiert denn,

wenn da dann in dem XML rundherum sich was geändert hat und will das dann mergen.

das ist ja

ja

da gibt es dann noch solche Sachen wie

dass dann die

also

man kompiliert dann seinen Code

und man hat dann ja immer

den Computer der vor einem steht

und dann als zweites

diese speicherprogrammierbare Steuerung

die dann möglicherweise an der Maschine

verbaut ist

und jetzt ist es so, dass die gesamten

Debug-Informationen, die schreibt man natürlich nicht

mit auf die Maschine drauf

am Ende kommt noch der Kunde

vorbei und dekompiliert

den Code. Das heißt,

die Debug-Informationen des Codes

sind nicht mit dem Code zusammen, sondern

auf deiner Maschine, auf deiner

eigenen. Und wenn du dann

nach drei Jahren wieder kommst und

der Kunde sagt, an der Maschine

kannst du mal gucken, was da los ist, dann

musst du dann deinen eigenen Debug-Code bei dir

wiederfinden.

Wie löst

man das? Ja, das ist ganz einfach.

Man speichert, also

man kompiliert das und

checkt dann das Binary mit

in Subversion ein.

Ja.

Yay.

Das sind

alles Sachen, da

dreht sich einem als

Python-Programmierer der Magen um.

Aber

naja,

dafür läuft es

dann halt,

ja, die haben halt auch Zuverlässigkeitsanforderungen.

Ja, aber wäre da nicht,

also, weil das höre ich auch immer aus dem Musikbereich

oder sowas, was auf Echtzeit ankommt, die verwenden

da oft jetzt, also CircuitPython oder

MicroPython oder sowas.

Kann man, wäre das nicht eine Idee, das mit sowas

zu machen, weil...

Ja,

also ich wäre

dafür...

Da bewegt sich, glaube ich, einiges.

Ja, definitiv.

In den letzten Jahren.

Wobei ich da,

eigentlich ganz...

Also ich habe das tatsächlich mal probiert.

Also glücklicherweise...

Das ist tatsächlich so gebaut,

dass die ganzen Motoren hängen dann

an...

Wie nennt man das? Klemmen dran.

Also an Motorklemmen.

Auf Englisch Terminals. Vielleicht hilft das besser.

Die dann halt miteinander per Ethernet

miteinander verbunden sind.

Und tatsächlich mit Ethernet, da läuft kein

IP drüber, sondern direkt

über Ethernet und das

ist dann in einer

Echtzeitversion namens EtherCAT.

Glücklicherweise ist das

Protokoll vollständig veröffentlicht

und ich habe dann tatsächlich

mal, das ist ja nicht so das Problem, dann sich mit

Python diese Pakete, die man da über das Netzwerk

schicken muss, dann halt zusammenzubauen

und dann kann man das damit tatsächlich

machen. Ja und dann

merkt man halt dann plötzlich, dass dann

dass man halt nicht redet, dass man

nicht Echtzeit ist.

Und da tut dann auf einmal Echtzeit tatsächlich

nämlich W.

Also es fängt dann schon mit an,

dass der Hersteller dann anfängt, solche Sachen zu machen,

wie dass die

Buffer,

die in den Netzwerkkarten drin sind,

abgeschaltet werden müssen,

weil die die Latenz kaputt machen.

Ja, klar.

Das heißt, wahrscheinlich willst du dann auch gar kein Betriebssystem

haben, sondern du willst vielleicht im Kernel sein oder so.

Die Firma Beckhoff

hat einen sehr engen Vertrag mit

Microsoft, dass sie

direkt am

Kernel von Microsoft arbeiten

können.

Aber mit Linux könnte man das doch auch.

Da gibt es doch sogar irgendwie im Linux-Kernel

so eine Schnittstelle, wo man...

Es gibt ja auch so RT-Linux-Sachen.

Es gibt auch

in Deutschland

einen zweiten Hersteller, der

tatsächlich das Ganze

auf Linux macht. Das geht

alles, auch mit Realtime und allem drum und dran.

Ja, mein Unternehmen hat sich, also wir sind zwar eine staatliche Einrichtung, aber rein rechtlich sind wir ein Unternehmen im Staatseigentum.

Und wir haben uns damals, also was heißt wir, hätte man mich gefragt, ich hätte es nicht genommen, aber man hat sich halt für eine Windows-Lösung entschieden, weil das ja professionell ist.

Achso, das ist ein richtiger Anfänger.

Ja gut.

Jetzt ist mir auch eingefallen, was der Johannes meinte,

den Bitcontroller, den hätte ich gerne da für die

Steuerung dieser Motoren. Geht das, Johannes?

Achso. Ja, das

da hast du irgendwo einen Controller drin,

der sowas macht, ja. Ja.

Das geht da oft

ganz tief runter.

In dem Bereich bewegt

sich ganz viel

auch was so

Industrie 3 und Industrie 4 angeht,

weil man halt ganz viel mit

Rechenleistung erschlagen kann.

Ich habe vor einigen Jahren bei einem kleinen deutschen Hardwarehersteller, bei einem mittelständischen Hardwarehersteller Beratung gemacht und die hatten noch ganz viele so Sachen, die halt aus einer Zeit kommen, wo du alles ausnutzen musstest, was so ein Prozessor halt mitgebracht hat.

und heutzutage ist es ja mehr so,

ja, hier hast du den Prozessor,

der 180 Megahertz hat und vier Kerne

und der kostet auch nur 5 Euro.

Da ist es dann schon so ein bisschen egal.

Da kannst du schon viele Sachen machen,

die du früher halt einfach nicht machen konntest,

einfach durch Rechenleistung erschlagen.

Und wenn du aber nur ein Megahertz hast

und nur einen Prozessor

und musst aber acht Motoren gleichzeitig steuern

und die sollen auch gewisse Kurven einhalten,

dann ist das halt anstrengender

und deshalb ist ganz viel

von dieser Hardware noch so ein bisschen

anders aufgebaut

als man das vielleicht heutzutage machen würde

auch weil sich diese

Welten sehr langsam bewegen, auch weil da

sehr viel Geld drin ist

diese Geräte, die

ihr da gekauft habt, um eure

1000 Motoren zu steuern, die werden sicherlich

alle ein paar Euro gekostet haben

Ja, definitiv

Interessanterweise ist es dann so, dass das bis heute so ist

dass dieser

und

Feedback kommen, ob der Motor schon weit genug ist oder nicht.

Und heute werden die dann tatsächlich getrennt

von zwei Prozessen dann emuliert.

Das macht eigentlich heutzutage gar keinen Sinn mehr.

Dann läuft auf dem einen Prozessorkern die langsamere Steuerung,

die dann irgendwie so mit 100 Hertz arbeitet und daneben noch

eine zweite, die dann mit 10 Kilohertz arbeitet und die dann über

ganz magische Dinge sich miteinander

unterhalten.

Das wird dann sehr bald sehr hanebüchen.

Das ist alles halt nur noch historisch zu

erklären. Und ja, ich würde

sowas gerne alles durch Python ersetzen,

aber so schnell bin ich nun auch wieder

nicht, da alleine die

Industrie kurz mal umzukrempeln.

Ja, nein.

Aber wir sind ja jetzt zu viert hier.

Also schon mal viermal schneller.

Ja, das ist das.

Interessanterweise habe ich das einmal ausprobiert, dass

tatsächlich so eine Steuerung

in Linux zu basteln und stellte dann fest, dass tatsächlich

die beste dafür geeignete Hardware ein Raspberry Pi war

und zwar deshalb, weil dessen Netzwerkkarte...

Keine Buffer hat.

Genau.

Das war dann auch sehr praktisch, weil so ein Ding ist einfach auch bei

weitem schnell genug und auch zuverlässig genug.

Interessant auch, was man da so alles achten muss, wenn man

also die Steuerung zusammenstecken möchte.

Ja,

faszinierend.

Sehr, sehr interessant.

Ja,

ich weiß nicht,

vielleicht, was ist denn,

was findest du denn so bei dieser ganzen

Geschichte, das mit Python zu steuern,

was sind die Dinge, die dich da

interessieren oder was fandest du cool oder was funktioniert

mit Python noch nicht so gut oder

ja, ich weiß nicht.

Also was mich immer

wieder begeistert ist, mit welcher

Geschwindigkeit, man einfach so kleine, praktische

Sachen machen kann.

Also wie ich da

erwähnt habe, dass man da einfach ein Foto nimmt

und dann auf das Foto draufklickt und

dann fährt der Motor dorthin.

Das sind so Dinge,

für die würde man

halt nicht das als Auftrag

stellen und dass dann monatelang ein Entwickler

dran sitzen. Aber in Python waren

das alles dann auch am Ende

auch nur ein paar Zeilen.

Also diese

kleinen, schönen Dinge,

und Jochen unterhalten sich über die Programmiersprache Python

und Jochen unterhalten sich über die Programmiersprache Python

und ja, also sehr schnell geht. Also was ich auch sehr schön finde, ist das, was ich gerne mag einfach, gut, das ist die Geschmackssache, dass wir kommen, also wir haben halt unglaublich viele irgendwelche experimentellen Gerätschaften, dass wir dann, also der Strahl, der da bei uns in den Strahl reinpinkelt, der wird halt von einer Hochdruckpumpe gesteuert.

und dann kommt da plötzlich mein Kollege mit dieser Pumpe da an, stellt sie vor dich hin und sagt, ja, das muss ja heute Nachmittag laufen.

Und das ist dann eigentlich gar nicht so das Problem, weil man halt Batteries included immer gleich alles da hat

und hat unglaublich schnelle Entwicklungszeiten.

Also ein großes Problem ist, dass der User kommt da mit so einem Ding an, also der Benutzer, muss ich auf Deutsch sagen,

kommt da mit irgendeinem Ding an,

das hat, das, das, das,

keine Ahnung, das kostet

100.000 Euro, bringt der da jetzt,

der kann mir nicht Monate

vorher das zum Ausprobieren schicken,

damit ich dafür was programmiere.

Das geht nicht, sondern der kommt drei Tage

vorher an und sagt,

sorg mal dafür, dass diese Pumpe da läuft

und das da

in den Strahl reinpinkelt und

dann

heißt es und los und

und dann ist es halt echt von Vorteil, dass man da völlig, ja, auch das, was einer mal gemeint hat, das habe ich mal gehört, Expressibility, dass man in Python recht komplexe Sachen schön ausdrücken kann, dass man, also, ja, wie sieht das, also, ja, natürlich,

und die elektroorganisierte Programmierung.

Klassen gibt es überall.

Das machen ja inzwischen alle.

Aber dass man dann in der Klasse dann tatsächlich,

also wir haben dann eine Pumpe

und die kann dann an, aus und was weiß ich was,

Druck und Volumen oder so etwas.

Und dann kann man da,

dann schreibt man halt rein, Klasse Pumpe,

Class Pumpe,

natürlich alles auf Englisch, weil

das ist ja nicht in seiner Firma. Und dann schreibt man einfach direkt

die Parameter rein, Druck

an, aus, sonst etwas.

und

das ist dann gleichzeitig

aus Sicht des Benutzers

sind das dann

die Buttons, auf die man draufklicken kann oder die Funktionalität,

die man von dem verwenden kann und gleichzeitig

auf der anderen Seite

steht dann bereits reingeschrieben,

was man denn dem Gerät

sagen muss, dass

das auch so funktioniert.

Wir haben uns dann ein ganzes Framework zusammengeschrieben,

das dann, wie heißt das bei

euch Webleuten, Django Forms

oder so,

dass wir halt

Forms, die halt keine Webseiten sind

sondern Beschreibungen für Geräte sind

und die kann man halt dann die

Parameter, die so ein Gerät hat, einfach reinschreiben

und die halt dann aus der Benutzerseite

sehen, die kann man da

irgendwie Werte reinschreiben und

ja, dann unser Framework

guckt sich dann halt an und auf der anderen Seite

schickt es dann die Kommandos an die Pumpe raus

und das kann man alles so

in einem Framework machen

und einfach so hinschreiben und

und ja, also wie das in einer anderen Programmiersprache aussehen würde, weiß ich, da das ja Konkurrenz immer noch in C++ macht und da müssen dann halt Kopfstände gemacht werden, weil also wie soll ich denn da deklarativ da in C++ überhaupt da was hinschreiben?

Da wird dann immer

so ausführbarer Code dann

hingeschrieben, der dann

magische Datenstrukturen

im Hintergrund aufbaut

Furchtbar

Man kann halt

in sowas wie C++

nichts deklarativ hinschreiben, wo man einfach

sagen kann, das ist so

und das dann von einem

Framework auslesen lassen, sondern

man kann halt nur Code hinschreiben

und das

ist halt das, was

so ein Framework halt

sehr mächtig macht.

Und mit solchen Sachen kann ich dann halt

innerhalb von einem Nachmittag so eine

blöde Pumpe zum Laufen kriegen.

Wie lange wird jetzt

die++-Entwickler dafür brauchen?

Auch eine Woche wahrscheinlich.

Jetzt sind wir wieder bei

einem der wichtigsten Dinge, glaube ich, für Python.

Das ist also dieses

Time-To-Market.

Genau.

Und das ist bei uns, wie gesagt,

und Jochen unterhalten sich über die Programmiersprache Python

aber dass auch unsere Wissenschaftler tatsächlich

bereits in der Lage sind

sich dann so einfache Sachen selber

zusammenzuschreiben

das ist mit Python, ja gut

was auch daran liegt, dass in der Physik

doch Python inzwischen sehr weit verbreitet ist

und man dann sagen konnte, hier das machst du doch schon

in der Datenauswertung, du machst doch schon immer deine

Jupyter Notebooks mit deinem Python

hier guck mal, da schreibst du ein bisschen anders

und dann kannst du damit auch irgendwelche Motoren

nach links oder rechts fahren

das wird man verstehen dann, ja

Python ist ja so gesehen auch nicht schwer

von der Sonntagsher dann

Überhaupt nicht

Ich finde das ist eine der schönsten

Sachen an Python ist

man kann es

zu, also eigentlich vollständig

verstehen

Wir hatten mal da Bewerbungsgespräche

wo dann

sich C++ und

Python Programmeer beworben haben

die haben wir dann immer gefragt

bei einer Skala von 1 bis 10

wie gut sind deine C++-Kenntnisse

und wenn dann einer sagte

9

dann war das sozusagen eine Herausforderung

sich eine fiese Template-Geschichte zu überlegen

die keiner kennt

oder keiner kann

die kann man ja problemlos

problemlos

sofort aus dem Hut zaubern

also ich muss die Antwort ja nicht kennen, ich muss nur die Frage stellen

während

wenn dann da ein Python-Programmierer steht

und sagt

gut, wie gut ist dein Niveau

Python 9?

Da muss ich sagen, dass ich schon

also sogar, also Fangfragen

zu stellen schon, also ich glaube,

dass es viele Leute

gibt, vielleicht sogar in diesem Podcast,

die 90% von Python verstanden

haben.

Ja, wobei es auch schwerer wird mit der Zeit, also in letzter Zeit

kommt halt immer mehr dazu und

ich meine, ja, das wird

auch nicht, oder das ist auch etwas, was viele Leute

beklagen, dass es halt für Anfänger jetzt immer schwerer wird,

weil halt der Sprachumfang, also gerade wenn man jetzt sowas nimmt wie

Typ-Annotationen oder so, finde ich persönlich auch gar

nicht mehr so furchtbar einfach

immer das so hinzuschreiben, dass es dann passt

das ist halt schon

das ist halt wieder so ein ganz eigenes

Python wird halt irgendwie umfangreicher

mit der Zeit

also es war auch früher

Das hört sich auch an einer guten Episode an

die man da mal aufnehmen könnte

Fangfragen und die Ecken und Kanten

Ich überlege, weil mir fällt sofort ein Ding

ein, schreib mal die

Funktion

min oder max in Python hinzuschreiben,

ist halt sehr, sehr einfach.

Schreibt mal die Type-Annotation richtig

dafür hin.

Die Type-Annotationen

sind wesentlich mehr Code als die Funktion selber.

Das ist echt

schwierig.

Nimm zwei Parameter vom Typ any und gib zurück.

Ja, ja, aber

darf nicht any, gut, das geht natürlich,

dann ist es einfach, aber es darf nicht any sein und es sollte

keine Forza Negatives haben.

Dann ist es halt schon so.

Ja, wobei ich bei Type Annotations, muss sagen, ich habe mich da nie wirklich reingefuchst, weil, also zumindest das, was ich von gesehen habe, vielleicht klärt ihr mich eines Besseren auf, also was mich jetzt interessiert, also Typen interessieren mich jetzt tatsächlich eigentlich wenig, weil bei uns, was eher reinkommt, ist eher die Frage Einheiten, also so etwas wie ein Motor bewegt sich typischerweise um eine Länge

und das berühmte Beispiel

des irgendeiner abgestürzten

Satelliten auf dem Mars oder so etwas

ist ja hinlänglich bekannt, wo sie da dann

Zoll mit Millimeter verwechselt haben.

Wenn man da geschickt annotieren

könnte und meint... Ja, das ist ein Type, oder?

Nee. Ja, gut, also

schon irgendwie, aber dann halt

auch... Nee, das ist doch kein Type.

Nein. Der Type ist Zahl.

Genau. So kann

man das sehen. Oder man kann jetzt für jeden

Einzelnen dann auch wieder

Ich würde versuchen, sowas zu definieren.

Ja, aber dann

bist du lange beschäftigt.

Also bis man da einmal sämtliche Einheiten,

die man dann durchmacht...

Wahrscheinlich ist halt die Frage, wenn der Input falsch ist, woher weiß man dann, welche Einheit ist denn das dann?

Wenn das nur Zahl ist.

Das ist ganz einfach, weil man kann

einfach den Gattekomma verschieben und dann hat man

eine andere Skala.

Das ist halt

die Grenze.

Das sind die Grenzen von so einem Typsystem.

Du hast immer Sachen, die vom gleichen Typ sind,

aber unterschiedliche Bedeutung haben.

Das klassische

Beispiel ist die String-Format-Methode.

Printf im klassischen

Sinne. Die nimmt zwei Strings

und der eine ist das Format und der andere ist das, was

in das Format eingesetzt wird. Und du kannst

die nicht auf Typebene unterscheiden,

weil das sind beide Strings.

Und diese Grenze gibt es immer.

Immer eine Grenze

zwischen Bedeutung und

Inhalt.

Das beste Beispiel in der App von Python war damals

ja, wo jetzt besser Python 3

eingeführt wurde, dass

Bytes und Strings, es gibt

vielleicht noch welche von euch, die lang genug an Python

dabei sind, dass das mal früher 1 war.

Ja, das war schrecklich.

Ja, was auch interessanterweise

daran liegt, dass halt Python

älter ist als der Unicode-Standard und man das

halt damals einfach noch nicht machen konnte.

Und Java ist halt ein bisschen jünger und Java konnte

es halt gleich rechtlich machen, aber Python halt nicht.

Und dann, ja.

Und das war, glaube ich, das einzige Mal, dass von der Seite

irgendwelche Lacher kamen.

Ja, aber wenn man zum Beispiel

die Unterscheidung zwischen Bytes und Unicode

einfach hätte durch Type Annotations

machen können,

dann hätte man gar keine neue Python-Version machen können

müssen, sondern hätte einfach nur das

annotiert und

deine IDE sagt dir

dann, ach, an der Stelle versuchst du aber

Unicodes plus Bytes zu machen, das geht doch nicht.

Böse, böse.

Und

ja.

Habt ihr denn eine Lösung für dieses Einheitenproblem?

Habt ihr da was, was

Kannst du uns Tipps geben?

Es gibt eine Bibliothek namens Pint, die ist ganz gut,

aber die arbeitet halt erst auf der Ausführungsebene,

nicht auf der IDE-Ebene,

dass man halt die Werte, die tatsächlich,

die haben dann eine Einheit

und das funktioniert dann auch ganz gut,

da kann man sich dann Meter, Millimeter addieren

und das macht dann alles Richtige

und wenn man versucht, Meter mit Sekunden zu addieren,

dann sagt er einem, das geht nicht,

aber das Blöde ist, das macht es halt erst auf Ausführungsebene,

Wenn man dann irgendwie tausend Meter reingegeben hat, aber tausend Sekunden meinte, ist dann doof.

Ja genau, also dann stürzt es einfach ab.

Oder es wird halt eine Exception geworfen, klar.

Es wäre natürlich schön, wenn man das bereits, Type Annotations laufen ja halt viel früher.

Das ist ja schon in der ADI das Richtige.

Da sieht man da schon, dass das passiert.

Und nicht erst, wenn dann blöderweise ein einziges Mal diese komische Funktion beim Landen auf dem Jupyter ausgeführt wird.

und dann halt eine Exception geworfen wird, anstatt dass...

Ja, das ist dann halt der falsche Zeitpunkt.

Das sind so einige Experimente, die man einmal machen kann, das ist schon sehr kritisch von mir.

Ja, ja, ja.

Ja, das ist...

Ich bin mal auch gespannt.

Ich meine, TypeScript geht da ja auch sehr...

Forsch voran.

Ja, genau.

Und da habe ich das letztens gesehen, ich weiß nicht genau, dass da Leute...

Man kann fast aus den, wenn man die Type-Annotationen richtig schreibt, kann man fast den Code da schon generieren, sozusagen.

Weil da schon so viel Information drin ist, dass man sagen kann, okay, jetzt ist klar, was die Funktion machen muss.

Aber es fühlt sich irgendwie auch ein bisschen, also es ist auf der einen Seite interessant, auf der anderen Seite denkt man sich so, wow, das ist aber ganz anders.

Ja, aber ich glaube tatsächlich, diese ganzen Typen-Geschichten heben wir uns bei einer anderen Folge auf.

Ja, ja, das, genau, müssen wir mal irgendwann, ja, genau.

Ich fand das sehr interessant, Martin. Vielen Dank dafür.

Das ist immer total spannend, für was Python alles so benutzt wird.

Was man da so stolpert.

Das ist super wichtig.

Was man da für schöne Sachen mit zaubern kann.

Ein bisschen Magie hinter.

Und man hat halt immer so die schnelle

Magie in den Fingern.

Habt ihr noch

irgendwas zu diesem Thema oder

kommen wir langsam dem Ende entgegen?

Möchtest du noch was erzählen, Martin?

Nö, ich glaube, ich bin jetzt dann auch durch.

Also ich fand es super spannend, dieser ganze Problembereich, lauter Sachen, die man so als normaler Programmierer, sage ich mal, nicht so sieht, die da auftreten und dass Python da trotzdem gut funktioniert. Ich finde es großartig. Ich finde es super spannend und ich finde es großartig.

Dann haben wir immer die Tradition, dass wir einen Pick der Folge machen

Ich weiß nicht, ob du das schon kennst

Du musst ein Python-Modul irgendwo raussuchen und sagen, warum du das toll findest

Du musst nichts mit deinem Thema zu tun haben

Du kannst auch was anderes mal nehmen, musst nicht unbedingt einen Python

Er hat ja gerade schon Pint gesagt

Da kann man den Kürtel mal noch aufnehmen

Soll ich mal anfangen?

Ich habe nämlich einen

Ja. Achso, ich weiß nicht. Ich habe vor einer

Weile eine Bibliothek gefunden, die heißt

Deutschland.

Pip install Deutschland.

Ist noch keine

1.0, ist leider noch eine

kleinere Version. Und

das sind einfach Sachen

drin mit Daten über Deutschland.

Verschiedene APs

angebunden, verschiedene Dinge

angebunden, sodass man

einfach sich Sachen über Deutschland

anschauen kann. Hast du es gerade

offen, Dominik? Bundesanzeiger.

Genau, einfach

interessante Daten über Deutschland.

Die Geografie und

genau, Autobahndaten,

das Presseportal, die Polizei

Brandenburg, Autobahndaten,

Reisewarnungen, Zollwarnungen,

das Presseportal der Bundestag,

das man sich

abrufen kann.

Ja, und das ist jetzt Version 0.1.9,

also Deutschland ist noch nicht reif

genug für eine

1.0, aber

und wer mit deutschen Daten arbeiten möchte,

kann sich die so einfach reinholen.

Auf eine sehr pythonische Art und Weise.

Also ich habe auch von Johannes was gebraucht.

Man müsste mehr damit machen.

Johannes hat mir nicht was über PyTest erzählt

und ich habe gesehen, dass man Rich auch mit PyTest machen kann

und PyTest Rich genommen,

weil einfach das es dann ein bisschen hübschere PyTest-Ausgabe gibt.

Ja.

Ja.

Du wolltest was außerhalb von PyPy nehmen?

Ja, genau.

Ich habe deswegen nur so gemeckert,

weil ich was hatte, was da nicht reinpasst,

deswegen dachte ich, muss ich da mal schon mal gleich irgendwie

entsprechend

mich positionieren. Genau, was ich

picken wollte, das habe ich von der PyCon mitgebracht

und das hat der

in einem Lightning Talk, Florian

Bruhin von einer der

Pettest-Maintainer hat das vorgestellt

und zwar, weil er

immer nachgucken musste, wie Fstring

Geschichten, mit denen man ja wahnsinnig viel

machen kann, wie man das denn dazu

in welchem Fall macht, hat er

eine Seite schnell mal hochgezogen

die nennt sich fstring.help

slash cheat

slash, also so ein

Cheat-Sheet

für Python F-Syncs

und ja, das ist tatsächlich

sehr gut gemacht und

hat mir auch schon geholfen, finde ich super.

Genau, sollte man sich irgendwo hinlegen,

wo man das dann irgendwie wiederfindet.

Ja.

Die etwas

ältere Variante davon heißt PyFormat.

PyFormat.info.

Ah, okay.

kann man über Prozent und Punkt Format

Formatierung nachlesen. Habe ich auch schon

sehr, sehr häufig aufrufen müssen.

Ja.

Vielen Dank, Martin, dass du dabei warst und uns mit deinem Wissen bereichert hast.

Ja.

Danke auch, dass ich

schön erzählen konnte.

Danke, Johannes.

Und bleibt uns alle gewogen.

Hört uns, schreibt uns wieder rein.

Irgendwelche Kommentare an hallo.pythonpodcast.de

Genau.

Und einfach bis zum nächsten Mal.

Tschüss.

Bis dann, ciao