WEBVTT

00:00:00.000 --> 00:00:02.700
Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Paisen-Podcast.

00:00:03.360 --> 00:00:04.460
Wisst ihr, welche Episode wir heute haben?

00:00:05.940 --> 00:00:06.940
42, ist das nicht schön?

00:00:07.800 --> 00:00:08.000
Tja.

00:00:08.520 --> 00:00:10.000
Das hättet ihr wissen müssen, das ist ja die Antwort auf alles.

00:00:10.960 --> 00:00:12.740
Bei uns ist natürlich wieder Jochen, hi Jochen.

00:00:13.200 --> 00:00:13.760
Hallo Dominik.

00:00:14.020 --> 00:00:15.200
Johannes ist wieder da, hi Johannes.

00:00:15.760 --> 00:00:16.340
Hallo zusammen.

00:00:16.400 --> 00:00:17.300
Ja, ich bin der Dominik.

00:00:17.340 --> 00:00:18.520
Und wir haben den Martin heute zu Gast.

00:00:18.740 --> 00:00:18.920
Jo.

00:00:19.060 --> 00:00:19.280
Hallo.

00:00:19.460 --> 00:00:20.000
Hallo Martin.

00:00:20.200 --> 00:00:20.420
Hallo.

00:00:21.080 --> 00:00:21.840
Schön, dass du auch dabei bist.

00:00:22.140 --> 00:00:22.840
Was machen wir denn heute?

00:00:23.500 --> 00:00:26.080
Die Folge heißt Laser des Todes.

00:00:26.900 --> 00:00:27.260
Todeslaser?

00:00:27.520 --> 00:00:28.360
Todeslaser mit Paisen.

00:00:28.620 --> 00:00:28.980
Todesstrahlen?

00:00:28.980 --> 00:00:29.340
Ja.

00:00:29.340 --> 00:00:29.680
Ich weiß nicht.

00:00:29.940 --> 00:00:30.840
Warum heißt das denn so, Martin?

00:00:32.260 --> 00:00:38.780
Ja, ich wollte ein bisschen erzählen, wie wir, ich arbeite in Hamburg an dem Röntgenlaser XFEL

00:00:38.780 --> 00:00:44.080
und wie wir das Ganze dort mit Python steuern und wie wir dort unsere Experimente machen.

00:00:44.140 --> 00:00:44.600
Das klingt interessant.

00:00:45.060 --> 00:00:48.800
Und ja, also wenn wir Python nicht hätten, wäre er tot, ist er Todeslaser?

00:00:49.400 --> 00:00:49.600
Nein.

00:00:52.340 --> 00:00:52.940
Ja, sehr gut.

00:00:52.940 --> 00:00:53.360
Der tote Laser.

00:00:54.080 --> 00:00:54.480
Genau.

00:00:54.820 --> 00:00:57.020
Ja, das machen wir heute.

00:00:57.200 --> 00:01:01.260
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.

00:01:01.700 --> 00:01:06.020
Und wir wollen euch ein bisschen darüber erzählen, was wir von euren Fragen halten.

00:01:06.660 --> 00:01:12.680
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?

00:01:13.420 --> 00:01:15.120
Da wollen wir einfach so ein bisschen drüber quatschen.

00:01:16.220 --> 00:01:18.500
Ja, dann fangen wir doch mit den News an, oder?

00:01:19.360 --> 00:01:21.680
Ja, alles klar. Was haben wir denn für News?

00:01:21.680 --> 00:01:23.680
Johannes hatte irgendwas ganz Interessantes, habe ich gehört.

00:01:26.720 --> 00:01:28.720
Nichts, was man öffentlich sagen kann.

00:01:29.180 --> 00:01:29.420
Ach so.

00:01:31.400 --> 00:01:34.340
Wir nehmen die Folge auch schon zum mehrfachsten Mal wieder auf.

00:01:34.480 --> 00:01:36.100
Also eigentlich wollten wir euch ja auch mit Listen beglücken,

00:01:36.240 --> 00:01:37.260
aber das werden wir dann mal anders machen.

00:01:38.000 --> 00:01:38.620
Die laufen auch nicht weg.

00:01:39.240 --> 00:01:41.400
Ihr hört vielleicht, Johannes hört sich heute besonders toll an.

00:01:42.640 --> 00:01:44.400
Ja, ich habe sogar einen Lob vom Jochen erhalten.

00:01:44.660 --> 00:01:46.000
Das ist höchst ungewöhnlich,

00:01:46.300 --> 00:01:48.600
dass die Todqualität vom Jochen gelobt wird.

00:01:49.460 --> 00:01:50.540
Ja, es ist erstaunlich.

00:01:50.540 --> 00:01:52.600
Aber wenn man Geld ausgibt, kann man Probleme lösen.

00:01:52.820 --> 00:01:55.040
Das ist sehr überraschend.

00:01:55.060 --> 00:01:56.200
Ja, man kann auch Probleme lösen, wenn man kein Geld ausgibt,

00:01:56.260 --> 00:01:58.300
aber manchmal braucht man dann länger und ist nerviger

00:01:58.300 --> 00:01:59.140
und so. Ja,

00:01:59.780 --> 00:02:02.140
über Sachen basteln und Audio-Hardware ist auch nicht

00:02:02.140 --> 00:02:03.340
meine Expertise und so.

00:02:04.120 --> 00:02:06.380
Es ist der Geldweg

00:02:06.380 --> 00:02:07.200
immer eine Möglichkeit.

00:02:08.380 --> 00:02:10.160
Also größte News für Hannes hat ein neues Mikrofon.

00:02:10.260 --> 00:02:10.960
Haben wir noch was anderes?

00:02:11.780 --> 00:02:13.620
Haben wir noch was anderes? Ja, wir haben zum Beispiel...

00:02:13.620 --> 00:02:14.840
Jemand war auf der PyCon, habe ich gehört.

00:02:15.740 --> 00:02:17.880
Ja, richtig. Ich dachte ja eigentlich, das hatte ich beim letzten Mal erzählt,

00:02:17.880 --> 00:02:19.540
dass ich da gar nicht hinfahre. Schade, schade, weil

00:02:19.540 --> 00:02:21.780
irgendwie alle Tickets schon weg und so. Und dann hat es sich

00:02:21.780 --> 00:02:23.340
aber doch noch ergeben, dass sich irgendwie da

00:02:23.340 --> 00:02:25.360
Tickets auftun und

00:02:25.360 --> 00:02:27.880
dann konnte ich da doch noch hin, kurzfristig

00:02:27.880 --> 00:02:29.700
und ich dachte auch, ich hätte keine Zeit, aber ich hatte dann doch Zeit.

00:02:30.560 --> 00:02:31.700
Ja, und das war sehr nett.

00:02:32.020 --> 00:02:33.760
Also war jetzt die erste, ich war

00:02:33.760 --> 00:02:35.500
das letzte Mal auf der

00:02:35.500 --> 00:02:37.480
PyCon 2019, also vor zweieinhalb Jahren

00:02:37.480 --> 00:02:39.680
und ja, war sozusagen die erste

00:02:39.680 --> 00:02:41.900
Konferenz dann wieder nach all der Zeit

00:02:41.900 --> 00:02:43.680
und das war... Aber man konnte niemanden erkennen, weil die da

00:02:43.680 --> 00:02:46.980
noch getarnt war. Ja, weil Maskenpflicht

00:02:46.980 --> 00:02:47.360
und so

00:02:47.360 --> 00:02:49.720
und ich hätte, genau, das hatte auch

00:02:49.720 --> 00:02:51.640
jemand von euch schon irgendwie mal

00:02:51.640 --> 00:02:53.560
erzählt, da hätte man sich ja auch das

00:02:53.560 --> 00:02:55.380
das eigene Gesicht irgendwie aufs T-Shirt drucken können oder so.

00:02:55.420 --> 00:02:56.900
Das wäre praktisch gewesen, dann hätte man Leute erkennen können.

00:02:57.140 --> 00:02:58.000
Oder direkt auf die Maske.

00:02:58.320 --> 00:02:59.620
Ja, oder auf die Maske, genau.

00:03:00.040 --> 00:03:01.680
Bin ich nicht drauf gekommen, aber das wäre natürlich gut gewesen.

00:03:01.700 --> 00:03:03.300
Die guten Ideen hatten wir immer erst hinterher.

00:03:03.720 --> 00:03:06.060
Ja, auf jeden Fall genau.

00:03:06.120 --> 00:03:07.320
Das mit den Masken war natürlich so ein bisschen,

00:03:07.460 --> 00:03:10.440
das hat sich noch nicht so angefühlt wie immer, ehrlich gesagt.

00:03:10.560 --> 00:03:13.240
Aber es war auf jeden Fall schon mal ein Schritt in die richtige Richtung.

00:03:13.680 --> 00:03:15.580
Und ich war jetzt letztens auch auf der Beyond Teller-Rand.

00:03:15.580 --> 00:03:17.460
Das ist so eine Web-Entwicklungskonferenz.

00:03:18.160 --> 00:03:19.280
Mit ganz vielen Design-Troics.

00:03:19.740 --> 00:03:23.140
Ganz viel Design und nicht nur Computer-Kram,

00:03:23.260 --> 00:03:24.380
sondern halt auch Kunst und so.

00:03:25.500 --> 00:03:26.880
Und so ein bisschen die hippe Szene, die sich

00:03:26.880 --> 00:03:27.920
dafür hält.

00:03:28.640 --> 00:03:31.220
Ja, die hippe Szene,

00:03:31.300 --> 00:03:33.100
das könnte man sagen. Meine coolen

00:03:33.100 --> 00:03:34.060
Freunde, die gehen dahin.

00:03:35.480 --> 00:03:36.700
Du weißt, deswegen habe ich es nicht geschafft.

00:03:37.220 --> 00:03:39.260
Ich war da nur einmal und dann war es mir zu cool.

00:03:39.620 --> 00:03:39.780
Ja.

00:03:41.700 --> 00:03:42.900
Aber ja genau, also

00:03:42.900 --> 00:03:43.720
es ist deutlich,

00:03:44.920 --> 00:03:46.460
also die ganze Atmosphäre da ist halt

00:03:46.460 --> 00:03:47.440
schon so ein bisschen,

00:03:48.360 --> 00:03:50.740
der Vibe ist einfach anders

00:03:50.740 --> 00:03:52.500
und ist angenehmer, ehrlich gesagt.

00:03:52.600 --> 00:03:54.300
Und da haben die Leute dann schon keine Masken mehr getragen,

00:03:54.400 --> 00:03:57.900
was möglicherweise daran lag, dass die ganzen Regeln dann auch

00:03:57.900 --> 00:03:59.200
irgendwann obsolet wurden.

00:04:00.080 --> 00:04:02.160
Aber auch, dass die Räumlichkeiten einfach besser geeignet waren,

00:04:02.240 --> 00:04:03.220
weil viel mehr Raum und so.

00:04:03.220 --> 00:04:04.940
Aber es waren auch ein paar interessante Talks, habe ich gesehen.

00:04:05.100 --> 00:04:08.020
Also sehr interessante Leute, auch international, die geflogen sind.

00:04:08.180 --> 00:04:09.020
Ist eigentlich immer so.

00:04:09.120 --> 00:04:10.240
Das ist auch komisch.

00:04:10.360 --> 00:04:11.120
Das weiß keiner so.

00:04:11.580 --> 00:04:13.000
Oder ich weiß nicht, ob die Leute das wissen,

00:04:13.000 --> 00:04:18.740
aber das ist tatsächlich eine der besten Webkonferenzen so weltweit.

00:04:19.000 --> 00:04:20.260
Und die findet einfach so in Düsseldorf statt,

00:04:20.740 --> 00:04:21.540
in so einem alten Theater.

00:04:21.740 --> 00:04:22.320
Oh, wie praktisch.

00:04:22.600 --> 00:04:24.840
Ja, und da kommt immer so die...

00:04:24.840 --> 00:04:26.280
Kann man die Videos inzwischen ansehen?

00:04:26.700 --> 00:04:27.080
Ja, ja.

00:04:27.260 --> 00:04:28.780
Weißt du, dass man die aus den Vorjahren immer sehen konnte?

00:04:28.900 --> 00:04:29.520
Aber gibt es das inzwischen?

00:04:29.820 --> 00:04:31.600
Doch, nicht mehr auf Vimeo,

00:04:31.900 --> 00:04:36.480
weil Vimeo hat gepivotet und macht was anderes jetzt.

00:04:37.460 --> 00:04:39.440
Aber die sind jetzt auf YouTube,

00:04:39.660 --> 00:04:40.600
was natürlich nicht so richtig...

00:04:40.600 --> 00:04:41.060
Aber das ist aber uncool.

00:04:42.120 --> 00:04:44.120
YouTube ist ein bisschen uncool, hat nicht den richtigen Vibe.

00:04:44.180 --> 00:04:45.240
Das stimmt schon, Vimeo war da besser.

00:04:45.240 --> 00:04:48.660
Aber ja, die gibt es alle auf YouTube.

00:04:51.260 --> 00:04:53.480
Ja, insofern kann man sich da einfach mal reingucken

00:04:53.480 --> 00:04:55.720
und dann sieht man, was dabei ist.

00:04:55.880 --> 00:04:57.180
Du wolltest noch irgendwas sagen, irgendeine Keynote von

00:04:57.180 --> 00:04:59.100
Total Super, hast du gesagt? Und

00:04:59.100 --> 00:05:01.260
du wolltest noch was erzählen zu den Talks,

00:05:01.340 --> 00:05:03.320
die du auf der PyCon ziemlich cool fandest und von den

00:05:03.320 --> 00:05:05.260
Trends erzählen. Und zum Beispiel gab es sowas

00:05:05.260 --> 00:05:07.260
wie PyScript, habe ich gehört, wird gerade so ein bisschen

00:05:07.260 --> 00:05:09.220
durch die... Ja, wobei das war jetzt

00:05:09.220 --> 00:05:11.160
dann eher PyCon US, glaube ich, da war das

00:05:11.160 --> 00:05:13.160
ein großes Thema, PyScript und so über

00:05:13.160 --> 00:05:15.200
Pyodid, aber... PyCon US

00:05:15.200 --> 00:05:17.200
fand mich übrigens auch. Ja, die

00:05:17.200 --> 00:05:19.220
war auch, genau, da habe ich aber nicht so wahnsinnig

00:05:19.220 --> 00:05:21.180
viel mitbekommen, außer irgendwie das, was man

00:05:21.180 --> 00:05:22.040
halt über Twitter so mitbekommen.

00:05:23.120 --> 00:05:25.420
Apropos Cons, die Django-Con

00:05:25.420 --> 00:05:27.140
ist auch im Herbst und für die

00:05:27.140 --> 00:05:29.080
Europython im Sommer in Dublin,

00:05:29.580 --> 00:05:31.220
da gibt es noch Vouchers, wenn ihr bei uns in der Gruppe

00:05:31.220 --> 00:05:33.120
seid. Ja, richtig, das stimmt.

00:05:34.200 --> 00:05:35.120
Für die Django-Con

00:05:35.120 --> 00:05:36.580
kann man noch ganz kurz

00:05:36.580 --> 00:05:39.360
Vorträge einreichen. Also wer noch einen Vortrag bei der Django-Con

00:05:39.360 --> 00:05:40.860
machen möchte, hat jetzt noch die Gelegenheit dazu.

00:05:40.920 --> 00:05:43.140
Ja, ich glaube bis zum 31. Mai. Wir müssen uns ein bisschen

00:05:43.140 --> 00:05:45.420
beeilen mit der Veröffentlichung, dass das noch vorher...

00:05:45.420 --> 00:05:46.960
Aber ja, das geht.

00:05:48.220 --> 00:05:48.840
Das zählt.

00:05:49.220 --> 00:05:50.620
Europython-Voucher auch in Jochen, das finde ich ja cool.

00:05:50.680 --> 00:05:52.520
Interessen wir uns denn da? Ja, eigentlich schon.

00:05:52.660 --> 00:05:54.720
Ich habe es bloß bisher noch nicht geschafft, eine Unterkunft

00:05:54.720 --> 00:05:56.360
zu finden. Also meines direkt in der Nähe von der

00:05:56.360 --> 00:05:58.100
Brewdog Brewery. Ja, also

00:05:58.100 --> 00:06:00.620
ich weiß, es gibt da tolle Unterkünfte und so, aber

00:06:00.620 --> 00:06:02.580
entweder sind die halt unbezahlbar oder halt nicht

00:06:02.580 --> 00:06:04.520
so richtig irgendwie für mehrere Leute geeignet

00:06:04.520 --> 00:06:06.520
oder halt nicht verfügbar in dem Zeitraum und das ist

00:06:06.520 --> 00:06:08.460
alles irgendwie ganz schrecklich. Ich habe so ein Hotel gefunden, das

00:06:08.460 --> 00:06:10.620
relativ entspannt gerade aufgemacht

00:06:10.620 --> 00:06:12.400
hat. Da gab es noch gar keine großen Reserven.

00:06:12.520 --> 00:06:14.420
Hat erst letzte Woche eröffnet oder so. Oh,

00:06:14.700 --> 00:06:15.680
da müssen wir, okay.

00:06:16.440 --> 00:06:18.600
Ja, die Bewertung erstmal so, da fehlen noch

00:06:18.600 --> 00:06:20.520
die Klobürsten, aber ich glaube, das bis Juli

00:06:20.520 --> 00:06:22.620
haben das hinbekommen. Okay, das ist interessant.

00:06:22.720 --> 00:06:23.900
Da muss ich mal gucken, ja.

00:06:24.960 --> 00:06:26.440
Ja, also wenn sich dieses Problem lösen lässt,

00:06:26.580 --> 00:06:28.020
dann werde ich da auch hinfahren, denke ich.

00:06:29.540 --> 00:06:30.380
Ja, genau,

00:06:30.500 --> 00:06:31.480
Konferenzen, achso, was wollte ich,

00:06:32.020 --> 00:06:34.380
ich glaube, wir machen am besten noch mal

00:06:34.380 --> 00:06:36.500
mit Christian, wollten wir

00:06:36.500 --> 00:06:37.960
eigentlich noch eine Episode machen zu den ganzen

00:06:37.960 --> 00:06:40.480
Talks im Einzelnen und sowas, so eine interessante

00:06:40.480 --> 00:06:41.740
Sache. Zum Background, zum PyCon, genau.

00:06:41.960 --> 00:06:44.360
Oder Background zum PyCon, aber also für mich

00:06:44.360 --> 00:06:46.320
tatsächlich der beste oder interessanteste

00:06:46.320 --> 00:06:48.220
Talk jetzt auf der PyCon.de

00:06:48.220 --> 00:06:50.200
war halt der von Christian

00:06:50.200 --> 00:06:51.060
Heim ist zum Thema

00:06:51.060 --> 00:06:53.640
Python

00:06:53.640 --> 00:06:56.180
nach WebAssembly kompilieren und dann halt

00:06:56.180 --> 00:06:58.260
also Python 3.11 im Browser laufen lassen.

00:06:59.520 --> 00:07:00.360
Vielleicht hören wir da auch noch mehr

00:07:00.360 --> 00:07:01.340
davon. Ja, genau.

00:07:03.060 --> 00:07:04.360
Und das war schon

00:07:04.360 --> 00:07:06.260
beeindruckend, dass das geklappt hat

00:07:06.260 --> 00:07:08.180
und ja, da ging es ein bisschen um

00:07:08.180 --> 00:07:10.380
den Hintergrund, das war echt super. Ansonsten

00:07:10.380 --> 00:07:11.000
ja, was

00:07:11.000 --> 00:07:13.680
ich, den

00:07:13.680 --> 00:07:16.340
einen Talk fand ich, den von Stefan Benel

00:07:16.340 --> 00:07:17.860
zum Thema Zeiten,

00:07:18.360 --> 00:07:19.900
hatten wir ja auch schon mal, das ist jetzt 20 Jahre geworden,

00:07:19.960 --> 00:07:21.880
das Projekt, und den fand ich auch

00:07:21.880 --> 00:07:23.500
super. Ich fand den

00:07:23.500 --> 00:07:26.100
von meinen Ex-Kollegen

00:07:26.100 --> 00:07:28.120
bei Billiger super dazu.

00:07:28.460 --> 00:07:29.820
Wir machen mal Live-Programming,

00:07:29.880 --> 00:07:30.680
ein ORM in Python.

00:07:32.880 --> 00:07:33.880
Ich fand den

00:07:33.880 --> 00:07:35.340
von Idealo, weil er sich halt mit dem

00:07:35.340 --> 00:07:37.540
Thema, mit dem ich mich auch schon lange, oder lang,

00:07:37.600 --> 00:07:39.380
früher in einer anderen Zeit,

00:07:39.380 --> 00:07:40.560
wie lange man beschäftigt hat,

00:07:40.560 --> 00:07:43.040
das war so richtig so

00:07:43.040 --> 00:07:45.060
Blast-from-the-past-Vibes da,

00:07:45.460 --> 00:07:47.400
und ja, die machten das

00:07:47.400 --> 00:07:49.080
jetzt gerade, was wir da früher schon mal gemacht hatten

00:07:49.080 --> 00:07:50.980
und machen das super und es war sehr interessant.

00:07:51.420 --> 00:07:53.220
Und ja, das müsste alles

00:07:53.220 --> 00:07:55.220
in die Schonungsstellen, dann kann man sich das alles nämlich mal anschauen,

00:07:55.280 --> 00:07:56.980
wenn man möchte. Ja, ich glaube, bei dem Vortrag,

00:07:57.080 --> 00:07:59.120
da sind die Slides leider nicht da und auch der ist

00:07:59.120 --> 00:08:00.940
nicht per Video irgendwie verfügbar.

00:08:01.100 --> 00:08:02.840
Insofern weiß ich nicht genau, warum, aber

00:08:02.840 --> 00:08:05.540
ja, genau.

00:08:06.360 --> 00:08:07.120
Da müsste man da eigentlich

00:08:07.120 --> 00:08:08.820
nochmal eine kürzere Zusammenfassung zu machen, aber

00:08:08.820 --> 00:08:10.620
vielleicht müssen wir irgendwann mal machen.

00:08:10.700 --> 00:08:11.960
Vielleicht kriegen wir da auch nochmal die

00:08:11.960 --> 00:08:14.860
irgendwie dazu, mit uns zusammen eine Sendung zu machen oder so.

00:08:14.960 --> 00:08:15.360
Müssen wir mal schauen.

00:08:16.760 --> 00:08:26.860
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.

00:08:27.280 --> 00:08:38.000
Und geht aber auch über WebAssembly rein in den Browser und der Browser lädt dann irgendwie Python-Pakete von, weiß nicht, 70 MB oder sowas und kann dann einen REPL aufmachen im Browser direkt.

00:08:38.100 --> 00:08:39.260
Ja, das geht mit

00:08:39.260 --> 00:08:41.900
Python 3.11

00:08:41.900 --> 00:08:43.580
nach wie vor auch, aber

00:08:43.580 --> 00:08:45.740
da geht halt tatsächlich sowas wie, man

00:08:45.740 --> 00:08:47.640
macht halt ein Jupyter-Notebook

00:08:47.640 --> 00:08:49.100
auf. Das ist halt komplett

00:08:49.100 --> 00:08:51.700
also auch das Backend läuft dann halt im

00:08:51.700 --> 00:08:53.240
Browser. Ja, das ist schon ganz nett.

00:08:53.240 --> 00:08:54.860
Jupyter-Light nennt sich da, das ist ziemlich cool.

00:08:55.440 --> 00:08:58.060
Da kann man auf jeden Fall gerade für diese ganzen Datenverarbeitungsgeschichten,

00:08:58.140 --> 00:08:59.860
wenn man da ohne große Def-Environments

00:08:59.860 --> 00:09:01.540
was bauen will, von irgendeinem Gerät

00:09:01.540 --> 00:09:02.840
recht weit kommen.

00:09:03.340 --> 00:09:05.940
Man hat halt erstmal diesen ganzen Packaging-Schmerz

00:09:05.940 --> 00:09:07.860
nicht mehr so, man muss kein Python installieren, was ja

00:09:07.860 --> 00:09:09.780
wenn einen dann jemand fragt, ja gut, dieses

00:09:09.780 --> 00:09:11.740
Jupyter, voll cool, wie installiere ich denn jetzt Python

00:09:11.740 --> 00:09:13.060
auf meinem Windows oder so?

00:09:16.120 --> 00:09:17.860
Ja, es artet mal ein bisschen aus.

00:09:18.940 --> 00:09:19.260
Ja,

00:09:19.680 --> 00:09:20.880
das ist ein bisschen schwierig, genau.

00:09:22.100 --> 00:09:23.680
Ja, insbesondere dann, wenn schon welche da sind und

00:09:23.680 --> 00:09:25.720
dass dann irgendwelche Konflikte mit irgendwelchen Dingen, die sonst

00:09:25.720 --> 00:09:27.160
so laufen sollen, ist das manchmal so ein bisschen

00:09:27.160 --> 00:09:29.600
ein Schmerz. Aber damit haben wir jetzt

00:09:29.600 --> 00:09:31.560
vielleicht weniger zu tun. Und PyScript ist so recht

00:09:31.560 --> 00:09:33.720
einfach auch zu bedienen. Du kannst einfach sagen PyScript und dann schreibst

00:09:33.720 --> 00:09:35.760
du Python rein in den Browser und dann...

00:09:35.760 --> 00:09:37.640
Aber irgend so was gab es doch früher

00:09:37.640 --> 00:09:39.140
auch schon mal. Es gab schon irgendwelche

00:09:39.140 --> 00:09:41.000
solche Lösungen für Python im Browser.

00:09:42.060 --> 00:09:43.340
Wo ist es denn, wenn dir das war?

00:09:43.380 --> 00:09:44.560
Da hatten wir doch letztes Mal drüber gesprochen.

00:09:45.120 --> 00:09:47.640
Wie ist das denn? Python-Skript? Ja, aber ich habe es natürlich nicht nachgeguckt.

00:09:47.820 --> 00:09:48.860
Das wäre jetzt so einfach.

00:09:49.440 --> 00:09:51.380
Ja, ich weiß es auch nicht mehr. Ich weiß nur auch,

00:09:51.460 --> 00:09:53.680
ja, es gab sowas schon mal und das aus irgendwelchen Gründen

00:09:53.680 --> 00:09:55.620
ist das wieder versandet oder so

00:09:55.620 --> 00:09:57.460
oder war nicht so, aber ich weiß es auch

00:09:57.460 --> 00:09:59.600
nicht genug darüber, um irgendwas dazu sagen zu können.

00:09:59.600 --> 00:10:01.280
Ich habe nicht gesagt, warum ich angefangen zu reden. Das war doof.

00:10:03.060 --> 00:10:03.980
Ja, ich weiß, dass es mal

00:10:03.980 --> 00:10:05.680
so eine Lösung gab für, also

00:10:05.680 --> 00:10:07.820
irgendeine Universität hat man das gemacht,

00:10:08.020 --> 00:10:09.960
um Leuten Python beizubringen.

00:10:09.960 --> 00:10:11.420
Dass man halt irgendwie so einen kleinen

00:10:11.420 --> 00:10:13.800
Python-Interpreter im Browser hatte,

00:10:13.880 --> 00:10:15.880
aber das war halt kein vollständiger, das war kein...

00:10:15.880 --> 00:10:17.440
Ja, so eine Art Micro-Python irgendwie mit einem

00:10:17.440 --> 00:10:18.820
verringerten... So eine Art, ja.

00:10:19.880 --> 00:10:21.700
...Bildins und nicht so viel Batterien dabei.

00:10:21.940 --> 00:10:23.340
Und der war halt roh in JavaScript

00:10:23.340 --> 00:10:25.480
programmiert, was dann auch zu vielen schönen Dingen

00:10:25.480 --> 00:10:26.340
geführt hat, aber

00:10:26.340 --> 00:10:29.660
zum Ausprobieren ist das natürlich eine schöne Sache

00:10:29.660 --> 00:10:31.520
gewesen. Oh, damit kennst du dich ja auch jetzt besonders gut aus,

00:10:31.580 --> 00:10:33.740
Johannes, also zumindest mit dem Script-Type von...

00:10:33.740 --> 00:10:35.620
Mit JavaScript nicht. TypeScript machst du

00:10:35.620 --> 00:10:38.220
Darf ich jetzt ein bisschen

00:10:38.220 --> 00:10:40.080
damit arbeiten. Es ist gar nicht so schlimm, wie man

00:10:40.080 --> 00:10:42.160
sich das vorstellt. Ja, wir wollten über Typen, wollten wir auch

00:10:42.160 --> 00:10:43.980
nochmal sprechen. Jetzt haben wir schon wieder alles verraten, was

00:10:43.980 --> 00:10:44.940
demnächst kommt und Postgres kommt.

00:10:45.560 --> 00:10:48.120
Vielleicht dazu, was machen

00:10:48.120 --> 00:10:50.100
wir denn so demnächst? Aber was ist denn noch in den

00:10:50.100 --> 00:10:52.080
News drin? Haben wir noch was vergessen? Da war nämlich gar nicht so

00:10:52.080 --> 00:10:54.020
viel Großes diesmal. Ne, diesmal war irgendwie

00:10:54.020 --> 00:10:55.920
ansonsten nicht so, also doch was noch,

00:10:56.420 --> 00:10:58.240
das gibt es jetzt im Sommer, das kann man schon mal ankündigen.

00:10:58.940 --> 00:10:59.800
Wagtail Release

00:10:59.800 --> 00:11:02.180
3.0. Das wird sicher noch

00:11:02.180 --> 00:11:03.780
interessant, da machen wir bestimmt noch was zu.

00:11:04.580 --> 00:11:06.120
Funktioniert es denn auch endlich jetzt mit Django 4?

00:11:06.920 --> 00:11:07.900
Ja, ist schon lange, ist schon lange.

00:11:08.100 --> 00:11:08.720
Ja, gut auch.

00:11:09.700 --> 00:11:10.060
Ja, doch.

00:11:11.240 --> 00:11:11.960
Ich weiß noch nicht.

00:11:11.960 --> 00:11:16.060
Auf Python 3.11 gibt es ja inzwischen Betas, genau.

00:11:16.180 --> 00:11:18.740
Und die Performance-Vergleiche sehen sehr gut aus.

00:11:19.040 --> 00:11:19.740
Wie viel schneller ist das?

00:11:19.840 --> 00:11:21.180
20 Prozent habe ich gehört, stimmt das?

00:11:21.940 --> 00:11:25.840
Ja, so wie von 3.9 auf 3.10 einfach nochmal zu viel schneller geworden.

00:11:26.020 --> 00:11:26.240
Schön.

00:11:26.440 --> 00:11:26.960
Sehr gut, sehr gut.

00:11:27.260 --> 00:11:28.800
Das ist schon nicht schlecht.

00:11:28.980 --> 00:11:30.180
Es gibt auch jetzt auch Diskussionen darüber,

00:11:30.260 --> 00:11:32.300
ob man den Gil jetzt nicht einfach mal abschafft

00:11:32.300 --> 00:11:33.580
oder so eine Alternativ-Version, oder?

00:11:34.580 --> 00:11:40.120
Ja, da gibt es, also da hat einer bei Facebook, ich habe den Namen vergessen, der hat da irgendwie anderthalb Jahre.

00:11:40.240 --> 00:11:42.040
Immer und lange Diskussionen darüber.

00:11:42.520 --> 00:11:49.260
Also es gibt diese alten, dieses alte Projekt von, wie heißt der, Hastings, ich weiß nicht, diese Glectomy-Geschichte.

00:11:49.420 --> 00:11:50.200
Unladen Swallow.

00:11:50.740 --> 00:11:53.080
Ja, ist das das gleiche? Ich weiß gar nicht.

00:11:53.320 --> 00:11:55.300
Ich weiß nicht, aber auf jeden Fall gibt es das auch.

00:11:55.700 --> 00:12:01.140
Ja, aber der Ansatz jetzt, also wie heißt der, Sam, ich habe den Namen vergessen.

00:12:01.840 --> 00:12:03.880
Stackless Python gibt es auch schon seit Ewigkeiten,

00:12:03.980 --> 00:12:04.860
was auch niemand benutzt.

00:12:05.300 --> 00:12:06.340
Oh, das weiß ich nicht.

00:12:06.540 --> 00:12:08.640
Soweit ich weiß, dieses, wie heißt das?

00:12:09.020 --> 00:12:10.400
EVE Online oder so benutzt Stackless.

00:12:11.260 --> 00:12:11.680
Ah, echt?

00:12:11.960 --> 00:12:13.360
Ja, dann schon.

00:12:13.380 --> 00:12:13.940
Guck mal, Johannes.

00:12:14.180 --> 00:12:15.020
Aber die sind noch auf Python 2.

00:12:15.020 --> 00:12:17.040
Jochen hat gerade was von einem Computerspiel erzählt,

00:12:17.120 --> 00:12:19.240
wo er die Technologie kennt und das war gegen dich.

00:12:19.240 --> 00:12:19.460
Aha.

00:12:21.760 --> 00:12:23.800
Mal, wenn es nämlich Johannes, der sich mit den Spielen auskennt.

00:12:25.960 --> 00:12:27.480
Ja, ich kenne mich mit den Spielen aus,

00:12:27.520 --> 00:12:28.420
nicht mit der Technik dahinter.

00:12:28.560 --> 00:12:28.980
Die ist mir egal.

00:12:29.700 --> 00:12:30.000
Na gut.

00:12:30.200 --> 00:12:30.820
Muss nur gut aussehen.

00:12:31.840 --> 00:12:49.440
Ähm, 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, ähm, ja, allein, dass da jemand so viel Arbeit reingesteckt hat, das ist auch schon lange nicht mehr passiert.

00:12:49.440 --> 00:13:13.620
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 dafür, dann wäre es gut, Gil irgendwie loszuwerden, aber ich habe die Situation nicht so oft.

00:13:13.620 --> 00:13:20.000
Also das Projekt heißt übrigens NoGill und da gab es einen Blogartikel zu bei der PSF-Blog.

00:13:20.440 --> 00:13:21.520
Ah, okay. Kann sein.

00:13:22.120 --> 00:13:23.520
NoGill. NoGill.

00:13:24.400 --> 00:13:31.720
Man darf auch nicht vergessen, dass ganz viele andere Sprachen, die so interpretiert sind, auch einen Gill haben, der aber längst nicht so viel diskutiert wird.

00:13:31.840 --> 00:13:34.460
Längst nicht so viel irgendwie im Weg steht.

00:13:35.500 --> 00:13:36.180
JavaScript hat es auch.

00:13:36.180 --> 00:13:40.880
Aber es soll tatsächlich einen Compiler-Flag geben in Python 3.12, wo man den Gill mit abstellen kann.

00:13:42.280 --> 00:13:44.040
Du kannst auch selber

00:13:44.040 --> 00:13:46.580
den freigeben, ja, das kannst du

00:13:46.580 --> 00:13:48.540
auch machen, wenn du halt, gut, du musst

00:13:48.540 --> 00:13:50.460
dann halt, ja, du musst dann schon

00:13:50.460 --> 00:13:52.580
auch eine C-Extension schreiben, aber geht

00:13:52.580 --> 00:13:54.460
schon. Und wenn du sowas

00:13:54.460 --> 00:13:56.080
benutzt wie NumPy oder so, dann

00:13:56.080 --> 00:13:58.300
machen das natürlich alle. Also da wird

00:13:58.300 --> 00:14:00.080
sowieso auch immer alle Prozessoren benutzt und so.

00:14:00.340 --> 00:14:02.620
Also hier steht, dass das das einzige Feature wäre, was wirklich

00:14:02.620 --> 00:14:04.620
Concurrency between Threads

00:14:04.620 --> 00:14:06.080
verhindern würde.

00:14:07.320 --> 00:14:08.340
Das verstehe ich nicht sofort.

00:14:08.400 --> 00:14:10.540
Ja, also Concurrency, also das ist halt

00:14:10.540 --> 00:14:12.620
die Frage, also ich glaube, ich verstehe, was das meint,

00:14:12.780 --> 00:14:14.420
aber das bedeutet halt, also was

00:14:14.420 --> 00:14:16.220
momentan nicht geht, ist, dass du

00:14:16.220 --> 00:14:18.180
sozusagen mit

00:14:18.180 --> 00:14:20.260
mehreren Threads

00:14:20.260 --> 00:14:22.380
mehr als eine CPU benutzt gleichzeitig.

00:14:22.740 --> 00:14:23.180
Das geht nicht.

00:14:24.700 --> 00:14:25.960
Also eine Thread pro CPU?

00:14:26.720 --> 00:14:28.680
Nee. Alle Threads eine CPU.

00:14:28.960 --> 00:14:29.880
Aha. Genau.

00:14:31.280 --> 00:14:32.400
Das ist halt das, was der Gil macht.

00:14:32.440 --> 00:14:34.540
Jeder Python-Interpreter kann nur eine CPU haben.

00:14:34.560 --> 00:14:36.360
Ja. Oder? Okay, also muss ich

00:14:36.360 --> 00:14:38.720
mehrere, ja, muss ich den Interpreter multiplexen.

00:14:38.860 --> 00:14:40.400
Du musst den Multiprocessing machen. Genau.

00:14:40.540 --> 00:14:42.680
dann auch wieder Mist. Ja, oder du kannst halt,

00:14:42.760 --> 00:14:44.540
wenn du halt unten drunter sitzt, wenn du sowas

00:14:44.540 --> 00:14:46.380
wie in einem Pipe bist oder so und da sagt dir,

00:14:46.440 --> 00:14:48.380
hat dir gerade jemand gesagt, multipliziere mal diese beiden Matrizen,

00:14:48.480 --> 00:14:50.540
dann kannst du auch irgendwie sagen, okay, ich

00:14:50.540 --> 00:14:52.580
weiß, was ich tue, GIL gebe ich

00:14:52.580 --> 00:14:54.620
frei und dann. Und auch diese ganzen

00:14:54.620 --> 00:14:56.500
Netzwerksachen, die geben den GIL üblicherweise

00:14:56.500 --> 00:14:58.320
ja auch immer wieder frei. Also wenn du irgendwie viel

00:14:58.320 --> 00:15:00.380
I.O. machst mit Select Calls oder sonst

00:15:00.380 --> 00:15:02.300
irgendwelchen Sachen, hast du ja auch keinen GIL in deinem Zahn.

00:15:02.360 --> 00:15:03.780
Also wartest du nicht immer auf

00:15:03.780 --> 00:15:06.200
eine, sondern du wartest schon auf alle gleichzeitig.

00:15:06.380 --> 00:15:08.340
Aber du kannst dann, wenn Pakete kommen, halt immer nur

00:15:08.340 --> 00:15:09.840
eins bearbeiten. Ja.

00:15:10.540 --> 00:15:14.460
Na gut, dann bin ich mal gespannt,

00:15:14.600 --> 00:15:16.720
was es da in 3.11 und 3.12 und 3.13

00:15:16.720 --> 00:15:18.100
und 3.14 und so weiter

00:15:18.100 --> 00:15:20.020
geben wird.

00:15:21.060 --> 00:15:21.420
Spannend.

00:15:22.220 --> 00:15:23.780
Okay, dann sind wir mit den News durch.

00:15:24.820 --> 00:15:26.000
Haben wir nicht geschafft, vielen Dank.

00:15:26.420 --> 00:15:27.820
Du kommst jetzt zu unseren User-Fragen.

00:15:28.520 --> 00:15:29.760
Ach, User-Fragen, genau, ja, richtig.

00:15:31.480 --> 00:15:34.280
Wir haben auch eine längere Pause gemacht,

00:15:34.280 --> 00:15:36.180
muss man sagen. Das könnte natürlich auch dazu

00:15:36.180 --> 00:15:37.840
geführt haben, dass es mehr war als normalerweise.

00:15:40.100 --> 00:15:42.260
Ja, und zwar, aber wir hatten auch mehrere Leute,

00:15:42.440 --> 00:15:45.920
die quasi das gleiche Thema sozusagen ein bisschen angefragt haben.

00:15:45.920 --> 00:15:51.140
Und zwar, das war, wie haltet ihr euch eigentlich so auf aktuellem Stand?

00:15:51.420 --> 00:15:53.400
Wo kommt der an Neuigkeiten, Informationen ran?

00:15:54.480 --> 00:15:56.480
Ja, das war die eine Frage.

00:15:56.580 --> 00:15:58.100
Und die andere Frage, wo du sagtest, das ist fast dasselbe,

00:15:58.220 --> 00:15:59.860
war, wie fange ich denn damit überhaupt an?

00:16:00.060 --> 00:16:00.380
Ja.

00:16:00.580 --> 00:16:01.300
Mit dem Quereinstieg.

00:16:01.460 --> 00:16:03.080
Ich fand ja, das waren zwei unterschiedliche Dinge.

00:16:03.140 --> 00:16:05.000
Ja, das sind unterschiedliche Fragen im Grunde.

00:16:05.000 --> 00:16:07.200
Ja, aber ich würde die gerne auch beide beantworten.

00:16:07.580 --> 00:16:08.040
Ja, dann beantworten wir.

00:16:08.040 --> 00:16:09.520
Wie haltet ihr euch denn auf dem Laufenden?

00:16:09.640 --> 00:16:10.320
Ich frage doch mal den Martin.

00:16:11.820 --> 00:16:13.180
Ich? Also ich glaube

00:16:13.180 --> 00:16:15.340
meistens dadurch, dass ich einfach Jochen anrufe,

00:16:15.500 --> 00:16:17.340
aber ich glaube, diese Optionen haben jetzt

00:16:17.340 --> 00:16:18.940
nicht so viele

00:16:18.940 --> 00:16:20.080
der Zuhörer.

00:16:21.560 --> 00:16:23.240
Schreibt uns immer eine E-Mail, wir machen einen neuen

00:16:23.240 --> 00:16:24.160
News-Kanal auf.

00:16:25.440 --> 00:16:27.300
Ja, aber ansonsten

00:16:27.300 --> 00:16:31.460
naja, also

00:16:31.460 --> 00:16:34.300
Bist du auf Twitter?

00:16:34.760 --> 00:16:36.280
Ich bin tatsächlich, also sowas wie

00:16:36.280 --> 00:16:38.100
Twitter mache ich tatsächlich gar nicht. Ich lese tatsächlich

00:16:38.100 --> 00:16:39.600
sehr viel einfach Dokumentation

00:16:39.600 --> 00:16:41.720
der Sachen, die ich neu verwende und

00:16:41.720 --> 00:16:43.540
was denn immer Neues kommt,

00:16:43.800 --> 00:16:46.120
dann wird immer... Das ist, glaube ich, ein ziemlich guter

00:16:46.120 --> 00:16:48.020
Tipp, dass man tatsächlich weiß, welche Sachen man

00:16:48.020 --> 00:16:50.200
verwenden möchte und dann davon die offizielle

00:16:50.200 --> 00:16:51.980
Doku liest. So kommt man tatsächlich, das ist

00:16:51.980 --> 00:16:53.900
eine Antwort auf die zweite Frage, glaube ich,

00:16:53.920 --> 00:16:56.080
am schnellsten in die Themen rein.

00:16:56.740 --> 00:16:58.100
Also es gibt da ja auch dann

00:16:58.100 --> 00:17:00.060
immer typischerweise What's New

00:17:00.060 --> 00:17:01.920
in den Dokumentationen und da steht

00:17:01.920 --> 00:17:03.920
tatsächlich auch die wichtigen Sachen drin. Also daher

00:17:03.920 --> 00:17:05.660
habe ich meine Insider-Infos.

00:17:05.660 --> 00:17:07.680
Das finde ich tatsächlich gut, weil viele Leute, die anfangen, die

00:17:07.680 --> 00:17:09.900
prügeln sich so ein bisschen mit irgendwelchen Tutorials

00:17:09.900 --> 00:17:11.480
rum oder YouTube-Sachen oder so.

00:17:11.800 --> 00:17:13.140
Und ich finde tatsächlich, dass genau das

00:17:13.140 --> 00:17:15.660
in die Hand zu nehmen, was man braucht und dann die Doku lesen,

00:17:15.800 --> 00:17:16.620
viel effektiver.

00:17:17.680 --> 00:17:19.700
Ja, okay, aber um noch mal

00:17:19.700 --> 00:17:20.940
auf das News-Thema zurückzugehen.

00:17:21.640 --> 00:17:23.020
Jochen, wo kriegst du denn deine News?

00:17:23.800 --> 00:17:25.920
Ja, ich tatsächlich heutzutage

00:17:25.920 --> 00:17:27.420
meistens über Twitter. Ich habe früher

00:17:27.420 --> 00:17:29.620
sehr viel RSS konsumiert und

00:17:29.620 --> 00:17:31.660
davor Newsnet. Und heute

00:17:31.660 --> 00:17:33.300
ist es hauptsächlich Twitter, wobei man

00:17:33.300 --> 00:17:35.420
da ein bisschen aufpassen muss.

00:17:35.880 --> 00:17:37.640
Wenn man auf Twitter irgendwie neu ist,

00:17:37.680 --> 00:17:39.320
und nicht viele Leute abonniert hat,

00:17:40.040 --> 00:17:41.620
dann kriegt man die ganze Zeit

00:17:41.620 --> 00:17:43.620
irgendwie Nachrichten oder Tweets in die Timeline

00:17:43.620 --> 00:17:45.660
gedrückt über Celebrities und Fußballer und

00:17:45.660 --> 00:17:47.540
Fußballer-Frisuren und weiß ich nicht,

00:17:47.620 --> 00:17:49.440
so Zeugs, wo man sich sagt, hä? Aber

00:17:49.440 --> 00:17:51.540
wenn man das eine Weile benutzt hat

00:17:51.540 --> 00:17:53.360
und dann so ein bisschen selber kuratiert hat, dann

00:17:53.360 --> 00:17:55.620
ist es schon ziemlich gut. Also man muss es hart kuratieren

00:17:55.620 --> 00:17:57.560
und dann kann man Sachen filtern, wie das der Johannes

00:17:57.560 --> 00:17:59.600
auch gern macht. Ja, ich

00:17:59.600 --> 00:18:01.400
finde auch, also Twitter ist eine

00:18:01.400 --> 00:18:03.500
gute Quelle für Neuigkeiten, aber man muss da wirklich

00:18:03.500 --> 00:18:05.400
ganz knallhart filtern. Ich habe

00:18:05.400 --> 00:18:07.320
eine ganz lange Liste mit Wörtern, die mich nicht

00:18:07.320 --> 00:18:07.820
interessieren.

00:18:08.780 --> 00:18:11.440
Da sind Celebrity-Namen

00:18:11.440 --> 00:18:13.080
drauf und Politiker-Namen drauf

00:18:13.080 --> 00:18:15.780
und politische Institutionen

00:18:15.780 --> 00:18:17.240
drauf und Themen, die mich einfach nicht

00:18:17.240 --> 00:18:18.720
interessieren, die ich nicht

00:18:18.720 --> 00:18:21.260
auf Twitter habe. Also man muss sich seine eigene Filterblase bauen

00:18:21.260 --> 00:18:23.320
und quasi sich von der Welt so abschotten,

00:18:23.700 --> 00:18:25.340
dass man nur die Dinge konsumiert,

00:18:25.340 --> 00:18:27.380
die weitestmöglich brauchen sind.

00:18:28.280 --> 00:18:28.860
Zumindest auf Twitter.

00:18:29.020 --> 00:18:31.240
Die meisten Meinungen, die auf Twitter kommen,

00:18:31.320 --> 00:18:33.300
sind ja erstmal unqualifiziert und deshalb

00:18:33.300 --> 00:18:35.260
interessiert mich nicht. Also ich würde das auch Anfängern

00:18:35.260 --> 00:18:37.120
tatsächlich nicht empfehlen wollen, weil das ist ganz schön

00:18:37.120 --> 00:18:39.180
schwierig, rauszufinden, was einen dann überhaupt

00:18:39.180 --> 00:18:41.100
interessiert oder was gute Qualität hat, wenn man noch

00:18:41.100 --> 00:18:42.820
gar nicht weiß, was man sucht.

00:18:43.920 --> 00:18:45.040
Wenn man

00:18:45.040 --> 00:18:47.100
tatsächlich über technische

00:18:47.100 --> 00:18:49.060
Themen auf Twitter reden möchte,

00:18:49.180 --> 00:18:51.180
dann kann man ruhig alles, dann kann man

00:18:51.180 --> 00:18:52.960
ruhig Democrats und Republicans

00:18:52.960 --> 00:18:55.300
und Biden und die ganzen Namen,

00:18:55.420 --> 00:18:56.960
die es da so gibt, einfach alle rausfiltern, weil

00:18:56.960 --> 00:18:57.980
da hat man ja nichts davon.

00:18:59.980 --> 00:19:01.240
Da muss man dann aber schon

00:19:01.240 --> 00:19:03.220
eben, ja, also man kann jedem mal

00:19:03.220 --> 00:19:05.040
eine Chance geben. Ein Follow

00:19:05.040 --> 00:19:06.880
geben ist leicht, aber man muss dann auch

00:19:06.880 --> 00:19:08.840
sich das durchaus wert sein und jemandem wieder

00:19:08.840 --> 00:19:11.000
entfolgen. Und dann bildet

00:19:11.000 --> 00:19:12.860
sich so nach einer Weile eine Sammlung

00:19:12.860 --> 00:19:14.840
raus von Dingen, die man

00:19:14.840 --> 00:19:17.080
lesen kann. Ich glaube, dass das vielleicht noch einer der Challenges

00:19:17.080 --> 00:19:19.020
ist im Internet. Also ich habe da auch irgendwann

00:19:19.020 --> 00:19:21.120
gesagt, man legt sich so seine Linklisten

00:19:21.120 --> 00:19:23.140
an oder sowas und die zu pflegen

00:19:23.140 --> 00:19:25.220
ist aufwendig und zwar auch die Infos,

00:19:25.360 --> 00:19:27.060
die guten zu finden und die zu karatieren, ist

00:19:27.060 --> 00:19:29.120
gar nicht so wenig Teil der eigentlichen

00:19:29.120 --> 00:19:31.380
Arbeit dann auch. Also um da halt erstmal rauszufinden,

00:19:31.480 --> 00:19:33.140
was sind denn die wichtigen Dinge und die dann zu teilen.

00:19:33.180 --> 00:19:35.260
Ich habe auch so ein kleines Linklist, wo man

00:19:35.260 --> 00:19:37.200
halt für Einchecker, glaube ich, so ganz gute Tipps findet,

00:19:37.260 --> 00:19:39.300
wie man da die ersten Schritte gehen könnte.

00:19:40.120 --> 00:19:41.360
Aber da hinzukommen, das dauert

00:19:41.360 --> 00:19:43.180
halt einen Moment. Du musst die erstmal entdecken und auch dann filtern.

00:19:43.400 --> 00:19:45.280
Wie viele Quellen gibt es denn? Die muss man alle angucken und dann

00:19:45.280 --> 00:19:46.980
selber so ein Gespür dafür entwickeln,

00:19:47.560 --> 00:19:49.160
was man denn gebrauchen kann, was einem

00:19:49.160 --> 00:19:50.340
liegt und sowas, ja.

00:19:51.120 --> 00:19:53.160
Ein guter Trick ist auch, das über

00:19:53.160 --> 00:19:55.140
Personen zu machen. Also zum Beispiel, wenn man den

00:19:55.140 --> 00:19:57.240
Jochen auf Twitter findet, dann

00:19:57.240 --> 00:19:59.360
kann man ja gucken, wem der Jochen so folgt.

00:19:59.460 --> 00:20:01.340
Oder man kann lesen, was der so den ganzen Tag

00:20:01.340 --> 00:20:02.480
macht. Ja, aber ich mache da nicht viel.

00:20:02.840 --> 00:20:05.140
Das hilft nicht. Aber tatsächlich, genau, wenn man

00:20:05.140 --> 00:20:07.020
sich anguckt, wem ich folge, könnte man

00:20:07.020 --> 00:20:09.080
wahrscheinlich eine ganze Menge relevanten Sachen finden,

00:20:09.140 --> 00:20:10.880
das stimmt. Ja, oder halt

00:20:10.880 --> 00:20:13.100
bei anderen Leuten in der Community sicher auch.

00:20:14.100 --> 00:20:15.040
Und ich glaube auch

00:20:15.040 --> 00:20:17.160
leider, das ist halt auch sowas, das ist mit der Zeit, glaube ich,

00:20:17.160 --> 00:20:18.880
schwerer geworden, weil wenn ich, ich

00:20:18.880 --> 00:20:20.820
gucke halt auch ab und zu so auf YouTube und so

00:20:20.820 --> 00:20:23.280
und es gibt auch super Sachen auf YouTube, aber

00:20:23.280 --> 00:20:25.100
wenn man... Auch da muss man

00:20:25.100 --> 00:20:26.880
ganz arg ausfällen. Ganz arg ausfällen und

00:20:26.880 --> 00:20:29.000
man muss halt sich durch viel Zeug durchgucken,

00:20:29.140 --> 00:20:31.100
wo ich jetzt sagen würde so, aber das weiß man halt

00:20:31.100 --> 00:20:32.840
nicht, wenn man anfängt. Ja, gerade die Buzz und Buzzwords,

00:20:32.980 --> 00:20:34.920
man kann so sich versumpfen in irgendwelchen Dingen von Leuten,

00:20:35.000 --> 00:20:36.840
die selber eigentlich gar keine Ahnung haben, beim Lernen dann

00:20:36.840 --> 00:20:38.860
erstmal was aufnehmen, nach dem Motto, ich habe jetzt meinen YouTube-Kanal

00:20:38.860 --> 00:20:41.200
gemacht. Ja, gar nicht so einfach, ja.

00:20:41.800 --> 00:20:42.940
Das macht es halt schwer, ja.

00:20:43.300 --> 00:20:44.680
Also insofern, was ich es auch nicht kann.

00:20:44.680 --> 00:20:46.740
YouTube hat übrigens auch immer noch RSS-Feeds,

00:20:46.840 --> 00:20:48.340
also da kann man auch die Kanäle alle mit

00:20:48.340 --> 00:20:50.120
per RSS abrufen.

00:20:51.560 --> 00:20:52.140
So mache ich das.

00:20:52.360 --> 00:20:54.040
Ich will das nicht auf YouTube haben.

00:20:54.300 --> 00:20:57.080
YouTube hat auch eine API, die man benutzen kann, die kann man sogar in Python benutzen.

00:20:57.960 --> 00:20:58.440
Ja, das stimmt.

00:20:58.600 --> 00:21:00.420
Aber das wollte ich vielleicht nochmal so als Tipp genau, meine

00:21:00.420 --> 00:21:02.960
bevorzugte Art, YouTube-Content

00:21:02.960 --> 00:21:04.160
zu konsumieren, ist übrigens

00:21:04.160 --> 00:21:06.240
den ohne Bild

00:21:06.240 --> 00:21:08.400
zu hören, weil ich nicht so viel Zeit

00:21:08.400 --> 00:21:10.180
habe, irgendwie vor einem, also wenn ich

00:21:10.180 --> 00:21:12.200
das höre, dann irgendwie gleichzeitig

00:21:12.200 --> 00:21:14.180
auf den Bildschirm zu gucken, weil ich gleichzeitig irgendwie

00:21:14.180 --> 00:21:16.300
spüle oder einkaufen gehe oder sowas meistens

00:21:16.300 --> 00:21:18.140
und was ich mache

00:21:18.140 --> 00:21:20.500
und das meinen Podcatcher

00:21:20.500 --> 00:21:22.300
Podcast Player kann das, aber das können

00:21:22.300 --> 00:21:24.340
bestimmt andere auch, da kann

00:21:24.340 --> 00:21:26.300
man, der hat so ein, der macht

00:21:26.300 --> 00:21:27.180
so ein Sideload

00:21:27.180 --> 00:21:30.280
Action ins

00:21:30.280 --> 00:21:32.160
Share Sheet bei

00:21:32.160 --> 00:21:34.060
bei iOS und wenn man dann sagt, irgendwie man ist auf einem

00:21:34.060 --> 00:21:35.960
YouTube-Video, es gibt ja auch ganz viele

00:21:35.960 --> 00:21:38.260
Talks, also das, ach, das ist vielleicht auch ganz interessant, Konferenztalks

00:21:38.260 --> 00:21:40.020
oder so, man guckt sich die Konferenzen an, guckt,

00:21:40.140 --> 00:21:42.120
welche Themen sind da so interessant und wenn man auf einem Talk ist

00:21:42.120 --> 00:21:44.100
auf YouTube und sagt, share. Auch da muss man ganz arg filtern.

00:21:44.500 --> 00:21:46.060
Stimmt. Auch da muss man ganz arg filtern,

00:21:46.180 --> 00:21:47.880
weil, also selbst auf den guten

00:21:47.880 --> 00:21:49.980
Konferenzen, ja, ist die Hälfte der

00:21:49.980 --> 00:21:51.980
Talks einfach Themen, die mich nicht

00:21:51.980 --> 00:21:53.480
interessieren und dann, auch da muss man

00:21:53.480 --> 00:21:56.140
einfach nicht die Sachen angucken, die man

00:21:56.140 --> 00:21:58.260
mit allen Dingen, ne, wenn die ganzen Content kann man zu Liebzeiten

00:21:58.260 --> 00:21:59.900
ja gar nicht konsumieren und da muss man vielleicht

00:21:59.900 --> 00:22:01.980
ein bisschen sich einfach aus, und ich

00:22:01.980 --> 00:22:03.460
Ich habe es früher immer so gemacht, ich habe erst mal so das

00:22:03.460 --> 00:22:05.800
lästige weggerockt und dann versucht, dann zu den

00:22:05.800 --> 00:22:07.380
guten Sachen zu kommen. Das ist eine ganz doofe Idee.

00:22:07.840 --> 00:22:09.560
Man muss erst mal zu den guten Sachen anfangen, weil dann

00:22:09.560 --> 00:22:10.740
fällt das lästige dann weg.

00:22:11.920 --> 00:22:13.760
Es gibt auch einfach so viel

00:22:13.760 --> 00:22:15.640
Content, dass man da nicht durchkommen kann.

00:22:15.720 --> 00:22:17.620
Und dann, wenn irgendwas einem nicht gefällt, dann

00:22:17.620 --> 00:22:19.640
muss man es einfach wegdrücken. Und das muss man aber auch

00:22:19.640 --> 00:22:21.320
lernen. Ja, das ist nicht so einfach.

00:22:21.480 --> 00:22:23.520
Also vor allem, was dann auch wichtiger ist, dass man halt aufhört,

00:22:23.600 --> 00:22:25.520
dann auch irgendwann mit noch einem Talk und noch einem Talk und noch

00:22:25.520 --> 00:22:27.640
eine Dokumentation, sondern auch mal ins Machen kommt.

00:22:27.760 --> 00:22:29.520
Also halt tatsächlich an Projekten sitzt, die man

00:22:29.520 --> 00:22:31.280
irgendwie versucht weiterzubringen, umzusetzen,

00:22:31.820 --> 00:22:33.400
Dinge, die einen interessieren,

00:22:33.540 --> 00:22:34.580
irgendwie, dass man da einsteigt.

00:22:35.140 --> 00:22:37.320
Weil das ist das, was einen am weitesten und am schnellsten weiterbringt,

00:22:37.400 --> 00:22:39.020
weil man am schnellsten auf die Probleme stößt,

00:22:39.040 --> 00:22:40.360
die man auch lösen muss oder möchte.

00:22:41.320 --> 00:22:43.320
Und da halt dann die relevanten Sachen sich rauszusuchen,

00:22:43.380 --> 00:22:45.320
die einem da weiterhelfen, ist wahrscheinlich effektiver

00:22:45.320 --> 00:22:47.440
als erstmal die Grundlagen dafür zu lesen.

00:22:47.620 --> 00:22:49.100
Was nicht immer ist. Das ist schon nett, wenn man

00:22:49.100 --> 00:22:51.140
bestimmte Sachen hat. Ja, aber das

00:22:51.140 --> 00:22:52.400
klingt so ein bisschen vom Thema ab vielleicht.

00:22:53.180 --> 00:22:53.880
Wobei es...

00:22:53.880 --> 00:22:56.500
Wenn du YouTube-Videos anhörst,

00:22:56.560 --> 00:22:58.300
warum dann nicht direkt Podcasts?

00:22:58.780 --> 00:23:00.140
Ja, weil es da nur begrenzt viele gibt.

00:23:00.480 --> 00:23:02.340
also ich meine, ich höre natürlich auch Podcasts, also da werden

00:23:02.340 --> 00:23:03.640
vor allen Dingen, ja,

00:23:03.680 --> 00:23:06.060
TalkPythonToMe,

00:23:06.280 --> 00:23:08.280
PodcastInit sind vielleicht so die beiden größten.

00:23:08.280 --> 00:23:09.620
Der deutsche Python-Podcast soll sehr gut sein.

00:23:10.880 --> 00:23:12.060
Aber das ist ja so ein bisschen

00:23:12.060 --> 00:23:14.200
irgendwie, das, ja,

00:23:14.360 --> 00:23:16.100
das wissen dann die Leute, die wir uns hören.

00:23:16.880 --> 00:23:17.240
Vielleicht.

00:23:18.180 --> 00:23:19.340
Martin hatte gerade noch eine Idee.

00:23:20.420 --> 00:23:22.220
Ja, was ich immer noch, was immer beim

00:23:22.220 --> 00:23:23.940
Lernen für mich immer sehr wichtig war, ist

00:23:23.940 --> 00:23:25.680
Code anderer Leute zu lesen.

00:23:26.600 --> 00:23:28.240
Und also das macht man

00:23:28.240 --> 00:23:30.180
natürlich idealerweise dadurch, dass man

00:23:30.180 --> 00:23:32.300
andere Leute Code reviewed, das ist dann

00:23:32.300 --> 00:23:34.220
immer das Ideal, dann kann man denen sogar

00:23:34.220 --> 00:23:35.440
noch sagen,

00:23:35.560 --> 00:23:38.600
blöde

00:23:38.600 --> 00:23:40.100
Kommentare reinwirken, genau das,

00:23:41.000 --> 00:23:42.380
also ich mache das glücklicherweise

00:23:42.380 --> 00:23:44.320
beruflich und glücklicherweise habe ich sehr gute Kollegen,

00:23:44.440 --> 00:23:46.360
die sehr gute Programmierer sind und dann

00:23:46.360 --> 00:23:48.440
ich habe sehr viel einfach dadurch

00:23:48.440 --> 00:23:50.260
gelernt, dass ich deren Code gelesen

00:23:50.260 --> 00:23:52.300
und blöde Kommentare

00:23:52.300 --> 00:23:53.200
darüber abgegeben habe.

00:23:54.400 --> 00:23:56.280
Aber das ist ehrlich gesagt, das ist ja schon so ein bisschen

00:23:56.280 --> 00:23:58.200
die steile Stelle

00:23:58.200 --> 00:24:00.100
an der Lernkurve irgendwie, also beide Sachen

00:24:00.100 --> 00:24:02.400
sowohl einfach so sich über, durch die Dokumentation

00:24:02.400 --> 00:24:03.700
von Projekten lesen, wie auch

00:24:03.700 --> 00:24:05.920
fremde Leute Code lesen. Ich erinnere mich da noch dran,

00:24:06.000 --> 00:24:08.060
dass das halt, also klar, ich würde absolut

00:24:08.060 --> 00:24:10.020
zustimmen, da kann man super viel lernen, aber es ist halt auch

00:24:10.020 --> 00:24:11.260
echt anstrengend, also

00:24:11.260 --> 00:24:13.900
vor allen Dingen, wenn das halt so Sachen sind, die man

00:24:13.900 --> 00:24:15.300
gar nicht mehr, ja, da

00:24:15.300 --> 00:24:18.140
aber ja, da kann man echt viel lernen, das ist

00:24:18.140 --> 00:24:20.140
ja. Es gibt ein Buch

00:24:20.140 --> 00:24:22.080
mit dem Titel Learning Python the Hard

00:24:22.080 --> 00:24:23.000
Way. Ah, ja.

00:24:24.260 --> 00:24:25.840
Das ist jetzt schon, habe ich auch mitgelernt.

00:24:27.660 --> 00:24:27.880
Ja.

00:24:28.320 --> 00:24:28.780
Finde ich gut.

00:24:30.100 --> 00:24:51.980
Ja, aber das ist sehr witzig, weil einige Leute, die dann fremden Code lesen oder eigenen Code lesen, stolpern dann irgendwann darauf mal wieder. Ich habe das, glaube ich, schon mal erzählt, aber ich kenne die Geschichte, wie Jochen dann meinen Code reviewt und dann, ah, nee, oh Gott, oh Gott, oh Gott, schmeiß mal weg, mach mal neu. Ja, okay, neu gemacht, weg schon. Und dann wieder, ah, Gott, oh Gott, oh Gott, na, was ist das denn? Schmeiß mal weg, mach mal neu. Und dann so, ah, irgendwann ein bisschen später wieder so, oh, nee, Gott, oh Gott, was ist das denn? Jochen, das habe ich von dir kopiert.

00:24:51.980 --> 00:24:55.780
Ja, wenn man seinen eigenen Code später

00:24:55.780 --> 00:24:57.260
sieht, dann passiert einem das auch regelmäßig.

00:24:57.940 --> 00:24:58.880
Einen eigenen Code ansehen.

00:25:00.360 --> 00:25:01.560
Past Me war schon

00:25:01.560 --> 00:25:03.680
ein ganz schlechter. Ja, ja, ein halbes Jahr später

00:25:03.680 --> 00:25:04.620
so, oh Gott, oh Gott, oh Gott.

00:25:05.720 --> 00:25:07.740
Was ist das denn? Kann das weg? Ja.

00:25:09.480 --> 00:25:11.620
Ja, das Wichtigste ist weitermachen, glaube ich, und dass man

00:25:11.620 --> 00:25:12.580
halt am Ball bleibt.

00:25:13.460 --> 00:25:15.120
Das ist ein bisschen eine Frage, wie viel Zeit man investiert.

00:25:15.680 --> 00:25:17.940
Ich habe noch zwei Sachen, die ich

00:25:17.940 --> 00:25:19.120
als Quelle habe. Die eine ist

00:25:19.120 --> 00:25:21.680
Hacker News. Das ist aber mehr so, was

00:25:21.680 --> 00:25:23.960
halt so für den groben

00:25:23.960 --> 00:25:25.740
Überblick möglich ist, ja, und auch da

00:25:25.740 --> 00:25:27.800
muss man ganz arg filtern, ja, und vielleicht

00:25:27.800 --> 00:25:29.960
am Tag einen oder zwei Links

00:25:29.960 --> 00:25:31.720
rausholen und auf keinen Fall in die Diskussion

00:25:31.720 --> 00:25:33.880
gucken, weil das ist ganz schrecklich.

00:25:34.020 --> 00:25:35.860
Ja, ich würde auch nicht ablegen, alle die Links,

00:25:35.960 --> 00:25:37.520
sondern ich würde, wenn ich was, mir Zeit nehme,

00:25:37.520 --> 00:25:38.360
die dann direkt angucken.

00:25:39.560 --> 00:25:41.720
Wenn es interessant ist, kann man

00:25:41.720 --> 00:25:42.880
sich das ja ansehen und das

00:25:42.880 --> 00:25:45.600
in diesen Stand rein synthetisieren

00:25:45.600 --> 00:25:47.620
oder zumindest wissen, dass es etwas gibt.

00:25:47.980 --> 00:25:48.440
Ja, aber sofort, direkt einmal drüber.

00:25:48.440 --> 00:25:51.580
Das ist wirklich mehr so eine Discovery-Sache, ja, was gibt es denn?

00:25:51.680 --> 00:26:05.900
Und da kommen auch immer wieder Python-Sachen durch, wo man sich dann die Dokumentation ansehen kann. Aber das ist wirklich so ein Low-Level. Aber was ich ganz viel mache, ist eben über RSS-Feeds von Personen das Blog lesen.

00:26:05.900 --> 00:26:11.460
Also zum Beispiel Jochens Blog, ja, hier auf dem Dorf wird abends geläutet.

00:26:11.720 --> 00:26:18.160
Das ist, ja, die etwas altmodische Push-Notification-Methode.

00:26:18.240 --> 00:26:20.740
Jetzt ist Feierabend, hier ist jetzt Feierabend auf dem Dorf.

00:26:20.760 --> 00:26:23.260
Das kann man auch nicht so gut wegdrücken, es gibt keinen Spam-Filter.

00:26:24.200 --> 00:26:29.680
Nee, nee. Aber Jochens Blog zum Beispiel, ja, der Jochen veröffentlicht ja seine Weaknotes,

00:26:29.780 --> 00:26:32.280
das heißt, dann weiß ich auf jeden Fall ungefähr, was der Jochen so gemacht hat.

00:26:32.280 --> 00:26:35.500
Ich gucke mir von den Podcasts eigentlich gar nichts an

00:26:35.500 --> 00:26:38.260
und von den Artikeln nur die Überschriften.

00:26:38.420 --> 00:26:42.360
Aber es ist so ein, ja, am Puls der Zeit bleiben,

00:26:42.680 --> 00:26:44.120
was man da halt hat.

00:26:47.760 --> 00:26:49.300
Ja, also, genau.

00:26:49.620 --> 00:26:52.000
Johannes macht ja auch Wignotes und die gucke ich mir auch immer an.

00:26:52.120 --> 00:26:52.760
Ich finde das immer sehr interessant.

00:26:52.900 --> 00:26:55.760
Ich finde da immer irgendwie Dinge, die ich nicht gesehen hatte,

00:26:55.880 --> 00:26:57.460
die irgendwie bei mir nicht vorbeigekommen sind.

00:26:57.800 --> 00:26:59.280
Ich dachte, ah, super, das ist ja total interessant.

00:26:59.500 --> 00:27:00.740
Also das hilft auch auf jeden Fall.

00:27:00.740 --> 00:27:02.580
Also ein paar Newsletter vielleicht auch, aber

00:27:02.580 --> 00:27:04.540
da kann man auch, wenn einem was interessiert, dann direkt

00:27:04.540 --> 00:27:06.460
lesen. Also ein paar bessere

00:27:06.460 --> 00:27:08.100
sind vielleicht irgendwie Data Science Weekly oder

00:27:08.100 --> 00:27:09.120
Python Weekly oder so.

00:27:09.980 --> 00:27:10.320
Ja.

00:27:11.520 --> 00:27:14.360
Genau, ich weiß nicht,

00:27:14.400 --> 00:27:16.060
ich habe ein paar, ich habe Postgres Weekly

00:27:16.060 --> 00:27:18.200
auch noch, der ist auch noch ganz gut.

00:27:19.040 --> 00:27:19.780
Und es gab noch so einen anderen,

00:27:20.180 --> 00:27:21.980
den ich gerade vergessen habe, den muss ich mir nicht schon

00:27:21.980 --> 00:27:23.480
einfach reinschreiben, vielleicht finde ich den ja noch.

00:27:24.640 --> 00:27:25.800
Ja, Newsletter.

00:27:26.580 --> 00:27:28.040
Ja, aber ansonsten,

00:27:28.560 --> 00:27:30.320
also eben mit Leuten reden, finde ich immer

00:27:30.320 --> 00:27:31.300
so das Beste eigentlich.

00:27:32.080 --> 00:27:33.520
Wie schon sagtest du immer, Jochen anrufen, fragen.

00:27:34.680 --> 00:27:36.420
Ja, nein, aber

00:27:36.420 --> 00:27:38.400
wirklich, also wenn man halt irgendwie auf die lokalen

00:27:38.400 --> 00:27:40.100
Treffen geht, da trifft man andere Leute,

00:27:40.640 --> 00:27:42.340
die sich vielleicht mit demselben Thema beschäftigen.

00:27:42.440 --> 00:27:44.180
Ich glaube, das ist eine gute Idee, weil

00:27:44.180 --> 00:27:46.160
die wissen meistens auch so ein bisschen was oder jeder

00:27:46.160 --> 00:27:48.140
weiß so ein bisschen was mehr und dann hat man

00:27:48.140 --> 00:27:50.360
das, irgendwer hat das mal Schwarmintelligenz genannt

00:27:50.360 --> 00:27:51.980
oder so. Das finde ich gar nicht so schlecht.

00:27:52.660 --> 00:27:54.280
Da kommt immer so ein bisschen was raus. Da kommt man immer

00:27:54.280 --> 00:27:56.220
mehrere Schritte weiter, als wenn man da

00:27:56.220 --> 00:27:58.220
alleine gegen die Wand läuft und da sich

00:27:58.220 --> 00:28:00.120
dann abwälzt und dann drüber klettern will. Das ist

00:28:00.120 --> 00:28:01.840
dauert immer ein bisschen länger und manchmal fällt man dann

00:28:01.840 --> 00:28:04.100
in so Lücken rein, die niemand sehen wollte

00:28:04.100 --> 00:28:05.660
oder die man selber gar nicht entdecken wollte

00:28:05.660 --> 00:28:08.040
und verlierst so ein bisschen den Fokus und das ist vielleicht ganz

00:28:08.040 --> 00:28:08.420
angenehm.

00:28:10.060 --> 00:28:11.900
Ja, ansonsten glaube ich, dann

00:28:11.900 --> 00:28:12.720
sind wir damit auch mehr

00:28:12.720 --> 00:28:14.560
oder weniger, achso, Quereinstieg,

00:28:14.640 --> 00:28:16.340
andere Frage, ne, das wäre vielleicht auch nochmal.

00:28:16.460 --> 00:28:18.280
Ja, also die Frage ist,

00:28:18.520 --> 00:28:20.440
was bedeutet Quereinstieg und wie viel Zeit investierst du,

00:28:20.520 --> 00:28:22.600
ist halt auch da die Frage, wie viel Zeit kannst du denn aufwenden.

00:28:22.980 --> 00:28:24.320
Wenn dich Python nur so nebenbei interessiert,

00:28:24.400 --> 00:28:26.380
dann hast du vielleicht fünf Wochen

00:28:26.380 --> 00:28:27.000
die Stunde Zeit.

00:28:28.760 --> 00:28:30.140
Fünf Wochen die Stunde, fünf Stunden die Woche.

00:28:31.100 --> 00:28:32.500
Das ist zwar schon ganz schön viel,

00:28:32.560 --> 00:28:34.420
wenn man sich überlegt, dass man so fünf Stunden die Woche für so ein

00:28:34.420 --> 00:28:36.380
Hobby erübrigt, aber wenn man das jetzt

00:28:36.380 --> 00:28:38.420
mit jemandem vergleicht, also ich habe zum Beispiel die ersten zwei Jahre

00:28:38.420 --> 00:28:40.220
70 Stunden die Woche ungefähr investiert

00:28:40.220 --> 00:28:42.300
und dann braucht man halt für denselben Stoff

00:28:42.300 --> 00:28:44.480
im gesetzten Fall, man ist das genau gleich

00:28:44.480 --> 00:28:46.480
effektiv, 28

00:28:46.480 --> 00:28:48.440
Jahre, wie für diese zwei Jahre, um

00:28:48.440 --> 00:28:50.120
einfach denselbe Menge irgendwie aufzunehmen,

00:28:50.500 --> 00:28:52.240
wenn man fünf Stunden die Woche macht, rein rechnerisch

00:28:52.240 --> 00:28:54.280
und das ist halt einfach so die Frage, also wie viel Zeit

00:28:54.280 --> 00:28:56.340
steckt man wirklich rein, um weiterzukommen und was will

00:28:56.340 --> 00:28:58.000
man damit anfangen? Also wenn man jetzt

00:28:58.000 --> 00:28:59.900
einen Top will, sollte man vielleicht

00:28:59.900 --> 00:29:01.620
den harten Weg gehen, ja,

00:29:02.220 --> 00:29:04.260
the hard way und sich wirklich die Sachen so ein bisschen auf den

00:29:04.260 --> 00:29:05.340
Grund angucken, damit man

00:29:05.340 --> 00:29:08.240
vielleicht irgendwo mitkommt, weil man möchte ja

00:29:08.240 --> 00:29:09.060
vielleicht auch ein Level haben.

00:29:10.400 --> 00:29:12.200
Ja, aber ich finde es schwierig, also ich meine, das sind

00:29:12.200 --> 00:29:14.240
halt eben auch, im Rückblick

00:29:14.240 --> 00:29:15.700
ist es halt so viel Zeit, die man investiert hat.

00:29:16.140 --> 00:29:18.280
Wenn einem das jemand gesagt hätte, wie viel Arbeit

00:29:18.280 --> 00:29:20.280
das ist, dann hätte man damit gar nicht angefangen.

00:29:20.420 --> 00:29:22.260
Ich hätte mir gedacht, nee, dann gehe ich lieber

00:29:22.260 --> 00:29:23.780
mit Holz, genau.

00:29:24.240 --> 00:29:26.140
Irgendwie gehe ich spazieren

00:29:26.140 --> 00:29:27.940
und gucke mir irgendwie die Bäume an und die Blüten

00:29:27.940 --> 00:29:28.780
und denke mir, ach ja.

00:29:29.700 --> 00:29:32.040
Aber der Grund, warum das dann passiert ist, ist ja eigentlich,

00:29:32.140 --> 00:29:34.200
dass das halt einfach Spaß gemacht hat.

00:29:34.460 --> 00:29:35.380
Und dann merkt man das nicht so.

00:29:35.760 --> 00:29:37.740
Dann denkt man sich, hupsala, schon wieder ein Tag vorbei.

00:29:38.120 --> 00:29:39.580
Ja, genau, aber das ist dann eher in der Nacht.

00:29:40.940 --> 00:29:42.020
Es muss halt gut sein.

00:29:42.020 --> 00:29:43.660
Das muss halt einem Spaß machen und irgendwie liegen, ne?

00:29:43.860 --> 00:29:44.080
Ja.

00:29:44.360 --> 00:29:45.760
Also wenn euch das wirklich so...

00:29:45.760 --> 00:29:47.400
Man darf ja auch nicht so viel Stress machen.

00:29:47.700 --> 00:29:48.040
Ja, genau.

00:29:48.080 --> 00:29:49.220
Der Dominik stresst uns ja jetzt,

00:29:49.280 --> 00:29:51.120
dass man hier so und so viele Stunden reintun muss.

00:29:51.340 --> 00:29:53.780
Aber es geht ja auch, man kann es auch nebenher machen.

00:29:53.860 --> 00:29:54.860
Man kann es auch zum Spaß machen.

00:29:55.800 --> 00:29:56.840
Ja, man sollte es zum Spaß machen.

00:29:58.080 --> 00:29:58.680
Ja, auf jeden Fall.

00:29:58.940 --> 00:30:01.900
Ein Python ist sehr gut, um es zum Spaß zu machen.

00:30:01.980 --> 00:30:03.620
Aber halt tatsächlich auch für einen Lebensunterhalt.

00:30:03.700 --> 00:30:04.520
Also es geht eigentlich ganz gut.

00:30:04.840 --> 00:30:06.320
Aber man muss halt dann bereit sein, auch was zu tun.

00:30:06.320 --> 00:30:07.360
Ich wollte jetzt niemanden stressen,

00:30:07.440 --> 00:30:08.100
aber es geht halt darum,

00:30:08.180 --> 00:30:09.500
wenn du jetzt einen Queranschick wirklich finden willst

00:30:09.500 --> 00:30:10.820
und sagst, du hast dich eben entschieden,

00:30:10.940 --> 00:30:12.800
das ist jetzt dein Ding, dann mach's

00:30:12.800 --> 00:30:13.200
ordentlich.

00:30:14.520 --> 00:30:15.460
Würde ich jetzt behaupten.

00:30:16.980 --> 00:30:19.200
So regionale Treffen sind da, glaube ich,

00:30:19.340 --> 00:30:21.000
was supergut ist. Also ich bin, als ich

00:30:21.000 --> 00:30:22.660
nach Düsseldorf gekommen bin, bin ich einfach in den

00:30:22.660 --> 00:30:24.960
Python-Fu gegangen und jeden Donnerstag

00:30:24.960 --> 00:30:26.100
da hingegangen.

00:30:26.100 --> 00:30:27.800
Ich kenne das ja, im Chaosdorf

00:30:27.800 --> 00:30:30.280
in Düsseldorf. Genau, im Computerclub in Düsseldorf.

00:30:31.120 --> 00:30:32.200
Jeden Donnerstagabend

00:30:32.200 --> 00:30:34.100
ist Python-Fu und da kommen einfach Leute,

00:30:34.300 --> 00:30:36.160
die interessiert sind. Das hat auch gar kein Programm

00:30:36.160 --> 00:30:38.080
und gar keine Agenda oder so, sondern

00:30:38.080 --> 00:30:38.760
es ist einfach

00:30:38.760 --> 00:30:41.320
Gleichgesinnte treffen und das

00:30:41.320 --> 00:30:44.020
führt dann schon automatisch

00:30:44.020 --> 00:30:45.780
dazu, dass man darüber spricht. Und dann kann man ja auch

00:30:45.780 --> 00:30:47.800
gucken, ob man irgendwo was hat, was

00:30:47.800 --> 00:30:49.820
man gerne machen möchte oder ob man irgendein Thema hat,

00:30:49.860 --> 00:30:51.660
was einen interessiert. Und da findet sich dann immer jemand,

00:30:51.780 --> 00:30:53.300
der irgendwas dazu sagen kann. Oder

00:30:53.300 --> 00:30:55.200
auch jemand anders, der ein Thema hat,

00:30:55.900 --> 00:30:57.640
wo man dann selbst was dazu sagen kann. Und dann

00:30:57.640 --> 00:30:59.700
kommt man da so in den Austausch rein. Also das

00:30:59.700 --> 00:31:01.240
ist auch eine ganz nützliche Sache.

00:31:05.160 --> 00:31:06.120
Ja, kann ich mal bestätigen.

00:31:06.180 --> 00:31:07.720
Ja, ja. Okay, gut.

00:31:07.840 --> 00:31:09.960
dann würde ich sagen, haben wir uns mit diesem

00:31:09.960 --> 00:31:11.700
Themenbereich auch beschäftigt.

00:31:12.400 --> 00:31:13.700
Dann können wir ja ein neues Kapitel anfangen.

00:31:14.520 --> 00:31:15.960
Um den Laser des Todes

00:31:15.960 --> 00:31:17.420
geht es dann jetzt. Ja, genau.

00:31:18.960 --> 00:31:19.780
Ja, da musst du jetzt, glaube ich,

00:31:19.780 --> 00:31:21.780
erstmal ein bisschen ausholen, Martin. Was ist das denn?

00:31:22.420 --> 00:31:24.100
Genau. Und was macht ihr da überhaupt?

00:31:24.360 --> 00:31:25.600
Also, du musst doch nochmal von dem Institut

00:31:25.600 --> 00:31:27.740
leichter zählen, Hintergrund und dann. Also, wir sind

00:31:27.740 --> 00:31:29.960
der European XFEL. Das XFEL

00:31:29.960 --> 00:31:32.300
steht für Röntgenfreie

00:31:32.300 --> 00:31:33.080
Elektronenlaser.

00:31:33.820 --> 00:31:35.680
Wir sind eine Großforschungseinrichtung in

00:31:35.680 --> 00:31:37.580
Hamburg oder eher bei Hamburg.

00:31:37.840 --> 00:31:53.980
Und, ja, wir haben dort einen der stärksten Röntgenquellen der Welt. Ja, ich glaube, wir sind aktuell sogar Nummer eins. Da ist immer so ein Wettlauf, wer da jetzt gerade den Arzt fahren hat.

00:31:53.980 --> 00:31:54.720
Kleiner Understatement.

00:31:57.100 --> 00:32:06.200
Ja, es gibt ja auch nicht so viele auf der Welt. Also so ein Röntgen und Laser zusammen, das ist tatsächlich gar nicht so einfach. Das kostet halt auch gleich mal anderthalb Milliarden Euro.

00:32:07.580 --> 00:32:08.500
Warum macht man das zusammen?

00:32:10.660 --> 00:32:13.300
Ja, also Röntgen ist halt ganz praktisch.

00:32:13.580 --> 00:32:18.660
Also es geht effektiv, ein großer Witz daran ist,

00:32:18.740 --> 00:32:21.880
dass man effektiv ein sehr, sehr gutes Mikroskop hat.

00:32:21.940 --> 00:32:23.600
Man kann deutlich kleinere Sachen sehen,

00:32:23.680 --> 00:32:25.560
als man mit einem normalen Lichtmikroskop sehen kann,

00:32:25.640 --> 00:32:29.400
weil die Wellenlänge von Röntgenlicht tausendmal kürzer ist,

00:32:29.500 --> 00:32:32.000
als die von Sichtbewerbem Licht und dann sogar mehr als tausendmal.

00:32:32.640 --> 00:32:34.680
Und dann kann man halt tausendmal kleinere Sachen sehen

00:32:34.680 --> 00:32:52.240
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.

00:32:53.800 --> 00:33:14.740
Ist natürlich trotzdem interessant. Ja, und solche Sachen können wir uns dann halt angucken, wobei wir auch viele andere Sachen machen. Also zum Beispiel, also meine Gruppe hat sich viel um Magnetismus gekümmert. Da ging es um tatsächlich solche banalen Sachen wie, wie schnell kann man eigentlich grundsätzlich, also prinzipiell auf eine Festplatte schreiben.

00:33:15.880 --> 00:33:30.720
Ja, die Forschung, also tatsächlich war es so, dass man lange Zeit Angst hatte, man könnte gar nicht so, also man käme da an eine Grenze, dass man also prinzipiell physikalisch nicht schneller eine Festplatte schreiben kann, als halt, ich weiß nicht, was damals vorgeschlagen wurde.

00:33:31.460 --> 00:33:50.440
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.

00:33:50.940 --> 00:34:15.880
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.

00:34:16.480 --> 00:34:19.080
Das ist sehr langsam. Also schnell.

00:34:19.500 --> 00:34:24.520
Ja, genau. Und das ist der andere Grund, warum man das macht.

00:34:24.520 --> 00:34:36.920
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.

00:34:37.060 --> 00:34:40.880
Das ist natürlich dann auch noch ein schöner Nebeneffekt.

00:34:43.320 --> 00:34:52.340
Und dann, das Ding läuft dann permanent und macht ihr irgendwelche Experimente und die wertet ihr dann irgendwie aus mit Bildern, die auf Platten gespeichert werden, die ihr dann?

00:34:52.700 --> 00:35:13.740
Ja, also wir haben da uns so, also da gibt es halt diesen Laser, der ist halt dreieinhalb Kilometer lang und am Ende kriegen wir dann immer wochenweise, verwenden wir den dann, da gibt es dann irgendwelche Benutzer, nennen wir die, die dann uns Ideen geben, was man denn da messen könnte und die kommen dann bei uns vorbei.

00:35:13.740 --> 00:35:43.720
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 dann bei uns vorbei und machen dann mit dem Röntgenlaser Experimente und genau da kommt dann halt die Flexibilität tatsächlich von Python ins Spiel, dass wir ja im Prinzip, also wir haben da immer mehrere Teams und wir wechseln uns typischerweise ab, also eine Woche kriegt das eine Team auf den Röntgenlaser,

00:35:43.740 --> 00:35:45.020
Laser verwenden, dann nächste Woche in den anderen.

00:35:45.680 --> 00:35:47.780
Insgesamt, es sind immer drei Teams parallel,

00:35:48.100 --> 00:35:49.560
insgesamt sind wir sechs Teams, also

00:35:49.560 --> 00:35:51.680
immer drei, erst die einen drei, dann die

00:35:51.680 --> 00:35:53.040
anderen drei, wieder die einen drei, die anderen drei.

00:35:53.900 --> 00:35:55.700
Und ja, dann kommen unsere Benutzer

00:35:55.700 --> 00:35:57.560
halt vorbei und die haben dann die verrücktesten Ideen, was sie

00:35:57.560 --> 00:35:59.400
da mit dem machen wollen.

00:35:59.880 --> 00:36:01.600
Und dann stehen sie dann vor uns und sagen, ja, da macht

00:36:01.600 --> 00:36:02.240
mal. Und

00:36:02.240 --> 00:36:05.700
häufig muss man dann halt

00:36:05.700 --> 00:36:07.320
Sachen, also

00:36:07.320 --> 00:36:09.360
wir haben dann noch das

00:36:09.360 --> 00:36:11.640
Bonusproblem, dass es halt ein Röntgenlaser

00:36:11.640 --> 00:36:13.240
ist und bei

00:36:13.240 --> 00:36:15.780
da sollte man halt nicht unbedingt daneben

00:36:15.780 --> 00:36:17.820
stehen. Also wirklich gefährlich ist das eigentlich auch

00:36:17.820 --> 00:36:19.860
nicht. Also gerüchtete Weise,

00:36:20.160 --> 00:36:20.960
wenn man da in

00:36:20.960 --> 00:36:23.740
anderen Weltregionen ist,

00:36:23.840 --> 00:36:25.740
dann ist denen das auch egal. Da stellen sie

00:36:25.740 --> 00:36:27.600
einfach direkt daneben. Aber bei uns ist das, in Deutschland

00:36:27.600 --> 00:36:29.620
ist das nicht erlaubt. Und das heißt,

00:36:29.640 --> 00:36:31.620
es muss alles ferngesteuert werden und alles automatisiert

00:36:31.620 --> 00:36:33.200
werden. Und

00:36:33.200 --> 00:36:35.880
alles ferngesteuert, okay, das machen das alles Computer.

00:36:36.580 --> 00:36:37.680
Um mal so eine Größenordnung zu

00:36:37.680 --> 00:36:39.600
geben, also anstatt, dass ich mich

00:36:39.600 --> 00:36:41.440
dorthin stelle und was rumschraube, muss dann halt

00:36:41.440 --> 00:36:43.380
ein Motor das tun. Wir haben dort weit

00:36:43.380 --> 00:36:45.220
über 1000 Motoren, die dort gesteuert werden

00:36:45.220 --> 00:36:47.480
und das

00:36:47.480 --> 00:36:48.700
machen wir tatsächlich alles mit Python

00:36:48.700 --> 00:36:51.340
und zwar vorwiegend deshalb, weil

00:36:51.340 --> 00:36:53.560
wenn dann so ein Benutzer vor uns steht

00:36:53.560 --> 00:36:54.860
und dann sagt, ja

00:36:54.860 --> 00:36:57.600
wir haben

00:36:57.600 --> 00:36:59.500
hier die Probe und der Röntgenlaser

00:36:59.500 --> 00:37:01.220
ist leider viel zu stark, wir müssen den jetzt

00:37:01.220 --> 00:37:03.540
die Probe jetzt immer hin und her bewegen, damit

00:37:03.540 --> 00:37:05.280
wir nicht immer denselben Punkt treffen,

00:37:05.500 --> 00:37:07.120
sondern damit er halt nicht kaputt geht, dann

00:37:07.120 --> 00:37:08.520
muss ich mich halt hinsetzen

00:37:08.520 --> 00:37:11.040
und das dann programmieren, dass dann die

00:37:11.040 --> 00:37:12.380
Probe halt

00:37:12.380 --> 00:37:15.520
geschickt so hin und her wackelt, dass sie

00:37:15.520 --> 00:37:17.380
dabei nicht kaputt geht,

00:37:17.440 --> 00:37:18.980
dass wir sie mit einem Laser beschießen.

00:37:19.160 --> 00:37:21.100
Und dann hat der dann verschiedene Achsen in den Motoren, die

00:37:21.100 --> 00:37:23.080
ihr irgendwie kennt und dann könnt ihr mit tausend Motoren

00:37:23.080 --> 00:37:25.080
viele Dimensionen, die da irgendwie

00:37:25.080 --> 00:37:26.520
möglich sind, tun. Ja, richtig.

00:37:26.960 --> 00:37:29.480
Und wir

00:37:29.480 --> 00:37:31.120
brauchen wirklich die Flexibilität, dass wir

00:37:31.120 --> 00:37:32.160
dann, also wir haben wirklich

00:37:32.160 --> 00:37:34.780
für eine Woche schreiben wir dann tatsächlich

00:37:34.780 --> 00:37:37.180
ja, so

00:37:37.180 --> 00:37:38.960
viel Code ist das ja praktischerweise in Python

00:37:38.960 --> 00:37:40.680
jetzt auch nicht, aber es macht es halt möglich.

00:37:41.040 --> 00:37:58.900
Und dass man halt da live dann programmiert und live dann Dinge ändert. Also uns passierte dann regelmäßig, dass wir festgestellt haben, oh, das ist alles nicht stabil genug, wir schießen die ganze Zeit daneben und können das aber messen, wie viel wir daneben schießen.

00:37:58.900 --> 00:38:09.280
Und dann muss halt ein kleines Python-Programm geschrieben werden, womit wir dann immer messen, wie weit schießen wir denn daneben und fahren dann die ganze Zeit den Laser wieder dahin, dass wir halt nicht mehr daneben schießen.

00:38:09.620 --> 00:38:11.440
Also ein kleines bisschen IoT in groß?

00:38:12.780 --> 00:38:14.520
Ja, also dazu muss man sagen,

00:38:14.620 --> 00:38:17.160
für echtes IoT sind wir noch nicht mal sonderlich groß.

00:38:17.300 --> 00:38:21.040
Also so eine Automobilfabrik ist da,

00:38:21.420 --> 00:38:22.920
ach so, IoT, nein, also ja.

00:38:24.640 --> 00:38:26.800
Also es gibt da deutlich größere Einrichtungen,

00:38:26.880 --> 00:38:27.600
die ähnliche Sachen machen.

00:38:27.840 --> 00:38:28.760
Automobilfabriken zum Beispiel,

00:38:29.000 --> 00:38:31.380
die haben da auch tausende von Motoren.

00:38:31.820 --> 00:38:34.560
Aber die werden typischerweise jahrelang vorbereitet

00:38:34.560 --> 00:38:36.620
und laufen dann jahrelang durch.

00:38:37.960 --> 00:38:40.160
So ein bisschen so, als würde einer in der Autofabrik

00:38:40.160 --> 00:38:42.140
sagen, und morgen machen wir jetzt nicht mehr hier den Golf

00:38:42.140 --> 00:38:44.160
12, sondern wir machen jetzt

00:38:44.160 --> 00:38:46.020
einen Clown-Car und

00:38:46.020 --> 00:38:48.220
fahr doch mal bitte irgendwie

00:38:48.220 --> 00:38:50.240
die Motoren so, dass das dann

00:38:50.240 --> 00:38:52.000
passiert. Ja, aber hopp, hopp. Genau.

00:38:52.280 --> 00:38:54.040
Und so läuft das bei uns tatsächlich die ganze Zeit

00:38:54.040 --> 00:38:56.300
und das macht es halt deshalb

00:38:56.300 --> 00:38:56.720
Python.

00:38:58.000 --> 00:38:59.320
Und ja,

00:38:59.540 --> 00:39:01.440
die andere Sache ist, dass wir

00:39:01.440 --> 00:39:04.020
natürlich dann immer sehr viele Sachen dann parallel

00:39:04.020 --> 00:39:05.180
machen müssen, dass halt

00:39:05.180 --> 00:39:07.900
dann die Motoren häufig dann

00:39:07.900 --> 00:39:10.060
irgendwie parallel fahren müssen, dass man da

00:39:10.060 --> 00:39:11.960
den Laser

00:39:11.960 --> 00:39:13.800
anschaltet, Motoren hin und her fährt und der

00:39:13.800 --> 00:39:15.780
ausschaltet. Habt ihr denn Joystick

00:39:15.780 --> 00:39:16.600
für oder sowas?

00:39:18.040 --> 00:39:19.800
Ja, der Punkt ist das ja, dass das ja automatisch

00:39:19.800 --> 00:39:22.120
gehen soll. Deshalb kein Joystick.

00:39:22.460 --> 00:39:24.140
Aber wenn ihr jetzt eingreifen müsst oder so?

00:39:25.440 --> 00:39:25.900
Ja, nee,

00:39:25.940 --> 00:39:28.020
das geht tatsächlich, also das ist glücklicherweise

00:39:28.020 --> 00:39:29.900
selten genug, dass wir dann wirklich so mit

00:39:29.900 --> 00:39:31.880
Maus und Klick auf Buttons dann das

00:39:31.880 --> 00:39:33.920
machen. Das ist

00:39:33.920 --> 00:39:36.320
ja, wobei

00:39:36.320 --> 00:39:37.540
da dann natürlich

00:39:37.540 --> 00:40:01.920
Da kann man, also gerade wenn man so flexibel ist, kann man dann halt auch sehr schöne, flexible Sachen machen, dass wir dann, also viel schöner als ein Joystick ist, dass wir das hinbekommen haben, dass man, ja, wir machen einfach ein Foto der Probe, bevor wir sie in den Laser reinschießen und dann können wir einfach auf das Foto draufklicken und dann schießt der Laser dahin.

00:40:02.440 --> 00:40:24.360
Das sind jetzt alle Spielereien, die lassen sich mit so kleinen Skripten schnell mal zusammenschreiben und das ist halt der große Vorteil, dass wir halt nicht, wie das bei einer Automobilfabrik wäre oder auch tatsächlich auch in der Forschung in anderen Bereichen ist, dass man halt lange vorher einen Antrag schreiben muss und dann gibt es dort eine Softwareabteilung, die dann da irgendwelche Entwicklungen für einen macht.

00:40:25.460 --> 00:40:27.700
das wäre für uns einfach nicht flexibel genug.

00:40:28.280 --> 00:40:29.140
Wir müssen wirklich

00:40:29.140 --> 00:40:31.540
sofort eingreifen können

00:40:31.540 --> 00:40:32.820
und das können wir auch.

00:40:33.980 --> 00:40:35.760
Aber dann kommt wieder die ganze Sache

00:40:35.760 --> 00:40:37.740
mit dem, dass wir die ganze Zeit Sachen parallel machen müssen

00:40:37.740 --> 00:40:39.580
und ja,

00:40:39.660 --> 00:40:41.140
da kommt dann halt wieder der vorhin erwähnte

00:40:41.140 --> 00:40:42.940
Gil ins Spiel,

00:40:44.340 --> 00:40:45.420
dass wir halt eben tatsächlich

00:40:45.420 --> 00:40:47.440
kein Multithreading machen,

00:40:47.440 --> 00:40:48.560
weil Multithreading

00:40:48.560 --> 00:40:50.560
ist ja der Horror

00:40:50.560 --> 00:40:53.480
und dann tatsächlich alles

00:40:53.480 --> 00:40:54.440
mit Asimgai auch machen.

00:40:55.460 --> 00:41:00.240
Das ist ja das, was normalerweise immer die ganzen Leute im Web ganz viel machen.

00:41:00.960 --> 00:41:03.600
Wir machen jetzt kein Web, aber tatsächlich ist es so,

00:41:03.700 --> 00:41:09.020
dass Async.io sich auch für Steuerung von Sachen super eignet.

00:41:09.020 --> 00:41:12.900
Das heißt, wenn man fünf Motoren gleichzeitig bewegen will

00:41:12.900 --> 00:41:16.260
und dann warten muss, bis die alle angekommen sind,

00:41:17.140 --> 00:41:21.140
das lässt sich super in so einer Async.io-Umgebung schreiben.

00:41:21.420 --> 00:41:23.860
Das heißt, ihr kommt mit Batteries included quasi zurecht?

00:41:25.460 --> 00:41:42.840
Ja, also ja, wir führen so ein bisschen Katalog darüber, welche Pakete wir so verwenden. Ich glaube, inzwischen sind wir so bei 30 Paketen, die wir da noch mit reinmachen.

00:41:43.060 --> 00:42:00.280
Also natürlich insbesondere ganz wichtig sind so was wie NumPy und SciPy. Also daher kommt das ursprünglich eigentlich, dass die Datenauswertung in der Physik schon länger mit NumPy und SciPy gemacht wird. Das ist da schon sehr beliebt, schon recht lange.

00:42:01.360 --> 00:42:21.940
Und dass man dann halt das gewissermaßen umgekehrt den Weg gegangen ist, dass wir geguckt haben, also als wir uns entscheiden mussten, wie machen wir denn unsere Experimente Steuerung, 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.

00:42:22.660 --> 00:42:45.300
Und das hat natürlich auch dann den Vorteil, dass man das dann die Übergabe der Daten, also wenn wir dann unsere Kameras steuern, da muss man dann natürlich dann halt gewissermaßen den Auslöser der Kamera, das ist ein Kontrollproblem und das Auslesen der Daten ist dann fast schon ein Big-Data-Problem. Und wenn man das mit demselben machen kann, dann ist das natürlich super.

00:42:48.440 --> 00:43:02.040
Und so, um mal Größenordnung zu geben, unsere Hauptkamera, die wir da verwenden, ist halt eine 2 Megapixel Kamera, die mit 5000 Bildern pro Sekunde aufnimmt.

00:43:02.500 --> 00:43:03.540
Da kommen ein bisschen Daten zusammen?

00:43:03.880 --> 00:43:05.240
Ja, da kommen ein bisschen Daten zusammen.

00:43:06.240 --> 00:43:07.580
Ich muss gerade überlegen, wie viel sind das?

00:43:08.300 --> 00:43:20.640
Ja, mal gucken. Also 2 Megapixel mal 2 Byte macht 4 Megabyte mal 5000, 20 Gigabyte pro Sekunde.

00:43:22.200 --> 00:43:23.380
Kleiner Datendurchsatz.

00:43:24.400 --> 00:43:27.940
Ja, da muss man, also, habt ihr so viel Platz bei euch?

00:43:28.200 --> 00:43:36.420
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?

00:43:37.340 --> 00:43:59.180
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.

00:43:59.640 --> 00:44:00.900
Wir haben noch fünf Tage übrig.

00:44:02.340 --> 00:44:03.180
Und in den fünf Tagen,

00:44:03.960 --> 00:44:04.920
ja, da können wir auch schon mal

00:44:04.920 --> 00:44:06.700
dann wirklich, also

00:44:06.700 --> 00:44:09.020
ja, ich würde

00:44:09.020 --> 00:44:11.000
sagen, 15, 20 Stunden können wir dann tatsächlich

00:44:11.000 --> 00:44:13.140
auch schon messen. Und ja, das sind Datenmengen,

00:44:13.220 --> 00:44:14.160
die dann da durchfließen.

00:44:15.280 --> 00:44:16.960
Und wobei

00:44:16.960 --> 00:44:18.760
da dann das große Problem natürlich auch wieder ist,

00:44:19.720 --> 00:44:20.920
dass wir nach Möglichkeit, dass

00:44:20.920 --> 00:44:22.300
alles dann wieder ausgewertet werden muss.

00:44:24.480 --> 00:44:24.840
Also

00:44:24.840 --> 00:44:26.900
eines der großen Vorteile unseres

00:44:26.900 --> 00:44:28.620
Ein Terabyte pro Minute

00:44:28.620 --> 00:44:29.480
habe ich gerade ausgerichtet.

00:44:30.120 --> 00:44:31.580
Ja, um solche

00:44:31.580 --> 00:44:34.240
Größenordnungen geht es.

00:44:37.340 --> 00:44:38.380
Glücklicherweise bin ich nicht

00:44:38.380 --> 00:44:39.720
für das Datenmanagement zuständig.

00:44:39.780 --> 00:44:41.820
Das sind eine Million Terabyte in euren 15 Stunden.

00:44:45.700 --> 00:44:46.360
Tausend Terabyte.

00:44:46.380 --> 00:44:46.880
Das kann nicht sein.

00:44:46.880 --> 00:44:47.440
Tausend Terabyte.

00:44:47.760 --> 00:44:51.020
1.080 Terabyte.

00:44:51.200 --> 00:44:52.760
Ja, das ist, wir haben da,

00:44:53.080 --> 00:44:55.040
also Petabyte ist bei uns

00:44:55.040 --> 00:44:55.460
Jede Woche.

00:44:56.240 --> 00:44:58.600
Das ist nichts, also jetzt

00:44:58.600 --> 00:44:59.680
Besonderes, also

00:44:59.680 --> 00:45:02.660
unsere Daten, also die

00:45:02.660 --> 00:45:04.600
Leute, die bei uns, ich bin glücklicherweise nicht

00:45:04.600 --> 00:45:06.580
dafür zuständig, die Daten zu

00:45:06.580 --> 00:45:07.760
speichern und zu halten,

00:45:08.760 --> 00:45:10.300
aber

00:45:10.300 --> 00:45:12.540
die, die das sind, haben damit tatsächlich,

00:45:12.980 --> 00:45:14.340
also, ja, das tut

00:45:14.340 --> 00:45:15.320
tatsächlich weh.

00:45:16.840 --> 00:45:18.480
Und, ja gut, man versucht natürlich

00:45:18.480 --> 00:45:20.560
dann immer, die Daten irgendwie einzudampfen, dass man

00:45:20.560 --> 00:45:22.340
halt versucht,

00:45:22.480 --> 00:45:24.520
doch nur die Daten zu speichern, wo

00:45:24.520 --> 00:45:25.800
wirklich was Relevantes drauf ist.

00:45:27.060 --> 00:45:28.360
Also von den

00:45:28.360 --> 00:45:31.220
5.000 Bildern pro Sekunde.

00:45:32.260 --> 00:45:32.520
Naja,

00:45:32.780 --> 00:45:33.340
also

00:45:33.340 --> 00:45:36.900
nicht auf allen Ecken

00:45:36.900 --> 00:45:38.860
des Bildes sind immer interessante

00:45:38.860 --> 00:45:40.980
Daten drauf. Vielleicht läuft dann irgendwie eine Reaktion,

00:45:41.060 --> 00:45:42.920
die mal zwei Sekunden dauert oder nur eine zehntel Sekunde

00:45:42.920 --> 00:45:44.820
mal flackert oder sowas und die muss man vielleicht haben.

00:45:45.340 --> 00:45:46.180
Ja, also je nachdem.

00:45:46.320 --> 00:45:49.120
Also was

00:45:49.120 --> 00:45:50.880
viel gemacht wird, ist, wenn wir da

00:45:50.880 --> 00:45:53.040
solche Proteine in den Strahl schießen,

00:45:53.700 --> 00:45:54.860
dass man dann, ja,

00:45:55.020 --> 00:45:56.660
also. Jetzt hast du wieder was gesagt,

00:45:56.760 --> 00:45:59.600
Was macht ihr? Ihr stießt Proteine in den Strahl.

00:45:59.620 --> 00:46:04.200
Genau, also zum Beispiel dieses berühmte Spike-Protein von Corona.

00:46:05.260 --> 00:46:08.860
Also das Problem ist, wenn man mit einem Röntgenlaser da drauf schießt, dann ist das Protein kaputt.

00:46:09.680 --> 00:46:11.340
Das bricht durch.

00:46:12.120 --> 00:46:12.800
Das explodiert.

00:46:12.920 --> 00:46:13.520
Das explodiert.

00:46:14.140 --> 00:46:20.200
Ja, also das ist die Magie, dass wir so schnell sind, dass wir gewissermaßen ein Foto schießen.

00:46:20.600 --> 00:46:23.200
Ihr habt irgendeine Trägersubstanzflüssigkeit,

00:46:23.300 --> 00:46:25.600
in der schirmt das rum und das ist auf so einem Glas drauf

00:46:25.600 --> 00:46:26.960
und das schießt dann der Laser rein, oder?

00:46:27.540 --> 00:46:29.320
Nee, das wird tatsächlich ...

00:46:29.320 --> 00:46:34.940
Ja, das ist in einer gelösten typischerweise in einer Lösung

00:46:34.940 --> 00:46:39.220
und das wird dann in gewissermaßen ein feiner Strahl,

00:46:40.440 --> 00:46:42.460
sozusagen wie ein Finkelstrahl,

00:46:43.320 --> 00:46:46.060
der dann mit dem Laser beschossen wird.

00:46:46.260 --> 00:46:47.320
Und da das sofort kaputt geht,

00:46:47.420 --> 00:46:49.000
muss das die ganze Zeit nachgefüttert werden.

00:46:49.140 --> 00:46:53.860
Deshalb wird das mit Hochdruck als ein sehr dünner Strahl durch ...

00:46:53.860 --> 00:46:56.460
Da kommen die ganze Zeit Proteine, fließen da so durch.

00:46:56.560 --> 00:46:56.720
Genau.

00:46:56.880 --> 00:46:59.320
Das heißt, irgendwer pinkelt Proteine dann über diesen ...

00:46:59.320 --> 00:47:00.760
Und da kommt der Laser, der ballert dann dazwischen.

00:47:00.820 --> 00:47:00.980
Genau.

00:47:01.540 --> 00:47:04.860
Und immer, wenn was passiert, wird fotografiert, 5000 Mal pro Sekunde.

00:47:05.040 --> 00:47:06.360
Genau, also immer dann, wenn der Laser schießt.

00:47:06.360 --> 00:47:09.260
Der Laser schießt bis zu 5000 Mal pro Sekunde.

00:47:11.160 --> 00:47:14.060
Je nachdem, was man genau macht, kann das auch mal mehr oder weniger sein.

00:47:14.440 --> 00:47:16.160
Und der ist dreieinhalb Kilometer lang.

00:47:16.260 --> 00:47:18.980
Das heißt, es gibt so eine Riesenröhre irgendwo da und da schießt er durch.

00:47:19.000 --> 00:47:21.160
Richtig, das ist eine Tunnelröhre,

00:47:21.280 --> 00:47:23.140
die ist mit einer Tunnelbohrmaschine gebohrt worden,

00:47:23.280 --> 00:47:25.100
die dann von,

00:47:25.660 --> 00:47:27.140
also wir sind, das fängt

00:47:27.140 --> 00:47:29.100
in Hamburg an und ist tatsächlich so lang,

00:47:29.180 --> 00:47:30.920
dass wir dann, dass das Experiment selbst

00:47:30.920 --> 00:47:32.440
dann nicht mehr in Hamburg stattfindet, weil

00:47:32.440 --> 00:47:34.800
zu weit weg. Genau, dann sind wir

00:47:34.800 --> 00:47:35.900
in Schleswig-Holstein.

00:47:36.620 --> 00:47:37.780
Wie lange braucht der Strahl?

00:47:39.780 --> 00:47:40.920
Ja, Lichtgeschwindigkeit, ne?

00:47:41.040 --> 00:47:42.860
Ja, das ist wahrscheinlich ein Augenblick.

00:47:43.180 --> 00:47:44.640
Ja, so Mikrosekunden, ja.

00:47:45.100 --> 00:47:46.900
Aber ihr könnt es schneller wahrnehmen.

00:47:47.020 --> 00:47:48.580
Ich habe gesagt, Phantosekunden könnt ihr auch.

00:47:48.580 --> 00:48:02.540
Ja, das hat ja nichts miteinander zu tun. Tatsächlich ist es so, dass in unserer Tunnelröhre mehrere von diesen Röntgenblitzen hintereinander sich auf unsere Probe zubewegen, sogar ganz viele.

00:48:03.000 --> 00:48:26.200
Tatsächlich kommt das, ist es nicht so, dass da 5000 so irgendwie so gleichmäßig über eine Sekunde kommen, sondern die kommen immer in Trains, nennen wir das, von 500 auf einmal an und das dann zehnmal die Sekunde und die 500, die kommen halt sehr schnell hintereinander an und dann kommt eine Pause und dann kommen die nächsten 500.

00:48:28.460 --> 00:48:37.480
Und dabei kann man dann tatsächlich sehen, wie dann durch diesen Strahl, der muss ja dann auch relativ schnell mit Druck dadurch die ganzen Proteine zerstäuben oder explodieren.

00:48:39.160 --> 00:48:49.380
Die bleiben in dem Wasserstrahl einfach gelöst und jetzt ist es natürlich so, dass, das ist mehr oder weniger Zufall, ob man jetzt mit dem Röntgenlaser tatsächlich eins dieser Proteine trifft oder nicht.

00:48:50.460 --> 00:48:55.920
Und wenn man eins trifft, dann hat man halt ein Signal und wenn man gerade keins trifft, dann hat man kein Signal.

00:48:56.520 --> 00:49:12.600
Und idealerweise schmeißt man dann natürlich die Bilder, wo kein Signal ist, einfach weg. Wobei ich jetzt ganz ehrlich gesagt nicht in der Gruppe bin, die dafür das Wegschmeißen zuständig ist. Wie gut die da jetzt schon sind, weiß ich tatsächlich nicht.

00:49:13.520 --> 00:49:16.500
Muss man auch erst mal rausfinden, oder, dass da ein Signal ist.

00:49:16.800 --> 00:49:19.780
Ja, das ist eine Riesenmagie, die da passiert.

00:49:20.940 --> 00:49:24.960
Und ja, wie gesagt, ich bin nicht in der Gruppe, die das macht.

00:49:26.760 --> 00:49:30.240
Aber man kann so wirklich Molekülstrukturen tatsächlich sehen.

00:49:30.240 --> 00:49:34.120
Also so, wie man sich das aus dem Chemieunterricht früher vorstellt.

00:49:34.300 --> 00:49:35.480
Man sieht die, nein.

00:49:36.320 --> 00:49:42.240
Also man sieht halt ein Streumuster dieses Moleküls.

00:49:43.520 --> 00:49:56.320
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.

00:49:56.740 --> 00:50:12.480
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.

00:50:12.480 --> 00:50:26.200
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.

00:50:27.020 --> 00:50:33.580
Dafür gibt es dann aber auch wieder ganze Arbeitsgruppen, also ganze Institute, die sich nur mit dieser Rückberechnung beschäftigen.

00:50:34.760 --> 00:50:39.240
Weil man nur diese einzelnen partiellen Bilder aus verschiedenen Blinkwinkeln hat und die man dann quasi zu einem ganzen…

00:50:39.240 --> 00:50:47.560
Genau. Und daraus kann man dann tatsächlich am Ende das ganze Molekül wieder rekonstruieren und weiß dann…

00:50:47.560 --> 00:50:53.880
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?

00:50:55.240 --> 00:50:59.660
Natürlich haben wir angefangen mit Molekülen, die wir schon kennen.

00:51:01.480 --> 00:51:03.180
Und Mathematik lügt auch nicht.

00:51:04.020 --> 00:51:08.120
Ja, oder es ist einfach schon mit anderen Methoden gemessen worden

00:51:08.120 --> 00:51:10.920
und dann weiß man, was da geht.

00:51:12.060 --> 00:51:14.480
Wobei ich mich persönlich weniger mit Molekülen beschäftige

00:51:14.480 --> 00:51:15.540
als halt mit Magneten.

00:51:17.000 --> 00:51:18.520
Und die haben das große Problem,

00:51:18.680 --> 00:51:22.260
dass datentechnisch das sogar eher anstrengender ist,

00:51:22.440 --> 00:51:24.680
weil wenn man da so einen Magneten reinhält,

00:51:24.800 --> 00:51:27.300
den muss man nicht reinschießen, sondern der bleibt da einfach stehen.

00:51:28.840 --> 00:51:31.380
Und das heißt, da ist dann auf jedem Bild was drauf.

00:51:31.500 --> 00:51:34.200
Das sorgt dafür, dass wir dann noch viel mehr Daten haben.

00:51:35.880 --> 00:51:37.920
Dafür ist das dann mit dem Rückrechnen nicht so schwer,

00:51:38.040 --> 00:51:40.080
weil es da meistens um deutlich einfacher ist.

00:51:40.100 --> 00:51:41.540
Denkst du, wenn du da mal Gedehnen reinhältst,

00:51:41.600 --> 00:51:44.480
gibt es eine gewisse Abweichung dann immer in eine Ecke, oder?

00:51:45.540 --> 00:51:47.200
Ja, also was man halt macht,

00:51:47.320 --> 00:51:50.520
also mit Röntgenstrahlen kann man halt sehen,

00:51:51.100 --> 00:51:53.140
ob der Magnet magnetisch ist, gerade.

00:51:53.980 --> 00:51:57.560
Also eine Festplatte speichert man ja dadurch,

00:51:57.560 --> 00:51:59.980
dass man auf einer klassischen Festplatte,

00:52:00.180 --> 00:52:02.240
also keine Solid State, sondern auf einer klassischen,

00:52:02.780 --> 00:52:05.200
dass man dort eine magnetische Schicht hat

00:52:05.200 --> 00:52:07.600
und dann den Magneten entweder so rum oder so rum dreht.

00:52:08.700 --> 00:52:10.080
Und was wir dann machen, ist,

00:52:10.260 --> 00:52:17.440
dass wir schießen mit einem handelsüblichen Laser,

00:52:18.320 --> 00:52:21.340
ja, also auch mit einem Hochintensitätslaser da drauf,

00:52:21.560 --> 00:52:26.420
dann wird das heiß und dadurch wird der Magnet demagnetisiert.

00:52:27.120 --> 00:52:28.900
Und danach schießt man einmal mit dem XL drauf

00:52:28.900 --> 00:52:30.800
und guckt, ob er noch magnetisch ist.

00:52:30.960 --> 00:52:35.260
Und dann kann man die Zeit zwischen den beiden ändern

00:52:35.260 --> 00:52:37.860
und gucken dann, wie lange es denn dauert,

00:52:38.100 --> 00:52:39.720
so einen Magneten zu demagnetisieren.

00:52:39.880 --> 00:52:42.920
Und das ist dann halt die kürzeste Zeit,

00:52:43.040 --> 00:52:47.760
mit der man grundsätzlich Daten auf einer Festplatte schreiben könnte.

00:52:48.340 --> 00:52:50.400
Die Zeiten, die glücklicherweise so schnell sind,

00:52:50.400 --> 00:52:54.360
das weiß man inzwischen, dass das für einen Computer

00:52:54.360 --> 00:52:55.720
tatsächlich dann am Ende egal ist.

00:52:55.800 --> 00:52:57.140
Es geht also tatsächlich nur noch darum,

00:52:57.420 --> 00:52:58.960
das tatsächlich prinzipiell zu verstehen,

00:52:59.080 --> 00:53:00.720
was da eigentlich passiert und nicht mehr

00:53:00.720 --> 00:53:03.380
auszuschließen,

00:53:03.460 --> 00:53:05.100
dass man da in irgendein physikalisches

00:53:05.100 --> 00:53:06.940
Limit läuft mit einer Technologie, wo man jetzt

00:53:06.940 --> 00:53:08.220
irgendwie wahnsinnig viel investiert.

00:53:08.420 --> 00:53:10.940
Das ist eine Magnetechnologie, mit der man mit Laser

00:53:10.940 --> 00:53:12.220
die Platten beschießt, um die

00:53:12.220 --> 00:53:14.580
Sachen zu speichern?

00:53:15.340 --> 00:53:15.740
Also

00:53:15.740 --> 00:53:18.980
das Problem ist, dass das Einzige, was so schnell ist,

00:53:19.020 --> 00:53:21.040
sind Laser. Und deshalb müssen

00:53:21.040 --> 00:53:22.920
wir Laser nehmen. Also wie

00:53:22.920 --> 00:53:24.460
eine Technologie dazu aussehen würde,

00:53:24.920 --> 00:53:26.940
die Frage, braucht man da...

00:53:26.940 --> 00:53:28.480
Aber das hört sich an, als wäre es deutlich schneller als SSD.

00:53:30.080 --> 00:53:30.600
Ja, genau.

00:53:31.120 --> 00:53:32.140
Also, wie gesagt, das ist

00:53:32.140 --> 00:53:34.760
viel, viel schneller als alles.

00:53:35.040 --> 00:53:36.760
Also, das Schalten eines solchen Magneten

00:53:36.760 --> 00:53:38.700
geht prinzipiell

00:53:38.700 --> 00:53:40.660
viel, viel schneller, als das jemals ein Computer

00:53:40.660 --> 00:53:41.340
dort schreiben können.

00:53:42.480 --> 00:53:44.440
Und weshalb wir da keine, es gibt

00:53:44.440 --> 00:53:46.640
von der Geschwindigkeit, es gibt

00:53:46.640 --> 00:53:48.480
keine theoretische Grenze. Keine physikalische Grenze,

00:53:48.580 --> 00:53:50.620
die da irgendwie... Also, es gibt eine, aber die ist so

00:53:50.620 --> 00:53:52.920
weit von gut und böse,

00:53:52.920 --> 00:53:55.020
dass wir diese 100 Jahre nicht mehr erreichen werden.

00:53:55.120 --> 00:53:56.520
Genau, vor allen Dingen nicht bis

00:53:56.520 --> 00:53:57.460
SSDs übernehmen.

00:54:00.240 --> 00:54:00.980
Das ist aber

00:54:00.980 --> 00:54:02.840
nicht das Problem, oder?

00:54:02.940 --> 00:54:04.020
Warum Festplatten langsam sind.

00:54:04.140 --> 00:54:06.880
Das Problem ist, dass die richtige Stelle nicht da ist.

00:54:07.240 --> 00:54:07.540
Ja, genau.

00:54:09.260 --> 00:54:11.000
Dieses Problem, wie gesagt,

00:54:11.120 --> 00:54:12.760
ist keins mehr. Das ist damals,

00:54:12.840 --> 00:54:14.560
das ist ja auch schon wieder 30 Jahre her,

00:54:14.680 --> 00:54:16.820
dass damals die meinten, in das

00:54:16.820 --> 00:54:17.980
physikalische Limit zu laufen.

00:54:19.600 --> 00:54:20.900
Das ist eine schöne Vorstellung.

00:54:21.640 --> 00:54:21.960
Ja.

00:54:23.260 --> 00:54:24.360
Vor 30 Jahren

00:54:24.360 --> 00:54:25.880
hat man gedacht, jetzt können

00:54:25.880 --> 00:54:27.820
Computer gar nicht mehr schneller werden. Das ist

00:54:27.820 --> 00:54:28.680
jetzt leider vorbei.

00:54:30.280 --> 00:54:31.800
Genau. Aber es hat sich dann leider doch

00:54:31.800 --> 00:54:33.200
raus, zum Glück doch rausgestellt.

00:54:34.680 --> 00:54:35.040
Ja.

00:54:36.440 --> 00:54:37.880
Ich fand das aber ganz interessant. Ich glaube,

00:54:38.020 --> 00:54:39.720
das interessiert vielleicht noch andere Menschen.

00:54:40.180 --> 00:54:41.480
Wie funktioniert denn das jetzt überhaupt,

00:54:41.900 --> 00:54:43.640
so ein Magnetspeicherband?

00:54:43.780 --> 00:54:45.300
Wenn du sagst, da muss man Magneten

00:54:45.300 --> 00:54:47.720
drehen, dann speichert man

00:54:47.720 --> 00:54:49.520
irgendwas? Ja, also effektiv,

00:54:49.640 --> 00:54:51.980
also so eine Magnetplatte,

00:54:51.980 --> 00:54:53.280
wie sie in Festplatten

00:54:53.280 --> 00:54:55.740
vor der Zeit von S&M genau

00:54:55.740 --> 00:54:57.780
verbaut waren, es ist ja einfach

00:54:57.780 --> 00:54:59.200
nur eine magnetische

00:54:59.200 --> 00:55:01.300
Struktur, also

00:55:01.300 --> 00:55:02.460
irgendein

00:55:02.460 --> 00:55:05.480
Stoff, der grundsätzlich magnetisch ist und oben drüber

00:55:05.480 --> 00:55:07.080
und den kann man halt

00:55:07.080 --> 00:55:09.000
also

00:55:09.000 --> 00:55:11.600
da kann man sich so winzige, kleine

00:55:11.600 --> 00:55:13.940
Magnetchen

00:55:13.940 --> 00:55:15.360
vorstellen, aus denen das draufsteht,

00:55:15.360 --> 00:55:17.300
aus denen das besteht, aus denen

00:55:17.300 --> 00:55:19.160
es natürlich ganz, ganz, ganz viele gibt,

00:55:19.260 --> 00:55:21.160
nämlich für jedes Bits, das gespeichert werden soll,

00:55:21.260 --> 00:55:22.680
eins und

00:55:22.680 --> 00:55:25.100
ja, dadurch, dass man dann mit einem

00:55:25.100 --> 00:55:28.660
Wenn eine Magnetspule drüber fährt, dreht man das entweder so,

00:55:28.720 --> 00:55:30.900
dass der Nordpol nach oben steht oder der Südpol nach oben steht.

00:55:31.240 --> 00:55:33.420
Und so speichert man Daten auf einer Magnetfestplatte?

00:55:33.660 --> 00:55:35.340
So speichert man Daten auf einer Magnetfestplatte.

00:55:35.500 --> 00:55:37.980
Und danach dann, und umgekehrt wird das ausgelesen,

00:55:38.040 --> 00:55:43.360
dadurch, dass man dann halt misst,

00:55:43.560 --> 00:55:45.420
ob denn jetzt gerade der Nordpol oder der Südpol oben ist.

00:55:46.400 --> 00:55:51.020
Und genau, und wir wollten, also es gibt halt Grenzen,

00:55:51.080 --> 00:55:51.920
wie schnell man das schreiben kann.

00:55:52.020 --> 00:55:53.980
Aber wie gesagt, es gibt sie effektiv nicht,

00:55:54.100 --> 00:55:59.600
Also es ging halt die Frage tatsächlich, wie weit kann ich denn so einen Magneten den Nordpol zum Südpol rumdrehen?

00:56:00.620 --> 00:56:04.600
Also grundsätzlich, wie lange dauert das eigentlich, dass sich dieser Magnet dreht?

00:56:07.000 --> 00:56:08.940
Dreht sich da wirklich was oder wird das umgepolt?

00:56:10.100 --> 00:56:14.820
Ja gut, das kann man, das ist eine Definitionsfrage.

00:56:15.840 --> 00:56:16.980
Was heißt denn dann Umpol?

00:56:16.980 --> 00:56:22.360
Ja gut, es geht da immer um die Spins der Elektronen.

00:56:22.540 --> 00:56:25.420
Also Elektronen haben gewissermaßen ein Oben- und ein Unten.

00:56:25.440 --> 00:56:44.420
Und in Magneten ist es so, das ist, was ein Magnet ist. Ein Magnet ist so, dass die Spins, also dass die Elektronen, benachbarte Elektronen aneinander gekoppelt sind dahingehend, dass die, wenn das eine Elektronen nach oben zeigt, zeigt das andere gerne auch nach oben.

00:56:44.980 --> 00:57:03.800
Und dann bilden die halt so eine Gang sozusagen und gruppenmäßig zeigen sich alle 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 normalerweise sind sie nicht aneinander gekoppelt, das heißt in einem Stück Holz passiert da nicht viel.

00:57:03.800 --> 00:57:09.300
Also kann man mit einem Magneten die Spins rumdrehen, das kann man machen, das bringt aber nicht viel.

00:57:10.020 --> 00:57:23.980
Während man mit einem Magneten die Elektronen umdreht und danach das Magnetfeld wieder ausschaltet, dann bleiben die Elektronen halt in derselben Richtung stehen, wie sie vorher waren.

00:57:23.980 --> 00:57:37.100
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.

00:57:37.100 --> 00:57:38.400
sozusagen die Art,

00:57:38.640 --> 00:57:40.080
ja, also, ja.

00:57:40.460 --> 00:57:41.500
Ja. Ja.

00:57:42.920 --> 00:57:45.040
Cool. Also, einem normalen

00:57:45.040 --> 00:57:46.240
Magneten ist das, die

00:57:46.240 --> 00:57:48.340
Information halt ein Bit.

00:57:48.640 --> 00:57:48.820
Ja.

00:57:51.020 --> 00:57:51.460
Ja.

00:57:52.400 --> 00:57:54.840
Bei einer Festplatte sind halt dann ganz, ganz, ganz viele

00:57:54.840 --> 00:57:56.760
nebeneinander und man muss dann aufpassen, dass die sich

00:57:56.760 --> 00:57:58.560
nicht beeinflussen und so. Genau.

00:57:58.820 --> 00:58:00.980
Sie sollen, das ist immer das Problem, die Elektronen

00:58:00.980 --> 00:58:02.940
sollen sich ein bisschen gegenseitig beeinflussen, weil sie

00:58:02.940 --> 00:58:04.660
ansonsten ihre Position nicht halten,

00:58:04.880 --> 00:58:06.160
aber denen ist es aber auch nicht zu viel,

00:58:06.800 --> 00:58:10.820
Aber das ist dann wieder sehr viel Wissenschaft.

00:58:11.580 --> 00:58:13.480
Die Dichte, wie die ineinander hängen und so weiter.

00:58:13.580 --> 00:58:15.400
Genau, da kann man unglaublich viel mit rumspielen.

00:58:18.540 --> 00:58:21.420
Eine schöne Sache an der ganzen Geschichte ist übrigens,

00:58:21.600 --> 00:58:24.560
dass das Material, was man da lange Zeit verwendet hat,

00:58:24.640 --> 00:58:27.480
das war Eisenoxid, also Rost.

00:58:28.940 --> 00:58:32.540
Eine Scheibe voll Rost und daraus bauten sich so viele Magneten,

00:58:32.540 --> 00:58:34.620
dass man seine Sachen drauf speichern kann.

00:58:35.280 --> 00:58:35.940
Finde ich sehr schön.

00:58:36.080 --> 00:58:38.100
Heute nicht mehr, heute benutzt man Kobalt

00:58:38.100 --> 00:58:39.740
und irgendwelche komplizierten Sachen,

00:58:39.940 --> 00:58:41.860
aber für die meiste Zeit war es einfach Eisenoxid.

00:58:42.000 --> 00:58:44.180
Ich kenne halt den, ja,

00:58:44.640 --> 00:58:46.840
so diese Kose-Name für Festplatten

00:58:46.840 --> 00:58:48.780
dieser älteren Bauart.

00:58:49.920 --> 00:58:52.300
Ist ja auch, Leute nennen das rotierenden Rost.

00:58:52.700 --> 00:58:53.640
Also das ist halt, ja.

00:58:54.540 --> 00:58:55.040
Und es stimmt.

00:58:55.120 --> 00:58:55.760
Trifft es, glaube ich, ganz gut.

00:58:55.760 --> 00:58:59.440
Und Kassetten und so weiter

00:58:59.440 --> 00:59:01.340
und Magnetbänder funktionieren ganz ähnlich,

00:59:01.540 --> 00:59:02.520
nur halt nicht digital,

00:59:02.720 --> 00:59:05.900
sondern mit einer analogen Magnetisierung.

00:59:06.080 --> 00:59:09.600
Wer das noch kennt von früher,

00:59:09.760 --> 00:59:10.860
oh, jetzt habe ich mich geoutet.

00:59:11.300 --> 00:59:12.800
Jetzt wisst ihr alle, dass ich alt bin.

00:59:13.000 --> 00:59:14.740
Kassetten, was könnte das sein?

00:59:14.880 --> 00:59:17.220
Vor- und Zurückspulen, Durchreißen, Aneinanderkleben.

00:59:19.020 --> 00:59:19.420
Genau.

00:59:21.540 --> 00:59:22.940
Ja, sehr schick.

00:59:23.140 --> 00:59:24.300
In einem Land vor unserer Zeit.

00:59:25.760 --> 00:59:27.600
Habt ihr denn da schon immer Python verwendet?

00:59:27.720 --> 00:59:29.100
Oder seit wann verwendet ihr Python?

00:59:29.480 --> 00:59:30.260
Oder überall?

00:59:30.400 --> 00:59:32.060
Oder gibt es auch noch andere Technologien,

00:59:32.140 --> 00:59:32.820
die verwendet werden?

00:59:33.200 --> 00:59:34.700
Ja, also es gibt auch immer noch

00:59:34.700 --> 00:59:36.060
eine gewisse

00:59:36.060 --> 00:59:38.640
ja, Menschen, die sich nicht davon

00:59:38.640 --> 00:59:40.820
abbringen lassen, weiterhin C++

00:59:40.820 --> 00:59:41.540
zu programmieren.

00:59:42.920 --> 00:59:44.680
Sie sind nicht tot zu

00:59:44.680 --> 00:59:46.700
kriegen. Nein, also tot wollen wir sie

00:59:46.700 --> 00:59:47.880
auch gar nicht haben, aber

00:59:47.880 --> 00:59:50.000
überzeugt

00:59:50.000 --> 00:59:52.200
haben wir es auch noch nicht geschafft.

00:59:52.280 --> 00:59:54.080
Ich habe es noch nicht geschafft, sich vor den Laser zu stoßen.

00:59:54.360 --> 00:59:55.400
Genau, und

00:59:55.400 --> 00:59:56.880
ja,

00:59:57.860 --> 01:00:00.480
tatsächlich ist es so, dass in der Physik

01:00:00.480 --> 01:00:02.260
jahrzehntelang war

01:00:02.260 --> 01:00:04.540
C++ tatsächlich einfach die Sprache schlechthin.

01:00:04.640 --> 01:00:06.280
Es wurde einfach alles in C++ geschrieben.

01:00:07.040 --> 01:00:09.300
Stimmt gar nicht, außer das, was in Fortran geschrieben wurde.

01:00:09.400 --> 01:00:11.180
Das ist dann halt wieder eine Generation weiter vorher.

01:00:11.860 --> 01:00:13.960
Und ja, es gibt sie auch noch, die Fortran-Leute.

01:00:14.460 --> 01:00:17.580
Die sind glücklicherweise inzwischen sehr wenige geworden.

01:00:18.380 --> 01:00:19.740
Aber es gibt sie immer noch.

01:00:21.180 --> 01:00:23.900
Aber ja, inzwischen ist das so.

01:00:24.420 --> 01:00:27.620
Ja, C++ ist jetzt halt doch nicht mehr die modernste Sprache.

01:00:27.620 --> 01:00:33.120
Und jetzt die neue Welle, da ist Python einfach ...

01:00:33.120 --> 01:00:33.860
Gibt es auch Rust?

01:00:34.400 --> 01:00:36.580
Aber er hat auch noch

01:00:36.580 --> 01:00:38.320
Vortragsbauteile. Genau, natürlich, ja.

01:00:38.540 --> 01:00:40.040
Ja, selbstverständlich, also das ist

01:00:40.040 --> 01:00:42.120
ja klar, das ist...

01:00:42.120 --> 01:00:43.620
Gar nicht so weit von uns entfernt.

01:00:44.780 --> 01:00:46.200
Ich erinnere mich nur gerade an

01:00:46.200 --> 01:00:47.720
ein Zitat, ich weiß gar nicht, wer das

01:00:47.720 --> 01:00:50.160
ursprünglich gesagt hat, aber ein sehr wissenschaftlicher Fortschritt ist

01:00:50.160 --> 01:00:52.500
immer so, one funeral at a time.

01:00:52.860 --> 01:00:53.360
So irgendwie.

01:00:55.100 --> 01:00:55.500
Ja.

01:00:55.880 --> 01:00:58.620
Ja, natürlich.

01:00:58.620 --> 01:01:00.180
Also das ist tatsächlich,

01:01:00.620 --> 01:01:02.040
also in der Welt der Physik war,

01:01:02.520 --> 01:01:04.120
nicht nur da, in vielen anderen Bereichen auch,

01:01:04.400 --> 01:01:14.640
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.

01:01:14.640 --> 01:01:17.940
Und dass das am Ende irgendwie trotzdem alles dann zusammenläuft.

01:01:18.880 --> 01:01:29.600
Und das ist zum größten Teil das, was, also das war halt das Killer-Feature, dass man die ganzen alten Vortrag-Bibliotheken tatsächlich bis heute weiterverwenden kann.

01:01:29.600 --> 01:01:30.440
Python als Glue.

01:01:31.700 --> 01:01:32.180
Absolut.

01:01:33.380 --> 01:01:35.480
Ja, und ich glaube auch, ich weiß gar nicht, wie

01:01:35.480 --> 01:01:37.500
einer der großen Vorteile

01:01:37.500 --> 01:01:39.380
bei Fortran ist halt, dass man, also weshalb

01:01:39.380 --> 01:01:41.240
das glaube ich jedenfalls, was ich weiß, für

01:01:41.240 --> 01:01:43.380
numerische Geschichten oft verwendet wird, ist, dass halt

01:01:43.380 --> 01:01:45.420
da die Sprache so ist, dass die Compiler

01:01:45.420 --> 01:01:47.400
automatisch vektorisieren können, was ja bei C und

01:01:47.400 --> 01:01:49.320
C++ eigentlich nicht geht. Also geht auch, aber

01:01:49.320 --> 01:01:51.140
man muss dann halt selber quasi

01:01:51.140 --> 01:01:52.440
sagen, was er tun soll.

01:01:53.560 --> 01:01:55.160
Ja, beziehungsweise du kannst so

01:01:55.160 --> 01:01:57.460
Datentypen definieren, die Vektoren

01:01:57.460 --> 01:01:59.360
sind. Und diese ganzen Operationen gehen dann

01:01:59.360 --> 01:02:01.500
automatisch. Und wenn du eben einen 16-breiten

01:02:01.500 --> 01:02:03.280
Vektor hast, dann

01:02:03.280 --> 01:02:06.620
hat der Compiler genügend

01:02:06.620 --> 01:02:08.560
Informationen, um da schlaue Sachen

01:02:08.560 --> 01:02:10.600
draus zu machen. Gerade jetzt

01:02:10.600 --> 01:02:12.560
heutzutage, wo es ja Prozessoren

01:02:12.560 --> 01:02:14.600
gibt, die ganz viele Operationen auf 8 oder

01:02:14.600 --> 01:02:16.100
auf 16 Sachen gleichzeitig machen können

01:02:16.100 --> 01:02:18.500
und das kriegst du dann halt einfach so umsonst,

01:02:18.680 --> 01:02:20.480
weil du dein Programm so geschrieben hast, dass

01:02:20.480 --> 01:02:22.600
du immer direkt 16 Sachen gleichzeitig

01:02:22.600 --> 01:02:24.720
machst und dann kompilierst

01:02:24.720 --> 01:02:26.700
es und es wird dann halt automatisch schneller

01:02:26.700 --> 01:02:28.740
und das ist schon verlockend,

01:02:28.800 --> 01:02:29.540
das kann ich schon verstehen.

01:02:30.380 --> 01:02:32.520
Da ist

01:02:32.520 --> 01:02:34.840
eine schöne Abstraktionsebene

01:02:34.840 --> 01:02:36.080
gefunden, glaube ich,

01:02:36.840 --> 01:02:38.740
dass man eben nicht wie bei C++

01:02:38.740 --> 01:02:40.600
oder bei C jeden Maschinenbefehl

01:02:40.600 --> 01:02:42.700
selber schreiben muss und gleichzeitig hast du

01:02:42.700 --> 01:02:44.100
trotzdem noch

01:02:44.100 --> 01:02:46.700
genügend tiefe

01:02:46.700 --> 01:02:48.520
Abstraktionen,

01:02:49.560 --> 01:02:50.160
um

01:02:50.160 --> 01:02:52.460
schnelle

01:02:52.460 --> 01:02:53.840
Programme schreiben zu können.

01:02:54.620 --> 01:02:56.540
Das eigentliche Problem an Fortran ist,

01:02:57.180 --> 01:02:58.640
glaube ich, eher, dass einfach die Sprache

01:02:58.640 --> 01:03:00.220
schon alt ist und dass die ganzen

01:03:01.800 --> 01:03:07.780
Diese Sachen, die man heute als Komfort für sich so kennt und auch nicht vermissen möchte, die gibt es da halt einfach nicht mehr.

01:03:07.780 --> 01:03:15.900
Ja, so Altphilologen in der Computersprache, selten, dass Leute so ein Interesse daran haben, ein forensisches, erstmal die alten Sprachen nochmal alle nachzulernen, statt was Neues, Modernes anzufangen.

01:03:15.920 --> 01:03:20.800
Das macht man da eher nicht. Wobei, also den Markt gibt es ja durchaus noch und auch wieder.

01:03:21.180 --> 01:03:21.820
Kobol-Entwickler.

01:03:21.820 --> 01:03:25.580
Ich weiß von einigen Firmen, die wieder Kobol-Programmierer ausbilden, weil sie es halt noch brauchen.

01:03:26.400 --> 01:03:32.860
Und genauso gibt es wissenschaftliche Einrichtungen, die Fortrat-Programmierer ausbilden, weil sie es halt noch benutzen, weil sie es noch brauchen.

01:03:35.120 --> 01:03:36.360
Möchte man das denn entwickeln?

01:03:36.980 --> 01:03:39.500
Ja genau, ich dachte mir gerade, dass Leute da ausbilden wollen, verstehe ich.

01:03:39.540 --> 01:03:43.220
Dass Leute sich da ausbilden lassen, das ist schwerer zu verstehen für mich.

01:03:43.300 --> 01:03:45.360
Ja gut, das ist ja auch eine ökonomische Abwägung.

01:03:45.480 --> 01:03:47.680
Naja gut, aber die ist auch nicht gerade.

01:03:47.680 --> 01:03:50.060
Vortragsvorlesungen in der Universität

01:03:50.060 --> 01:03:51.860
gehört. Das war schon

01:03:51.860 --> 01:03:53.900
interessant auch. Einfach auch mal aus

01:03:53.900 --> 01:03:56.020
historischer Sicht. Man kann ja auch

01:03:56.020 --> 01:03:57.780
durchaus viel davon lernen. Nur

01:03:57.780 --> 01:03:59.580
jeden Tag machen möchte ich es nicht.

01:03:59.960 --> 01:04:01.800
Man muss auch dazu eindeutig sagen, dass

01:04:01.800 --> 01:04:04.180
tatsächlich das eigentliche Rechnen in Python

01:04:04.180 --> 01:04:05.620
wegen des Gil

01:04:05.620 --> 01:04:07.100
funktioniert halt nicht.

01:04:07.640 --> 01:04:09.920
Wenn es wirklich darum geht, möglichst viele

01:04:09.920 --> 01:04:12.020
Multiplikationen und Additionen auf dem

01:04:12.020 --> 01:04:13.700
Prozessor zu jagen, da braucht man mit

01:04:13.700 --> 01:04:14.960
Python gar nicht anzufangen.

01:04:15.820 --> 01:04:22.000
Sondern da muss man dann wirklich halt über NumPy zum Beispiel dann, das kann das dann ja.

01:04:22.000 --> 01:04:38.860
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.

01:04:38.860 --> 01:05:08.840
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-Multiplikationen 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 Matrix-Multiplikationen machen zu können.

01:05:08.860 --> 01:05:25.940
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.

01:05:26.420 --> 01:05:33.080
Aber das ist halt so eine bewährte API und so eine bewährte API, die wirft man auch nicht weg, vor allem, weil die API ist ja auch nicht das, was weh tut.

01:05:34.680 --> 01:05:58.080
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-APs gibt, bei denen es dann eigentlich völlig egal ist, auf was das dann am Ende läuft.

01:05:59.580 --> 01:06:10.160
Ja, das war interessant, weil man denkt halt manchmal, dann peisen 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...

01:06:10.160 --> 01:06:13.760
Genau, und das ist halt wieder die Sache mit dem Python als Glue.

01:06:17.380 --> 01:06:31.920
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.

01:06:32.120 --> 01:06:39.500
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.

01:06:40.160 --> 01:06:42.220
für sowas. Aber das Problem ist, am Ende wollen die Daten

01:06:42.220 --> 01:06:44.240
ja auch ausgewertet werden. Und tatsächlich,

01:06:44.440 --> 01:06:46.260
also was wir sehr viel mit Jupyter Notebooks

01:06:46.260 --> 01:06:46.500
machen,

01:06:47.600 --> 01:06:50.220
die haben aber immer das

01:06:50.220 --> 01:06:52.020
Problem, dass man sich fünf Minuten, nachdem man die

01:06:52.020 --> 01:06:54.040
Aussetzung gemacht hat, nicht mehr daran erinnern kann,

01:06:54.100 --> 01:06:55.980
was man eigentlich gemacht hat. Und

01:06:55.980 --> 01:06:58.140
welches denn der Jupyter Notebook-Zellen man

01:06:58.140 --> 01:07:00.060
denn jetzt nur ausgeführt hat und welche nicht. Und an welche

01:07:00.060 --> 01:07:02.200
man schnell noch einen Parameter gedreht hat und welche nicht.

01:07:03.100 --> 01:07:04.200
Wer länger mit Jupyter Notebooks

01:07:04.200 --> 01:07:06.380
gearbeitet hat, kennt das wahrscheinlich sehr gut.

01:07:06.380 --> 01:07:08.320
Hin und her. Ja, und was

01:07:08.320 --> 01:07:10.100
natürlich der Reproduzierbarkeit, also

01:07:10.100 --> 01:07:12.400
reproduzierbar sind unsere Daten in dem Sinne ja

01:07:12.400 --> 01:07:14.400
sowieso nicht, weil wir sind der einzige Röntgenlaser,

01:07:14.640 --> 01:07:16.560
der diese Intensitäten

01:07:16.560 --> 01:07:18.400
schafft. Das heißt, wir

01:07:18.400 --> 01:07:20.300
können die nur bei uns reproduzieren, aber

01:07:20.300 --> 01:07:22.420
wenn man wenigstens mal die Auswertung der

01:07:22.420 --> 01:07:24.520
tatsächlich vorhandenen Daten reproduzierbar

01:07:24.520 --> 01:07:26.460
machen könnte, wäre das ja schon mal schön.

01:07:26.680 --> 01:07:28.280
Ja, weil sonst muss man auch erstmal wieder warten, bis man so einen

01:07:28.280 --> 01:07:30.300
Slot gebucht hat, wo dann das Dreierteam dann reingeht und mit der

01:07:30.300 --> 01:07:32.320
ganzen Preparation das nochmal macht. Genau, ja,

01:07:32.460 --> 01:07:34.260
aber gut, aber dann auch

01:07:34.260 --> 01:07:36.400
die Auswertung, also es wäre zum Beispiel

01:07:36.400 --> 01:07:38.200
auch mal eine gute Idee, dass man, wenn man zum Beispiel

01:07:38.200 --> 01:07:42.340
die zwei verschiedene vergleichbare Materialien sich anguckt,

01:07:42.440 --> 01:07:44.780
dass man mal vergleicht, wie ich das eine auswerte

01:07:44.780 --> 01:07:45.600
und was ich das andere auswerte.

01:07:45.680 --> 01:07:47.740
Und wenn man dann zwischendurch das typische Notebook

01:07:47.740 --> 01:07:49.340
wieder mal vergessen hat, was man da eigentlich gemacht hat,

01:07:50.060 --> 01:07:52.080
dann ist das sehr unpraktisch.

01:07:52.840 --> 01:07:57.080
Und das ist tatsächlich bei uns aktuell,

01:07:57.240 --> 01:07:59.800
also was heißt aktuell, das ist schon seit Längerem ein Problem,

01:08:00.520 --> 01:08:01.780
wie man das in Hand habt,

01:08:02.160 --> 01:08:05.080
dass man da reproduzierbar Daten auswertet.

01:08:05.600 --> 01:08:07.380
Tatsächlich ist es sogar so, dass schon das Problem,

01:08:07.540 --> 01:08:11.480
dass wir, naja, also wir werten da Daten aus

01:08:11.480 --> 01:08:12.720
und nach einem halben Jahr kommt einer an

01:08:12.720 --> 01:08:13.460
und hat nochmal eine Idee,

01:08:13.580 --> 01:08:14.280
wie man da vielleicht nochmal

01:08:14.280 --> 01:08:16.060
mit einem anderen Blickwinkel drauf guckt.

01:08:16.200 --> 01:08:18.000
Und dann sollte es einem besser nicht passieren,

01:08:18.080 --> 01:08:20.060
dass man versehentlich NumPy upgedatet hat

01:08:20.060 --> 01:08:21.740
und plötzlich funktionieren die Skripte nicht mehr.

01:08:23.360 --> 01:08:24.820
Oder kommen zu einem anderen Ergebnis.

01:08:25.480 --> 01:08:27.140
Das ist dann tatsächlich ein Problem,

01:08:27.240 --> 01:08:29.920
weshalb wir tatsächlich angefangen haben,

01:08:29.920 --> 01:08:34.560
einfach komplette Virtual-Envs nehmen wir jetzt gerade noch.

01:08:34.820 --> 01:08:35.620
Wir haben darüber nachgedacht,

01:08:35.700 --> 01:08:36.540
jetzt ein Conda zu nehmen

01:08:36.540 --> 01:08:39.820
und dann die kompletten Virtual-Envs mit den Daten zusammenzuspeichern.

01:08:40.260 --> 01:08:43.080
So ein Virtual-Env ist dann verglichen mit den Daten einfach winzig,

01:08:44.120 --> 01:08:45.840
damit man, wenn man ein Jahr später nochmal versucht,

01:08:45.900 --> 01:08:47.020
die gleiche Auswertung zu machen,

01:08:47.140 --> 01:08:48.780
dann tatsächlich zum gleichen Ergebnis kommt.

01:08:51.720 --> 01:08:53.440
Ja, aber das stelle ich mir auch,

01:08:53.540 --> 01:08:56.820
weil die ganzen Betriebssystem-Bibliotheken

01:08:56.820 --> 01:08:58.160
hat man im Virtual-Env ja nicht drin,

01:08:58.160 --> 01:09:01.460
also LibC oder auch diverse andere Geschichten.

01:09:01.900 --> 01:09:04.060
Das heißt, wenn die sich geupdatet haben, dann kann...

01:09:04.060 --> 01:09:04.720
Das ist richtig.

01:09:04.860 --> 01:09:07.260
Das heißt, dann müsste man dann konsequenterweise

01:09:07.260 --> 01:09:10.200
weiter zu Docker-Containern gehen oder ähnlichen Technologien.

01:09:10.240 --> 01:09:11.320
Ja, wenn Ansible irgendwas bauen.

01:09:12.700 --> 01:09:13.660
Ja, Ansible hilft ja nicht,

01:09:13.740 --> 01:09:15.740
weil Ansible würde dann ja dasselbe Problem haben

01:09:15.740 --> 01:09:18.060
mit den Systembibliotheken,

01:09:18.180 --> 01:09:20.460
dass man das, Ansible installiert ja auch typischerweise

01:09:20.460 --> 01:09:22.300
nur auf ein existierendes System drauf.

01:09:22.440 --> 01:09:23.280
Ja, aber du kannst ja sagen,

01:09:23.420 --> 01:09:25.160
was du da jetzt extern installieren sollst.

01:09:25.220 --> 01:09:26.860
Und wenn du das Betriebssystem selber auswählen kannst,

01:09:26.920 --> 01:09:29.640
dann kannst du wahrscheinlich auch die Pakete pinnen.

01:09:29.640 --> 01:09:30.740
Ja, das ist richtig, ja.

01:09:31.060 --> 01:09:34.100
Und genau, aber ich muss ganz ehrlich gestanden sagen,

01:09:34.220 --> 01:09:36.480
daran arbeiten wir noch. Also bisher

01:09:36.480 --> 01:09:38.440
sind wir ganz stolz darauf. Da sind wir, glaube ich,

01:09:38.440 --> 01:09:39.500
schon fast Vorreiter.

01:09:40.260 --> 01:09:42.220
Nein, wahrscheinlich nicht. Aber dass wir

01:09:42.220 --> 01:09:44.700
wenigstens unsere Daten mit den Virtual Env's

01:09:44.700 --> 01:09:46.760
speichern, dass wir wenigstens

01:09:46.760 --> 01:09:48.400
da eine verlässliche Datenauswertung haben,

01:09:48.480 --> 01:09:50.440
dass wir, also in der Physik war es

01:09:50.440 --> 01:09:52.140
bisher doch recht häufig

01:09:52.140 --> 01:09:53.400
üblich, dass man

01:09:53.400 --> 01:09:56.520
die Daten auswertet und

01:09:56.520 --> 01:09:58.300
dann, wenn man eine Publikation macht,

01:09:58.460 --> 01:10:00.180
die Auswertung auf eine CD

01:10:00.180 --> 01:10:02.240
brennt und dann mit ins

01:10:02.240 --> 01:10:03.060
Archiv gibt.

01:10:04.220 --> 01:10:08.640
Ich weiß nicht, wie oft jemand tatsächlich so eine CD wieder rausgeholt hat.

01:10:08.760 --> 01:10:11.240
Und wenn, ob die dann noch funktioniert, ist auch sehr unklar.

01:10:13.440 --> 01:10:16.200
Das war dann doch eine eher symbolische Aktion.

01:10:16.600 --> 01:10:17.500
Und das bei den Physikern.

01:10:18.480 --> 01:10:19.760
Ja, also da.

01:10:19.760 --> 01:10:22.360
Ja gut, das ist ja noch vergleichsweise fortgeschritten.

01:10:22.500 --> 01:10:26.140
In der Medizin wirst du halt die Auswertung gemacht und dann sind die Daten fertig.

01:10:26.520 --> 01:10:27.260
Oder du drückst sie aus.

01:10:28.380 --> 01:10:34.060
Ja, wobei ich glaube, dass die Medizin da sogar im Gegenteil mit solchen Sachen sogar weiter ist.

01:10:34.220 --> 01:10:41.400
Weil sie, weil, ja, also gerade wenn in irgendwelche Zulassungsverfahren gehen, da gucken die Leute tatsächlich drauf.

01:10:41.400 --> 01:10:42.560
Ja, Zulassungsverfahren, klar.

01:10:43.240 --> 01:10:52.660
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.

01:10:52.940 --> 01:10:59.160
Ja, also bei uns ist die Rohdaten zu kriegen illusorisch, weil sie sind einfach zu groß.

01:11:00.320 --> 01:11:03.260
Wie lange speichert ihr denn eure Daten?

01:11:03.320 --> 01:11:04.940
Wie lange könnte man denn zu euch kommen und sagen,

01:11:05.060 --> 01:11:06.340
hier, ich habe mir jetzt noch was eingefallen?

01:11:06.440 --> 01:11:10.620
Das ist eine Frage, die ich dir tatsächlich noch nicht beantworten kann,

01:11:10.720 --> 01:11:12.060
weil noch sind die Platten nicht voll.

01:11:13.500 --> 01:11:13.980
Ah, okay.

01:11:15.940 --> 01:11:17.520
Irgendwann ist das Ziel erreicht.

01:11:21.000 --> 01:11:22.720
Der Serverraum steht gar nicht bei uns,

01:11:22.720 --> 01:11:25.660
sondern irgendwo in Hamburg ist da so ein Serverraum.

01:11:25.740 --> 01:11:26.400
Den habe ich noch nie gesehen.

01:11:26.720 --> 01:11:27.680
Weiß ich nicht, wie groß der ist.

01:11:29.120 --> 01:11:42.380
Ich weiß nicht, wie viel Platz da ist, wie viel Platz wir grundsätzlich noch finanzieren können. Also bisher mussten wir noch, das 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.

01:11:42.560 --> 01:11:53.140
Wenn wir nicht mit unserem Hauptdetektor arbeiten, es gibt auch völlig andere Experimente, wo man alle zehn Sekunden ein Bild schießt von zwei Megapixel und dann, ja.

01:11:53.420 --> 01:11:54.780
Das ist ja fast redundant dann im Vergleich.

01:11:54.920 --> 01:12:07.720
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 …

01:12:07.720 --> 01:12:08.360
Das spielt keine Rolle.

01:12:08.360 --> 01:12:24.780
Genau, das geht dann unter. Das ist dann auch immer sehr schön. Also da muss man sagen, wenn man da mit unserem Hauptdetektor mit den 5000 Bildern pro Sekunde arbeitet, dann muss man halt wirklich, da hängt halt wirklich auch Rechenpower hinten dran.

01:12:24.780 --> 01:12:26.540
das dann also ausrechnet und dann gibt es dann

01:12:26.540 --> 01:12:28.680
haben wir auch ganze Stäbe von Leuten, die nur

01:12:28.680 --> 01:12:30.620
dafür zuständig sind, das am Laufen zu halten, dass dann die

01:12:30.620 --> 01:12:32.780
ganzen Prozessketten da hinten dann das nur machen.

01:12:33.420 --> 01:12:34.580
Während wenn wir dann mit nur

01:12:34.580 --> 01:12:36.520
alle 10 Sekunden ein Bild nehmen, ist das viel schöner, weil

01:12:36.520 --> 01:12:38.540
dann kann man das tatsächlich

01:12:38.540 --> 01:12:40.580
auch alles mit ein paar Python-Skripten machen

01:12:40.580 --> 01:12:42.660
und dann ist man auch deutlich

01:12:42.660 --> 01:12:44.380
flexibler darin,

01:12:45.040 --> 01:12:46.080
irgendwas Schönes zu machen.

01:12:48.480 --> 01:12:49.160
In welchem,

01:12:49.260 --> 01:12:50.460
das kommt mir jetzt gerade so in den Sinn,

01:12:50.560 --> 01:12:52.380
in welchem Format werden die Daten denn dann

01:12:52.380 --> 01:12:54.400
abgespeichert? Wird das

01:12:54.400 --> 01:12:56.460
einfach, also es gibt ja diese diverse Formate

01:12:56.460 --> 01:12:58.280
für wissenschaftliche Zwecke, also

01:12:58.280 --> 01:13:00.060
NetCDF oder wie heißt das?

01:13:00.640 --> 01:13:01.820
Ja, also unseres ist

01:13:01.820 --> 01:13:02.680
HD5.

01:13:03.900 --> 01:13:06.220
Oder SQLite, habe ich jetzt gerade gedacht.

01:13:06.300 --> 01:13:08.120
Könnte man ja auch nehmen. HD5

01:13:08.120 --> 01:13:08.760
nehmen wir.

01:13:11.580 --> 01:13:12.020
Wobei,

01:13:13.560 --> 01:13:14.380
da muss man eine ganze Menge

01:13:14.380 --> 01:13:16.340
daran herum entwickeln, dass wir

01:13:16.340 --> 01:13:18.320
überhaupt

01:13:18.320 --> 01:13:20.320
schnell genug schreiben können. Tatsächlich

01:13:20.320 --> 01:13:21.340
ist das so, dass wir in

01:13:21.340 --> 01:13:24.320
mehrere HD5-Dateien

01:13:24.400 --> 01:13:26.620
in parallel reinschreiben, weil ansonsten

01:13:26.620 --> 01:13:28.780
die HD5-Bibliothek

01:13:28.780 --> 01:13:30.720
doch an ihre Grenzen käme.

01:13:32.120 --> 01:13:32.560
Ich

01:13:32.560 --> 01:13:34.520
finde sowas super spannend, weil

01:13:34.520 --> 01:13:36.440
in diesen Bereichen trifft man dann

01:13:36.440 --> 01:13:38.520
auf so Probleme, die man sich so

01:13:38.520 --> 01:13:39.760
als normaler Entwickler gar nicht

01:13:39.760 --> 01:13:42.380
vorstellen kann. Schon

01:13:42.380 --> 01:13:44.520
allein die Bandbreite zu haben,

01:13:44.720 --> 01:13:46.480
die Daten aus diesem Sensor auslesen

01:13:46.480 --> 01:13:47.820
zu können, das muss ja

01:13:47.820 --> 01:13:50.360
gigantisch sein und das geht ja weit

01:13:50.360 --> 01:13:52.280
über das hinaus, was man so als normaler Mensch in einem

01:13:52.280 --> 01:13:54.420
Computer je sehen kann

01:13:54.420 --> 01:13:56.260
und wenn man sich

01:13:56.260 --> 01:13:58.100
überlegt, wie viel Bandbreite da an

01:13:58.100 --> 01:14:00.180
Speicherplatz einfach rauskommen muss,

01:14:02.080 --> 01:14:04.140
da zerbrechen viele von den

01:14:04.140 --> 01:14:05.780
Abstraktionen, die man normalerweise so hat.

01:14:06.200 --> 01:14:08.140
Ja, bei uns kommen tatsächlich die Glasfaser da

01:14:08.140 --> 01:14:10.060
bündelweise aus den Detektoren raus

01:14:10.060 --> 01:14:11.740
und

01:14:11.740 --> 01:14:14.120
das ist, ja, da hängt

01:14:14.120 --> 01:14:15.080
richtig Rechenpower dahinter.

01:14:16.400 --> 01:14:18.260
Ja klar, und das muss dann in irgendwelche Speicherbänke

01:14:18.260 --> 01:14:20.080
reingehen und von den Speicherbänken muss es

01:14:20.080 --> 01:14:21.880
irgendwo auf, ja,

01:14:22.280 --> 01:14:24.660
Speicher gehen, aber ein Kabel

01:14:24.660 --> 01:14:26.740
reicht an keiner Stelle. Das heißt, das muss sicherlich

01:14:26.740 --> 01:14:28.240
alles parallel sein.

01:14:28.600 --> 01:14:28.920
Ja, genau.

01:14:31.860 --> 01:14:32.860
Stapelweise an Rechnern

01:14:32.860 --> 01:14:34.240
stehen dann da übereinander, die das dann

01:14:34.240 --> 01:14:36.840
verteilen.

01:14:37.200 --> 01:14:38.600
Die es alle gleichzeitig abkriegen.

01:14:39.000 --> 01:14:40.180
Ja, das ist

01:14:40.180 --> 01:14:41.300
tatsächlich

01:14:41.300 --> 01:14:43.200
das ist immer sehr lustig,

01:14:43.200 --> 01:14:45.640
ich habe das nicht, also

01:14:45.640 --> 01:14:47.440
das ist immer so lustig, dass

01:14:47.440 --> 01:14:50.480
wenn wir anfangen Daten zu nehmen, dann dauert

01:14:50.480 --> 01:14:52.240
dass mehrere Sekunden, bis alle

01:14:52.240 --> 01:14:54.280
TCP-Verbindungen aufgebaut sind, um

01:14:54.280 --> 01:14:56.000
dann die Daten zu

01:14:56.000 --> 01:14:58.300
einfach nur das Aufbauen der

01:14:58.300 --> 01:14:59.740
Verbindungen dauert mehrere Sekunden.

01:15:01.260 --> 01:15:01.900
Das ist ja schon.

01:15:03.380 --> 01:15:04.460
Ja, das hält man sich tatsächlich

01:15:04.460 --> 01:15:05.880
recht wichtig vor, wenn dann irgendwie die Sachen

01:15:05.880 --> 01:15:07.800
durcheinanderfliegen, so eine Riesenmenge,

01:15:08.460 --> 01:15:09.420
wie man den auffangen will.

01:15:10.920 --> 01:15:12.280
Also das ist auf jeden Fall, glaube ich, eher Big Data

01:15:12.280 --> 01:15:13.780
dann tatsächlich irgendwo, so ein bisschen.

01:15:14.560 --> 01:15:16.380
Ja, wobei es auf der einen Seite natürlich

01:15:16.380 --> 01:15:18.340
schon, dass es natürlich Big Data ist, also von der

01:15:18.340 --> 01:15:19.500
rein schieren Größe her.

01:15:20.020 --> 01:15:22.400
Auf der anderen Seite, also was man normalerweise

01:15:22.400 --> 01:15:24.600
unter Big Data sind, sind halt deutlich strukturierter

01:15:24.600 --> 01:15:25.500
als das, was wir da haben.

01:15:26.080 --> 01:15:27.700
Wir haben da ja einfach nur Bilddaten.

01:15:31.780 --> 01:15:32.500
Okay, also

01:15:32.500 --> 01:15:34.460
augmentiert ihr die direkt oder sowas?

01:15:34.700 --> 01:15:36.280
Oder gibt es ein Post-Processing,

01:15:36.340 --> 01:15:38.620
dass da viele Informationen mal reinfließen?

01:15:38.620 --> 01:15:40.680
Oder ist das einfach nur dann pro Experiment

01:15:40.680 --> 01:15:41.960
irgendwie so ein

01:15:41.960 --> 01:15:43.320
Metainformationsding?

01:15:44.620 --> 01:15:46.640
Also wir müssen tatsächlich

01:15:46.640 --> 01:15:48.160
während des Experiments darauf reagieren können,

01:15:48.340 --> 01:16:08.040
Und das heißt, während des Experimentes werden bereits alle Daten rudimentär ausgewertet, damit wir eine Idee kriegen, ob die Daten überhaupt gut sind. Wir können es uns nicht leisten, dort mehrere Stunden lang irgendwas zu messen und am Ende festzustellen, dass wir leider vergessen haben, die Probe in den Strahl zu fahren oder so etwas.

01:16:08.940 --> 01:16:11.500
Ja, sowas passiert halt auch regelmäßig.

01:16:13.820 --> 01:16:16.980
Ja, oder auch, dass man dann halt feststellt,

01:16:17.120 --> 01:16:18.980
okay, wir haben mit viel zu viel Intensität gemessen,

01:16:19.420 --> 01:16:22.500
also der ist völlig ausgeleuchtet, der Detektor,

01:16:22.560 --> 01:16:25.140
man sieht gar nichts mehr oder es war jetzt alles viel zu dunkel

01:16:25.140 --> 01:16:27.980
oder was weiß ich was, das kann ja alles gleichzeitig passieren.

01:16:29.220 --> 01:16:33.000
Und deshalb muss die ganze Zeit auch,

01:16:33.180 --> 01:16:35.800
währenddessen werden die Daten rudimentär ausgewertet,

01:16:35.800 --> 01:16:40.740
dass man sofort sehen kann, was da passiert.

01:16:41.840 --> 01:16:45.180
Wobei wir das, ja, das Ganze wird dann auch visualisiert,

01:16:45.300 --> 01:16:48.980
wobei wir das meiner Meinung nach noch sehr steinzeitlich machen.

01:16:49.220 --> 01:16:53.520
Das machen wir, da verwenden wir tatsächlich PyQT.

01:16:54.440 --> 01:16:56.840
Eine Version, das Nummer, weißt du die?

01:16:57.220 --> 01:17:00.300
PyQT 5, also schon das Neueste.

01:17:01.040 --> 01:17:04.320
Und na ja, also wenn man mich heute fragen würde,

01:17:04.320 --> 01:17:06.140
würde ich ja natürlich sagen, das macht man doch viel besser mit

01:17:06.140 --> 01:17:08.640
Visualisierung, doch besser in einer Web-Anwendung

01:17:08.640 --> 01:17:10.460
und nicht so mit einer

01:17:10.460 --> 01:17:12.300
mit einem Standalone

01:17:12.300 --> 01:17:14.120
Desktop-Ding. Genau,

01:17:14.400 --> 01:17:16.400
aber ja, die Entscheidung ist

01:17:16.400 --> 01:17:18.480
damals dafür gefallen und

01:17:18.480 --> 01:17:20.380
das

01:17:20.380 --> 01:17:21.820
läuft jetzt so.

01:17:22.580 --> 01:17:24.360
Und das ist ja auch Python, also so ist es jetzt nicht.

01:17:25.260 --> 01:17:26.880
Ja, und ihr habt auch keine Lizenzprobleme,

01:17:26.880 --> 01:17:28.620
weil ihr eine öffentliche Institution seid wahrscheinlich?

01:17:30.000 --> 01:17:30.560
Nee, ist das ja nicht.

01:17:30.840 --> 01:17:32.740
Wir sind eine öffentliche Institution, aber

01:17:32.740 --> 01:17:34.240
Aber PyCode ist doch LGPL.

01:17:34.620 --> 01:17:36.260
Genau. Sogar als es

01:17:36.260 --> 01:17:38.400
GPL war, da wir grundsätzlich alles

01:17:38.400 --> 01:17:40.160
sagen wir so,

01:17:40.380 --> 01:17:42.320
wir würden, also eigentlich sollte alles

01:17:42.320 --> 01:17:43.600
quelloffen sein.

01:17:48.040 --> 01:17:50.340
Ja, wir halten

01:17:50.340 --> 01:17:51.260
uns da dran, dass jeder,

01:17:52.000 --> 01:17:54.320
in der GPL steht ja drin, dass jedem, dem

01:17:54.320 --> 01:17:56.360
man den Binärcode gibt, dann auch den Quellcode geben muss.

01:17:56.420 --> 01:17:58.260
Das tun wir auch. Bisher ist es allerdings so,

01:17:58.260 --> 01:17:59.640
dass bisher noch keiner vorbeigekommen ist.

01:17:59.640 --> 01:18:00.640
Nur die Binärfreunde.

01:18:02.740 --> 01:18:29.020
Ja, und ich glaube, der Grund, dass wir es noch nicht veröffentlicht haben, ist, dass wir, ja, noch nicht, vielleicht haben wir es inzwischen sogar schon veröffentlicht, dass wir das Ganze auch noch so machen wollten, dass das schön aussieht, damit es uns nicht zu peinlich ist.

01:18:30.060 --> 01:18:46.700
Ja, gerade in der Anfangszeit ist doch alles sehr schnell gestrickt worden, was ja 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, ja.

01:18:49.620 --> 01:19:08.080
Es ist total witzig. Ich war vor ein paar Jahren auch in so einem Big Data Projekt drin, kommerzieller Natur, nicht ganz so groß wie eures. Und da gibt es auch eine Visualisierungsoberfläche, die auch in 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.

01:19:08.080 --> 01:19:25.140
Ja, also grundsätzlich finde ich ja, PyQt 5 ist tatsächlich eigentlich grundsätzlich eine sehr schöne Bibliothek, wenn man so eine Desktop-Anwendung machen will, aber wenn man ehrlich ist, sind solche Desktop-Anwendungen eigentlich heutzutage so ein bisschen eigentlich nicht mehr.

01:19:27.440 --> 01:19:44.440
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.

01:19:44.680 --> 01:19:59.080
Genau, also wir haben angefangen damals mit der Programmierung, also 2009, damals tatsächlich noch Python 2. Wir haben dann glücklicherweise den Umstieg schnell genug geschafft.

01:20:00.980 --> 01:20:18.880
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 iSync.io gibt es ja jetzt erst seit 2015, 14, 15, irgendwann ging das los, ne?

01:20:19.860 --> 01:20:43.660
Ja, also vorher hatten wir, waren wir einfach noch nicht so weit, dass wir, also in Betrieb gegangen sind wir 2017. Und vorher waren das, hatten wir ja ein paar Demonstrationsdinger noch nur da rumstehen. Wir haben es halt 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.

01:20:45.000 --> 01:20:47.760
dann haben wir glücklicherweise noch im richtigen

01:20:47.760 --> 01:20:48.780
Moment die Kurve gekriegt

01:20:48.780 --> 01:20:51.040
und das Ganze nochmal, also

01:20:51.040 --> 01:20:53.260
dann kam glücklicherweise im richtigen Moment auch

01:20:53.260 --> 01:20:55.660
Asien-Korea vorbei und dann konnte man

01:20:55.660 --> 01:20:57.520
das alles gleichzeitig. Bei den tausend Modulen

01:20:57.520 --> 01:20:58.780
muss ich immer an das von Johannes

01:20:58.780 --> 01:21:01.700
veröffentlichte Ding da zum Raumschiff fliegen denken.

01:21:04.120 --> 01:21:05.700
Du hast doch mal, das ist so ein

01:21:05.700 --> 01:21:07.560
Blockantrag. Welche Raumschiffe fliege ich? Ja, das ist irgendwie so

01:21:07.560 --> 01:21:09.520
ein Blockantrag, ich weiß nicht, mit der Steuerung, die man da machen kann.

01:21:09.520 --> 01:21:13.580
Ich weiß nicht, ich denke schon die ganze Zeit drüber nach,

01:21:13.640 --> 01:21:15.500
wie man das wohl in der Home-Automatisierung

01:21:15.500 --> 01:21:17.400
verwenden könnte,

01:21:17.560 --> 01:21:19.640
wo man seine tausend Motoren in der Küche platziert,

01:21:19.960 --> 01:21:21.620
die dann, keine Ahnung, die Gewürze dosieren

01:21:21.620 --> 01:21:23.540
oder die... Aber wie ist das denn?

01:21:24.960 --> 01:21:25.620
Wobei wir

01:21:25.620 --> 01:21:27.440
dann, das muss man auch der Ehrlichkeit

01:21:27.440 --> 01:21:29.320
halber noch dazu gestehen, noch

01:21:29.320 --> 01:21:31.600
einmal eine Ebene unten drunter haben, das ist

01:21:31.600 --> 01:21:32.540
dann eine

01:21:32.540 --> 01:21:35.420
kommerzielle Lösung tatsächlich von

01:21:35.420 --> 01:21:37.000
einer Firma namens Beckhoff, die dann

01:21:37.000 --> 01:21:39.640
die Motoren, die eigentliche

01:21:39.640 --> 01:21:40.940
Motorensteuerung macht.

01:21:41.680 --> 01:21:43.500
Das, was wir in Python bisher nicht

01:21:43.500 --> 01:21:45.520
machen, ist die Echtzeitsachen.

01:21:46.520 --> 01:21:47.700
Dafür ist, glaube ich,

01:21:47.780 --> 01:21:49.240
Python auch einfach nicht gut genug.

01:21:50.000 --> 01:21:51.600
Also nicht die geeignete

01:21:51.600 --> 01:21:52.840
Sprache, weil, also

01:21:52.840 --> 01:21:55.120
wenn man, wenn der Motor

01:21:55.120 --> 01:21:56.880
dann tatsächlich, also

01:21:56.880 --> 01:21:59.420
da muss man dann irgendwann am Ende unten dann mit

01:21:59.420 --> 01:22:01.300
also mindestens mal 100 Hertz dann den

01:22:01.300 --> 01:22:03.220
Motor abfragen, wo bist du denn jetzt? Und dann

01:22:03.220 --> 01:22:05.020
ihn dann dementsprechend schneller oder langsamer machen.

01:22:05.860 --> 01:22:06.740
Und das

01:22:06.740 --> 01:22:08.500
geht mit Python

01:22:08.500 --> 01:22:11.000
eher nicht.

01:22:11.680 --> 01:22:13.060
Also ein Realtime-Python

01:22:13.060 --> 01:22:26.420
Das ist auch häufig so, glaube ich, dass man dann noch so eine Schicht hat, wo man einfach sagt, ich möchte, dass der Motor zum Zeitpunkt X an der Stelle Y ist und das dann einfach wegschiebt und sagt, sorg mal dafür.

01:22:26.420 --> 01:22:40.040
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.

01:22:40.040 --> 01:22:43.160
Dann läuft man mit dem Kopf gegen die Wand.

01:22:44.280 --> 01:22:45.620
Oder man muss viel Geld ausgeben.

01:22:45.960 --> 01:22:46.180
Richtig.

01:22:46.540 --> 01:22:47.780
Also jetzt ist es tatsächlich so,

01:22:47.920 --> 01:22:49.120
dass wenn man für anderthalb Milliarden

01:22:49.120 --> 01:22:50.120
so einen Tunnel gegraben hat,

01:22:50.220 --> 01:22:51.980
dann kann man auch mal tatsächlich

01:22:51.980 --> 01:22:53.280
ein bisschen Geld in die Hand nehmen.

01:22:54.480 --> 01:22:57.040
Aber das ist nicht so.

01:22:57.040 --> 01:22:58.100
Du musst auch irgendwo ein Ende haben.

01:22:58.400 --> 01:22:59.000
Ja, genau.

01:22:59.260 --> 01:23:03.740
Und für ganz Kleinigkeiten will man dann auch nicht mehr.

01:23:04.960 --> 01:23:10.020
Und solche kommerziellen Lösungen scheitern doch am Ende sehr.

01:23:10.040 --> 01:23:11.840
an der Flexibilität. Muss auch

01:23:11.840 --> 01:23:12.660
sagen, dass die,

01:23:14.440 --> 01:23:15.820
die, als wir

01:23:15.820 --> 01:23:17.880
auf die Idee gekommen sind, dem

01:23:17.880 --> 01:23:19.700
Hersteller Beckhoff zu erzählen, dass wir

01:23:19.700 --> 01:23:22.040
unsere Projekte in einer Versionskontrolle

01:23:22.040 --> 01:23:22.740
halten, da

01:23:22.740 --> 01:23:25.700
haben die schon ganz schön

01:23:25.700 --> 01:23:27.900
geschluckt. Und

01:23:27.900 --> 01:23:29.500
als es dann hieß, wir finden aber nicht

01:23:29.500 --> 01:23:31.020
Subversion, sondern Git,

01:23:32.320 --> 01:23:33.720
da haben die richtig

01:23:33.720 --> 01:23:34.380
Angst bekommen.

01:23:35.620 --> 01:23:37.340
Das ist tatsächlich

01:23:37.340 --> 01:23:39.940
in der Welt der Automatisierung

01:23:39.940 --> 01:24:04.100
Sind das alles noch Träumereien? So was macht man nicht. Da werden noch irgendwelche Projekte von Projektleitern geleitet und dann Anträge geschrieben und dann irgendwie die Versionen einzeln auf irgendwelche festen Datenträger transferiert und dann an den Kunden ausgeliefert.

01:24:04.100 --> 01:24:29.920
Und warum ist das, warum kriegen die Angst? Also, weil das, ja, also man kriegt da halt so eine komplette, es geht viel zu schnell, viel zu schnell, die liefern einem halt eine komplette IDE 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.

01:24:31.020 --> 01:24:38.160
Also es ist sehr interessant, diese Welt sich mal anzugucken, zum Beispiel also die Welt von Steuerung, Software, von...

01:24:38.170 --> 01:24:40.150
nennt sich das, Speicherprogrammierer bei Steuerung

01:24:40.150 --> 01:24:41.170
nennt sich das auf Deutsch.

01:24:42.010 --> 01:24:44.050
Da gibt es eine Programmiersprache, die so ganz

01:24:44.050 --> 01:24:45.930
andere grundsätzliche Eigenschaften haben,

01:24:46.470 --> 01:24:47.430
die zum Beispiel keine

01:24:47.430 --> 01:24:50.030
dynamische Speicherverwaltung kennen

01:24:50.030 --> 01:24:51.730
und das absichtlich nicht,

01:24:52.290 --> 01:24:54.030
weil wenn man eine Maschine hat, dann

01:24:54.030 --> 01:24:56.070
braucht man nicht plötzlich mehr Speicher.

01:24:57.810 --> 01:24:58.430
Und bei denen

01:24:58.430 --> 01:25:00.050
wird, das ist eine Sprache, die von vorne

01:25:00.050 --> 01:25:01.990
Man will das auch gar nicht, weil

01:25:01.990 --> 01:25:03.330
das könnte ja abstürzen.

01:25:03.330 --> 01:25:04.570
Das ist ganz schlecht.

01:25:05.570 --> 01:25:05.930
Und

01:25:05.930 --> 01:25:08.750
das sind dann konzeptuell

01:25:08.750 --> 01:25:10.410
andere Sprachen, die aber auch für den

01:25:10.410 --> 01:25:12.550
Anwendungsfall tatsächlich sehr gut sind, muss ich

01:25:12.550 --> 01:25:14.710
sagen. Und das Einzige

01:25:14.710 --> 01:25:16.650
ist, dass die dann irgendwie dann in

01:25:16.650 --> 01:25:18.210
IDEs reingepackt werden

01:25:18.210 --> 01:25:20.390
und das sieht dann sehr

01:25:20.390 --> 01:25:22.190
Pascal-ähnlich aus und warum man dann

01:25:22.190 --> 01:25:24.350
diesen Pascal-Code dann

01:25:24.350 --> 01:25:26.510
am Ende in XML-Dateien

01:25:26.510 --> 01:25:28.450
reinstecken muss, habe ich

01:25:28.450 --> 01:25:29.210
nicht verstanden.

01:25:30.450 --> 01:25:31.790
Weil man mit XML alles macht.

01:25:32.350 --> 01:25:34.590
Weil man mit XML einfach alles

01:25:34.590 --> 01:25:35.110
machen kann.

01:25:37.150 --> 01:25:38.290
Deshalb und

01:25:38.290 --> 01:25:40.850
dann dieses XML dann wiederum

01:25:40.850 --> 01:25:42.490
in eine Versionskontrolle

01:25:42.490 --> 01:25:44.210
wie Git reinzutun, ist dann

01:25:44.210 --> 01:25:46.450
ja, also irgendwie

01:25:46.450 --> 01:25:48.190
fühlt sich das

01:25:48.190 --> 01:25:49.550
nicht gut an.

01:25:51.510 --> 01:25:52.570
Also insbesondere, wenn man

01:25:52.570 --> 01:25:54.490
dann mergen will und dann, ja,

01:25:54.630 --> 01:25:56.070
was passiert denn, wenn

01:25:56.070 --> 01:25:58.550
in dem XML rundherum

01:25:58.550 --> 01:26:00.670
sich was geändert hat und will das dann mergen?

01:26:00.830 --> 01:26:01.350
Das ist ja,

01:26:02.110 --> 01:26:02.330
ja.

01:26:04.590 --> 01:26:23.510
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, die dann halt an der Maschine verbaut ist.

01:26:23.750 --> 01:26:42.830
Und jetzt ist es so, dass also die gesamten Debug-Informationen, die schreibt man natürlich nicht mit auf die Maschine drauf. Am Ende kommt noch der Kunde vorbei und dekompiliert den Code. Das heißt, die Debug-Informationen des Codes sind nicht mit dem Code zusammen, sondern auf deiner Maschine, auf deiner eigenen.

01:26:43.250 --> 01:26:52.990
So, und wenn du dann nach drei Jahren wieder kommst und der Kunde sagt, an der Maschine, kannst du mal gucken, was da los ist, dann musst du dann deinen eigenen DBA-Code bei dir wiederfinden.

01:26:56.530 --> 01:27:08.170
Ja, 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.

01:27:09.990 --> 01:27:32.690
Ja, das sind alles Sachen, da dreht sich einem als Python-Programmierer der Magen um. Aber naja, dafür läuft es da dann halt. Ja, die haben halt auch Zuverlässigkeitsanforderungen.

01:27:33.450 --> 01:27:44.790
Ja, aber wäre da nicht, also weil das höre ich auch immer aus dem Musikbereich oder so, wo es auf Echtzeit ankommt, die verwenden da oft jetzt also CircuitPython oder MicroPython oder sowas. Wäre das nicht eine Idee, das mit sowas zu machen?

01:27:47.550 --> 01:27:50.390
also ich wäre

01:27:50.390 --> 01:27:52.470
dafür. Da bewegt

01:27:52.470 --> 01:27:54.750
sich, glaube ich, einiges. Ja, definitiv.

01:27:54.770 --> 01:27:55.370
In den letzten Jahren.

01:27:56.410 --> 01:27:58.450
Wobei ich da eigentlich

01:27:58.450 --> 01:28:00.430
ganz, also

01:28:00.430 --> 01:28:01.970
ich habe das tatsächlich mal probiert,

01:28:02.510 --> 01:28:03.790
also glücklicherweise,

01:28:04.530 --> 01:28:04.630
also

01:28:04.630 --> 01:28:08.150
das ist tatsächlich so gebaut, dass

01:28:08.150 --> 01:28:10.170
die ganzen Motoren hängen dann

01:28:10.170 --> 01:28:10.710
an,

01:28:12.230 --> 01:28:14.050
wie nennt man das, Klemmen dran, also

01:28:14.050 --> 01:28:16.030
an Motorklemmen, auf Englisch

01:28:16.030 --> 01:28:17.490
Terminals, vielleicht hilft das besser.

01:28:17.550 --> 01:28:31.970
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 Echtzeit-Version namens EtherCAT.

01:28:33.410 --> 01:28:46.450
Möglicherweise 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.

01:28:47.730 --> 01:28:57.110
Ja und dann merkt man halt dann plötzlich, dass man halt nicht Reden, dass man nicht Echtzeit ist und da tut dann auf einmal Echtzeit tatsächlich weh.

01:29:00.270 --> 01:29:13.630
Also es fängt dann bestimmt mit schon 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.

01:29:13.730 --> 01:29:14.130
Ja, klar.

01:29:14.870 --> 01:29:15.970
Weshalb die dann…

01:29:15.970 --> 01:29:20.370
Das heißt, wahrscheinlich willst du dann auch gar kein Betriebssystem haben, sondern du willst direkt im Kernel sein oder so oder irgendeine…

01:29:20.370 --> 01:29:29.950
Die Firma Beckhoff hat einen sehr engen Vertrag mit Microsoft, dass sie direkt am Kernel von Microsoft arbeiten können.

01:29:30.270 --> 01:29:40.650
Oh, aber mit Linux könnte man das doch auch, da gibt es doch sogar irgendwie in Linux so eine Schnittstelle, wo man, ja es gibt ja auch so RT-Linux-Sachen.

01:29:40.650 --> 01:29:53.590
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.

01:29:55.150 --> 01:30:19.990
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.

01:30:19.990 --> 01:30:22.490
Achso, natürlich, du bist ein richtiger Anfänger.

01:30:24.830 --> 01:30:30.790
Jetzt ist mir auch eingefallen, was der Johannes meinte, den Bit-Controller, den hätte ich gerne da für die Steuerung dieser Motoren. Geht das, Johannes?

01:30:31.050 --> 01:30:39.930
Achso, ja, da hast du irgendwo einen Controller drin, der sowas macht, ja. Das geht da oft ganz tief runter.

01:30:40.810 --> 01:30:51.790
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.

01:30:52.350 --> 01:31:08.810
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.

01:31:10.790 --> 01:31:27.410
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 fünf 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.

01:31:28.110 --> 01:31:48.950
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.

01:31:49.130 --> 01:32:02.210
Auch weil sich diese Welten sehr langsam bewegen, auch weil da sehr viel Geld drin ist. Diese Geräte, die ihr da gekauft habt, um eure tausend Motoren zu steuern, die werden sicherlich alle ein paar Euro gekostet haben.

01:32:02.210 --> 01:32:25.250
Ja, definitiv. Interessanterweise ist es dann so, dass das bis heute so ist, dass diese ganzen kleinen Prozessörchen in gewisser Maßen emuliert werden. Also früher war es immer so, man hatte immer eine langsamere Steuerung, die solche Sachen machen, die nur an und aus gehen, also so ein Ventil auf, Ventil zu.

01:32:25.250 --> 01:32:43.430
Man hat eine schnelle Steuerung gehabt, die Motoren halt mit, da muss halt schnell ein Feedback kommen, ob der Motor schon weit genug ist oder nicht. Und heute werden die dann tatsächlich getrennt von zwei Prozessen dann emuliert.

01:32:45.050 --> 01:32:47.550
Das macht eigentlich heutzutage ja gar keinen Sinn mehr.

01:32:47.950 --> 01:32:49.910
Dann läuft da einer auf dem einen Prozessorkern,

01:32:50.630 --> 01:32:55.290
die langsamere Steuerung, die dann irgendwie so mit 100 Hertz arbeitet

01:32:55.290 --> 01:32:58.570
und daneben noch eine zweite, die dann mit 10 Kilohertz arbeitet

01:32:58.570 --> 01:33:02.270
und die dann über ganz magische Dinger sich miteinander unterhalten.

01:33:03.270 --> 01:33:05.270
Und das wird dann sehr bald sehr hanebüchen.

01:33:06.270 --> 01:33:08.070
Das ist alles halt nur noch historisch zu erklären.

01:33:08.930 --> 01:33:11.890
Und ja, ich würde sowas gerne alles durch Python ersetzen,

01:33:11.890 --> 01:33:13.990
aber so schnell bin ich nun auch wieder nicht,

01:33:14.270 --> 01:33:16.170
da alleine die Industrie

01:33:16.170 --> 01:33:17.390
kurz mal umzukrempeln.

01:33:18.950 --> 01:33:19.470
Ja, nein.

01:33:19.870 --> 01:33:21.070
Aber wir sind ja jetzt zu viert hier.

01:33:21.070 --> 01:33:22.310
Also sind wir schon mal viermal schneller.

01:33:22.310 --> 01:33:23.530
Ja, das ist gut.

01:33:25.270 --> 01:33:26.590
Interessanterweise habe ich das dann mal ausprobiert,

01:33:26.670 --> 01:33:28.930
dass tatsächlich so eine Steuerung

01:33:28.930 --> 01:33:31.010
in Linux zu basteln

01:33:31.010 --> 01:33:32.390
und stellte dann fest, dass tatsächlich

01:33:32.390 --> 01:33:34.850
die beste dafür geeignete

01:33:34.850 --> 01:33:36.950
Hardware ein Raspberry Pi war.

01:33:37.790 --> 01:33:38.890
Und zwar deshalb, weil dessen

01:33:38.890 --> 01:33:40.250
Netzwerkkarte...

01:33:40.250 --> 01:33:40.910
Keine Buffer hat.

01:33:42.230 --> 01:33:42.710
Genau.

01:33:44.170 --> 01:33:47.290
Das war dann auch

01:33:47.290 --> 01:33:49.050
sehr praktisch, weil so ein Ding ist einfach auch

01:33:49.050 --> 01:33:51.310
bei weitem schnell genug

01:33:51.310 --> 01:33:53.390
und auch zuverlässig

01:33:53.390 --> 01:33:53.690
genug.

01:33:56.570 --> 01:33:57.370
Ja, interessant auch, was man

01:33:57.370 --> 01:33:59.190
da so alles achten muss, wenn man da so die Steuerung zusammen

01:33:59.190 --> 01:33:59.850
stecken möchte.

01:34:02.090 --> 01:34:03.150
Ja, ja, ja,

01:34:03.210 --> 01:34:04.890
faszinierend. Ja, sehr, sehr interessant.

01:34:05.170 --> 01:34:05.590
Sehr, sehr interessant.

01:34:06.450 --> 01:34:08.930
Ja, ich weiß nicht,

01:34:10.290 --> 01:34:10.850
vielleicht,

01:34:10.850 --> 01:34:12.910
was ist denn, was findest du denn so

01:34:12.910 --> 01:34:15.190
bei dieser ganzen Geschichte,

01:34:15.310 --> 01:34:16.030
das mit Python zu steuern.

01:34:16.450 --> 01:34:18.430
Was sind die Dinge, die dich da interessieren?

01:34:18.530 --> 01:34:19.130
Oder was fandest du cool?

01:34:19.230 --> 01:34:21.010
Oder was funktioniert mit Python noch nicht so gut?

01:34:21.710 --> 01:34:23.890
Oder, ja, ich weiß nicht.

01:34:24.410 --> 01:34:26.790
Also, was mich immer wieder begeistert,

01:34:26.850 --> 01:34:28.470
ist, mit welcher Geschwindigkeit

01:34:28.470 --> 01:34:30.970
man einfach so kleine, praktische Sachen machen kann.

01:34:32.550 --> 01:34:34.470
Also, wie ich da erwähnt habe,

01:34:34.530 --> 01:34:35.870
dass man da einfach ein Foto nimmt

01:34:35.870 --> 01:34:37.770
und dann auf das Foto draufklickt

01:34:37.770 --> 01:34:38.990
und dann fährt der Motor dorthin.

01:34:39.570 --> 01:34:41.970
Das sind so Dinge,

01:34:42.610 --> 01:34:46.590
Für die würde man halt nicht das als Auftrag stellen

01:34:46.590 --> 01:34:48.510
und dass dann monatelang Entwickler dran sitzen.

01:34:49.290 --> 01:34:52.710
Aber in Python waren das alles dann auch am Ende auch nur ein paar Zeilen.

01:34:53.730 --> 01:34:59.050
Und also diese kleinen, schönen Dinge, die das Leben einfacher machen,

01:34:59.170 --> 01:35:02.370
das ist tatsächlich das, was ich dafür, dafür mögen mich auch meine Kollegen,

01:35:03.070 --> 01:35:09.510
dass denn die, also nicht unbedingt die so absolut notwendig sind,

01:35:09.730 --> 01:35:12.430
sondern die einfach einem das Leben vereinfachen,

01:35:12.490 --> 01:35:17.090
dass man einfach die Kapazität hat, das zu tun.

01:35:17.230 --> 01:35:18.330
Weil man so schnell programmieren kann,

01:35:18.390 --> 01:35:20.670
weil man so schnell Sachen raushauen kann,

01:35:21.510 --> 01:35:24.370
dass man seine Kollegen glücklich machen kann.

01:35:26.430 --> 01:35:28.950
Also, dass die auch keine Hemmungen haben,

01:35:29.010 --> 01:35:32.130
mir zu fragen, hier, Martin, da muss man immer so blöd klicken

01:35:32.130 --> 01:35:33.090
und das funktioniert nicht richtig.

01:35:33.170 --> 01:35:34.170
Kannst du das nicht mal schön machen?

01:35:34.170 --> 01:35:37.890
Und dann wird, ja, kein Problem, hack ich dir zusammen.

01:35:38.370 --> 01:35:40.150
Und dann, ja, da muss man ein bisschen aufpassen,

01:35:40.250 --> 01:35:42.310
dass man nicht zu sehr hackt und dass man am Ende

01:35:42.310 --> 01:35:44.350
das dann am Ende auch noch irgendwie zu einem brauchbaren

01:35:44.350 --> 01:35:46.110
Projekt macht und dass das dann nicht irgendwie so einem

01:35:46.110 --> 01:35:48.170
Datengrab auf irgendeiner Festplatte landet.

01:35:48.750 --> 01:35:50.010
Ja, ist schon richtig, aber

01:35:50.010 --> 01:35:51.930
das ist halt das, was

01:35:51.930 --> 01:35:53.990
das Schöne daran ist.

01:35:55.530 --> 01:35:56.290
Und dass

01:35:56.290 --> 01:35:57.170
das halt auch alles

01:35:57.170 --> 01:36:00.410
ja, so sehr schnell geht.

01:36:01.070 --> 01:36:02.210
Also was ich auch sehr schön finde,

01:36:02.330 --> 01:36:04.110
ist das, was ich

01:36:04.110 --> 01:36:06.290
gerne mag einfach. Gut, das

01:36:06.290 --> 01:36:07.730
ist die Geschmackssache, dass

01:36:07.730 --> 01:36:10.390
wir kommen, also wir haben halt unglaublich

01:36:10.390 --> 01:36:11.770
viele irgendwelche experimentellen

01:36:11.770 --> 01:36:14.310
Gerätschaften, dass wir dann, also

01:36:14.310 --> 01:36:16.330
der Strahl, der da bei uns

01:36:16.330 --> 01:36:18.150
in den Strahl reinpinkelt,

01:36:18.870 --> 01:36:19.950
der wird halt von einer

01:36:19.950 --> 01:36:22.230
Hochdruckpumpe gesteuert

01:36:22.230 --> 01:36:24.650
und dann

01:36:24.650 --> 01:36:26.670
kommt da plötzlich mein Kollege mit dieser Pumpe da an,

01:36:26.750 --> 01:36:28.450
stellt sie vor dich hin und sagt, ja, das muss ja

01:36:28.450 --> 01:36:30.570
heute Nachmittag laufen und

01:36:30.570 --> 01:36:32.310
das ist dann

01:36:32.310 --> 01:36:34.490
eigentlich gar nicht so das

01:36:34.490 --> 01:36:36.530
Problem, weil man halt, also Batteries

01:36:36.530 --> 01:36:38.090
included, halt immer gleich alles da hat

01:36:38.090 --> 01:36:40.510
und halt unglaublich schnelle

01:36:40.510 --> 01:36:41.790
Entwicklungszeiten, also

01:36:41.790 --> 01:36:44.550
ein großes Problem ist, dass man, ja, da

01:36:44.550 --> 01:36:46.710
kommt der User, kommt da mit so einem

01:36:46.710 --> 01:36:48.590
Ding an, also der Benutzer, muss ich auf Deutsch

01:36:48.590 --> 01:36:50.130
so sagen, kommt da mit irgendeinem

01:36:50.130 --> 01:36:52.010
Ding an, das hat,

01:36:52.510 --> 01:36:53.750
das, keine Ahnung, das

01:36:53.750 --> 01:36:55.450
kostet 100.000 Euro,

01:36:55.810 --> 01:36:58.250
da kann man, der kann mir nicht

01:36:58.250 --> 01:37:00.490
Monate vorher das zum Ausprobieren

01:37:00.490 --> 01:37:02.470
schicken, damit ich dafür was programmiere,

01:37:03.110 --> 01:37:04.430
das geht nicht, sondern der kommt

01:37:04.430 --> 01:37:05.870
drei Tage vorher an und sagt,

01:37:07.350 --> 01:37:08.490
sorg mal dafür, dass diese Pumpe

01:37:08.490 --> 01:37:09.410
da läuft und dass

01:37:09.410 --> 01:37:12.390
da in den Strahl reinpinkelt

01:37:12.390 --> 01:37:14.250
und dann

01:37:14.250 --> 01:37:16.550
heißt es und los

01:37:16.550 --> 01:37:18.370
und dann

01:37:18.370 --> 01:37:20.170
ist es halt echt von Vorteil,

01:37:20.730 --> 01:37:22.250
dass man da völlig, ja,

01:37:22.930 --> 01:37:23.090
auch

01:37:23.090 --> 01:37:26.510
das, was einer mal gemeint hat,

01:37:26.770 --> 01:37:27.810
hab ich mal gehört,

01:37:28.130 --> 01:37:29.550
Expressibility,

01:37:30.510 --> 01:37:32.590
dass man in Python recht komplexe

01:37:32.590 --> 01:37:32.910
Sachen

01:37:32.910 --> 01:37:36.010
schön ausdrücken kann,

01:37:36.330 --> 01:37:37.290
dass man, also

01:37:37.290 --> 01:37:42.110
ja, wie sieht das, also

01:37:42.110 --> 01:37:43.970
ja, natürlich

01:37:43.970 --> 01:37:46.190
objektorientierte Programmierung, Klassen

01:37:46.190 --> 01:37:47.070
gibt es überall,

01:37:47.890 --> 01:37:50.130
das machen ja inzwischen alle, aber

01:37:50.130 --> 01:37:52.130
dass man dann in der Klasse dann tatsächlich,

01:37:52.670 --> 01:37:54.130
also wir haben dann eine Pumpe

01:37:54.130 --> 01:37:55.830
und die kann dann an, aus und was weiß ich,

01:37:55.890 --> 01:37:57.610
Druck und Volumen oder so etwas

01:37:57.610 --> 01:37:59.070
und dann kann man da,

01:37:59.710 --> 01:38:02.110
dann schreibt man halt rein, Klasse Pumpe,

01:38:02.550 --> 01:38:03.350
Klaas Pumpe,

01:38:04.010 --> 01:38:05.270
natürlich alles auf Englisch, weil

01:38:05.270 --> 01:38:25.510
Das liegt ja in seiner Firma. Und dann schreibt man einfach direkt die Parameter rein, Druck an, aus und 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.

01:38:25.510 --> 01:38:49.690
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, dass 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.

01:38:50.210 --> 01:38:52.030
Und in die kann man halt dann die Parameter,

01:38:52.190 --> 01:38:53.710
die so ein Gerät hat, einfach reinschreiben.

01:38:54.470 --> 01:38:58.790
Und aus der Benutzerseite kann man da dann die Werte reinschreiben.

01:38:59.410 --> 01:39:02.610
Und ja, unser Framework guckt sich dann halt an.

01:39:02.790 --> 01:39:05.610
Und auf der anderen Seite schickt es dann die Kommandos an die Pumpe raus.

01:39:06.050 --> 01:39:09.070
Und das kann man alles so in einem Framework machen

01:39:09.070 --> 01:39:10.790
und einfach so hinschreiben.

01:39:11.350 --> 01:39:16.210
Und ja, also wie das in einer anderen Programmiersprache aussehen würde,

01:39:16.210 --> 01:39:17.950
weiß ich, da das ja

01:39:17.950 --> 01:39:20.030
die Konkurrenz immer noch in C++

01:39:20.030 --> 01:39:22.090
macht und da müssen

01:39:22.090 --> 01:39:23.990
dann halt Kopfstände gemacht werden,

01:39:24.110 --> 01:39:25.930
weil, also wie soll ich denn da deklarativ

01:39:25.930 --> 01:39:28.090
da in C++ überhaupt

01:39:28.090 --> 01:39:29.270
da was hinschreiben?

01:39:30.150 --> 01:39:31.270
Da wird dann immer das

01:39:31.270 --> 01:39:33.850
ausführbare Code dann hingeschrieben,

01:39:34.010 --> 01:39:35.830
der dann magische

01:39:35.830 --> 01:39:38.210
Datenstrukturen im Hintergrund

01:39:38.210 --> 01:39:39.270
aufbaut,

01:39:40.450 --> 01:39:41.370
die dann irgendwie aus...

01:39:41.370 --> 01:39:43.590
Also, furchtbar.

01:39:43.830 --> 01:39:45.490
Furchtbar. Man kann halt

01:39:45.490 --> 01:39:47.610
in sowas wie C++ nichts

01:39:47.610 --> 01:39:49.590
deklarativ hinschreiben, wo man einfach sagen kann,

01:39:49.670 --> 01:39:50.370
das ist so.

01:39:51.130 --> 01:39:52.410
Und das dann von einem

01:39:52.410 --> 01:39:55.570
Framework auslesen lassen, sondern man kann halt

01:39:55.570 --> 01:39:56.370
nur Code hinschreiben.

01:39:57.930 --> 01:39:59.690
Und das ist halt

01:39:59.690 --> 01:40:00.290
das, was

01:40:00.290 --> 01:40:03.810
so ein Framework halt sehr mächtig

01:40:03.810 --> 01:40:05.810
macht. Und mit

01:40:05.810 --> 01:40:07.630
solchen Sachen kann ich dann halt innerhalb von

01:40:07.630 --> 01:40:09.730
einem Nachmittag so eine blöde

01:40:09.730 --> 01:40:10.790
Pumpe zum Laufen kriegen.

01:40:12.470 --> 01:40:13.870
Wie lange wird der C++-Entwickler

01:40:13.870 --> 01:40:14.330
dafür brauchen?

01:40:15.490 --> 01:40:16.410
Ach, eine Woche wahrscheinlich.

01:40:17.110 --> 01:40:19.790
Jetzt sind wir wieder bei einem der wichtigsten

01:40:19.790 --> 01:40:20.910
Dinge, glaube ich, für Python auch, oder?

01:40:22.210 --> 01:40:23.750
Das ist halt so dieses Time-To,

01:40:24.010 --> 01:40:24.870
ich nenne es jetzt mal Market.

01:40:25.550 --> 01:40:27.790
Genau. Also und das ist bei uns,

01:40:28.070 --> 01:40:29.490
wie gesagt, wir haben Experimente im

01:40:29.490 --> 01:40:30.670
Wochentakt, ist bei uns halt,

01:40:31.770 --> 01:40:33.610
wir haben halt unglaublich viel Wegwerf-Code

01:40:33.610 --> 01:40:35.670
einfach. Das ist dann das, was wir

01:40:35.670 --> 01:40:37.890
Makros nennen, wobei das auch keine Makros,

01:40:38.030 --> 01:40:39.670
also das ist jetzt nicht einfach Code,

01:40:39.670 --> 01:40:41.250
der runtergeschrieben ist, sondern wirklich,

01:40:42.430 --> 01:40:43.890
da haben wir dann genau so ein Framework,

01:40:44.050 --> 01:40:45.170
wo man dann so Parameter

01:40:45.170 --> 01:40:47.570
dann deklarieren kann und

01:40:47.570 --> 01:40:49.610
am Ende dann Sachen ausgeführt werden

01:40:49.610 --> 01:40:51.050
können. Und

01:40:51.050 --> 01:40:53.410
das Schöne daran ist auch, dass wir es

01:40:53.410 --> 01:40:54.630
geschafft haben, dass

01:40:54.630 --> 01:40:57.490
also ich bin nun

01:40:57.490 --> 01:40:58.810
angestellt tatsächlich als Programmierer,

01:40:59.450 --> 01:41:01.490
aber dass auch unsere Wissenschaftler tatsächlich bereits

01:41:01.490 --> 01:41:02.190
in der Lage sind,

01:41:03.650 --> 01:41:05.650
sich dann so einfache Sachen selber zusammenzuschreiben.

01:41:06.810 --> 01:41:07.570
Das ist

01:41:07.570 --> 01:41:09.090
mit Python, ja gut,

01:41:09.630 --> 01:41:11.530
was auch daran liegt, dass in der Physik doch Python

01:41:11.530 --> 01:41:13.550
inzwischen sehr weit verbreitet ist und man

01:41:13.550 --> 01:41:15.970
den den sagen konnte, hier, das machst du doch schon in der Datenauswertung,

01:41:16.050 --> 01:41:17.730
du machst auch schon immer deine Jupyter-Notebooks

01:41:17.730 --> 01:41:18.410
mit deinem Python.

01:41:19.410 --> 01:41:21.590
Hier, guck mal, da schreibst du ein bisschen anders und dann kannst

01:41:21.590 --> 01:41:23.490
du damit auch irgendwelche Motoren nach links

01:41:23.490 --> 01:41:25.410
oder rechts fahren. Das wird man

01:41:25.410 --> 01:41:27.550
verstehen dann, ja. Genau, das ist dann

01:41:27.550 --> 01:41:29.270
Python ist ja so gesehen auch nicht schwer

01:41:29.270 --> 01:41:30.270
von der Syntax her dann.

01:41:31.310 --> 01:41:32.310
Nee, überhaupt nicht.

01:41:33.410 --> 01:41:35.590
Auch nicht so. Ich finde, das ist eins der schönsten

01:41:35.590 --> 01:41:37.370
Sachen an Python ist, man

01:41:37.370 --> 01:41:38.110
kann es

01:41:38.110 --> 01:41:41.530
zu, also eigentlich vollständig

01:41:41.530 --> 01:41:43.290
verstehen. Also

01:41:43.290 --> 01:41:45.110
wir hatten mal da Bewerbungsgespräche,

01:41:46.730 --> 01:41:47.330
wo dann

01:41:47.330 --> 01:41:48.450
sich C++ und

01:41:48.450 --> 01:41:51.350
Python-Programmierer beworben

01:41:51.350 --> 01:41:52.710
haben. Die haben wir dann immer gefragt, ja,

01:41:53.350 --> 01:41:54.990
bei einer Skala von 1 bis 10,

01:41:55.110 --> 01:41:57.450
wie gut sind deine C++-Kenntnisse?

01:41:58.310 --> 01:41:59.410
Und wenn dann einer sagte

01:41:59.410 --> 01:41:59.970
9,

01:42:00.330 --> 01:42:03.210
dann war das sozusagen eine Herausforderung,

01:42:03.370 --> 01:42:05.550
irgendwie sich eine fiese Template-Geschichte zu überlegen,

01:42:05.690 --> 01:42:06.810
die keiner kennt

01:42:06.810 --> 01:42:07.990
oder keiner kann.

01:42:08.690 --> 01:42:11.250
Die kann man ja problemlos

01:42:11.250 --> 01:42:12.910
problemlos

01:42:12.910 --> 01:42:16.950
sofort aus dem Hut zaubern.

01:42:17.090 --> 01:42:19.110
Also ich muss dir die Antwort ja nicht kennen, ich muss dir bloß die Frage

01:42:19.110 --> 01:42:20.550
stellen. Während

01:42:20.550 --> 01:42:23.210
wenn dann da ein Python-Programmierer

01:42:23.210 --> 01:42:24.930
steht und sagt, gut,

01:42:25.030 --> 01:42:27.050
wie gut ist dein Niveau, Python

01:42:27.050 --> 01:42:29.170
9, dann muss ich

01:42:29.170 --> 01:42:30.770
sagen, dass ich schon, also

01:42:30.770 --> 01:42:32.970
sogar, also Fangfragen zu stellen,

01:42:33.130 --> 01:42:34.770
schon, also ich glaube,

01:42:35.210 --> 01:42:36.810
dass es viele Leute gibt,

01:42:37.350 --> 01:42:39.070
vielleicht sogar in diesem Podcast, die

01:42:39.070 --> 01:42:40.950
90 Prozent von Python verstanden haben.

01:42:41.250 --> 01:43:06.970
Ja, wobei es auch schwerer wird mit der Zeit, also in letzter Zeit kommt halt immer mehr dazu und ich meine, ja, das wird auch nicht, oder das ist auch etwas, was viele Leute beklagen, dass es halt für Anfänger jetzt immer schwerer wird, weil halt der Sprachumfang, also gerade wenn man jetzt sowas nimmt wie Typannotationen oder so, finde ich persönlich auch gar nicht mehr so furchtbar einfach, immer das so hinzuschreiben, dass es dann passt, das ist halt schon, das ist halt wieder so ein ganz eigenes, ja, also Python wird halt irgendwie umfangreicher mit der Zeit.

01:43:07.770 --> 01:43:08.750
Ja, also

01:43:08.750 --> 01:43:10.550
es war auch früher...

01:43:10.550 --> 01:43:12.510
Das hört sich auch an einer guten Episode an,

01:43:13.090 --> 01:43:14.290
die man da mal aufnehmen könnte.

01:43:14.510 --> 01:43:16.310
Fangfragen und die Ecken und Kanten.

01:43:16.450 --> 01:43:18.590
Ich überlege, weil mir fällt sofort ein Ding

01:43:18.590 --> 01:43:19.870
ein, schreib mal die

01:43:19.870 --> 01:43:20.930
Funktion

01:43:20.930 --> 01:43:24.470
min oder max in Python hinzuschreiben, ist halt

01:43:24.470 --> 01:43:26.210
sehr, sehr einfach. Schreib mal die

01:43:26.210 --> 01:43:28.450
Type-Annotation richtig dafür hin.

01:43:28.670 --> 01:43:29.210
Das ist halt,

01:43:30.210 --> 01:43:32.470
die Type-Annotationen sind

01:43:32.470 --> 01:43:33.950
wesentlich mehr Code als die Funktion selber.

01:43:35.470 --> 01:43:36.390
Das ist echt

01:43:36.390 --> 01:43:38.390
schwierig. Nimm zwei Parameter vom

01:43:38.390 --> 01:43:39.770
Typ Any und gib zurück.

01:43:40.130 --> 01:43:41.290
Ja, ja, aber nee,

01:43:41.970 --> 01:43:44.250
gut, das geht natürlich, dann ist es einfach,

01:43:44.390 --> 01:43:46.270
aber es darf nicht Any sein und es sollte keine

01:43:46.270 --> 01:43:47.930
False Negatives haben.

01:43:48.450 --> 01:43:49.290
Dann ist es halt schon so.

01:43:51.510 --> 01:43:52.310
Ja, wobei

01:43:52.310 --> 01:43:54.430
ich bei Type Annotations, ich muss sagen,

01:43:54.490 --> 01:43:56.310
ich habe mich da nie wirklich reingefuchst, weil

01:43:56.310 --> 01:43:58.470
also zumindest das, was ich von gesehen

01:43:58.470 --> 01:44:00.190
habe, vielleicht klärt ihr mich eines

01:44:00.190 --> 01:44:01.210
Besseren auf,

01:44:02.350 --> 01:44:04.170
also was mich jetzt

01:44:04.170 --> 01:44:06.290
interessiert, also Typen interessieren

01:44:06.290 --> 01:44:08.490
mich jetzt tatsächlich eigentlich

01:44:08.490 --> 01:44:10.270
wenig, weil bei uns, was

01:44:10.270 --> 01:44:12.150
eher reinkommt, ist eher die Frage

01:44:12.150 --> 01:44:14.390
Einheiten. Also so

01:44:14.390 --> 01:44:16.230
etwas wie so ein Motor bewegt sich

01:44:16.230 --> 01:44:17.630
typischerweise um eine Länge

01:44:17.630 --> 01:44:20.350
und das berühmte Beispiel

01:44:20.350 --> 01:44:22.410
des irgendeiner abgestürzten

01:44:22.410 --> 01:44:24.070
Satelliten auf dem Mars oder so etwas

01:44:24.070 --> 01:44:26.130
ist ja hinlänglich bekannt, wo sie da dann

01:44:26.130 --> 01:44:27.730
Zoll mit Millimeter verwechselt haben.

01:44:28.610 --> 01:44:30.290
Wenn man da geschickt annotieren

01:44:30.290 --> 01:44:31.710
könnte und meine... Ja, das ist ein Type, oder?

01:44:32.290 --> 01:44:34.050
Nee. Ja, gut, also

01:44:34.050 --> 01:44:36.230
schon irgendwie, aber dann halt

01:44:36.230 --> 01:44:38.090
auch, dass... Nee, das ist doch kein Type.

01:44:38.590 --> 01:44:39.830
Nein. Der Type ist Zahl.

01:44:40.750 --> 01:44:42.290
Genau. So kann

01:44:42.290 --> 01:44:44.070
man das sehen. Oder man kann jetzt für

01:44:44.070 --> 01:44:46.230
jeden Einzelnen dann auch wieder...

01:44:47.530 --> 01:44:48.150
Ja, ich würde

01:44:48.150 --> 01:44:49.290
versuchen, sowas zu definieren.

01:44:50.790 --> 01:44:51.990
Ja, aber dann...

01:44:51.990 --> 01:44:54.110
Oder bist du lange beschäftigt. Genau. Also bis man da

01:44:54.110 --> 01:44:56.050
einmal sämtliche Einheiten, die man dann

01:44:56.050 --> 01:44:58.050
durchhält... Ja, wahrscheinlich ist halt die Frage, wenn der Input falsch ist,

01:44:58.090 --> 01:44:59.730
woher weiß man dann, welche Einheit ist denn das dann, ne?

01:44:59.730 --> 01:45:01.090
Wenn das nur Zahl ist.

01:45:02.250 --> 01:45:03.690
Ganz einfach. Weil man kann das ja einfach

01:45:03.690 --> 01:45:05.770
das Komma verschieben und dann hat man eine andere Skala

01:45:05.770 --> 01:45:09.010
Ja, aber man könnte halt auch viel...

01:45:09.010 --> 01:45:09.890
Das ist halt die Grenze, ja.

01:45:10.350 --> 01:45:12.890
Das sind die Grenzen von so einem Typsystem.

01:45:13.030 --> 01:45:15.330
Du hast immer Sachen, die vom gleichen Typ sind,

01:45:15.490 --> 01:45:17.010
aber unterschiedliche Bedeutung haben.

01:45:18.610 --> 01:45:21.470
Das klassische Beispiel ist die String-Format-Methode,

01:45:21.650 --> 01:45:24.050
Printf im klassischen Sinne.

01:45:24.390 --> 01:45:26.450
Die nimmt zwei Strings und der eine ist das Format

01:45:26.450 --> 01:45:28.330
und der andere ist das, was in das Format eingesetzt wird.

01:45:28.810 --> 01:45:31.310
Und du kannst die nicht auf Typebene unterscheiden,

01:45:31.370 --> 01:45:32.190
weil das sind beide Strings.

01:45:33.370 --> 01:45:34.750
Und diese Grenze gibt es immer.

01:45:35.770 --> 01:45:40.050
Also das ist immer eine Grenze zwischen Bedeutung und Inhalt.

01:45:40.510 --> 01:45:52.710
Ja, 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.

01:45:52.730 --> 01:45:54.790
Ja, das war schrecklich, schrecklich.

01:45:54.970 --> 01:46:06.290
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.

01:46:06.290 --> 01:46:11.290
Und das war glaube ich das einzige Mal, dass von der Seite irgendwelche Lacher kamen.

01:46:12.670 --> 01:46:15.010
Aber wenn man zum Beispiel die Unterscheidung

01:46:15.010 --> 01:46:17.130
zwischen Bytes und Unicode einfach hätte

01:46:17.130 --> 01:46:18.830
durch Type Annotations machen können,

01:46:19.950 --> 01:46:21.030
dann hätte man gar keine neue

01:46:21.030 --> 01:46:22.850
Python-Version machen können müssen, sondern hätte

01:46:22.850 --> 01:46:24.630
einfach nur das annotiert

01:46:24.630 --> 01:46:25.910
und

01:46:25.910 --> 01:46:28.890
deine IDI sagt dir dann, ach, an der

01:46:28.890 --> 01:46:30.870
Stelle versuchst du aber Unicodes plus Bytes

01:46:30.870 --> 01:46:32.670
zu machen, das geht doch nicht, böse, böse.

01:46:34.270 --> 01:46:34.530
Und

01:46:34.530 --> 01:46:36.850
ja.

01:46:37.190 --> 01:46:38.950
Habt ihr denn eine Lösung für dieses

01:46:38.950 --> 01:46:40.990
Einheitenproblem? Habt ihr da was, was

01:46:40.990 --> 01:46:42.430
kannst du uns Tipps geben?

01:46:42.670 --> 01:46:44.870
Es gibt eine Bibliothek namens Pint, die ist ganz gut,

01:46:45.870 --> 01:46:48.090
aber die arbeitet halt erst auf der Ausführungsebene,

01:46:48.090 --> 01:46:52.290
nicht auf der IDE-Ebene, dass man halt die Werte,

01:46:52.990 --> 01:46:56.110
die tatsächlich, die haben dann eine Einheit

01:46:56.110 --> 01:46:59.590
und das funktioniert dann auch ganz gut.

01:46:59.690 --> 01:47:02.730
Da kann man sich dann Meter, Millimeter addieren

01:47:02.730 --> 01:47:04.270
und das macht dann alles Richtige.

01:47:04.850 --> 01:47:06.990
Und wenn man versucht, Meter mit Sekunden zu addieren,

01:47:07.170 --> 01:47:08.490
dann sagt er einem, das geht nicht.

01:47:08.590 --> 01:47:10.550
Aber das Blöde ist, das macht es halt erst auf Ausführungsebene.

01:47:10.890 --> 01:47:13.370
Wenn man dann irgendwie tausend Meter reingegeben hat,

01:47:13.450 --> 01:47:14.830
aber tausend Sekunden meinte, ist dann doof.

01:47:16.290 --> 01:47:16.650
Ja, genau.

01:47:16.770 --> 01:47:18.110
Also dann stürzt es einfach ab.

01:47:19.170 --> 01:47:21.290
Oder es wird halt eine Exception geworfen, klar.

01:47:22.070 --> 01:47:23.430
Es wäre natürlich schön, wenn man das bereits,

01:47:24.110 --> 01:47:25.650
Type Annotations laufen ja halt viel früher.

01:47:26.110 --> 01:47:28.250
Das ist ja schon in der ADI das Richtige.

01:47:28.790 --> 01:47:31.370
Da sieht man da schon, dass das passiert.

01:47:31.850 --> 01:47:34.610
Und nicht erst, wenn dann blöderweise ein einziges Mal

01:47:34.610 --> 01:47:38.570
diese komische Funktion beim Landen auf dem Jupiter ausgeführt wird.

01:47:39.630 --> 01:47:41.530
Und dann halt eine Exception

01:47:41.530 --> 01:47:43.990
geworfen wird, anstatt dass...

01:47:43.990 --> 01:47:47.570
Ja, das ist dann halt der falsche

01:47:47.570 --> 01:47:47.990
Zeitpunkt.

01:47:49.370 --> 01:47:51.250
Das sind so einige Experimente, die man einmal machen kann.

01:47:51.390 --> 01:47:52.650
Das ist schon sehr kritisch von mir.

01:47:53.430 --> 01:47:54.150
Ja, ja, ja.

01:47:56.950 --> 01:47:58.530
Ja, das ist...

01:47:58.530 --> 01:48:01.310
Ich bin mal auch gespannt. Ich meine, TypeScript geht da ja

01:48:01.310 --> 01:48:02.930
auch sehr...

01:48:02.930 --> 01:48:04.630
Forsch voran. Ja, genau.

01:48:05.050 --> 01:48:07.330
Und da habe ich das letztens gesehen, ich weiß nicht genau,

01:48:07.330 --> 01:48:08.870
dass da Leute...

01:48:08.870 --> 01:48:11.450
man kann fast aus den, wenn man die Type-Annotationen

01:48:11.450 --> 01:48:13.170
richtig, kann man fast den Code da

01:48:13.170 --> 01:48:15.070
schon generieren, sozusagen, weil

01:48:15.070 --> 01:48:17.190
da schon so viel Information drin ist, dass man

01:48:17.190 --> 01:48:19.010
sagen kann, okay, jetzt ist klar, was die Funktion machen muss,

01:48:19.870 --> 01:48:21.090
aber es fühlt sich

01:48:21.090 --> 01:48:22.830
irgendwie auch ein bisschen, also es ist auf der einen Seite

01:48:22.830 --> 01:48:24.890
interessant, auf der anderen Seite denkt man sich so, wow,

01:48:25.110 --> 01:48:26.970
das ist aber ganz anders. Ja, aber ich glaube

01:48:26.970 --> 01:48:28.850
tatsächlich, diese ganzen Typen-Geschichten

01:48:28.850 --> 01:48:30.990
heben wir uns für eine andere Folge auf.

01:48:31.390 --> 01:48:33.010
Jaja, das, genau, müssen wir mal irgendwann

01:48:33.010 --> 01:48:34.770
ja,

01:48:36.210 --> 01:48:37.210
genau.

01:48:37.390 --> 01:48:39.250
Ich fand das sehr interessant, Martin. Vielen Dank dafür.

01:48:39.310 --> 01:48:41.870
Das ist immer total spannend, für was Peißen alles so benutzt wird

01:48:41.870 --> 01:48:43.550
und was man da so stolpert.

01:48:43.850 --> 01:48:45.270
Das ist super wichtig,

01:48:46.070 --> 01:48:47.630
was man da für schöne Sachen mit zaubern kann.

01:48:48.830 --> 01:48:49.810
Das ist ein bisschen Magie hinterher.

01:48:49.870 --> 01:48:51.930
Man hat halt immer so die schnelle

01:48:51.930 --> 01:48:52.670
Magie in den Fingern.

01:48:52.670 --> 01:48:53.250
Das finde ich mal klasse.

01:48:57.330 --> 01:48:58.750
Habt ihr noch irgendwas zu diesem

01:48:58.750 --> 01:49:00.610
Thema oder kommen wir

01:49:00.610 --> 01:49:02.130
langsam dem Ende entgegen?

01:49:03.770 --> 01:49:04.830
Möchtest du noch was erzählen, Martin?

01:49:07.390 --> 01:49:09.690
Nö, ich glaube, ich bin jetzt dann auch durch.

01:49:10.110 --> 01:49:12.130
Also ich fand es super, super spannend.

01:49:12.830 --> 01:49:15.690
Dieser ganze Problembereich, lauter Sachen,

01:49:15.910 --> 01:49:18.770
die man so als normaler Programmierer, sage ich mal,

01:49:18.770 --> 01:49:22.010
nicht so sieht, die da auftreten.

01:49:22.370 --> 01:49:24.350
Und dass Python da trotzdem gut funktioniert,

01:49:24.610 --> 01:49:25.610
ich finde es großartig.

01:49:25.690 --> 01:49:27.510
Ich finde es super spannend und ich finde es großartig.

01:49:29.830 --> 01:49:31.650
Dann haben wir immer die Tradition,

01:49:31.730 --> 01:49:33.530
dass wir einen Pick der Folge machen.

01:49:33.730 --> 01:49:34.650
Ich weiß nicht, ob du das schon kennst.

01:49:35.090 --> 01:49:37.130
du musst ein Python-Modul

01:49:37.130 --> 01:49:39.210
irgendwo raussuchen und sagen,

01:49:39.330 --> 01:49:41.070
warum du das toll findest. Du musst nichts mit

01:49:41.070 --> 01:49:42.370
deinem Thema zu tun haben.

01:49:42.370 --> 01:49:44.410
Man kann auch was anderes mal nehmen, muss nicht unbedingt ein Python...

01:49:44.410 --> 01:49:45.610
Er hat ja gerade schon Pint gesagt.

01:49:46.530 --> 01:49:48.530
Du hast doch rein freischossen.

01:49:52.850 --> 01:49:54.050
Soll ich mal anfangen?

01:49:54.190 --> 01:49:54.870
Ich habe nämlich eine.

01:49:55.650 --> 01:49:58.410
Ich habe vor einer Weile eine Bibliothek gefunden, die heißt

01:49:58.410 --> 01:49:59.170
Deutschland.

01:50:00.450 --> 01:50:01.810
Pip Install Deutschland.

01:50:02.710 --> 01:50:04.730
Es ist noch keine

01:50:04.730 --> 01:50:06.390
1.0 ist leider noch eine

01:50:06.390 --> 01:50:08.610
kleinere Version und

01:50:08.610 --> 01:50:10.790
das sind einfach Sachen

01:50:10.790 --> 01:50:12.930
drin mit Daten über Deutschland.

01:50:13.690 --> 01:50:14.770
Verschiedene APs

01:50:14.770 --> 01:50:16.510
angebunden, verschiedene Dinge

01:50:16.510 --> 01:50:18.810
angebunden, sodass man

01:50:18.810 --> 01:50:20.470
einfach sich Sachen über Deutschland

01:50:20.470 --> 01:50:22.710
anschauen kann. Hast du es gerade

01:50:22.710 --> 01:50:24.630
offen, Dominik? Bundesanzeiger,

01:50:26.990 --> 01:50:27.830
Handelsregister.

01:50:27.910 --> 01:50:29.110
Einfach interessante

01:50:29.110 --> 01:50:30.070
Daten über Deutschland.

01:50:30.690 --> 01:50:31.890
Geografie und

01:50:31.890 --> 01:50:34.010
genau, Autobahndaten,

01:50:34.130 --> 01:50:35.850
das Presseportal, die

01:50:35.850 --> 01:50:37.050
Polizei Brandenburg,

01:50:37.670 --> 01:50:39.690
Reisewarnungen,

01:50:39.870 --> 01:50:41.790
Zollwarnungen, einfach ganz viel

01:50:41.790 --> 01:50:43.490
Kram über Deutschland, was man sich

01:50:43.490 --> 01:50:44.770
abrufen kann.

01:50:45.850 --> 01:50:48.070
Und das ist jetzt Version 0.1.9,

01:50:48.070 --> 01:50:50.110
also ist noch nicht, Deutschland ist noch nicht reif

01:50:50.110 --> 01:50:51.610
genug für eine

01:50:51.610 --> 01:50:53.130
1.0, aber

01:50:53.130 --> 01:50:55.950
wer mit deutschen Daten arbeiten möchte,

01:50:56.410 --> 01:50:57.950
kann sich die so einfach reinholen, auf eine

01:50:57.950 --> 01:50:59.310
sehr pythonische Art und Weise.

01:51:00.790 --> 01:51:03.330
Man müsste mehr damit machen.

01:51:03.770 --> 01:51:05.310
Johannes hat mir nicht was über PyTest erzählt

01:51:05.310 --> 01:51:07.370
und ich habe gesehen, dass man Rich auch mit PyTest machen kann

01:51:07.370 --> 01:51:08.510
und PyTest Rich genommen.

01:51:09.230 --> 01:51:11.430
Einfach, dass es dann ein bisschen hübschere PyTest-Ausgabe

01:51:11.430 --> 01:51:11.730
gibt.

01:51:12.650 --> 01:51:12.710
Ja.

01:51:15.510 --> 01:51:15.870
Ja.

01:51:16.770 --> 01:51:18.530
Du wolltest was außerhalb von PyPy nehmen?

01:51:18.830 --> 01:51:21.070
Ja, genau. Ich habe deswegen nur so

01:51:21.070 --> 01:51:23.090
gemeckert, weil ich was hatte, was da nicht reinpasst.

01:51:23.170 --> 01:51:24.770
Deswegen dachte ich, muss ich da mal schon mal gleich

01:51:24.770 --> 01:51:25.270
irgendwie

01:51:25.270 --> 01:51:27.910
entsprechend mich positionieren.

01:51:28.830 --> 01:51:30.110
Genau, was ich picken würde, das habe ich

01:51:30.110 --> 01:51:32.150
von der PyCon mitgebracht und das hat der

01:51:32.150 --> 01:51:34.450
in dem Lightning Talk

01:51:34.450 --> 01:51:36.290
Florian Bruhin von

01:51:36.290 --> 01:51:38.050
einer der Pettest-Maintainer hat das

01:51:38.050 --> 01:51:40.650
vorgestellt. Und zwar

01:51:40.650 --> 01:51:42.210
weil er immer nachgucken musste,

01:51:42.610 --> 01:51:44.590
wie F-String-Geschichten, mit denen

01:51:44.590 --> 01:51:46.390
man ja wahnsinnig viel machen kann, wie man das

01:51:46.390 --> 01:51:48.130
denn dazu, in welchem Fall macht,

01:51:48.850 --> 01:51:50.150
hat er ja eine Seite

01:51:50.150 --> 01:51:51.430
schnell mal hochgezogen,

01:51:52.030 --> 01:51:54.010
die nennt sich fstring.help

01:51:54.010 --> 01:51:55.990
slash cheat slash.

01:51:56.490 --> 01:51:57.290
Also so ein

01:51:57.290 --> 01:51:59.510
Cheat-Sheet

01:51:59.510 --> 01:52:01.250
für Python F-Strings.

01:52:02.150 --> 01:52:03.290
Und ja, das ist

01:52:03.290 --> 01:52:04.570
tatsächlich sehr gut gemacht und

01:52:04.570 --> 01:52:07.170
hat mir auch schon geholfen. Finde ich super.

01:52:07.850 --> 01:52:09.410
Genau. Sollte man sich irgendwo hinlegen,

01:52:09.510 --> 01:52:11.010
wo man das dann irgendwie wiederfindet.

01:52:12.250 --> 01:52:12.390
Ja.

01:52:14.390 --> 01:52:15.430
Die etwas

01:52:15.430 --> 01:52:17.370
ältere Variante davon heißt PyFormat.

01:52:17.570 --> 01:52:18.750
PyFormat.info.

01:52:19.250 --> 01:52:21.150
Da kann man über Prozent

01:52:21.150 --> 01:52:23.250
und Punkt Format Formatierung nachlesen.

01:52:23.250 --> 01:52:25.270
Habe ich auch schon sehr, sehr häufig

01:52:25.270 --> 01:52:26.070
aufrufen müssen.

01:52:28.250 --> 01:52:32.230
Ja, vielen Dank Martin, dass du dabei warst und uns mit deinem Wissen bereichert hast.

01:52:32.830 --> 01:52:37.130
Ja, danke auch, dass ich schön erzählen konnte.

01:52:37.890 --> 01:52:47.510
Ja, danke Johannes und bleibt uns alle gewogen, hört uns, schreibt uns wieder rein, irgendwelche Kommentare an hallo.peisenpodcast.de und einfach bis zum nächsten Mal.

01:52:48.070 --> 01:52:50.690
Alles klar, tschüss, tschüss, bis dann, ciao.
