WEBVTT

00:00:00.360 --> 00:00:03.780
Ja, hallo und herzlich willkommen zur 14. Folge vom Python-Podcast heute.

00:00:04.500 --> 00:00:06.060
Ja, wir haben euch uns länger nicht mehr blicken lassen.

00:00:06.440 --> 00:00:10.940
Das tut uns natürlich sehr leid. Wir waren ein bisschen hektisch, haben hintereinander beide Urlaub gemacht.

00:00:11.080 --> 00:00:12.900
Und dann ist natürlich vorher und nachher immer sehr viel zu tun.

00:00:13.360 --> 00:00:16.340
Und wir hatten ein paar Abstimmungsprobleme. Wir wollten nämlich eigentlich eine Projektmanagement-Folge machen.

00:00:16.840 --> 00:00:20.020
Das ist dann an schlechten Projektmanagement-Folgen gescheitert.

00:00:20.660 --> 00:00:23.480
Ja, ich habe sieben verschiedene Termine gehabt und dann immer wieder verschoben.

00:00:24.380 --> 00:00:27.540
Aber heute machen wir deswegen eine Laber-Folge, damit wir euch nicht ganz enttäuschen.

00:00:27.540 --> 00:00:29.500
Aber wer ist wieder dabei? Das ist der Tony wieder bei der Christian.

00:00:29.720 --> 00:00:31.200
Alles gut. Oh, moin.

00:00:32.080 --> 00:00:33.160
Nächstes Mal vielleicht ohne Knacksen.

00:00:34.460 --> 00:00:35.320
Mal gucken, wer es denn bekommt.

00:00:35.440 --> 00:00:36.460
Das werden wir hinterher rausfinden.

00:00:36.660 --> 00:00:39.920
Ja, ansonsten wieder hier aus dem Wintergarten.

00:00:40.560 --> 00:00:41.360
Bin auch dabei.

00:00:43.520 --> 00:00:45.240
Ja, das ist der Jochen, ich bin der Dominik.

00:00:45.440 --> 00:00:45.900
Ja, genau.

00:00:46.860 --> 00:00:49.640
Und ja, ich weiß nicht, womit fangen wir an?

00:00:49.720 --> 00:00:50.300
Irgendwelche Neuigkeiten?

00:00:50.320 --> 00:00:52.460
Ja, genau, wir wollten wieder ein bisschen News aus der Szene erzählen.

00:00:53.000 --> 00:00:54.600
Und ihr beiden weiter auf der Pike-Kurve.

00:00:54.600 --> 00:00:55.960
Das habe ich leider nicht geschafft wegen meinem Urlaub.

00:00:56.360 --> 00:00:58.320
Aber ja, das ist bestimmt sehr spannend gewesen.

00:00:58.960 --> 00:01:00.080
Erzähl doch mal, was war da alles los?

00:01:01.280 --> 00:01:01.440
Ja.

00:01:03.580 --> 00:01:04.320
Also ich

00:01:04.320 --> 00:01:06.840
habe dummerweise auch nebenher noch so ein bisschen

00:01:06.840 --> 00:01:09.080
arbeiten müssen.

00:01:09.280 --> 00:01:10.280
Es war alles so,

00:01:10.860 --> 00:01:12.220
man muss halt so

00:01:12.220 --> 00:01:15.100
eigentlich so ein bisschen Zeit dafür nehmen.

00:01:15.960 --> 00:01:16.400
Genau.

00:01:16.760 --> 00:01:17.600
Es tut jetzt noch weh.

00:01:20.060 --> 00:01:20.500
Ja.

00:01:20.780 --> 00:01:22.160
Aber es war schon interessant.

00:01:22.160 --> 00:01:24.400
Ich habe mir einige Dinge da angeguckt.

00:01:26.780 --> 00:01:28.040
Super fand ich zum Beispiel

00:01:28.040 --> 00:01:29.580
den Vortrag, jetzt habe ich

00:01:29.580 --> 00:01:30.760
den Namen vergessen,

00:01:32.000 --> 00:01:33.300
Luciano Ramaglio

00:01:33.300 --> 00:01:34.180
oder Ramalo,

00:01:35.200 --> 00:01:36.860
der das Buch Fluent Python

00:01:36.860 --> 00:01:39.360
geschrieben hat, das kann ich auch nur empfehlen,

00:01:39.460 --> 00:01:40.620
sehr gutes Buch,

00:01:41.560 --> 00:01:43.240
hat einen Vortrag darüber gehalten,

00:01:44.760 --> 00:01:45.540
dass vielleicht

00:01:45.540 --> 00:01:47.460
diese Unterteilung, die man klassischerweise jetzt

00:01:47.460 --> 00:01:49.700
aus der Informatik

00:01:49.700 --> 00:01:51.480
kennt, irgendwie

00:01:51.480 --> 00:01:53.080
in funktionale, objektorientierte,

00:01:53.440 --> 00:01:54.040
strukturierte

00:01:54.040 --> 00:01:56.820
Programmiersprachen nicht so

00:01:56.820 --> 00:01:58.820
komplett trifft auf das, was man heute so

00:01:58.820 --> 00:02:00.880
vorfindet und man sich vielleicht

00:02:00.880 --> 00:02:02.900
doch eher an den Features der Sprachen orientieren sollte

00:02:02.900 --> 00:02:04.880
oder so und das

00:02:04.880 --> 00:02:06.760
hat da schon einen relativ starken Punkt.

00:02:08.660 --> 00:02:09.180
Also man

00:02:09.180 --> 00:02:11.060
sollte sich mehr daran orientieren, wie die Syntax,

00:02:11.120 --> 00:02:12.960
wie die Features, was die Sprache so kann. Ja, was man mit der Sprache

00:02:12.960 --> 00:02:14.960
so machen kann, genau und das jetzt nicht, weil

00:02:14.960 --> 00:02:16.600
zum Beispiel Python wird halt immer in diese

00:02:16.600 --> 00:02:19.080
Skriptsprachenecke gesteckt und

00:02:19.080 --> 00:02:20.760
warum, ja, es gibt eigentlich

00:02:20.760 --> 00:02:22.800
keinen besonderen Grund dafür, man könnte

00:02:22.800 --> 00:02:24.780
es auch in die objektorientierte

00:02:24.780 --> 00:02:26.900
Programmiersprachen-Ecke

00:02:26.900 --> 00:02:28.780
stellen. Also warum

00:02:28.780 --> 00:02:30.840
ist das jetzt keine, aber C-Sharp schon

00:02:30.840 --> 00:02:32.520
eine oder so, das ist halt nicht so richtig klar.

00:02:33.560 --> 00:02:34.600
Und ja,

00:02:35.320 --> 00:02:36.720
so ein bisschen schwingt damit

00:02:36.720 --> 00:02:38.720
ja auch dann sozusagen immer das Vorurteil

00:02:38.720 --> 00:02:40.540
mit, dass das jetzt gar keine richtige

00:02:40.540 --> 00:02:41.780
Programmiersprache ist oder so.

00:02:41.780 --> 00:02:43.740
Dann gibt es halt die Gruppe der

00:02:43.740 --> 00:02:45.700
richtigen Programmiersprachen, Java, C-Sharp

00:02:45.700 --> 00:02:47.200
und so. Und

00:02:47.200 --> 00:02:49.440
Python ist halt irgendwie so eine komische Skriptsprache.

00:02:49.700 --> 00:02:51.600
Von richtigen Programmieren wird man als Python-Programmier

00:02:51.600 --> 00:02:52.640
auch immer ein bisschen schräg angeguckt.

00:02:53.600 --> 00:03:11.220
Also das Interessante ist, dass ja jetzt aber alle, die letzten Jahre war es schon so, dass wir uns auf den, wir, also die Python Community und Python als Sprache sich ja über die ganzen Indizes und diese Bewertungen, von welchen Sprachen beliebter sind, immer weiter nach vorne geschoben hat.

00:03:12.340 --> 00:03:13.360
Und ich glaube, dieses Jahr hatte ich so...

00:03:13.360 --> 00:03:14.780
Ich habe gehört, dass wir das in Indien gelehrt.

00:03:15.840 --> 00:03:22.580
Ja, also ich meine, ich habe es die letzten drei, vier Jahre beobachtet, dass Python immer bei allen Bewertungen im Prinzip unter den Top 5 ist.

00:03:23.140 --> 00:03:47.700
Und jetzt dieses Jahr hat es ein paar Mal wirklich geknackt, dass wir, ich glaube, bei drei von vieren und ich weiß nicht mehr, welche es waren, auf Platz eins sind. Das sorgte auch dafür, dass unser Branchendienst Heise nach der PyCon und nachdem sie irgendwie ihre eigene Machine Learning Konferenz hatten, sich beim Verband bei uns gemeldet hatten und meinten, sie hätten das gar nicht so richtig gemerkt, aber Python scheint ja irgendwie benutzt zu werden.

00:03:50.540 --> 00:03:52.520
Wo das ja jetzt plötzlich herkäme.

00:03:54.040 --> 00:03:54.980
Wie kommt denn das?

00:03:55.520 --> 00:03:56.040
Ja, genau.

00:03:56.920 --> 00:03:58.980
Aber ich glaube tatsächlich, also inzwischen,

00:03:59.120 --> 00:04:00.100
ich höre das auch manchmal nochmal,

00:04:00.620 --> 00:04:02.340
auch wenn man jetzt, ich hatte heute

00:04:02.340 --> 00:04:04.920
auch ein Thema, was wir später

00:04:04.920 --> 00:04:07.000
noch aufgreifen werden, auf dem Ticker

00:04:07.000 --> 00:04:08.540
und wenn man dann wieder die

00:04:08.540 --> 00:04:11.060
Kommentare

00:04:11.060 --> 00:04:12.880
dazu durchliest, dann

00:04:12.880 --> 00:04:15.160
ist es ganz spannend, weil halt so

00:04:15.160 --> 00:04:16.980
breit gestreute Vorurteile gegenüber Python

00:04:16.980 --> 00:04:19.080
die letzten, die das immer noch

00:04:19.080 --> 00:04:21.220
rausholen von wegen, ja, Indentation ist

00:04:21.220 --> 00:04:21.720
ja eklig.

00:04:23.680 --> 00:04:25.240
Ja, ich glaube,

00:04:25.300 --> 00:04:27.080
das wird nie weggehen, dass da irgendwer

00:04:27.080 --> 00:04:29.180
nochmal mit den Augen rollt, aber

00:04:29.180 --> 00:04:31.180
ich finde es eigentlich ganz angenehm, heutzutage nicht mehr irgendwie

00:04:31.180 --> 00:04:33.180
argumentieren zu müssen einem Kunden gegenüber

00:04:33.180 --> 00:04:34.980
oder einem Projekt, ob ich jetzt Python einsetze oder nicht,

00:04:35.040 --> 00:04:37.120
das ist jetzt endlich gegessen, nach 20 Jahren

00:04:37.120 --> 00:04:39.120
auch mal Zeit. Ja, die letzten gehen schon

00:04:39.120 --> 00:04:41.220
in Rente, haben wir gehört, in der letzten Woche, Halloween,

00:04:41.540 --> 00:04:43.020
als nämlich der Guido hat

00:04:43.020 --> 00:04:45.280
getwittert, dass er Dropbox verlassen

00:04:45.280 --> 00:04:47.380
wird und in Rente geht, also endgültig,

00:04:47.440 --> 00:04:49.800
nachdem er ja letztes Jahr schon seinen teilweise Rückzug

00:04:49.800 --> 00:04:53.220
als benevolent Dictator for Life angegeben hat.

00:04:53.240 --> 00:04:54.480
Ja, wobei das sind ja zwei verschiedene Dinge.

00:04:54.720 --> 00:04:58.840
Also sozusagen das Thema Erwerbstätigkeit zum Lebensunterhalt,

00:04:58.960 --> 00:05:00.360
das hängt da an den Nagel.

00:05:01.180 --> 00:05:03.060
Aber den benevolent Dictator.

00:05:03.900 --> 00:05:06.460
Wer weiß, ob das nicht insgesamt so ein bisschen mit der Karriere zu tun hat,

00:05:06.500 --> 00:05:07.820
dass man sich dann so insgesamt zurückzieht

00:05:07.820 --> 00:05:08.860
und dann auch im Berufsleben rausgeht.

00:05:09.740 --> 00:05:10.620
Was er als Letzteres gemacht hat,

00:05:10.620 --> 00:05:12.200
hat er, glaube ich, Typisierung gemacht in Python, oder?

00:05:12.320 --> 00:05:13.220
Irgendwie mit MyPy viel.

00:05:13.380 --> 00:05:13.940
MyPy, genau.

00:05:14.020 --> 00:05:16.360
Das war sein großes Thema bei Dropbox gewesen.

00:05:16.780 --> 00:05:19.020
Da kommt die MyPi-Idee her.

00:05:19.260 --> 00:05:22.260
Den Namen von dem Verursacher habe ich gerade nicht im Kopf.

00:05:23.580 --> 00:05:28.020
Aber persönlich, Gido hat letztes Jahr beim BDFL,

00:05:28.540 --> 00:05:30.560
es war ja kein BDFL an den Nagel hängen,

00:05:30.660 --> 00:05:34.080
sondern nur einen nicht definierten langen Urlaub nehmen.

00:05:34.800 --> 00:05:39.540
Und der Prozess, der angetreten wurde zum Thema Core-Team

00:05:39.540 --> 00:05:42.200
und wie werden Entscheidungen ohne ihn getroffen,

00:05:42.920 --> 00:05:44.500
welches Gremium kommt da zustande,

00:05:44.940 --> 00:05:48.840
Auch da ist er in dem Gremium ja wieder drin und er ist aktiv dabei.

00:05:49.840 --> 00:05:55.280
Ich glaube, natürlich hat er signalisiert, dass er jetzt dann langsam auch irgendwann mal auf seine Gesundheit auffassen muss

00:05:55.280 --> 00:05:57.920
und mit seiner Energie haushalten.

00:05:58.780 --> 00:06:03.640
Aber ich habe den Eindruck nicht gewonnen, dass er jetzt schon jetzt einen Plan hat zu sagen,

00:06:03.700 --> 00:06:06.780
bis dann und dann will er irgendwie komplett sich rausgezogen haben.

00:06:06.780 --> 00:06:11.220
Ich habe eher das Gefühl, er will es halt mit seiner Energie eben haushalten, um das noch eine Weile durchzuhalten.

00:06:12.160 --> 00:06:13.020
Ja, durchaus vernünftig, ja.

00:06:13.160 --> 00:06:14.440
Das ist ja aber dann der richtige Schritt,

00:06:14.540 --> 00:06:16.920
wenn er bei Dropbox jetzt nicht mehr gebraucht wird,

00:06:16.940 --> 00:06:18.320
oder vielleicht gebraucht wird er schon, aber irgendwie.

00:06:18.940 --> 00:06:22.040
Ja, aber das ist jetzt nicht mehr unbedingt machen.

00:06:22.100 --> 00:06:23.440
Ja, irgendwann werden wir ja auch ein bisschen mehr Ruhe haben.

00:06:23.780 --> 00:06:27.100
Ich meine, Python gibt es ja schon lange, also fast so.

00:06:27.880 --> 00:06:29.240
Wir feiern den nicht 30-Jähriges.

00:06:30.500 --> 00:06:32.280
Das müssen wir mal rausfinden, wann 30-Jähriges.

00:06:32.280 --> 00:06:33.580
Ja, stimmt, das sollten wir nicht verfehlen.

00:06:35.560 --> 00:06:36.560
Zünden wir eine Kerze an.

00:06:37.080 --> 00:06:40.440
Und ja, ich habe dann noch mal, als ich das gelesen habe,

00:06:40.480 --> 00:06:41.820
auch auf Wikipedia geguckt, dachte mir so,

00:06:42.160 --> 00:06:44.280
so früh in Rente, aber das stimmt

00:06:44.280 --> 00:06:45.580
gar nicht. Das ist ja auch schon tatsächlich

00:06:45.580 --> 00:06:47.600
echt lange dabei.

00:06:48.200 --> 00:06:50.280
Ja, Guido macht das schon eine Weile und

00:06:50.280 --> 00:06:52.100
ich habe ihn aber tatsächlich,

00:06:52.300 --> 00:06:54.220
mein Eindruck, wie ich ihn so die letzten

00:06:54.220 --> 00:06:56.200
Jahre wahrgenommen habe,

00:06:56.260 --> 00:06:57.340
ich habe ihn, glaube ich,

00:06:58.520 --> 00:07:00.120
ich weiß nicht, wann ich ihn das letzte Mal gesehen habe,

00:07:00.380 --> 00:07:02.240
aber der hat Spaß

00:07:02.240 --> 00:07:04.180
an Python. Der hat halt den BDFL unter anderem

00:07:04.180 --> 00:07:05.460
deswegen weggelegt, weil natürlich

00:07:05.460 --> 00:07:08.120
diese Verantwortung für diese Größe

00:07:08.120 --> 00:07:09.740
der Community und mit allem, was halt

00:07:09.740 --> 00:07:12.040
dann immer mal in so dynamischen Community-Prozessen

00:07:12.040 --> 00:07:13.380
passiert, was halt auch unschön ist,

00:07:13.840 --> 00:07:15.900
war für ihn, das ist ja im Prinzip der Move,

00:07:15.980 --> 00:07:18.040
zu sagen, ich will nicht, dass das dann

00:07:18.040 --> 00:07:19.940
alles, weil ich derjenige bin, der die letzte

00:07:19.940 --> 00:07:21.960
Entscheidung trifft, dann zum Schluss

00:07:21.960 --> 00:07:24.080
bei mir landet und ich den ganzen Mist an der Backe

00:07:24.080 --> 00:07:26.040
habe, sondern dass wir

00:07:26.040 --> 00:07:28.020
das halt dann auf mehr Schultern verteilen,

00:07:28.100 --> 00:07:30.260
was natürlich dann auch schön ist, vorausdenkend

00:07:30.260 --> 00:07:31.720
von natürlich Busfaktor.

00:07:32.540 --> 00:07:33.880
Da ist es gut, wenn die Community sich

00:07:33.880 --> 00:07:35.200
sortiert hat,

00:07:36.340 --> 00:07:37.920
für den Fall, dass es irgendwann Magidoma

00:07:37.920 --> 00:07:39.960
nicht mehr geben sollte. Ja, das fand ich auch schön,

00:07:40.080 --> 00:07:41.980
also den Busfaktor, das ist ja auch mal

00:07:41.980 --> 00:07:43.460
so ein, vielleicht, ich weiß nicht, ob das

00:07:43.460 --> 00:07:45.560
jeder versteht, aber das... Was ist ein Busfaktor?

00:07:45.620 --> 00:07:47.940
Ich habe gerade nur gesagt, BDFL, BMF...

00:07:47.940 --> 00:07:50.000
Das ist halt sozusagen die...

00:07:50.000 --> 00:07:51.620
Bad Mr. Frosty. Die Frage,

00:07:51.700 --> 00:07:53.560
wie viele Busse unterwegs sein müssen, um eventuell

00:07:53.560 --> 00:07:55.880
ein Projekt irgendwie kritisch zu beeinflussen

00:07:55.880 --> 00:07:57.880
im Fortgang und...

00:07:57.880 --> 00:07:59.800
Wie viele Leute dürfen vom Bus überfahren werden,

00:08:00.300 --> 00:08:01.780
bevor das

00:08:01.780 --> 00:08:03.460
Projekt dann vorbei ist.

00:08:03.480 --> 00:08:05.560
Ja, und das ist meistens eins, irgendwie

00:08:05.560 --> 00:08:07.120
so für die allermeisten Projekte.

00:08:07.620 --> 00:08:09.640
Und manchmal will man vielleicht mehr haben als

00:08:09.640 --> 00:08:11.560
eins, weil es nicht gut wäre, wenn

00:08:11.560 --> 00:08:13.800
wenn das so einfach zu beenden wäre

00:08:13.800 --> 00:08:15.660
und ich habe aber jetzt

00:08:15.660 --> 00:08:17.400
letztens, deswegen habe ich da kurz noch eingehakt

00:08:17.400 --> 00:08:19.760
gehört, dass jemand das anders genannt hat

00:08:19.760 --> 00:08:22.040
weil er meinte, das klingt immer irgendwie so negativ

00:08:22.040 --> 00:08:24.060
wenn Leute vom Bus überfahren werden

00:08:24.060 --> 00:08:25.980
und er spricht jetzt

00:08:25.980 --> 00:08:27.100
immer vom Lotto-Faktor

00:08:27.100 --> 00:08:29.940
Leute im Lotto gewinnen und dann halt

00:08:29.940 --> 00:08:31.160
irgendwie was anderes machen vielleicht

00:08:31.160 --> 00:08:34.000
Ich meine, der Faktor

00:08:34.000 --> 00:08:35.920
war bei Python zu dem Zeitpunkt

00:08:35.920 --> 00:08:37.820
eh schon nicht mehr so stark ausgeprägt, weil ich meine

00:08:37.820 --> 00:08:39.900
die PSF ist breit aufgestellt, das Code-Team ist breit

00:08:39.900 --> 00:08:41.820
aufgestellt. Und es ist natürlich

00:08:41.820 --> 00:08:43.380
schöner, wenn man das halt dann nicht in einer

00:08:43.380 --> 00:08:45.560
Notsituation machen muss, sondern wenn es halt

00:08:45.560 --> 00:08:46.840
vorab geklärt ist.

00:08:47.820 --> 00:08:49.620
Das ist halt so ein bisschen wie mit

00:08:49.620 --> 00:08:51.360
seinem Partner dann

00:08:51.360 --> 00:08:53.440
schon vorher zu klären, wer

00:08:53.440 --> 00:08:54.760
Patientenverfügung hat und so.

00:08:56.880 --> 00:08:58.060
Ja, so ein Notfallkoffer,

00:08:58.160 --> 00:08:59.560
wenn du wirklich so eine Firma hast und dann

00:08:59.560 --> 00:09:01.520
darauf angewiesen bist, dann brauchst du einen Notfallkoffer, wo drinsteht,

00:09:01.560 --> 00:09:03.400
was du machen musst, wenn der Chef tatsächlich

00:09:03.400 --> 00:09:03.980
irgendwo ist, rennen.

00:09:04.080 --> 00:09:07.280
Ja, wobei, jetzt haben wir natürlich den schönen Fall, dass wir halt

00:09:07.280 --> 00:09:09.400
keinen Notfallkoffer brauchen, sondern dass wir jetzt einen neuen Standard

00:09:09.400 --> 00:09:11.640
etabliert haben, wie das Tagesgeschäft

00:09:11.640 --> 00:09:13.240
jetzt in der Kernentwicklung funktioniert

00:09:13.240 --> 00:09:15.400
und dass Guido halt trotzdem dabei ist, ist halt

00:09:15.400 --> 00:09:17.440
schön. Also mir ist es

00:09:17.440 --> 00:09:19.260
lieber, wenn Guido sich das jetzt so zurechtgelegt hat,

00:09:19.320 --> 00:09:21.380
dass er wirklich Spaß dran hat, als

00:09:21.380 --> 00:09:23.100
wenn er irgendwie nach hinten raus dann irgendwann

00:09:23.100 --> 00:09:24.940
entnervt aufgibt. Ja, sehr schön.

00:09:25.300 --> 00:09:27.240
Für alle, die es noch nicht wussten, also

00:09:27.240 --> 00:09:29.360
Python kann tatsächlich auch feste Typisierung, also

00:09:29.360 --> 00:09:31.320
wenn ihr MyPy benutzt, dann könnt ihr auch die Typen

00:09:31.320 --> 00:09:32.380
festnageln, wenn ihr möchtet.

00:09:33.280 --> 00:09:34.980
Also mehr oder weniger könnt ihr immer noch, müsst ihr nicht, aber

00:09:34.980 --> 00:09:36.300
es wird euch wenigstens gesagt.

00:09:37.280 --> 00:09:38.880
Es gibt eine statische Analyse dazu.

00:09:39.400 --> 00:09:41.540
Genau. Ja, aber ihr wart noch bei der

00:09:41.540 --> 00:09:43.360
PyCon. PyCon.de, dachte ich auch gerade.

00:09:43.500 --> 00:09:44.120
Ja, da waren wir gerade.

00:09:45.800 --> 00:09:47.060
Genau, ja, ansonsten,

00:09:47.260 --> 00:09:49.320
ich muss jetzt nochmal so gerade überlegen, was hatte ich denn noch

00:09:49.320 --> 00:09:50.820
an mir angeguckt, was mir gut gefallen hat?

00:09:52.380 --> 00:09:53.580
Oh, das muss ich jetzt, das habe ich mir

00:09:53.580 --> 00:09:55.320
dann vorgenommen, mir nochmal näher

00:09:55.320 --> 00:09:56.000
anzuschauen.

00:09:57.920 --> 00:09:59.340
Nicht nur Alphabet-Notebooks,

00:09:59.340 --> 00:10:00.940
das verwende ich schon ganz lange, oder

00:10:00.940 --> 00:10:01.860
Jupyter-Notebooks.

00:10:03.080 --> 00:10:05.340
Du hattest einen bösen Bug in Python 3.8 übrigens.

00:10:05.620 --> 00:10:06.800
Oh, okay. Auf Windows aber nur.

00:10:09.140 --> 00:10:27.540
Und da gibt es jetzt so eine komplette Entwicklungsumgebung eigentlich, JupyterLab, die hat auch da irgendwie diverse Fortschritte. Ich habe sie mir schon mal vor einiger Zeit angeguckt, bin dann aber bei den Notebooks geblieben, aber da hat jemand darüber gehalten, was man damit alles so machen kann und das sah schon sehr, sehr gut aus.

00:10:27.840 --> 00:10:29.500
Also so ein Problem

00:10:29.500 --> 00:10:31.280
zum Beispiel, was man, vor allen Dingen

00:10:31.280 --> 00:10:33.600
gibt es ja jede Menge Plugins, die man für tolle Sachen

00:10:33.600 --> 00:10:36.040
benutzen kann. Also etwas, was ich

00:10:36.040 --> 00:10:37.540
irgendwie immer nervig finde, ist,

00:10:37.600 --> 00:10:39.720
wenn man zum Beispiel nicht so richtig DIVs sehen kann,

00:10:39.780 --> 00:10:41.440
wenn man irgendwie Sachen eincheckt oder Sachen verändert.

00:10:41.660 --> 00:10:43.420
Du kannst ja zu Tupi dann auch einen VS-Code öffnen,

00:10:43.520 --> 00:10:44.160
übrigens live.

00:10:45.280 --> 00:10:47.660
Oh, okay, das muss ich mir auch mal angucken.

00:10:47.740 --> 00:10:49.560
Ja, das funktioniert leider noch nicht richtig gut mit der Dango-Schale.

00:10:49.680 --> 00:10:51.580
Zumindest habe ich das nicht vernünftig hinbekommen, aber

00:10:51.580 --> 00:10:52.860
ja, doch, sonst.

00:10:53.600 --> 00:10:55.460
Ja, aber da waren echt

00:10:55.460 --> 00:10:57.320
tolle Sachen dabei. Da waren auch so viele interaktive

00:10:57.320 --> 00:10:59.200
Geschichte, man kann da komplette UI-Geschichten

00:10:59.200 --> 00:11:00.660
irgendwie mitbauen und

00:11:00.660 --> 00:11:03.180
Sachen drin, also ein Plugin

00:11:03.180 --> 00:11:05.380
ist, man kann da irgendwie Diagramme

00:11:05.380 --> 00:11:07.280
drin malen, so, weil man sich immer

00:11:07.280 --> 00:11:09.220
fragt, so, okay, wenn ich jetzt nochmal so

00:11:09.220 --> 00:11:11.040
ein Architektur-Diagramm aufmalen möchte oder so,

00:11:11.080 --> 00:11:12.200
was nehme ich denn jetzt dafür?

00:11:13.100 --> 00:11:15.720
Inzwischen, oft nehme ich dann irgendwie ein Online-

00:11:15.720 --> 00:11:17.220
Tool dafür oder so, aber das geht auch alles

00:11:17.220 --> 00:11:18.420
in JupyterLab

00:11:18.420 --> 00:11:21.100
und ja, also

00:11:21.100 --> 00:11:23.360
das war beeindruckend, was da für Fortschritte

00:11:23.360 --> 00:11:25.260
inzwischen erzielt worden sind und ich muss

00:11:25.260 --> 00:11:26.920
mir das unbedingt wieder angucken, habe es aber noch nicht gemacht, weil

00:11:26.920 --> 00:11:28.960
Urlaub, aber also das fand ich

00:11:28.960 --> 00:11:30.440
noch ziemlich gut und

00:11:30.440 --> 00:11:32.860
was hab ich noch?

00:11:33.120 --> 00:11:34.580
Oh, ich hab mir noch einen

00:11:34.580 --> 00:11:37.320
Vortrag angeguckt

00:11:37.320 --> 00:11:38.000
über

00:11:38.000 --> 00:11:43.020
ein System, das ich mal

00:11:43.020 --> 00:11:43.980
irgendwann gebaut hab,

00:11:44.380 --> 00:11:46.740
wo jemand, da stand schon

00:11:46.740 --> 00:11:48.820
im Abstract drin, irgendwie so, ja, wir treiben hier

00:11:48.820 --> 00:11:51.020
so ein Machine Learning System seit 10 Jahren produktiv

00:11:51.020 --> 00:11:52.980
und hier mal so, was wir alles gelernt

00:11:52.980 --> 00:11:55.080
haben und was alles irgendwie schiefgelaufen

00:11:55.080 --> 00:11:56.900
ist und was wir dann ändern mussten und so.

00:11:56.920 --> 00:11:59.460
und ja, das war tatsächlich etwas,

00:11:59.520 --> 00:12:00.780
was ich mal irgendwann mitgebaut hatte.

00:12:01.520 --> 00:12:03.420
Damals dachte ich so, oh je, ein Vortrag

00:12:03.420 --> 00:12:05.680
darüber, was ich alles falsch gemacht habe vor zehn Jahren.

00:12:06.100 --> 00:12:07.500
Aber nee, war sehr gut.

00:12:08.380 --> 00:12:09.440
Und was hast du alles falsch gemacht?

00:12:09.540 --> 00:12:11.340
Ist das eine Kurzversion von, also auch alles?

00:12:12.820 --> 00:12:13.540
Ja, also

00:12:13.540 --> 00:12:15.500
was sich die Leute dann nicht mehr erklären konnten,

00:12:15.500 --> 00:12:17.520
also das war auch interessant, also viele

00:12:17.520 --> 00:12:19.500
Dinge haben dann so hinterher

00:12:19.500 --> 00:12:21.420
eine andere Erklärung bekommen, weshalb das denn passiert

00:12:21.420 --> 00:12:23.540
sei, aber es gab da

00:12:23.540 --> 00:12:25.440
oft irgendwie, die tatsächliche Erklärung war

00:12:25.440 --> 00:12:27.240
auf eine andere. Sowas wie zum Beispiel,

00:12:27.540 --> 00:12:28.920
warum wurde eigentlich

00:12:28.920 --> 00:12:31.200
Disco genommen als

00:12:31.200 --> 00:12:33.180
MapReduce-Implementation?

00:12:35.640 --> 00:12:36.580
Was auch immer Disco ist.

00:12:36.580 --> 00:12:38.860
Das war auch

00:12:38.860 --> 00:12:40.540
damals schon nicht so super populär. Das ist

00:12:40.540 --> 00:12:42.680
irgendwie so ein Projekt gewesen

00:12:42.680 --> 00:12:44.620
von Nokia Research, wo die

00:12:44.620 --> 00:12:46.600
halt dieses MapReduce

00:12:46.600 --> 00:12:48.320
Paradigma implementiert

00:12:48.320 --> 00:12:50.140
haben. Und ich meine, wir haben

00:12:50.140 --> 00:12:52.320
damals eine Menge Sachen ausprobiert. Wir haben Hadoop

00:12:52.320 --> 00:12:52.900
ausprobiert.

00:12:55.020 --> 00:12:59.140
Und der Grund, warum wir dann Disco genommen haben,

00:12:59.260 --> 00:13:01.460
war, weil es das einzige Python-Map-Reduce-Framework war

00:13:01.460 --> 00:13:04.600
und Hadoop war wirklich, also hätte man nehmen können,

00:13:04.740 --> 00:13:07.140
aber das war so, das hat keinen Spaß gemacht.

00:13:07.740 --> 00:13:09.280
Und eigentlich, was wir vorher hatten,

00:13:09.340 --> 00:13:10.700
war eine selbstentwickelte Geschichte,

00:13:10.920 --> 00:13:12.440
aber es hieß halt, nee, das bitte nicht,

00:13:12.540 --> 00:13:14.240
sondern irgendwas Externes nehmen an der Stelle,

00:13:14.340 --> 00:13:16.160
weil wir nicht da nochmal Infrastruktur selber bauen wollen.

00:13:16.960 --> 00:13:17.780
Das war der eigentliche Grund.

00:13:17.840 --> 00:13:19.360
Oder dann auch solche Sachen wie,

00:13:19.680 --> 00:13:21.220
warum wurde das eigentlich so aufgeteilt?

00:13:22.640 --> 00:13:24.420
Diese Probleme kennt man heute gar nicht mehr so.

00:13:24.840 --> 00:13:26.900
Das lag, also

00:13:26.900 --> 00:13:28.940
warum macht man das überhaupt so parallel, warum macht man das nicht auf einer

00:13:28.940 --> 00:13:30.780
großen Maschine? Und der Grund damals war,

00:13:31.060 --> 00:13:32.960
dass wir da noch ganz viele 32-Bit-Rechner

00:13:32.960 --> 00:13:35.140
hatten. Und da gibt's halt dann bloß

00:13:35.140 --> 00:13:36.940
so 3-Gigabit-Hauptspeicher und dann ist

00:13:36.940 --> 00:13:38.940
halt irgendwie Schluss. Und dann muss man das Problem

00:13:38.940 --> 00:13:40.720
halt in kleinere Dinge aufteilen, wenn man zum Beispiel

00:13:40.720 --> 00:13:42.980
Sachen tokenisieren will und die Liste der

00:13:42.980 --> 00:13:44.760
Tokens einfach nicht mehr in den Hauptspeicher fasst oder so.

00:13:44.840 --> 00:13:45.520
Erstmal so als Beispiel.

00:13:46.620 --> 00:13:49.040
Und dann muss man das halt plötzlich dann auf mehrere Rechner verteilen

00:13:49.040 --> 00:13:50.860
und dann halt sowas MapReduce-artiges verwenden.

00:13:52.040 --> 00:13:52.160
Ja.

00:13:52.920 --> 00:13:54.380
Also, ja, das ist alles

00:13:54.380 --> 00:13:56.980
und heute würde man das alles gar nicht mehr so machen.

00:13:57.420 --> 00:13:58.580
Und noch ein paar RAM-Riegel reinschieben.

00:13:59.680 --> 00:14:00.300
Vor allem mehr RAM.

00:14:01.980 --> 00:14:02.880
Ja, aber es war auf jeden Fall

00:14:02.880 --> 00:14:04.840
eine tolle Geschichte, war so ein bisschen

00:14:04.840 --> 00:14:05.800
Nostalgie.

00:14:07.220 --> 00:14:08.320
Hat Spaß gemacht, ja.

00:14:08.720 --> 00:14:10.820
Das ist cool. So weit möchte ich auch mal kommen, dass ich auf eine Veranstaltung

00:14:10.820 --> 00:14:12.640
gehe und irgendjemand einen Vortrag darüber hält, was ich vor 10 Jahren

00:14:12.640 --> 00:14:13.160
falsch gemacht habe.

00:14:13.660 --> 00:14:13.940
Ja.

00:14:16.400 --> 00:14:16.880
Es ist

00:14:16.880 --> 00:14:20.360
ja, sie bauen das System,

00:14:20.460 --> 00:14:22.540
es ist jetzt auch weg, es gibt jetzt ein neues.

00:14:23.160 --> 00:14:24.540
Also es hat jetzt dann wohl ausgedient.

00:14:26.360 --> 00:14:26.680
Ja, was

00:14:26.680 --> 00:14:28.020
war noch so? Genau.

00:14:30.580 --> 00:14:31.020
Dann

00:14:31.020 --> 00:14:33.100
war noch so ein Freelancer-Panel.

00:14:33.940 --> 00:14:34.880
Das war irgendwie

00:14:34.880 --> 00:14:36.880
ganz, ganz

00:14:36.880 --> 00:14:38.640
interessant mal da. Da habe ich mich auch

00:14:38.640 --> 00:14:40.700
irgendwie viel zu selten beschäftigt

00:14:40.700 --> 00:14:42.800
mit dem...

00:14:42.800 --> 00:14:45.120
Ja, also das Freelancer-Panel

00:14:45.120 --> 00:14:45.800
wolltest du kurz erzählen.

00:14:47.800 --> 00:14:49.240
Was eigentlich so die Rahmenbedingungen

00:14:49.240 --> 00:14:51.120
von dem, was ich so normalerweise

00:14:51.120 --> 00:14:53.120
halt beruflich mache, angeht

00:14:53.120 --> 00:14:55.140
und da waren einige sehr interessante

00:14:55.140 --> 00:14:56.520
Informationen dabei. Ich weiß aber nicht, ob das

00:14:56.520 --> 00:14:58.260
die Leute interessiert haben.

00:15:00.160 --> 00:15:00.360
Ja,

00:15:00.660 --> 00:15:02.600
das ist schon nett und so.

00:15:03.940 --> 00:15:05.260
Ja, ich habe auch nie so,

00:15:05.360 --> 00:15:07.340
ich habe dann auch mal einen Begriff dafür gelernt,

00:15:07.440 --> 00:15:08.960
wie das heißt, was ich mache. Das heißt irgendwie

00:15:08.960 --> 00:15:09.720
Team Augmentation.

00:15:10.820 --> 00:15:11.520
Team Augmentation?

00:15:12.660 --> 00:15:14.180
Wann ist das Augment für ein Team?

00:15:14.560 --> 00:15:16.660
Genau, man arbeitet eigentlich ganz normal

00:15:16.660 --> 00:15:17.680
in so einem Team mit und

00:15:17.680 --> 00:15:19.800
das war mir alles gar nicht so richtig klar.

00:15:19.920 --> 00:15:21.640
Und dann gibt es halt andere Dinge, die man auch machen kann

00:15:21.640 --> 00:15:23.640
und das hat andere Probleme.

00:15:24.620 --> 00:15:25.460
Aber es war nicht, war nicht.

00:15:25.580 --> 00:15:27.120
Und es gab auch tatsächlich inzwischen so,

00:15:27.160 --> 00:15:28.460
das habe ich dann aber woanders gehört,

00:15:29.020 --> 00:15:29.940
ich glaube in einem Podcast,

00:15:30.300 --> 00:15:32.900
es gibt Leute, die dann komplette Teams auch ausleihen

00:15:32.900 --> 00:15:34.500
und nicht nur, weil das ist ja auch so ein Problem,

00:15:34.600 --> 00:15:38.900
ich meine, wenn du so einen Entwicklungsprozess ...

00:15:38.900 --> 00:15:40.040
Du willst aber mal skalieren,

00:15:40.120 --> 00:15:41.700
hast auf einmal ein neues Projekt, so ein Side-Projekt,

00:15:42.040 --> 00:15:44.800
hast aber gar keine Abteilung, die das irgendwie machen kann

00:15:44.800 --> 00:15:47.180
und merkst, hey, du hättest irgendwie noch ein neues Projekt dabei.

00:15:47.320 --> 00:15:48.220
Genau, wie macht man das eigentlich?

00:15:48.360 --> 00:15:49.440
Das ist schon wieder richtig ein Projektmanagement.

00:15:49.920 --> 00:15:51.600
Ja, ja, ja. Und dann gibt es halt eventuell die

00:15:51.600 --> 00:15:53.620
Möglichkeit, oder das machen halt momentan

00:15:53.620 --> 00:15:55.560
manche Leute wohl, dass sie dann komplette

00:15:55.560 --> 00:15:57.420
Sprints irgendwie verkaufen und dann

00:15:57.420 --> 00:15:59.540
Teams, die schon gut zusammenarbeiten, irgendwie dann

00:15:59.540 --> 00:16:01.500
vermieten. Das ist ja gar nicht so blöd. Und das ist auch

00:16:01.500 --> 00:16:03.340
eigentlich nicht so blöd. Das ist schon richtig, ja.

00:16:03.380 --> 00:16:05.460
Vor allem, wenn die so guten Code schreiben, dass den niemand anderes

00:16:05.460 --> 00:16:07.120
danach auch noch lesen kann und benutzen kann, dann...

00:16:07.120 --> 00:16:09.380
Ja, ja, das sollte schon dann alles so best practice-mäßig

00:16:09.380 --> 00:16:11.560
im Netz setzen und sagen, hey, cool, damit machen wir jetzt

00:16:11.560 --> 00:16:11.720
weiter.

00:16:13.400 --> 00:16:15.440
Ich glaube, wenn du das ganz

00:16:15.440 --> 00:16:17.160
teamweise machst und

00:16:17.160 --> 00:16:19.180
sprintweise brauchst du eine gewisse Mindestgröße,

00:16:19.880 --> 00:16:21.460
weil du bei dir ja dann trotzdem wieder

00:16:21.460 --> 00:16:23.220
das Zeug zusammenführen musst.

00:16:24.620 --> 00:16:25.980
Also es gibt

00:16:25.980 --> 00:16:27.620
diesen alten Spruch, ein Freund von mir,

00:16:27.760 --> 00:16:29.700
der ist nach dem Abi irgendwann zur IBM,

00:16:30.280 --> 00:16:32.020
dass die IBMer, als sie dann

00:16:32.020 --> 00:16:33.880
in den 90ern die Informatiker

00:16:33.880 --> 00:16:35.500
nach Indien ausgelagert haben,

00:16:36.060 --> 00:16:37.740
festgestellt haben, dass sie für zwei preiswerte

00:16:37.740 --> 00:16:39.920
Inder einen teuren Deutschen brauchen, der das alles

00:16:39.920 --> 00:16:40.680
wieder zusammenzieht.

00:16:42.740 --> 00:16:43.620
Da war die

00:16:43.620 --> 00:16:46.220
Einsparung nicht so riesengroß.

00:16:46.680 --> 00:16:47.640
Da muss man sich wirklich Gedanken

00:16:47.640 --> 00:16:48.660
machen, wie das funktioniert.

00:16:49.880 --> 00:16:54.620
Ja, aber was, welche, welche, hast du dir eigentlich irgendwelche Vorträge angeguckt oder?

00:16:55.300 --> 00:17:02.240
Nee, ich stand, nee, ich stand auf dem Stand. Ich habe, was hatte der Tweet hergegeben? André hat gesagt, wir haben.

00:17:02.760 --> 00:17:06.820
Vielleicht hat ja einer unserer Hörer verpasst, was du überhaupt machst, deswegen musst du mal erzählen, was für ein Stand das denn überhaupt war.

00:17:06.820 --> 00:17:35.320
Ja genau, also vom Flying Circus, im Prinzip so wie Team-Augmentation, was der Jochen gerade gemeint hat, so ein bisschen Team-Augmentation, so was in der Art machen wir für DevOps-Szenarien, dass du also als Team sagst, der ganze Ops-Kram, ich will das zwar unter Kontrolle haben und wissen,

00:17:35.840 --> 00:17:37.140
Aber im Prinzip kannst du das komplette

00:17:37.140 --> 00:17:39.140
Management, den ganzen Betrieb der Anwendung zu uns

00:17:39.140 --> 00:17:41.220
rüberkippen und dann hast du

00:17:41.220 --> 00:17:42.500
bei uns da so ein DevOps-Team,

00:17:43.000 --> 00:17:44.300
was man nicht sagen sollte,

00:17:44.600 --> 00:17:46.960
aber am Ende sagt man ja wieder, doch nur ein Silo.

00:17:47.520 --> 00:17:48.420
Ja, neues Silo.

00:17:48.680 --> 00:17:50.240
Ist ein schöneres Silo als vorher.

00:17:51.260 --> 00:17:53.080
Also tatsächlich, wir sagen jetzt auch manchmal, dass man

00:17:53.080 --> 00:17:55.040
uns die Software wieder

00:17:55.040 --> 00:17:56.380
über den Zaun werfen kann, aber

00:17:56.380 --> 00:17:59.140
wir klettern dann wieder über den Zaun zurück.

00:17:59.920 --> 00:18:00.080
Ah.

00:18:01.220 --> 00:18:03.040
Genau. Ja, da haben wir einen Stand

00:18:03.040 --> 00:18:04.780
gehabt, um uns ein bisschen zu zeigen.

00:18:05.740 --> 00:18:07.960
Und ich stand im Prinzip die ganze Zeit nur auf dem Stand rum.

00:18:09.000 --> 00:18:12.240
Du warst nicht in der Nähe von irgendeinem Hörsaal oder sowas, wo man so um die Ecke hören oder so?

00:18:12.460 --> 00:18:16.020
Naja, man könnte, ne, die waren halt immer schön zu, damit man da auch die Ruhe hat.

00:18:16.920 --> 00:18:20.920
Ich habe aber dafür irgendwie, glaube ich, zwölf Kilo Schokolade verteilt oder so.

00:18:21.700 --> 00:18:22.400
Ich habe das halt gegessen.

00:18:22.580 --> 00:18:23.220
Das war seiner Karte.

00:18:23.220 --> 00:18:31.700
Ja, also ich war dann halt in Summe auch mehr beschäftigt mit so ein paar Metathemen,

00:18:32.380 --> 00:18:48.760
Weil ich dann ja doch eher auch von der organisatorischen Seite eingebunden bin, jetzt nicht so direkt bei der PyCon.de, da werde ich dann nur manchmal gefragt, aber gerade über den Python Software Verband, da hatten wir Jahresversammlung, die war ganz gut besucht eigentlich und konnten auch neue Mitglieder gewinnen.

00:18:50.100 --> 00:19:07.920
Das war eigentlich ganz spannend, weil die PyCon.de ist ja sozusagen unter der Flagge des Python Software Verbands veranstaltet und zum einen haben wir jetzt mal nach relativ vielen Jahren sehr kontinuierlicher Arbeit im Vorstand nochmal ein bisschen neue Gesichter gesehen, zum einen das erste Mal eine Frau im Vorstand.

00:19:09.340 --> 00:19:15.920
Wir haben immer noch keine Folge mit einem weiblichen Hörer oder einer weiblichen Hörerin, also falls ihr Lust habt, kommt vorbei und sagt Bescheid.

00:19:15.920 --> 00:19:24.920
Genau, also die Theresa Yufchiu, ich weiß immer nicht ganz genau, ob ich ihren Namen richtig ausspreche, sie ist selber sehr schnell dabei, ihn auszusprechen, das ist ganz schwierig.

00:19:25.400 --> 00:19:39.920
Also die Theresa ist jetzt mit dabei, die ist glaube ich in Hamburg und die hat auch im Rahmen von dem Förderprogramm von PSV schon mehrfach mit Schülern und mit anderen Gruppen, ich glaube Raspberries oder MicroPythons verbaut.

00:19:41.040 --> 00:19:44.200
Genau, und der Alex Hennendorf, der Hauptorgar von der PyCon.de,

00:19:44.320 --> 00:19:46.880
der hat sich jetzt auch noch bereit erklärt, mir zu helfen.

00:19:48.420 --> 00:19:50.960
Wir mussten nämlich tatsächlich feststellen, dass...

00:19:50.960 --> 00:19:56.050
Der Python-Verband in Summe mit der PyCon.de, das ist einfach inzwischen ein Riesenschlachtschiff.

00:19:56.590 --> 00:20:00.210
Wir haben die letzten Jahre ein bisschen gedacht mit, das kochen wir alles mal wieder ein bisschen klein,

00:20:00.330 --> 00:20:03.390
dann läuft das alles von alleine und in Wirklichkeit, da gibt es nichts klein zu kochen.

00:20:04.170 --> 00:20:07.850
Wir haben irgendwann mal vor drei, vier Jahren da gestanden und gemeint,

00:20:07.850 --> 00:20:13.730
die Verwaltungskosten sind sehr hoch und tatsächlich hatten wir gedacht,

00:20:13.810 --> 00:20:17.970
der PySV ist so ein Verein mit 10.000, 20.000 Euro Umsatz pro Jahr.

00:20:19.010 --> 00:20:32.430
Das machst du irgendwie nebenbei und wenn man aber die PyCon.de und noch zwei, drei andere Veranstaltungen, die wir drin haben, reinziehst, dann siehst du, dass der Python-Verband jetzt in Deutschland kontinuierlich über eine halbe Million mehr Umsatz macht pro Jahr.

00:20:32.810 --> 00:20:52.890
Ja, genau. Und dann standen wir da und dachten so, okay, da ist normalerweise eine Vollzeitstelle für die Verwaltung fällig. Und deswegen der Alex Hendorf, der hat sehr viel Zeit in die PyCon.de steckt, der hat auch bei sich aus dem Team jetzt jemanden, den wir vom Python-Verband bezahlen, der das dann fast in Vollzeit tatsächlich machen wird, die Verwaltung vom Verband aufzuziehen.

00:20:54.110 --> 00:21:07.410
Das wird, glaube ich, ganz gut, weil da haben wir jetzt auch gemerkt, das ist ein Thema aus der Open-Source-Community an sich ja, dass Volunteer-Burnout irgendwann mal kommt, wenn du die Leute vor allem mit irgendwelchem Kram überlastest.

00:21:07.410 --> 00:21:37.030
Wir haben so ein paar Sachen mit Sponsoren. Wenn du mit den ganz Großen jetzt halt immer im Bett bist, da hast du ja wirklich von Microsoft und Google und Ebay und sind halt irgendwie alle dabei, weil alle mit Python arbeiten und alle wollen das sponsern und wollen Mitarbeiter werben und dann hast du aber plötzlich so ein Glück, dass es heißt, ja, bei uns im Beschaffungsprozess, finden Sie bitte folgende 20 A4 Seiten aus, gehen Sie damit zu Ihrer Bank, lassen Sie von der bitte einen englischen Brief ausfüllen, schicken Sie es darüber und dann müssen Sie innerhalb von sieben Tagen auf den Button drücken, sonst geht das Spiel wieder von vorne los.

00:21:37.030 --> 00:21:38.470
Was machst du abends, wenn die Kinder im Bett sind?

00:21:39.130 --> 00:21:40.490
Ja, genau, mit

00:21:40.490 --> 00:21:42.010
sowas

00:21:42.010 --> 00:21:45.230
unterhalten die einen, das ist halt was,

00:21:45.290 --> 00:21:46.530
das willst du eigentlich nicht auf freiwillige,

00:21:46.770 --> 00:21:49.330
das willst du auf niemanden abgießen, aber erst recht nicht auf freiwillige.

00:21:50.190 --> 00:21:50.510
Genau.

00:21:51.510 --> 00:21:53.070
Nee, insofern, der

00:21:53.070 --> 00:21:55.110
Verband, der steht gerade echt gut da, wir sind es auch

00:21:55.110 --> 00:21:57.150
nochmal dabei, dann zu gucken, die Aufgaben zu verteilen,

00:21:57.230 --> 00:21:59.110
was die Öffentlichkeitsarbeit angeht und diese

00:21:59.110 --> 00:22:00.910
Bewerbung von dem Förderprogramm,

00:22:00.910 --> 00:22:02.470
dass es da nochmal ein bisschen vorangeht.

00:22:03.290 --> 00:22:04.470
Genau, insofern, da war die

00:22:04.470 --> 00:22:06.110
parkrun.de für mich alles mehr so aus dieser

00:22:06.110 --> 00:22:09.910
eher so Verwaltungs-Vereinsmeierei-Perspektive.

00:22:10.330 --> 00:22:11.550
Aber immerhin, ich meine, es waren

00:22:11.550 --> 00:22:12.750
1200 Besucher.

00:22:13.270 --> 00:22:14.990
Genau, das hatte ich auch.

00:22:15.090 --> 00:22:17.290
Ich habe die genaue Zahl nicht gehört,

00:22:17.290 --> 00:22:19.270
aber das waren auf jeden Fall mehr als

00:22:19.270 --> 00:22:20.270
1000 Leute und

00:22:20.270 --> 00:22:23.250
wenn ich mich so an vergangene Veranstaltungen

00:22:23.250 --> 00:22:25.030
erinnere, das ist diesmal

00:22:25.030 --> 00:22:27.390
mit den meisten

00:22:27.390 --> 00:22:31.130
Publikum da und

00:22:31.130 --> 00:22:33.070
es ist kontinuierlich immer mehr geworden und jetzt ist es halt

00:22:33.070 --> 00:22:34.550
eine richtig, richtig große Veranstaltung.

00:22:34.710 --> 00:22:36.910
Früher war das alles irgendwie überschaubar

00:22:36.910 --> 00:22:38.170
und jetzt ist das echt Wahnsinn.

00:22:39.270 --> 00:22:41.110
Also ich erinnere mich, die erste Runde, die wir hatten,

00:22:41.250 --> 00:22:42.810
die erste in Anführungszeichen Konferenz,

00:22:43.650 --> 00:22:47.250
die im Python-Umfeld, die war halt damals von den SOAP-Leuten,

00:22:48.190 --> 00:22:51.010
die war 2001 in Bielefeld, da waren wir 24 Leute.

00:22:52.010 --> 00:22:53.510
Da haben wir uns an der Uni mit dem Grill getroffen

00:22:53.510 --> 00:22:55.950
und mal irgendwie zwei Tage lang uns Dinge gezeigt.

00:22:56.050 --> 00:22:56.890
Das war eigentlich sehr cool.

00:22:57.790 --> 00:22:59.490
Und damals gab es dann auch schon dieses Thema von,

00:22:59.770 --> 00:23:03.070
das zog dann auch ein und dann waren es statt 25 irgendwie 50,

00:23:03.070 --> 00:23:05.010
dann hast du irgendwie 100, dann hast du irgendwie 150

00:23:05.010 --> 00:23:07.030
und dann war es eine Zeit lang so immer so

00:23:07.030 --> 00:23:09.170
in der Größenordnung und ich erinnere

00:23:09.170 --> 00:23:11.130
mich, dass ich auf der ersten

00:23:11.130 --> 00:23:13.170
Python-Konferenz in den USA

00:23:13.170 --> 00:23:15.150
so 2004 glaube ich

00:23:15.150 --> 00:23:17.170
war, das waren dann damals

00:23:17.170 --> 00:23:18.930
400 Leute

00:23:18.930 --> 00:23:20.230
oder so in der Größenordnung

00:23:20.230 --> 00:23:23.070
und die wuchsen auch immer weiter und dann

00:23:23.070 --> 00:23:24.950
waren es glaube ich in Texas unten in

00:23:24.950 --> 00:23:26.730
Dallas waren es plötzlich 2000

00:23:26.730 --> 00:23:28.930
und

00:23:28.930 --> 00:23:30.670
wir haben uns immer angeguckt, weil

00:23:30.670 --> 00:23:32.830
du hast halt auch alles, was die

00:23:32.830 --> 00:23:34.970
Konferenzen an der Räumlichkeiten konnten,

00:23:35.110 --> 00:23:36.870
gerade was das Internet angeht, du hast immer

00:23:36.870 --> 00:23:39.010
alles gesprengt, weil

00:23:39.010 --> 00:23:41.070
die dann immer dachten, naja, von 2000 Leuten

00:23:41.070 --> 00:23:43.050
sind mal irgendwie 10% irgendwie mit ihrem

00:23:43.050 --> 00:23:45.050
Notebook unterwegs oder brauchen

00:23:45.050 --> 00:23:46.990
WLAN und du musstest

00:23:46.990 --> 00:23:48.770
denen damals mal schon klar machen, nee, hier kommen jetzt

00:23:48.770 --> 00:23:50.610
2000 Leute, die haben jeder zwei Geräte.

00:23:53.390 --> 00:23:54.930
Genau, und da sind wir jetzt im Prinzip halt auch

00:23:54.930 --> 00:23:56.870
angekommen. Ich meine, mit 1200 Leuten sind wir so

00:23:56.870 --> 00:23:58.850
groß wie die Europython. Die hatten

00:23:58.850 --> 00:24:01.010
glaube ich auch 1200, wobei da gibt's

00:24:01.010 --> 00:24:03.190
ein paar Unstimmigkeiten wohl, angeblich

00:24:03.190 --> 00:24:05.050
was die Rechnung von Köpfen und

00:24:05.050 --> 00:24:07.070
Tickets angeht. Und wir hatten

00:24:07.070 --> 00:24:08.950
vor allem 800 Leute auf der Warteliste.

00:24:09.950 --> 00:24:10.610
Ja, Wahnsinn.

00:24:11.290 --> 00:24:12.990
Also wir werden nächstes Jahr

00:24:12.990 --> 00:24:14.910
nochmal die Location wechseln. Ich meine, die

00:24:14.910 --> 00:24:17.050
neuen Termine sind schon draußen, also für alle,

00:24:17.350 --> 00:24:19.090
die nochmal hinkommen wollen,

00:24:19.150 --> 00:24:20.350
es wird nächstes Jahr wieder in

00:24:20.350 --> 00:24:22.430
Berlin sein

00:24:22.430 --> 00:24:24.930
und tatsächlich die

00:24:24.930 --> 00:24:29.010
die habe ich noch, die habe ich jetzt nicht griffbereit,

00:24:29.010 --> 00:24:30.230
aber es wird wieder im Oktober sein.

00:24:31.010 --> 00:24:35.050
Und es gibt schon offizielle Daten im Oktober.

00:24:35.270 --> 00:24:38.550
Die Webseite gibt es gerade nicht her, aber leider nicht mehr im Kosmos.

00:24:38.630 --> 00:24:41.770
Das Kosmos fand ich eigentlich sehr schön, das Personal da war auch echt angenehm.

00:24:43.150 --> 00:24:47.870
Ich fand es einen guten Move, dass nur vegetarisches Essen angeboten wurde.

00:24:49.270 --> 00:24:51.530
Ich finde, das braucht es auf der Konferenz nicht,

00:24:51.590 --> 00:24:55.390
dass man sich da mit billigem Fleisch irgendwie versorgt.

00:24:58.130 --> 00:25:00.290
Das hat mich überrascht, weil ich zwei Wochen vorher

00:25:00.290 --> 00:25:02.290
hatte ich selber darüber nachgedacht, es wäre eigentlich mal cool, wenn das jemand

00:25:02.290 --> 00:25:04.350
mal machen würde und war dann ganz positiv

00:25:04.350 --> 00:25:05.390
angetan.

00:25:06.390 --> 00:25:08.210
Kam nicht bei jedem gut an, ich muss auch sagen,

00:25:08.270 --> 00:25:10.070
die haben auch handwerklich leider ein paar

00:25:10.070 --> 00:25:12.230
Stellen dann daneben gegriffen, weil es einfach

00:25:12.230 --> 00:25:14.190
nicht gut gemacht gewesen war.

00:25:15.630 --> 00:25:16.350
Aber die Idee

00:25:16.350 --> 00:25:17.230
fand ich auf jeden Fall gut.

00:25:18.330 --> 00:25:19.590
Nächstes Jahr wird es dann wohl

00:25:19.590 --> 00:25:21.990
noch eine etwas größere Location werden, ich glaube,

00:25:22.110 --> 00:25:24.350
da werden wir anderthalb oder tausendsechhundert

00:25:24.350 --> 00:25:26.330
Leute reinlassen, aber das ist

00:25:26.330 --> 00:25:28.430
im Prinzip schon mit Ansage, dass es wieder eine Wasserliste

00:25:28.430 --> 00:25:28.870
geben wird.

00:25:30.750 --> 00:25:32.150
Nur wir kommen halt nicht,

00:25:32.270 --> 00:25:34.290
es gibt irgendwann keine größeren Locations

00:25:34.290 --> 00:25:34.530
mehr.

00:25:36.010 --> 00:25:37.590
Irgendwann ist halt Schluss. Es gibt noch

00:25:37.590 --> 00:25:40.210
irgendwie am Alexanderplatz

00:25:40.210 --> 00:25:42.310
irgendwie da, wo auch der CCC-Kongress

00:25:42.310 --> 00:25:43.350
häufiger war.

00:25:43.870 --> 00:25:46.470
Ja, warm, warm, warm.

00:25:47.650 --> 00:25:48.290
Wir waren noch

00:25:48.290 --> 00:25:50.250
bei der Perkin.de, wir hatten ein bisschen geguckt, wie groß es

00:25:50.250 --> 00:25:52.250
wird, wo es nächstes Jahr hingeht. Also es wird auf jeden Fall

00:25:52.250 --> 00:25:54.070
wieder Berlin sein. Wir werden

00:25:54.070 --> 00:25:56.030
zusehen, dass wir irgendwie mehr Leute reinlassen, weil es natürlich

00:25:56.030 --> 00:25:56.890
blöd ist, wenn wir

00:25:56.890 --> 00:25:59.950
zu viele Leute auf die Warteliste setzen müssen.

00:26:00.230 --> 00:26:01.550
Und du hast es gerade erzählt, dass das Essen

00:26:01.550 --> 00:26:03.730
trotzdem sehr leckeres, vegetarisches geben

00:26:03.730 --> 00:26:05.950
sein soll, irgendwie ab und zu mal komisch geschmeckt haben soll.

00:26:06.610 --> 00:26:07.770
Ja gut, ich meine...

00:26:07.770 --> 00:26:09.790
Es gab halt vom... Der Anbieter

00:26:09.790 --> 00:26:11.290
hat es halt an ein paar Stellen nicht gut umgesetzt.

00:26:11.630 --> 00:26:13.670
Ich glaube, am ersten Tag war das Kartoffelkarton halt

00:26:13.670 --> 00:26:15.590
nicht durch. Aber das wäre

00:26:15.590 --> 00:26:17.390
bei einem Stück Fleisch genauso blöd.

00:26:18.170 --> 00:26:19.450
Ja, und das ist natürlich auch schwierig, was

00:26:19.450 --> 00:26:22.010
solche Mengen irgendwie alle gleichzeitig...

00:26:22.010 --> 00:26:23.190
Ja, da kann man immer mal was schicken.

00:26:23.410 --> 00:26:24.350
Da kann man wenigstens ein Challenge.

00:26:24.670 --> 00:26:27.010
Ja, aber sie versauen

00:26:27.010 --> 00:26:28.470
es auch immer wieder auf die gleiche Art und Weise.

00:26:28.950 --> 00:26:29.090
Ja.

00:26:31.530 --> 00:26:33.010
Ne, genau, also ansonsten

00:26:33.010 --> 00:26:34.890
das war, ich fand es in Berlin eigentlich sehr angenehm.

00:26:36.750 --> 00:26:38.910
War vom Umfang her

00:26:38.910 --> 00:26:40.910
fand ich gut. Ich habe

00:26:40.910 --> 00:26:42.950
halt auch bei mir so viele interessante Gespräche

00:26:42.950 --> 00:26:44.810
gehabt. Es war jetzt ja diesmal überlagert

00:26:44.810 --> 00:26:46.670
mit der PyData.

00:26:47.570 --> 00:26:48.890
Wird es wahrscheinlich nächstes Jahr auch wieder

00:26:48.890 --> 00:26:50.870
sein. Man merkt so ein bisschen, dass

00:26:50.870 --> 00:26:52.090
es halt, Python hat

00:26:52.090 --> 00:26:54.570
je nach Generation schon fast

00:26:54.570 --> 00:26:55.950
so ein bisschen unterschiedliche Schwerpunktthemen.

00:26:56.210 --> 00:26:58.430
Vor zehn Jahren war Web halt immer so

00:26:58.430 --> 00:26:59.530
das treibende Thema im

00:26:59.530 --> 00:27:02.350
Programm. Jetzt ist es

00:27:02.350 --> 00:27:04.370
alles, was rund um Machine Learning, Data

00:27:04.370 --> 00:27:05.210
Science und so geht.

00:27:06.690 --> 00:27:08.190
Und das sind eigentlich zwei

00:27:08.190 --> 00:27:10.550
Konferenzen, die laufen jetzt aber zusammengefaltet

00:27:10.550 --> 00:27:12.250
in einer im Prinzip.

00:27:14.210 --> 00:27:14.650
Aber

00:27:14.650 --> 00:27:16.650
in Summe ist es einfach so ein extrem diverses

00:27:16.650 --> 00:27:17.750
Profil. Es ist halt nicht so, dass

00:27:17.750 --> 00:27:20.390
alle jetzt irgendwie erst A und jetzt B

00:27:20.390 --> 00:27:22.030
gemacht haben, sondern es wird halt immer mehr.

00:27:22.090 --> 00:27:23.690
Das wird halt, man hat halt irgendwie

00:27:23.690 --> 00:27:25.710
dieses eine Hauptthema, was vielleicht so 60%

00:27:25.710 --> 00:27:27.530
der Themen bestimmt

00:27:27.530 --> 00:27:29.870
und aber die anderen 40% sind immer noch

00:27:29.870 --> 00:27:31.450
doppelt so groß wie das, was wir

00:27:31.450 --> 00:27:32.550
vor fünf Jahren hatten.

00:27:33.910 --> 00:27:35.690
Also da ist einfach die Diversität

00:27:35.690 --> 00:27:37.450
und worüber man mit Leuten reden kann schon,

00:27:37.890 --> 00:27:38.850
das ist fantastisch.

00:27:39.770 --> 00:27:41.810
Ja, fand ich auch.

00:27:42.130 --> 00:27:43.010
Sehr schöne Veranstaltung.

00:27:43.390 --> 00:27:45.590
Ja, sehr spannend. Also dieses Jahr versuche ich mir auch tatsächlich

00:27:45.590 --> 00:27:47.230
wieder tiefer in den Kalender reinzustreichen.

00:27:48.230 --> 00:27:49.050
Aber dieses Jahr,

00:27:49.510 --> 00:27:51.070
da kam leider nichts mehr da rein.

00:27:51.590 --> 00:28:20.850
Ich meine spannend ist ja, dass es eine rein englischsprachige Konferenz ist im deutschen Raum und wir so ein bisschen der Europython den Rang ablaufen an ein paar Stellen. Deutschland liegt einfach, das haben wir in Karlsruhe gemerkt und jetzt in Berlin auch wieder, Deutschland liegt halt schön zentral und das heißt, da ist für viele der Anfahrtsweg gut kalkulierbar, als wenn es dann irgendwie mal in Spanien, zu Schweden, zu Edinburgh war es glaube ich auch mal.

00:28:20.850 --> 00:28:22.090
Schweiz war jetzt dieses Jahr, glaube ich,

00:28:22.570 --> 00:28:23.170
ganz gut.

00:28:23.170 --> 00:28:24.930
Und das ist Dublin angenagt, oder?

00:28:25.710 --> 00:28:26.250
Das ist nächstes Jahr.

00:28:26.690 --> 00:28:29.090
Ja, kann sein, weiß ich nicht. Aber diesmal war es, glaube ich, Basel.

00:28:29.830 --> 00:28:30.990
Genau, diesmal war es Basel.

00:28:31.170 --> 00:28:32.650
Ich meine, Schweiz ist halt auch ein tolles Pflaster.

00:28:33.250 --> 00:28:35.110
Das schreckt auch immer so den einen oder anderen ab.

00:28:36.450 --> 00:28:37.050
Was war denn in Stockholm?

00:28:38.870 --> 00:28:39.290
Keine Ahnung.

00:28:39.410 --> 00:28:40.050
Wann war das denn?

00:28:40.170 --> 00:28:42.410
Es gab irgendwie eine Django-Con mal irgendwo da.

00:28:42.730 --> 00:28:44.190
Aber ich weiß nicht genau, wann das war.

00:28:45.710 --> 00:28:45.990
Naja.

00:28:46.930 --> 00:28:47.450
Wie auch immer.

00:28:49.390 --> 00:28:49.710
Ja.

00:28:50.850 --> 00:28:53.170
Tja, was haben wir denn sonst noch an Neuigkeiten?

00:28:55.230 --> 00:28:56.250
Python 3.8.

00:28:57.590 --> 00:29:01.990
Ja, ist draußen.

00:29:03.090 --> 00:29:04.730
Es gibt ein paar ganz interessante

00:29:04.730 --> 00:29:06.710
Geschichten, die dabei sind.

00:29:08.910 --> 00:29:11.170
Ja, ist jetzt auch nicht so wahnsinnig umwerfende

00:29:11.170 --> 00:29:12.650
neue Geschichte. Es gibt ein bisschen neue Syntax.

00:29:12.750 --> 00:29:15.070
Ich weiß nicht, vielleicht fangen wir damit am besten

00:29:15.070 --> 00:29:15.850
mal an. Es gibt den

00:29:15.850 --> 00:29:18.770
Walrus Operator.

00:29:19.210 --> 00:29:20.450
Eine Assignment Expression.

00:29:20.850 --> 00:29:22.370
Ja. Was ist das?

00:29:24.490 --> 00:29:26.230
Das ist eine Expression,

00:29:26.530 --> 00:29:28.110
die vorher nur ein Statement war.

00:29:28.930 --> 00:29:30.410
Ja, das verstehe ich. Kein Anfänger.

00:29:33.250 --> 00:29:33.730
Ja.

00:29:34.770 --> 00:29:36.650
Also on the fly wird etwas zugewiesen.

00:29:37.010 --> 00:29:38.230
Ja, man kann damit

00:29:38.230 --> 00:29:39.550
Zeilen sparen. Voll gut.

00:29:40.790 --> 00:29:42.290
Also man muss nicht erst was definieren,

00:29:42.390 --> 00:29:44.350
sondern man kann quasi in der Frage was definieren.

00:29:44.650 --> 00:29:46.350
Ja, also ein Fall, den man ganz

00:29:46.350 --> 00:29:48.210
oft hat, vielleicht ist es am einfachsten,

00:29:48.290 --> 00:29:49.970
das an dem Beispiel zu erklären, ist, dass man

00:29:49.970 --> 00:29:51.750
irgendwie sich zum Beispiel

00:29:51.750 --> 00:29:54.390
irgendeinen Wert aus einem Dict oder so

00:29:54.390 --> 00:29:56.510
holt und dann damit irgendwas macht,

00:29:56.890 --> 00:29:58.230
aber das eigentlich auch nur dann machen

00:29:58.230 --> 00:30:00.390
möchte, wenn es tatsächlich

00:30:00.390 --> 00:30:02.490
da drin ist. Also was man dann üblicherweise

00:30:02.490 --> 00:30:04.070
macht, ist, man macht Sache Dict.get

00:30:04.070 --> 00:30:06.470
und dann überprüft man halt,

00:30:06.610 --> 00:30:08.350
ob das, was zurückgekommen ist, ein None war oder

00:30:08.350 --> 00:30:10.450
nicht. Und das kann man sich jetzt

00:30:10.450 --> 00:30:12.150
quasi sparen und das halt in einer Zeile

00:30:12.150 --> 00:30:14.310
hinschreiben. Und da das relativ oft auftritt,

00:30:14.530 --> 00:30:16.490
spart es halt schon ganz ordentlich Zeilen.

00:30:17.010 --> 00:30:18.330
Man kann halt, ja, eben

00:30:18.330 --> 00:30:21.350
sozusagen if und dann halt

00:30:21.350 --> 00:30:23.510
die Variable, die man zuweisen möchte, Doppelpunkt gleich

00:30:23.510 --> 00:30:25.090
und dann könnte man sowas

00:30:25.090 --> 00:30:27.570
Also if, keine Ahnung, key, Doppelpunkt

00:30:27.570 --> 00:30:29.010
gleich, dick, get, bla,

00:30:29.390 --> 00:30:30.830
dann

00:30:30.830 --> 00:30:33.450
Value eher, nicht key, aber genau, dann

00:30:33.450 --> 00:30:35.430
macht man irgendwas

00:30:35.430 --> 00:30:37.510
und in dem Fall, wenn es halt nicht drin ist, dann

00:30:37.510 --> 00:30:39.570
würde man

00:30:39.570 --> 00:30:40.750
da gar nicht reinspringen in den Block.

00:30:41.770 --> 00:30:43.250
Ein anderer Fall, wo man

00:30:43.250 --> 00:30:45.050
es gut anwenden kann, sind halt

00:30:45.050 --> 00:30:47.110
Wildschleifen, wo du irgendeine

00:30:47.110 --> 00:30:49.150
Arbeitsvariable belegst und

00:30:49.150 --> 00:30:49.570
du

00:30:49.570 --> 00:30:53.130
das einmal am Anfang halt gleich

00:30:53.130 --> 00:30:54.890
zusammenfassen kannst. Dann kannst du sagen,

00:30:54.990 --> 00:30:57.150
hier geht die nächste Runde von der While-Schleife

00:30:57.150 --> 00:30:58.710
los. Dann sagst du while

00:30:58.710 --> 00:31:00.450
x-Doppelpunkt gleich

00:31:00.450 --> 00:31:02.890
deine Expression und

00:31:02.890 --> 00:31:04.070
das

00:31:04.070 --> 00:31:06.450
Das ist ja fast wie ein Repeat-Until.

00:31:08.210 --> 00:31:08.550
Ja,

00:31:08.770 --> 00:31:09.330
nein.

00:31:10.650 --> 00:31:11.410
Warum nicht?

00:31:12.810 --> 00:31:14.830
Weil es ja immer noch im Kopf ausgeführt wird. Das wurde ja mal

00:31:14.830 --> 00:31:16.850
am Anfang gemacht. Ja, okay, also tatsächlich.

00:31:17.110 --> 00:31:19.430
Du hast halt für den Einstieg in die Schleife

00:31:19.430 --> 00:31:20.530
hast du es dann immer noch trotzdem

00:31:20.530 --> 00:31:24.370
muss es homogen sein.

00:31:25.990 --> 00:31:26.090
Ja.

00:31:27.130 --> 00:31:29.450
Und ansonsten, was wir auch mal bei regulären Ausdrücken

00:31:29.450 --> 00:31:31.510
ist auch oft so, dass man dann halt ein Match-Objekt

00:31:31.510 --> 00:31:33.370
zurückbekommt, wenn es halt irgendwie gematcht hat oder ansonsten

00:31:33.370 --> 00:31:35.430
halt none und das geht halt dann auch so, dass man

00:31:35.430 --> 00:31:36.050
das halt deutlich

00:31:36.050 --> 00:31:39.050
ein bisschen einfacher hinschreiben kann.

00:31:39.890 --> 00:31:41.370
Also ist für manche Fälle ganz praktisch.

00:31:41.730 --> 00:31:43.290
Es ist halt nicht nur zum Zeilensparen, sondern

00:31:43.290 --> 00:31:45.410
die Lesbarkeit ist manchmal halt einfach angenehmer, wenn

00:31:45.410 --> 00:31:47.390
du momentan

00:31:47.390 --> 00:31:49.110
Dinge erst an eine Variable

00:31:49.110 --> 00:31:51.310
binden musst, um sie dann

00:31:51.310 --> 00:31:53.190
auszuwerten. Und aber

00:31:53.190 --> 00:31:54.990
eigentlich würdest du es vom

00:31:54.990 --> 00:31:57.070
Lesefluss her gerne

00:31:57.070 --> 00:31:59.270
zusammengeschrieben haben. In den Fällen

00:31:59.270 --> 00:32:01.090
wäre das halt was, was du gut reinlegen kannst.

00:32:02.190 --> 00:32:03.310
Also alle sind begeistert

00:32:03.310 --> 00:32:04.850
vom neuen Assignment-Operator?

00:32:04.970 --> 00:32:05.990
Nee, das kann man nicht sagen.

00:32:06.510 --> 00:32:07.590
Nein, überhaupt nicht.

00:32:08.390 --> 00:32:09.590
Hört es sich gerade bei euch an?

00:32:10.790 --> 00:32:13.130
Es gibt halt so drei, vier

00:32:13.130 --> 00:32:15.130
Fälle und ich glaube, das ist ein

00:32:15.130 --> 00:32:15.990
Ausdruck von

00:32:15.990 --> 00:32:18.650
dem

00:32:18.650 --> 00:32:21.250
deutschen Begriff für Maturity,

00:32:21.510 --> 00:32:22.870
von der Ausgereiftheit von Python.

00:32:24.430 --> 00:32:25.230
Python ist ja

00:32:25.230 --> 00:32:27.330
in Summe vollständig. Es gibt ja wenig

00:32:27.330 --> 00:32:29.190
Dinge, die einem so die ganze Zeit irgendwie

00:32:29.190 --> 00:32:31.310
im Weg rumstehen, dass man sagt, oh, bevor das

00:32:31.310 --> 00:32:32.570
nicht geht, kann ich Python nicht benutzen.

00:32:33.010 --> 00:32:34.090
Das muss man ja nicht hier stehen.

00:32:35.010 --> 00:32:37.170
Aber es gibt immer mal den einen oder anderen

00:32:37.170 --> 00:32:39.070
Fall, der dann doch auch in der Diskussion,

00:32:39.070 --> 00:32:41.090
in der Wars Operator war, lange

00:32:41.090 --> 00:32:42.230
diskutiert worden, glaube ich.

00:32:42.730 --> 00:32:44.490
Ich weiß gerade nicht.

00:32:44.510 --> 00:32:46.410
wie du dann sagst, so nö, ich mach das mal ohne mich.

00:32:46.710 --> 00:32:49.030
Ja, möglich, ja.

00:32:50.090 --> 00:32:53.210
Und es ist halt immer, wenn man sagt,

00:32:53.290 --> 00:32:56.310
Python soll halt nachher auch gut zu lesen sein,

00:32:56.390 --> 00:32:58.730
dann ist es natürlich schön, sich über die Zeit halt auch Gedanken zu machen,

00:32:59.130 --> 00:33:02.010
ob bestimmte syntaktische Ergänzungen Sinn machen,

00:33:02.110 --> 00:33:03.470
auch wenn man sie nicht ständig braucht.

00:33:03.470 --> 00:33:06.270
Das ist immer ein bisschen blöd, weil ein größerer Sprachumfang heißt,

00:33:06.650 --> 00:33:08.570
komplexere Interpreter, also mehr Möglichkeiten,

00:33:08.750 --> 00:33:11.010
dass irgendwas kaputt geht, gerade jetzt in dem Fall.

00:33:12.790 --> 00:33:13.890
das ist jetzt ein Feature,

00:33:14.610 --> 00:33:17.030
wo etwas, das vorher nur in Statements

00:33:17.030 --> 00:33:18.730
ging, jetzt auch in Expressions ging. Das heißt,

00:33:18.810 --> 00:33:20.950
da müssen in Zukunft im Sprachdesign auch drauf aufgepasst

00:33:20.950 --> 00:33:22.750
werden, wenn am Scoping

00:33:22.750 --> 00:33:24.790
oder an ähnlichen Dingen was geändert

00:33:24.790 --> 00:33:26.550
wird, dass das dann halt auch in einem

00:33:26.550 --> 00:33:28.770
in der Expression halt auseinander

00:33:28.770 --> 00:33:30.810
fliegen kann. Das muss man

00:33:30.810 --> 00:33:32.390
gut abwägen. Aber in Summe

00:33:32.390 --> 00:33:34.790
offensichtlich hat man sich ja geeinigt und gesagt,

00:33:34.870 --> 00:33:35.690
das ist es uns wert.

00:33:36.630 --> 00:33:38.450
Also ich finde es aber doof, wenn ich das jetzt richtig verstanden habe.

00:33:39.230 --> 00:33:40.730
Nö, also ich finde es tatsächlich

00:33:40.730 --> 00:33:42.470
ganz nett, aber ich weiß auch, dass es

00:33:42.470 --> 00:33:44.410
irgendwie sehr kontrovers diskutiert wurde

00:33:44.410 --> 00:33:46.250
und dass es halt Leute gibt, die das hassen.

00:33:46.930 --> 00:33:47.090
Und

00:33:47.090 --> 00:33:50.410
was auch irgendwie in gewisser Weise nachvollziehbar

00:33:50.410 --> 00:33:52.050
ist, also, aber, ja,

00:33:52.350 --> 00:33:52.530
hm,

00:33:53.930 --> 00:33:56.030
wir werden wahrscheinlich irgendwann in ein paar Jahren

00:33:56.030 --> 00:33:58.390
wissen, ob das eine super Idee war oder total doof,

00:33:58.470 --> 00:33:58.890
keine Ahnung.

00:33:59.310 --> 00:34:01.230
Vielleicht schenken sich jetzt wieder ganz viele Anfänger ab und so.

00:34:01.550 --> 00:34:04.470
Ich meine, die Gefahr ist tatsächlich immer,

00:34:04.670 --> 00:34:06.410
dass wenn, aber Python hat

00:34:06.410 --> 00:34:08.510
eigentlich, was die Lernkurve angeht, einen ganz angenehmen

00:34:08.510 --> 00:34:10.350
Vektor, dass

00:34:10.350 --> 00:34:12.110
Leute sozusagen zu früh auf

00:34:12.110 --> 00:34:14.530
zu spezielle Fälle sich einschießen

00:34:14.530 --> 00:34:16.330
und dann meinen, sie müssen den

00:34:16.330 --> 00:34:18.370
Voice Operator rechts und links an allen Ecken und Enden

00:34:18.370 --> 00:34:19.450
einsetzen. Es ist aber mehr

00:34:19.450 --> 00:34:21.950
dieses Thema, dass man halt, Python ist halt

00:34:21.950 --> 00:34:23.870
nun mal eine idiomatische Sprache, das heißt,

00:34:24.010 --> 00:34:26.270
es ist eine Sprache, die es daraufhin designt, dass man

00:34:26.270 --> 00:34:28.430
sich ähnlich wie eine natürliche Sprache auch

00:34:28.430 --> 00:34:30.210
so mit ihr auseinandersetzt und

00:34:30.210 --> 00:34:32.450
bestimmte Wendungen in bestimmten Situationen

00:34:32.450 --> 00:34:34.290
halt einsetzt und in bestimmten Situationen halt

00:34:34.290 --> 00:34:36.430
nicht. Deswegen gibt es halt,

00:34:36.490 --> 00:34:38.190
wenn man im Fernsehen ein Wort mit F sagt,

00:34:38.290 --> 00:34:39.330
dann irgendwann ein Piepsen.

00:34:39.930 --> 00:35:01.950
Und in einem anderen Kontext kann man das halt einsetzen und das ist halt, da ist Python, Raymond Hettinger sagt an der Stelle immer gerne, Python ist halt eine Sprache für Erwachsene, du musst halt wissen, was du tust und so ist es auch mit allen professionellen Werkzeugen oder auch mit Power Tools, klar kannst du dir halt den Finger bohren, deswegen solltest du halt wissen, was du tust.

00:35:01.950 --> 00:35:03.790
Eine Bohrmaschine bitte nicht anfassen.

00:35:04.730 --> 00:35:05.050
Ja, genau.

00:35:05.670 --> 00:35:06.950
Nicht direkt auf die Hand zielen.

00:35:07.970 --> 00:35:10.110
Vielleicht auch bei anderen liebenswichtigen Organen auslassen.

00:35:10.890 --> 00:35:11.650
Ja, ja, genau.

00:35:11.830 --> 00:35:13.490
Aber also der

00:35:13.490 --> 00:35:15.890
Bohrmaschine ist ein Punkt, da kommen wir

00:35:15.890 --> 00:35:17.610
nachher vielleicht ganz zum Schluss, wenn wir unser

00:35:17.610 --> 00:35:19.370
Rattenloch-Thema finden.

00:35:20.510 --> 00:35:21.970
Ist tatsächlich ein Aspekt, mit

00:35:21.970 --> 00:35:23.790
dem ich halt in letzter Zeit öfter

00:35:23.790 --> 00:35:25.270
mal gehadert hatte, weil ich habe

00:35:25.270 --> 00:35:28.330
einen Anwendungsfall, wo ich ständig

00:35:28.330 --> 00:35:29.950
etwas

00:35:31.190 --> 00:35:32.250
sowohl

00:35:32.250 --> 00:35:35.290
verwenden, als auch zuweisen

00:35:35.290 --> 00:35:37.430
möchte. Und das ist halt

00:35:37.430 --> 00:35:39.170
schwierig.

00:35:40.190 --> 00:35:40.670
Ja, jetzt geht's.

00:35:42.610 --> 00:35:43.050
Und

00:35:43.050 --> 00:35:45.270
insofern, ich habe ganz persönlich eben

00:35:45.270 --> 00:35:47.210
den Anmerkungswunsch gesagt, da wird es dann interessant

00:35:47.210 --> 00:35:49.310
werden. Ich habe ja das

00:35:49.310 --> 00:35:51.350
Thema, dass, bevor ich halt sagen kann,

00:35:51.790 --> 00:35:53.210
in meiner Library unterstütze ich halt

00:35:53.210 --> 00:35:55.710
alles nur noch ab Python 3 aufwärts.

00:35:56.290 --> 00:35:57.330
Das wird halt noch eine Weile

00:35:57.330 --> 00:35:59.210
sein. Ich bin halt mehr in der Spanne

00:35:59.210 --> 00:36:01.150
3.5 bis 3.8 halt momentan.

00:36:01.190 --> 00:36:03.570
aber das ist zumindest halt am Horizont erkennbar, ja.

00:36:04.890 --> 00:36:05.470
Ja, also

00:36:05.470 --> 00:36:07.690
mit 3.8 werden wir das mal weitermachen wollen.

00:36:07.850 --> 00:36:08.270
Ja, genau.

00:36:08.950 --> 00:36:11.530
Also was ich, wo ich doof gestolpert bin, es gibt einen blöden

00:36:11.530 --> 00:36:13.330
Bug jetzt mit Jupiter und zwar

00:36:13.330 --> 00:36:15.650
fliegt das unter Windows einem um die Ohren,

00:36:15.770 --> 00:36:17.370
wenn man versucht so einen Notebook aufzumachen.

00:36:17.950 --> 00:36:19.450
Geht einfach aus bei 3.8.0,

00:36:19.650 --> 00:36:21.030
das ist natürlich wahnsinnig so toll.

00:36:21.590 --> 00:36:23.710
Aber es gibt einen Fix, man kann nämlich einfach

00:36:23.710 --> 00:36:25.530
in Tornado, was da

00:36:25.530 --> 00:36:27.490
wie quer schießt, Asung.io

00:36:27.490 --> 00:36:29.830
anpassen, also unter Tornado-Plattform Asung.io

00:36:29.830 --> 00:36:31.970
irgendwie in deren Zeit-Packages

00:36:31.970 --> 00:36:33.610
drin und kann da einen kleinen

00:36:33.610 --> 00:36:35.810
Codeschimpfsel eintragen, Import Assoc.io und dann

00:36:35.810 --> 00:36:37.850
den Event-Loop-Policy ansetzen

00:36:37.850 --> 00:36:39.850
auf, ja, den

00:36:39.850 --> 00:36:41.490
Windows-Selector-Event-Loop

00:36:41.490 --> 00:36:43.990
und dann geht's wieder. Das ist ein bisschen hakelig,

00:36:44.110 --> 00:36:45.750
aber ich hab gehört, das soll irgendwann gefixt werden

00:36:45.750 --> 00:36:46.770
in 3.8.1 oder so.

00:36:48.150 --> 00:36:49.670
Ja, nur für alle, die vielleicht drüber gestorben sind

00:36:49.670 --> 00:36:51.710
und sich gewundert haben, warum das nicht geht.

00:36:52.330 --> 00:36:53.710
Ja, das ist natürlich schon so ein bisschen bitter,

00:36:53.830 --> 00:36:55.250
wenn das dann wieder alle Notebooks auf,

00:36:55.430 --> 00:36:57.810
na gut, wer benutzt denn Twitter-Notebooks auf Windows?

00:36:57.810 --> 00:36:58.230
Das ist,

00:36:58.490 --> 00:37:01.330
Ja, ich glaube, das ist tatsächlich

00:37:01.330 --> 00:37:01.950
bei einigen Menschen.

00:37:03.190 --> 00:37:05.530
Ist der Trigger gewesen, weil die Default-Policy

00:37:05.530 --> 00:37:07.270
geändert wurde für das Async-Io in Windows?

00:37:08.510 --> 00:37:09.490
Möglicherweise. Ich habe keine Ahnung

00:37:09.490 --> 00:37:11.490
über den Grund, muss ich ehrlich gestehen. Ich habe einfach nur diesen Fix

00:37:11.490 --> 00:37:13.290
gefunden und gedacht, okay, ich probiere es mal aus.

00:37:13.450 --> 00:37:15.190
Und dann ging es tatsächlich wieder.

00:37:15.350 --> 00:37:16.870
Also irgendwas war da mit Async-Io kaputt.

00:37:16.970 --> 00:37:19.330
Ich weiß nicht, die haben, glaube ich, bei 3.8 auch was mit Async-Io verändert

00:37:19.330 --> 00:37:20.090
bei dem Verhalten.

00:37:21.030 --> 00:37:23.270
Und da kann es gut sein, dass da irgendwas geändert worden ist.

00:37:24.170 --> 00:37:25.530
Also ich meine auch im Kopf zu haben,

00:37:25.530 --> 00:37:26.510
dass über dieses Thema,

00:37:27.050 --> 00:37:29.490
welche Loops, wo Default

00:37:29.490 --> 00:37:31.090
sind, dass da

00:37:31.090 --> 00:37:32.890
was passiert ist, kann halt sein,

00:37:33.350 --> 00:37:34.530
dass da jetzt irgendeine, ja.

00:37:35.510 --> 00:37:37.290
Ja, es ist was kaputt gegangen und das ging dann nicht mehr

00:37:37.290 --> 00:37:39.410
und dann, ja, bin gespannt.

00:37:39.870 --> 00:37:40.990
Das hat ein bisschen Gehäude

00:37:40.990 --> 00:37:42.770
verursacht, irgendwie online.

00:37:43.110 --> 00:37:45.210
Ja, ich bin auch noch nicht wirklich umgestiegen,

00:37:45.310 --> 00:37:47.250
weil halt viele der Data Science-Geschichten

00:37:47.250 --> 00:37:49.110
noch nicht, also ich

00:37:49.110 --> 00:37:51.350
könnte gar nicht wirklich umsteigen,

00:37:51.350 --> 00:37:53.150
weil eben so lange sowas wie OpenCV

00:37:53.150 --> 00:37:55.250
und solche Sachen noch nicht

00:37:55.250 --> 00:37:57.370
wirklich, also ich glaube, heute ist Pandas

00:37:57.370 --> 00:37:58.210
in Conda

00:37:58.210 --> 00:38:00.430
Conda Forge

00:38:00.430 --> 00:38:02.730
oder auch schon in der offiziellen

00:38:02.730 --> 00:38:05.370
Conda Distribution mit drin

00:38:05.370 --> 00:38:07.090
irgendwie für Python 3.8,

00:38:07.230 --> 00:38:08.910
aber es gibt halt noch jede Menge

00:38:08.910 --> 00:38:11.190
Pakete, die noch nicht gebaut, also

00:38:11.190 --> 00:38:13.130
oft ist es, es muss einfach nur nochmal neu

00:38:13.130 --> 00:38:14.970
gebaut werden und dann geht's, aber

00:38:14.970 --> 00:38:17.190
manche Sachen brauchen halt auch so ein bisschen mehr

00:38:17.190 --> 00:38:18.790
Aufwand und

00:38:18.790 --> 00:38:21.210
ja, daher hänge ich da immer so ein bisschen

00:38:21.210 --> 00:38:22.670
hinterher hinter den aktuellsten

00:38:22.670 --> 00:38:23.630
Python-Versionen.

00:38:24.590 --> 00:38:54.450
Das fand ich auch spannend, da hattest du zu dem Thema nämlich auch Hinec einen 1-2-3-Tweets losgelassen zum Thema Wheelbuilding auf 3.8, dass er halt jetzt so lange die ganzen, also Hinec ist ja in der Community auch relativ gut bekannt um das ganze Security, Packaging, da ist er relativ aktiv und schreibt Blogposts und macht immer gute Vorträge und ihm ist halt auch aufgefallen, dass jetzt halt wieder so eine Phase einsetzt von die ganzen Wheels,

00:38:54.450 --> 00:38:56.150
sind alle noch nicht gebaut und er hat sich in seinen

00:38:56.150 --> 00:38:58.090
Deployments stark darauf verlassen, dass seine

00:38:58.090 --> 00:39:00.550
Buildtimes im Prinzip relativ

00:39:00.550 --> 00:39:02.510
schlank sind, weil er halt überall Reels einsammeln kann

00:39:02.510 --> 00:39:04.190
und jetzt geht es halt, gehen halt überall die

00:39:04.190 --> 00:39:06.250
Compiler-Orgien los und du hast irgendwie

00:39:06.250 --> 00:39:07.850
eine Verzehn-, Zwanzigfachung

00:39:07.850 --> 00:39:09.410
deiner Compile-Time.

00:39:10.730 --> 00:39:12.090
Da war er dann auch nicht so happy

00:39:12.090 --> 00:39:14.090
in der Kombination mit, dass die

00:39:14.090 --> 00:39:16.150
Release-Kadenz ja dann noch angepasst

00:39:16.150 --> 00:39:16.750
wurde.

00:39:17.850 --> 00:39:20.150
Ja, das stimmt, das ist jetzt schneller.

00:39:21.150 --> 00:39:22.150
Ja, jetzt haben sie es von

00:39:22.150 --> 00:39:23.590
18 auf 12 Monate runtergesetzt,

00:39:24.150 --> 00:39:25.870
wobei die Support-Zeiten die gleichen

00:39:25.870 --> 00:39:28.010
sind. Also jetzt müssen sie mehr Branches

00:39:28.010 --> 00:39:29.750
noch supporten.

00:39:31.650 --> 00:39:32.050
Aber

00:39:32.050 --> 00:39:33.650
das ist halt auch eine oder sowas, die dann,

00:39:34.090 --> 00:39:35.850
wenn man die Einkürzung von 18 auf 12

00:39:35.850 --> 00:39:37.830
mal hochrechnet, glaube ich, mehr wird's

00:39:37.830 --> 00:39:38.030
nicht.

00:39:40.850 --> 00:39:41.910
Was sagt eigentlich

00:39:41.910 --> 00:39:44.110
die Uhr für Python 2.7.

00:39:44.370 --> 00:39:44.930
Es sind noch

00:39:44.930 --> 00:39:47.910
31 plus 30

00:39:47.910 --> 00:39:49.650
plus 26 sind

00:39:49.650 --> 00:39:51.250
noch 57

00:39:51.250 --> 00:39:52.890
Tage.

00:39:53.930 --> 00:39:55.930
Dann ist rum aus vorbei mit Python

00:39:55.930 --> 00:39:56.550
2.7.

00:39:57.370 --> 00:39:59.810
Eigentlich wäre es jetzt allmählich mal so

00:39:59.810 --> 00:40:02.230
an der Zeit, die Landingpages hochzufahren

00:40:02.230 --> 00:40:03.630
und AdWords zu buchen auf

00:40:03.630 --> 00:40:05.570
Consulting für

00:40:05.570 --> 00:40:09.050
Python 2.

00:40:09.870 --> 00:40:11.910
Gleichzeitig mit der Abstellung der Streitumstellung.

00:40:12.910 --> 00:40:14.230
Ja, die haben sie ja verschoben.

00:40:15.930 --> 00:40:17.450
Da kannst du in zwei Jahren

00:40:17.450 --> 00:40:19.310
separate Consulting-Aufträge draus machen.

00:40:19.990 --> 00:40:20.310
Na gut.

00:40:21.170 --> 00:40:22.850
Ich meine, was tatsächlich interessant ist,

00:40:23.030 --> 00:40:25.890
die Aussage von der Python Software Foundation

00:40:25.890 --> 00:40:26.490
ist ja auch,

00:40:26.970 --> 00:40:30.190
wenn du von deinem Vendor im Stich gelassen bist,

00:40:30.330 --> 00:40:31.830
dann such dir halt Consultants.

00:40:31.890 --> 00:40:32.430
Hier gibt es Leute,

00:40:32.790 --> 00:40:35.990
die offerieren dir auch danach noch Support für Python 2.

00:40:36.930 --> 00:40:39.390
Es ist halt nur die Aussage mit

00:40:39.390 --> 00:40:41.210
also kostenlosen Support von den

00:40:41.210 --> 00:40:43.350
Kernentwicklern, da ist jetzt mal endlich

00:40:43.350 --> 00:40:45.470
der Zopf abgeschnitten. Die kümmern sich um

00:40:45.470 --> 00:40:47.410
ausreichend Dinge, die müssen sich nicht auch

00:40:47.410 --> 00:40:48.570
noch umveraltet beiseiten.

00:40:48.850 --> 00:40:51.350
Legacy-Stuff. Ja, also die haben sich

00:40:51.350 --> 00:40:53.390
wirklich lange, die haben jetzt wirklich 10 Jahre

00:40:53.390 --> 00:40:55.370
noch länger, ich weiß es

00:40:55.370 --> 00:40:57.350
gerade nicht. Und also, da gibt es

00:40:57.350 --> 00:40:59.290
Consultants, die da auch beworben werden, tatsächlich von

00:40:59.290 --> 00:41:01.510
der PSF, die pflegen Immunliste.

00:41:01.650 --> 00:41:02.790
Also Jochen, wenn du da noch

00:41:02.790 --> 00:41:05.150
noch Kapazitäten frei

00:41:05.150 --> 00:41:06.810
kannst, die eintragen.

00:41:08.510 --> 00:41:09.310
Ich habe selber

00:41:09.310 --> 00:41:10.290
ich habe selber gerade mein

00:41:10.290 --> 00:41:12.210
eines großes Projekt

00:41:12.210 --> 00:41:14.990
mal noch schnell just in time

00:41:14.990 --> 00:41:16.370
auf Python 3 umgestellt

00:41:16.370 --> 00:41:18.890
war wirklich auch erstaunt

00:41:18.890 --> 00:41:19.890
ob der

00:41:19.890 --> 00:41:23.110
in Summe Geschmeidigkeit, also ich meine

00:41:23.110 --> 00:41:25.190
seit 10 Jahren die Aussage ist

00:41:25.190 --> 00:41:27.010
schreib halt Tests für deine Sachen

00:41:27.010 --> 00:41:29.070
dann kannst du halt nämlich danach gucken, ob die

00:41:29.070 --> 00:41:30.610
Tests wieder gehen und

00:41:30.610 --> 00:41:32.470
also ich bin glaube ich jetzt bei einem

00:41:32.470 --> 00:41:35.190
Projekt, was relativ komplex ist

00:41:35.190 --> 00:41:37.170
und ich glaube es waren 6.000 Zeilen

00:41:37.170 --> 00:41:39.030
6.000 Zeilen war ich

00:41:39.030 --> 00:41:40.830
in der Umsetzung mit, glaube ich,

00:41:40.830 --> 00:41:42.290
zehn Stunden Arbeit in Summe dabei.

00:41:42.810 --> 00:41:44.410
Und dann waren die Tests alle wieder okay.

00:41:44.710 --> 00:41:46.250
Und es tat erstmal sinnvolle Dinge.

00:41:47.290 --> 00:41:48.270
Und tatsächlich, das

00:41:48.270 --> 00:41:50.590
Pipe-2-to-3-Tool hat mir extrem viel

00:41:50.590 --> 00:41:52.610
weggefuttert. Das hat gut funktioniert.

00:41:53.210 --> 00:41:54.690
Und wenn man viel I.O. macht,

00:41:54.750 --> 00:41:56.450
muss man halt eine Weile lang am Unicode rumschrauben

00:41:56.450 --> 00:41:57.730
und dann geht's halt.

00:41:59.190 --> 00:41:59.750
Nee, war ich jetzt

00:41:59.750 --> 00:42:02.490
eigentlich überrascht, dass das

00:42:02.490 --> 00:42:04.550
doch ziemlich geschmeidig ging. Hatte ich

00:42:04.550 --> 00:42:06.290
irgendwie mit mehr Knöchel gerechnet.

00:42:07.030 --> 00:42:08.850
Ich hab letztens, hatten wir eine schöne Diskussion

00:42:08.850 --> 00:42:10.870
dafür im Channel, was dabei noch

00:42:10.870 --> 00:42:12.790
schiefgegangen ist. Und zwar haben sie das Rundungsverfahren

00:42:12.790 --> 00:42:14.510
geändert und dann ging

00:42:14.510 --> 00:42:16.450
kaufmännisches Runden irgendwie auf einmal anders.

00:42:17.370 --> 00:42:18.630
Und da war auch die Frage, was dann

00:42:18.630 --> 00:42:20.790
Pi 2, 3, 2, 2, 3

00:42:20.790 --> 00:42:21.110
macht.

00:42:22.650 --> 00:42:24.470
An der Stelle, das wusste ich auch nicht.

00:42:24.590 --> 00:42:26.610
Ja, wenn das wichtig für dich ist, dann kannst du dir das

00:42:26.610 --> 00:42:27.490
zum Glück anpassen.

00:42:29.030 --> 00:42:30.170
Ja, aber das war tatsächlich spannend.

00:42:30.970 --> 00:42:31.090
Ja.

00:42:32.750 --> 00:42:34.630
2, 2, 3 ist ja pluggable mit den Fixern,

00:42:34.710 --> 00:42:35.350
die da drin sind.

00:42:36.470 --> 00:42:37.950
Also wenn man selber wirklich

00:42:37.950 --> 00:42:40.150
eine große Code-Basis noch haben sollte,

00:42:40.230 --> 00:42:41.690
die man noch nicht mal angefasst hat.

00:42:42.630 --> 00:42:43.990
Aber dann ist man, glaube ich, auch nicht derjenige,

00:42:44.190 --> 00:42:46.090
der Custom-Fixer schreibt.

00:42:47.410 --> 00:42:47.570
Ja.

00:42:49.670 --> 00:42:53.990
Ja, da hat man sich wahrscheinlich dann schon länger nicht mehr so wirklich

00:42:53.990 --> 00:42:55.610
dafür interessiert, wie das da weitergeht.

00:42:56.250 --> 00:42:56.370
Ja.

00:42:57.590 --> 00:42:59.910
Ja, aber es ist jetzt auch mal,

00:42:59.970 --> 00:43:01.910
ich bin mal gespannt, wie viel Schmerzen das

00:43:01.910 --> 00:43:04.090
verursachen wird. Ich meine, es gibt ja auch dann größere Institutionen,

00:43:04.090 --> 00:43:05.790
die dann noch Support anbieten.

00:43:05.930 --> 00:43:08.050
Ich glaube, Red Hat hat auch irgendwie gesagt,

00:43:08.190 --> 00:43:13.250
dass sie einen Python 2 Fork weiter maintainen wollen oder so.

00:43:14.050 --> 00:43:14.750
Oh, sehr gut.

00:43:14.970 --> 00:43:17.590
Wenn die umgeforgt sind, haben wir auch alle den neuen Fork von Red Hat.

00:43:18.330 --> 00:43:21.150
Dann kann ich auch in fünf Jahren nach einem Python 2.7

00:43:21.150 --> 00:43:22.590
auf einen 3.6er Kernel fahren.

00:43:23.510 --> 00:43:26.870
Ja, Softwarearchäologie.

00:43:27.570 --> 00:43:29.530
Ja, genau, lebende Archäologie.

00:43:30.370 --> 00:43:30.470
Ja.

00:43:31.310 --> 00:43:31.750
Sehr schön.

00:43:33.270 --> 00:43:34.890
Genau, ja, das war...

00:43:34.890 --> 00:43:36.770
Was kommt eigentlich nach Python 3.8 und 3.9?

00:43:36.930 --> 00:43:38.570
Kommt dann 3.10 oder kommt dann 4?

00:43:39.070 --> 00:43:39.650
3.10.

00:43:42.070 --> 00:43:45.950
Außer sie ziehen das Argument wie Linus, der sagt,

00:43:46.790 --> 00:43:49.230
Versionsnummern haben in dieser Hinsicht für mich keine Bedeutung

00:43:49.230 --> 00:43:52.230
und ich mache ab irgendeinem Cut einfach.

00:43:52.230 --> 00:43:55.710
Aber die zweite Stelle kann ja auch zweistellig werden.

00:43:55.810 --> 00:43:56.610
Das ist ja nicht das Thema.

00:43:58.570 --> 00:44:01.990
Und jetzt, wo man die Leute schon von 2 zu 3 so erschreckt hat,

00:44:02.350 --> 00:44:04.470
wartet man da jetzt noch ein bisschen.

00:44:04.690 --> 00:44:06.950
Ich mag die, ich wäre das ein Selbstmord.

00:44:08.890 --> 00:44:10.710
Ich meine, was bei 3.8 noch dazukam,

00:44:10.790 --> 00:44:12.790
das ist noch ganz interessant, aber auch wieder so eine

00:44:12.790 --> 00:44:14.510
Kleinigkeit ähnlich wie beim Boris Operator

00:44:14.510 --> 00:44:16.770
sind die Positional Only

00:44:16.770 --> 00:44:18.050
Arguments. Oh ja, genau.

00:44:19.510 --> 00:44:20.710
Bisher kann ich ja

00:44:20.710 --> 00:44:23.430
in dieser Kombination

00:44:23.430 --> 00:44:24.110
aus

00:44:24.110 --> 00:44:26.810
Argumenten, die ich in einer bestimmten

00:44:26.810 --> 00:44:28.810
Reihenfolge ohne Namen oder

00:44:28.810 --> 00:44:30.930
mit Namen in einer beliebigen Reihenfolge

00:44:30.930 --> 00:44:32.870
und unbenahmt

00:44:32.870 --> 00:44:34.590
nach Reihenfolge und

00:44:34.590 --> 00:44:37.110
benahmt ohne Vorankündigung

00:44:37.110 --> 00:44:39.070
in diesen ganzen dynamischen

00:44:39.070 --> 00:44:40.890
Varianten zu wissen kann,

00:44:41.310 --> 00:44:43.050
kann ich momentan nicht verhindern,

00:44:43.670 --> 00:44:44.990
dass jemand mir

00:44:44.990 --> 00:44:47.010
ein Positionsargument halt auch

00:44:47.010 --> 00:44:48.970
mit Namen angibt und das

00:44:48.970 --> 00:44:50.790
gibt es jetzt tatsächlich als neues Ding,

00:44:51.350 --> 00:44:52.270
dass man

00:44:52.270 --> 00:44:55.030
markieren kann, dass Argumente wirklich nur

00:44:55.030 --> 00:44:56.650
positional übergeben werden dürfen.

00:44:57.890 --> 00:44:58.950
Wobei ich tatsächlich auch

00:44:58.950 --> 00:45:00.610
zugeben muss, zum einen da ist mir tatsächlich

00:45:00.610 --> 00:45:03.250
der Syntaxanteil eher zum Abgewöhnen.

00:45:03.370 --> 00:45:04.490
Warum macht man das?

00:45:04.670 --> 00:45:05.810
Was gibt es da für einen Grund für?

00:45:06.890 --> 00:45:08.790
Den habe ich tatsächlich gerade auch nicht greifbar.

00:45:08.790 --> 00:45:09.490
Ich weiß es nicht so genau.

00:45:11.670 --> 00:45:12.370
Eben auf der

00:45:12.370 --> 00:45:13.710
PyCon war halt auch ein

00:45:13.710 --> 00:45:16.770
Talk über diese Änderungen und da hat

00:45:16.770 --> 00:45:18.750
jemand ein Beispiel gebracht irgendwie mit Potenzieren,

00:45:19.010 --> 00:45:20.190
dass das da irgendwie

00:45:20.190 --> 00:45:22.630
ein Böse beißen kann. Ich kriege es

00:45:22.630 --> 00:45:24.190
jetzt glaube ich auch nicht so wirklich auf die Reihe,

00:45:24.870 --> 00:45:26.650
was da das Problem war. Aber im Grunde ist

00:45:26.650 --> 00:45:27.370
halt das

00:45:27.370 --> 00:45:29.410
Blöde, dass

00:45:29.410 --> 00:45:32.150
ja, wenn

00:45:32.150 --> 00:45:34.570
du halt nicht so richtig erwartest, dass wenn du

00:45:34.570 --> 00:45:36.430
irgendwie ein Keyword-Argument

00:45:36.430 --> 00:45:38.410
halt übergibst, dass das dann halt als

00:45:38.410 --> 00:45:40.550
Positionsargument auch reinkommen

00:45:40.550 --> 00:45:42.470
kann und dann sozusagen

00:45:42.470 --> 00:45:44.390
vielleicht einfach Dinge

00:45:44.390 --> 00:45:46.470
in der falschen, im falschen

00:45:46.470 --> 00:45:47.630
Hals irgendwie dazu landen.

00:45:48.430 --> 00:45:50.470
Ja, was passieren kann, ist

00:45:50.470 --> 00:45:51.250
wenn du ein,

00:45:52.550 --> 00:45:54.470
da weiß ich aber auch nicht, was momentan der Effekt wäre,

00:45:54.530 --> 00:45:56.330
aber du kannst solche Sachen bauen, wenn du

00:45:56.330 --> 00:45:57.390
zum Beispiel halt durch

00:45:57.390 --> 00:46:00.570
Stern und Sternstern

00:46:00.570 --> 00:46:02.650
Dicts übergibst und in dem Dict ist

00:46:02.650 --> 00:46:04.710
etwas drin, was eigentlich ein Positionsargument

00:46:04.710 --> 00:46:06.610
wäre, dann könntest du das damit ersetzen.

00:46:07.070 --> 00:46:08.150
Das heißt, wenn es

00:46:08.150 --> 00:46:09.290
zwei

00:46:09.290 --> 00:46:12.670
ja, aber

00:46:12.670 --> 00:46:14.410
da würde sich eigentlich Python jetzt schon

00:46:14.410 --> 00:46:16.750
gegen wehren, wenn du

00:46:16.750 --> 00:46:18.790
ein Positionsargument namens

00:46:18.790 --> 00:46:20.890
a per Position übergibst

00:46:20.890 --> 00:46:22.770
und dann im Dict nochmal ein a mit drinstehen

00:46:22.770 --> 00:46:25.190
hast als Sternstern-Keyword-Argument,

00:46:25.790 --> 00:46:27.110
da würde

00:46:27.110 --> 00:46:28.770
sich eigentlich schon gegen wehren und sagen, das geht so

00:46:28.770 --> 00:46:29.010
nicht.

00:46:30.430 --> 00:46:57.630
Aber für mich ist es ein bisschen so ein Ding ähnlich wie du bei Command-Line-Tools häufig, wenn du hintergelagerte Prozesse stoppen möchtest, so Stop-Dämmen-mäßig, und du willst an denen auch noch Argumente übergeben, dann hast du manchmal auf der Command-Line so ein Doppel-Minus, um zu sagen, hier ist das Ende von den Argumenten, die ich kriege, und hier gehen die Argumente los, die an den nächsten weitergegeben werden, damit die Parser nicht durcheinander kommen.

00:46:57.630 --> 00:47:15.170
Und so in dieser Kategorie ist das für mich halt auch angesiedelt. Nur diese syntaktische Auswahl, dass du dann halt neben den bisher schon Sternchen in der Funktionsdeklaration jetzt noch einen Slash als bedeutungstragendes Element hast. Ich weiß gar nicht, ist der Doppelslash auch belegt für die Keyword-Arguments oder sowas?

00:47:15.170 --> 00:47:16.690
Nee, ich war nicht nur der Slash.

00:47:16.970 --> 00:47:18.610
Aber das sieht...

00:47:18.610 --> 00:47:20.990
Meine Ästhetik ist

00:47:20.990 --> 00:47:22.670
arg verletzt, ja.

00:47:23.590 --> 00:47:24.870
Ja, und wenn man

00:47:24.870 --> 00:47:27.070
halt nicht weiß, dass das... Ich meine, es ist sowieso,

00:47:27.190 --> 00:47:28.710
denke ich, für Leute, die damit

00:47:28.710 --> 00:47:31.030
anfangen... Also die Stern- und Doppelstern-

00:47:31.030 --> 00:47:32.410
Geschichten sind schon so...

00:47:32.410 --> 00:47:34.190
Was passieren hier für magische Sachen?

00:47:34.670 --> 00:47:36.570
Aber der Slash ist auch nochmal...

00:47:36.570 --> 00:47:38.670
Da kann ich mir auch gut vorstellen, dass da Leute

00:47:38.670 --> 00:47:41.030
ein bisschen verwirrt werden.

00:47:41.370 --> 00:47:42.950
Aber naja, ich meine, die meisten Leute

00:47:42.950 --> 00:47:44.810
werden das ja auch nie zu sehen kriegen. Also das ist halt

00:47:44.810 --> 00:47:46.190
etwas, was man halt dann macht, wenn

00:47:46.190 --> 00:47:48.470
man muss, aber ansonsten

00:47:48.470 --> 00:47:49.270
ja.

00:47:51.870 --> 00:47:52.790
Ja, das ist

00:47:52.790 --> 00:47:54.610
auf jeden Fall auch eine interessante Geschichte.

00:47:55.210 --> 00:47:56.990
Genau, dann... Das nächste Ding für Python 3.8.

00:47:57.330 --> 00:47:58.710
Bitte? Das nächste Ding für Python 3.8.

00:47:58.710 --> 00:48:00.070
Wir brauchen eine Chapter Mark.

00:48:00.410 --> 00:48:02.610
Ja, das muss ich mir

00:48:02.610 --> 00:48:04.350
sagen, ich glaube, ich habe es sowieso verpeilt.

00:48:04.450 --> 00:48:06.570
Ich weiß nicht, Reaper macht

00:48:06.570 --> 00:48:08.570
die Chapter Marks manchmal an den Anfang, wenn man das irgendwie

00:48:08.570 --> 00:48:10.370
falsch einschaltet. Warum haben wir eigentlich noch keinen Button, den wir irgendwie

00:48:10.370 --> 00:48:11.750
mit dem Respy-Store haben? Genau, ja, ja.

00:48:11.990 --> 00:48:12.970
Das haben wir auch mal vor.

00:48:14.350 --> 00:48:15.530
Genau, muss ich mal irgendwie

00:48:15.530 --> 00:48:17.550
mich mit bestätigen.

00:48:17.930 --> 00:48:19.290
Vielleicht ist er jetzt irgendwie im Jahreswechsel.

00:48:19.470 --> 00:48:21.350
Ich muss mal einen Buzzer kaufen und dann gucken wir mal

00:48:21.350 --> 00:48:22.130
so ein Interface.

00:48:23.310 --> 00:48:24.630
Gibt es eigentlich eine API für Reaper?

00:48:25.350 --> 00:48:27.370
Ja, man kann da solche Dinge reinhängen.

00:48:27.490 --> 00:48:29.130
Das ist tatsächlich alles möglich.

00:48:29.130 --> 00:48:31.390
Ja, genau.

00:48:31.650 --> 00:48:33.030
Schöne Geschichte. Also ich finde das

00:48:33.030 --> 00:48:34.650
total toll. Ich weiß nicht, ob andere Leute das

00:48:34.650 --> 00:48:35.910
auch gut finden.

00:48:36.730 --> 00:48:38.690
Aber für Multiprozessing gibt es jetzt so

00:48:38.690 --> 00:48:40.310
Shared-Memory-Geschichten automatisch.

00:48:41.190 --> 00:48:43.990
wenn man

00:48:43.990 --> 00:48:47.350
so Arbeit verteilen möchte auf mehrere

00:48:47.350 --> 00:48:51.290
Prozesse, was man manchmal muss, wenn man zum Beispiel

00:48:51.290 --> 00:48:55.250
ja auch irgendwie CPU-Power

00:48:55.250 --> 00:48:56.590
haben möchte, dann geht das ja wegen

00:48:56.590 --> 00:48:59.150
Global Interpreter Log nicht so

00:48:59.150 --> 00:49:00.310
wirklich mit Threads und

00:49:00.310 --> 00:49:02.990
dann startet man halt mehrere Prozesse, das ist halt die Lösung dafür,

00:49:03.070 --> 00:49:05.110
dann hat man aber das Problem, dass man, wenn man

00:49:05.110 --> 00:49:06.790
jetzt eine Funktion sozusagen,

00:49:06.790 --> 00:49:08.810
also eine Funktion mit unterschiedlichen Parametern

00:49:08.810 --> 00:49:10.870
in fünf unterschiedlichen Prozessen ausgeführt

00:49:10.870 --> 00:49:12.610
haben möchte, dass man irgendwie diese

00:49:12.610 --> 00:49:14.770
Parameter, die man der Funktion übergibt, halt irgendwie

00:49:14.770 --> 00:49:16.130
in diese Prozesse reinbekommen

00:49:16.130 --> 00:49:18.910
muss. Und da kann man

00:49:18.910 --> 00:49:19.370
natürlich

00:49:19.370 --> 00:49:22.490
einfach irgendwie die Sachen picklen,

00:49:22.710 --> 00:49:24.710
oder das funktioniert auch, ich glaube, sie werden auch

00:49:24.710 --> 00:49:25.710
per Default gepickelt.

00:49:28.190 --> 00:49:28.670
Aber

00:49:28.670 --> 00:49:30.750
wenn man jetzt irgendwie was

00:49:30.750 --> 00:49:32.750
übergibt, zum Beispiel halt auch gerade bei so

00:49:32.750 --> 00:49:34.450
Data Science-Geschichten, irgendwie

00:49:34.450 --> 00:49:36.770
große NumPy-Arrays oder so, die halt

00:49:36.770 --> 00:49:38.950
so groß sind, dass ich die nicht fünfmal

00:49:38.950 --> 00:49:40.010
in den Hauptspeicher packen kann,

00:49:40.870 --> 00:49:42.450
dann habe ich halt ein Problem, weil

00:49:42.450 --> 00:49:43.910
geht halt einfach nicht mehr.

00:49:44.970 --> 00:49:46.410
Und das,

00:49:46.630 --> 00:49:48.630
was man dann machen konnte,

00:49:48.750 --> 00:49:49.870
ist aber eine ganz schöne Fummelei,

00:49:50.430 --> 00:49:52.610
ist, man macht halt einfach ein Shared Memory

00:49:52.610 --> 00:49:54.170
Segment, was halt alle

00:49:54.170 --> 00:49:56.770
irgendwie, auf das halt alle Prozesse zugreifen

00:49:56.770 --> 00:49:58.710
und, also man

00:49:58.710 --> 00:50:00.390
kann dann so Dinge machen, man nimmt halt

00:50:00.390 --> 00:50:04.630
irgendwie Struct, das in der

00:50:04.630 --> 00:50:06.610
Standardbibliothek, das Modul und baut

00:50:06.610 --> 00:50:08.410
sich dann halt so eine binäre Datenstruktur zusammen

00:50:08.410 --> 00:50:10.050
in ein Shared Memory Segment und dann

00:50:10.050 --> 00:50:11.910
lädt man das in den Prozessen halt irgendwie,

00:50:12.270 --> 00:50:14.450
greift man darauf zu und dann hat man halt auch sozusagen

00:50:14.450 --> 00:50:16.210
die Daten übergeben, ohne dass man da

00:50:16.210 --> 00:50:17.710
irgendwie

00:50:17.710 --> 00:50:19.730
das picken muss.

00:50:20.950 --> 00:50:21.930
Aber das ist halt schon,

00:50:22.290 --> 00:50:23.770
ich würde mal sagen, dass die meisten Leute

00:50:23.770 --> 00:50:26.370
das ist schon auch ganz schön wild

00:50:26.370 --> 00:50:28.550
und würden das nicht so machen

00:50:28.550 --> 00:50:30.410
wollen und jetzt gibt es halt eine Geschichte, die halt

00:50:30.410 --> 00:50:32.550
automatisch drin ist und man muss sich selber nicht drum kümmern und

00:50:32.550 --> 00:50:33.870
wenn man die Daten,

00:50:34.130 --> 00:50:36.450
alle Prozesse, die man aufruft, die gleichen

00:50:36.450 --> 00:50:38.350
Daten verwenden sollen, dann kann man sagen, so

00:50:38.350 --> 00:50:40.370
hier in diesem Schatten der Musik, wenn das ist drin und dann

00:50:40.370 --> 00:50:42.310
kriegen die das und das ist

00:50:42.310 --> 00:50:43.350
natürlich schon ziemlich cool.

00:50:50.370 --> 00:50:52.270
Einen habe ich noch, es gibt

00:50:52.270 --> 00:50:54.110
noch ein kleines Ding, das war vielleicht sogar

00:50:54.110 --> 00:50:56.010
den meisten nicht aufgefallen, es gab noch

00:50:56.010 --> 00:50:58.250
einen, eigentlich

00:50:58.250 --> 00:50:59.350
war es ein Bug, aber

00:50:59.350 --> 00:51:01.850
hat jetzt eine Weile gedauert und zwar

00:51:01.850 --> 00:51:04.210
Unpacking, also wenn ich

00:51:04.210 --> 00:51:06.370
Listen-Elemente

00:51:06.370 --> 00:51:07.950
an einen

00:51:07.950 --> 00:51:10.350
an einen Wert

00:51:10.350 --> 00:51:12.730
antackern möchte.

00:51:13.630 --> 00:51:14.690
Also ich kann zum Beispiel einen Tupel

00:51:14.690 --> 00:51:16.410
haben, da sind irgendwie die Zahlen 4, 5, 6

00:51:16.410 --> 00:51:17.690
drin und wenn ich das jetzt einem

00:51:17.690 --> 00:51:20.530
neues Tupel zuweisen möchte, kann ich

00:51:20.530 --> 00:51:22.830
dann wieder sagen, T ist gleich

00:51:22.830 --> 00:51:24.350
1, 2, 3

00:51:24.350 --> 00:51:26.510
Sternen, mein bestehendes Tupel, um

00:51:26.510 --> 00:51:27.790
die dann halt schön zu vermischen.

00:51:28.550 --> 00:51:29.750
Das konnte man bisher

00:51:29.750 --> 00:51:32.610
machen, aber das konnte man

00:51:32.610 --> 00:51:34.510
nicht benutzen, wenn man eine Expression hatte,

00:51:34.630 --> 00:51:36.130
die an einen Return oder an einen Yield ging.

00:51:37.950 --> 00:51:53.590
Ein sehr seltenes Ding, aber das ist gerade, wenn man so funktionale Sachen hat, Generatoren und so ein Zeug, wo man irgendwas dynamisch ausgerechnet ist, mit was Statischem verknüpfen möchte, dann sind diese Unpackings manchmal sehr angenehm und die musste man momentan immer über mehrere Zeilen verteilen.

00:51:54.250 --> 00:52:03.630
Es wird auch dargestellt, als eigentlich war es ein unintentional behavior seit Python 3.2 und jetzt ist es nicht mehr.

00:52:03.630 --> 00:52:13.210
Oh, ja, ich weiß nicht,

00:52:13.270 --> 00:52:14.630
hab ich noch was vergessen, Python 3.8?

00:52:15.730 --> 00:52:17.290
Es gibt noch die Audithooks

00:52:17.290 --> 00:52:19.190
irgendwie. Ja, was ist das denn?

00:52:22.390 --> 00:52:23.290
Was ist ein Audit?

00:52:23.370 --> 00:52:24.190
Fangen wir doch erstmal so an.

00:52:24.910 --> 00:52:25.730
Also von Python jetzt.

00:52:27.550 --> 00:52:29.270
Du kannst halt dich irgendwo reinklingen

00:52:29.270 --> 00:52:30.950
und dann Notifizierung liegen,

00:52:31.250 --> 00:52:32.350
wenn so bestimmte Sachen passieren.

00:52:32.970 --> 00:52:35.990
Aber ehrlich gesagt, das ist jetzt natürlich so ein bisschen zu allgemein.

00:52:36.110 --> 00:52:37.370
Ich weiß nicht genau...

00:52:37.370 --> 00:52:41.950
Ein Debugger über die Python-Runtime bauen, das hört sich komisch an.

00:52:42.770 --> 00:52:43.110
Ja.

00:52:45.650 --> 00:52:47.690
Ich habe es mir tatsächlich auch noch nicht angeguckt,

00:52:48.170 --> 00:52:51.830
aber es kann sein, dass etwas, was ich schon eine Weile haben wollte,

00:52:53.850 --> 00:52:57.290
das Spannende ist, die Hooks können nämlich zum einen halt von außen reingegeben werden,

00:52:57.370 --> 00:53:01.150
dass ich die, wenn ich jemandem eine Python-Runtime zur Verfügung stelle,

00:53:01.270 --> 00:53:02.510
also als Hosting-Provider

00:53:02.510 --> 00:53:04.870
oder als Plattform-Provider

00:53:04.870 --> 00:53:06.750
kann es interessant sein, dass ich die

00:53:06.750 --> 00:53:08.730
forcieren kann. Und also

00:53:08.730 --> 00:53:10.810
ein Thema, und da ist nämlich letztens der Bug, den ich

00:53:10.810 --> 00:53:12.730
vor 14 Jahren eingesteuert

00:53:12.730 --> 00:53:12.970
habe,

00:53:13.610 --> 00:53:16.630
zugemacht worden mit

00:53:16.630 --> 00:53:18.490
das geht jetzt irgendwie anders, und da muss ich mal

00:53:18.490 --> 00:53:20.710
reinschauen, war, dass Python

00:53:20.710 --> 00:53:22.490
zum Beispiel, wenn ihm der Speicher

00:53:22.490 --> 00:53:24.430
ausgeht, kriegst du, kriegt dein

00:53:24.430 --> 00:53:26.150
Python-Programm halt einen

00:53:26.150 --> 00:53:27.630
Memory-Error,

00:53:28.990 --> 00:53:30.290
dass er keinen Speicher mehr alle

00:53:30.290 --> 00:53:32.150
integrieren kann und dann kannst du

00:53:32.150 --> 00:53:34.070
sozusagen nochmal versuchen, sinnvolle Dinge zu tun.

00:53:34.170 --> 00:53:36.230
Das Problem ist, es gibt

00:53:36.230 --> 00:53:38.030
einige Programme, gerade so Server, die

00:53:38.030 --> 00:53:39.890
laufen und haben

00:53:39.890 --> 00:53:42.050
und der Memory Error ist halt keine

00:53:42.050 --> 00:53:43.790
System Exception, sondern es ist halt eine

00:53:43.790 --> 00:53:46.110
Exception, das heißt, die wird

00:53:46.110 --> 00:53:48.290
von einem normalen

00:53:48.290 --> 00:53:49.310
Try Accept

00:53:49.310 --> 00:53:52.150
auf Exception auch abgefangen

00:53:52.150 --> 00:53:56.070
und wenn du halt einen Server hast und

00:53:56.070 --> 00:53:58.230
deine Anwendung läuft in Speicherprobleme,

00:53:59.070 --> 00:54:00.130
Das klingt lustig.

00:54:00.290 --> 00:54:12.690
Ja, dann kriegt der Mainloop halt für den, keine Ahnung, für die HTTP-Anfrage, was auch immer, kriegt der Mainloop halt dann einmal einen Memory-Error, wirft einen 500er-Fehler dem Client gegenüber und nimmt die nächste Anfrage entgegen.

00:54:13.290 --> 00:54:32.290
Und wenn sich aber ein Programm halt dermaßen in die Ecke manövriert hat, die räumen ja normalerweise nicht ordentlich in sich auf und da wäre es mir lieber, wenn ich halt von außen eben sowas beobachten könnte und sagen kann, hey, in dem Fall mach bitte, mach den Python-Prozess einfach aus, lass ihn neu starten von Supervisor, SystemD oder wem auch immer, weil besser wird es nicht mehr.

00:54:33.470 --> 00:54:34.290
Also da haben wir relativ lange Probleme.

00:54:34.290 --> 00:54:37.690
Kann man durch eine Speicherecke, in die niemand hin will oder sowas oder in der du irgendwas machen kannst, wo du nicht hin sollst?

00:54:37.690 --> 00:55:06.230
Nee, einfach nur, wenn der Sprecher halt voll ist. Das kommt halt auch bei größeren Kisten halt mal vor. Bei Java ist das immer noch ein bisschen härter, da gibt es ein ähnliches Problem mit diesem, wie der Heap alloziiert wird und bei Python ist es halt so, das brauchst du nicht konfigurieren, aber wenn er oben am Limit anschlägt, dann hast du so ein halbgares Programm, das reagiert meistens halt in irgendwelchen Health-Checks auch gerade noch so von, ich bin einsatzfähig, aber wenn es irgendwas Sinnvolles tun soll, fliegt es halt ständig auf die Nase.

00:55:07.530 --> 00:55:09.050
Da haben wir uns lange mit rumgeschlagen.

00:55:10.430 --> 00:55:11.730
Und da kam jetzt irgendwie die Info mit,

00:55:11.770 --> 00:55:13.650
hey, das könnt ihr jetzt irgendwie von außen steuern.

00:55:14.210 --> 00:55:15.990
Aber ich glaube, das sind nicht die Audit-Hooks.

00:55:16.050 --> 00:55:17.190
Das ist irgendwas in der Nähe noch.

00:55:19.050 --> 00:55:20.250
Ja, ich weiß nicht.

00:55:20.310 --> 00:55:20.850
Also man kann hier,

00:55:21.130 --> 00:55:24.790
also ich habe hier auch gerade noch in den Pepp geguckt,

00:55:24.890 --> 00:55:26.710
was man da, also man kann an sehr vielen Stellen

00:55:26.710 --> 00:55:30.210
sozusagen sich so einen Hook setzen,

00:55:30.210 --> 00:55:32.230
wo man dann sagt, okay, wenn das passiert,

00:55:32.350 --> 00:55:33.370
dann möchte ich benachrichtigt werden

00:55:33.370 --> 00:55:34.330
und dann irgendwie darauf reagieren.

00:55:35.650 --> 00:55:37.190
Und das, ja,

00:55:37.310 --> 00:55:38.750
aber ich habe es mir ehrlich gesagt auch noch nicht so genau.

00:55:38.750 --> 00:55:39.890
Direkt E-Mail an den Admin.

00:55:43.050 --> 00:55:44.630
Tja, genau.

00:55:44.850 --> 00:55:46.230
Ansonsten, ich weiß nicht so genau.

00:55:47.190 --> 00:55:48.630
Haben wir noch irgendwas in 3.8, was

00:55:48.630 --> 00:55:50.750
irgendwie interessant wäre?

00:55:54.130 --> 00:55:55.570
I don't know.

00:55:56.030 --> 00:55:56.870
Nee, ich glaube also.

00:55:57.930 --> 00:55:59.590
Nee, beim drüberfliegen waren das jetzt so die Sachen,

00:55:59.670 --> 00:56:00.570
die ich mir rausgesucht hatte.

00:56:02.190 --> 00:56:03.730
Ja gut, dann können wir die Liste auch wieder

00:56:03.730 --> 00:56:04.150
abhaken.

00:56:05.650 --> 00:56:07.470
Python 3.8 irgendwie durch.

00:56:08.250 --> 00:56:08.430
Ja.

00:56:11.210 --> 00:56:12.230
Dann hat man noch den

00:56:12.230 --> 00:56:12.790
Core-Sprint.

00:56:13.810 --> 00:56:15.910
Oh ja, du wolltest noch was erzählen von einem Core-Sprint.

00:56:15.970 --> 00:56:17.630
Erstmal vielleicht kurz, was ist ein Core-Sprint?

00:56:18.010 --> 00:56:19.950
Also geht es um die Core-Developer, sind das

00:56:19.950 --> 00:56:22.110
eigentliche große, die Gurus

00:56:22.110 --> 00:56:23.990
von Python, die Entwicklerteams, die am Kern der

00:56:23.990 --> 00:56:25.250
Sprache arbeiten, ist das richtig?

00:56:26.030 --> 00:56:27.530
Ja, genau. Und

00:56:27.530 --> 00:56:29.870
also typischerweise, die nutzen

00:56:29.870 --> 00:56:31.770
halt schon auch die Gelegenheit, wenn sie können,

00:56:31.770 --> 00:56:33.090
dass sie sich mal treffen und

00:56:33.090 --> 00:56:35.410
diesmal war es jetzt vom

00:56:35.410 --> 00:56:37.830
das ist jetzt vier Wochen her, 9. bis 13. September,

00:56:38.910 --> 00:56:39.550
schon auch relativ

00:56:39.550 --> 00:56:41.470
lang, fünf Tage, vier Tage,

00:56:42.010 --> 00:56:43.570
haben sich 34 Leute getroffen,

00:56:43.830 --> 00:56:46.130
große Gruppe, viele Langzeitleute,

00:56:46.270 --> 00:56:47.790
aber das Kernteam hat sich auch in den letzten

00:56:47.790 --> 00:56:50.050
Jahren extrem gut diversifiziert.

00:56:50.790 --> 00:56:51.310
Also viele

00:56:51.310 --> 00:56:53.150
Leute auch aus unterschiedlichen Ländern,

00:56:53.490 --> 00:56:54.890
unterschiedlichen Hintergründen, das ist

00:56:54.890 --> 00:56:57.570
eigentlich gut gewesen und die haben einen Haufen

00:56:57.570 --> 00:56:59.630
Pull-Requests verarbeitet, 120 Stück

00:56:59.630 --> 00:57:01.270
haben sie gesagt

00:57:01.270 --> 00:57:03.710
und da wurde dann auch der

00:57:03.710 --> 00:57:05.810
Python 3 neuen Release Schedule und jetzt die neue

00:57:05.810 --> 00:57:07.690
12-Monats-Kadenz beschlossen.

00:57:09.390 --> 00:57:09.870
Und

00:57:09.870 --> 00:57:11.890
da machen sie auch viele mal

00:57:11.890 --> 00:57:13.890
eine Infrastruktur, also der Bug-Tracker wird noch mal

00:57:13.890 --> 00:57:14.990
angeguckt und

00:57:14.990 --> 00:57:16.650
solche Dinge.

00:57:18.070 --> 00:57:19.970
Und ein, zwei Sachen,

00:57:19.970 --> 00:57:21.870
die sind mir aber dann konkret noch mal genauer

00:57:21.870 --> 00:57:23.050
aufgefallen. Das eine ist,

00:57:23.930 --> 00:57:25.970
es wird mal wieder am Grill rumgedoktert.

00:57:28.050 --> 00:57:29.790
Ich weiß nicht, ob wir den im

00:57:29.790 --> 00:57:30.610
Cast schon hatten.

00:57:30.890 --> 00:57:32.890
Der Global Interpreter, das ist einer der ersten Folgen.

00:57:33.390 --> 00:57:35.350
Vielleicht nochmal kurz anreichen für alle Menschen,

00:57:35.510 --> 00:57:37.050
die das als erstes hören oder so.

00:57:37.650 --> 00:57:39.110
Ja, das ist der Global Interpreter Lock

00:57:39.110 --> 00:57:40.630
und das ist halt, um

00:57:40.630 --> 00:57:43.250
zu verhindern, dass nicht-synchronisierte

00:57:43.250 --> 00:57:44.730
Datenstrukturen auf C-Ebene

00:57:44.730 --> 00:57:46.530
sich auf den Füßen rumtreten

00:57:46.530 --> 00:57:48.810
und das ist der Grund, warum halt der

00:57:48.810 --> 00:57:50.750
immer nur ein Statement

00:57:50.750 --> 00:57:53.470
verarbeitet werden kann gleichzeitig

00:57:53.470 --> 00:57:55.550
und ich mit Multithreading

00:57:55.550 --> 00:57:57.130
in Python halt auch immer nur

00:57:57.130 --> 00:57:58.450
eine CPU auslasten kann.

00:58:00.010 --> 00:58:24.970
Und Jochen hatte jetzt gerade schon gesagt, dass es ja jetzt besseres Shared Memory Management auf der einen Seite gibt und das ist mir nämlich dann beim Durchgucken von dem Sprint auch aufgefallen, die Arbeit scheint noch in eine andere Richtung zu gehen, nämlich dass man, um den Gildum rumzugehen, mehrere Python-Interpreter in einem C-Prozess haben kann.

00:58:25.770 --> 00:58:47.990
Und das ging bisher auch schon, der Interpreter war selber ein Objekt, was man, ich weiß gar nicht, ob man tatsächlich mehrere Interpreter starten konnte, die Ecke fasse ich einfach zu selten an, aber auf jeden Fall arbeiten sie jetzt dran, dass es so umgearbeitet wird, dass mehrere Interpreter im Prozess jeder seinen eigenen Global Interpreter-Log kriegt.

00:58:48.670 --> 00:58:53.890
Und ich meine, das ist von der Arbeit her relativ logisch, was da zu tun ist.

00:58:54.210 --> 00:59:01.990
Es ist ein C-Programm, da gibt es halt, wenn man nicht aufpasst, globalen Scope, globale Variablen und die müssen Sie jetzt im Prinzip einmal komplett alle wegputzen,

00:59:02.110 --> 00:59:11.570
dass alle Daten, die irgendwas mit dem Interpreter zu tun haben, nicht globale Variablen sind, sondern dass die alle an eine Interpreterinstanz dran getackert werden.

00:59:12.030 --> 00:59:13.690
Und dann haben wir nämlich

00:59:13.690 --> 00:59:15.850
tatsächlich die Chance, Python-Code

00:59:15.850 --> 00:59:17.730
in einem Prozess über

00:59:17.730 --> 00:59:19.570
mehrere Threads parallel

00:59:19.570 --> 00:59:21.170
auszuführen. Und wenn man dann nämlich wieder

00:59:21.170 --> 00:59:23.630
die Techniken ins Spiel bringt zum Thema

00:59:23.630 --> 00:59:25.150
Shared Memory,

00:59:26.610 --> 00:59:27.830
dann geht das vielleicht sogar

00:59:27.830 --> 00:59:29.370
tatsächlich auch ganz gut leichtgewichtig.

00:59:30.930 --> 00:59:32.350
Und das klingt jetzt nach so einem

00:59:32.350 --> 00:59:32.870
ganz

00:59:32.870 --> 00:59:34.690
Kunstgriff, anstatt

00:59:34.690 --> 00:59:36.830
den GIL loszuwerden

00:59:36.830 --> 00:59:38.850
oder den Interpreter an der Stelle da weiter

00:59:38.850 --> 00:59:40.450
aufzubohren, einfach zu sagen, komm, dann

00:59:40.450 --> 00:59:42.430
mehrere Interpreter parallel,

00:59:42.750 --> 00:59:44.890
wir dröseln die Datenstrukturen so

00:59:44.890 --> 00:59:47.090
auf und dann kann halt jeder Interpreter

00:59:47.090 --> 00:59:48.090
in unterschiedlichen Prozessen

00:59:48.090 --> 00:59:50.910
laufen und siehe da,

00:59:50.990 --> 00:59:52.870
wir sind in der Lage, mit einem Prozess mehr CPUs

00:59:52.870 --> 00:59:54.830
auszulasten. Also das wäre tatsächlich

00:59:54.830 --> 00:59:57.090
nochmal, finde ich, ein interessanter Ansatz.

00:59:58.110 --> 00:59:58.250
Ja,

00:59:58.470 --> 01:00:00.290
das klingt tatsächlich sehr interessant.

01:00:00.290 --> 01:00:01.910
Ja, gerade wo jetzt die Kerne so mehr zunehmen,

01:00:02.090 --> 01:00:30.250
Ja, das ist natürlich auch so ein Dauerthema, wobei ich meine, die Fälle, wo man das wirklich, wirklich braucht, sind auch eher so beschränkt, würde ich mal sagen, weil die meisten Leute ja nicht, also ich meine, dass man CPU und, also dass man IOMultiplexen will, das kommt schon häufig vor, aber dass man das gleichzeitig mit viel CPU-Verbrauch macht, also wenn man nicht gerade einen Datenbank-Server schreibt oder so, würde ich jetzt sagen, gar nicht so super häufig.

01:00:30.910 --> 01:00:32.290
Nee, du willst ja immer

01:00:32.290 --> 01:00:34.450
eigentlich auch über mehr Prozesse skalieren können.

01:00:35.070 --> 01:00:36.030
Ja, klar. Natürlich.

01:00:36.830 --> 01:00:36.910
Ja.

01:00:40.050 --> 01:00:40.710
Genau, ich glaube,

01:00:40.790 --> 01:00:42.190
der Grund, warum das mit dem

01:00:42.190 --> 01:00:44.010
GIL halt so ein Problem ist, ist auch da irgendwie das,

01:00:44.290 --> 01:00:46.170
wie Python den Hauptspeicher

01:00:46.170 --> 01:00:48.330
verwaltet, ist da

01:00:48.330 --> 01:00:49.910
so ein Riesenproblem, weil

01:00:49.910 --> 01:00:52.210
das Reference-Counting, man müsste das alles

01:00:52.210 --> 01:00:53.770
irgendwie locken eigentlich. Also,

01:00:54.190 --> 01:00:56.130
es ist jetzt auch so, was ich mal

01:00:56.130 --> 01:00:58.210
darüber gehört habe, aber schon wieder

01:00:58.210 --> 01:00:58.730
ein bisschen her.

01:01:00.310 --> 01:01:02.010
Und das kann man natürlich machen, man kann irgendwie

01:01:02.010 --> 01:01:04.290
vorher jeder Operation, die man

01:01:04.290 --> 01:01:05.770
irgendwie beim Reference-Routing macht,

01:01:06.270 --> 01:01:08.310
sagen, okay, wir locken

01:01:08.310 --> 01:01:09.770
das jetzt hier oder halt irgendwie

01:01:09.770 --> 01:01:16.130
ja, sozusagen den Zugriff

01:01:16.130 --> 01:01:18.230
dann exklusiv machen, damit sich da irgendwie nichts

01:01:18.230 --> 01:01:20.290
überschreibt.

01:01:20.610 --> 01:01:22.030
Aber dann wird halt,

01:01:22.530 --> 01:01:23.930
wenn man das einfach so macht, glaube ich,

01:01:23.930 --> 01:01:25.530
das wird 40 Mal so langsam.

01:01:26.570 --> 01:01:27.830
Und dann haben irgendwelche Leute

01:01:27.830 --> 01:01:29.930
sehr unheilige Dinge getan und rumgetrickst

01:01:29.930 --> 01:01:31.910
und haben es auf Faktor 20 irgendwie runtergekriegt

01:01:31.910 --> 01:01:33.870
oder so, wovon schon niemand geglaubt hat, dass das

01:01:33.870 --> 01:01:34.890
möglich wäre.

01:01:36.730 --> 01:01:37.850
Aber das

01:01:37.850 --> 01:01:39.670
ist halt so das Problem. Man kann es halt nicht

01:01:39.670 --> 01:01:40.770
also

01:01:40.770 --> 01:01:43.590
mit der Art, wie das

01:01:43.590 --> 01:01:45.770
Speichermanagement, also mit Reference-Routing funktioniert,

01:01:46.530 --> 01:01:47.830
geht das halt wohl

01:01:47.830 --> 01:01:49.850
nicht gut. Und ja, die einzige

01:01:49.850 --> 01:01:51.770
gute Möglichkeit, also wie es halt weiterhin schnell

01:01:51.770 --> 01:01:53.510
bleiben kann, ist, dass man sagt,

01:01:53.590 --> 01:01:55.410
nee, es gibt nur einen

01:01:55.410 --> 01:01:57.770
Thread, der halt irgendwie daran Dinge

01:01:57.770 --> 01:01:58.990
am Reference-Routing ändern kann.

01:01:59.650 --> 01:02:01.610
Ja, dafür braucht man halt den GIL irgendwie.

01:02:02.310 --> 01:02:03.830
Aber ja, also das mit den mehreren Interpretern,

01:02:03.910 --> 01:02:05.770
das klingt auch sehr interessant. Also da bin ich mal

01:02:05.770 --> 01:02:06.610
gespannt.

01:02:07.830 --> 01:02:09.770
Weil das ist ja auch mal so ein Standard-Argument,

01:02:10.010 --> 01:02:11.890
was an Python halt nicht so toll ist

01:02:11.890 --> 01:02:12.730
gegenüber anderen.

01:02:14.890 --> 01:02:16.050
Was aber auch für den

01:02:16.050 --> 01:02:17.730
Alltag gar kein

01:02:17.730 --> 01:02:18.730
Problem ist.

01:02:19.170 --> 01:02:20.030
Nicht wirklich, nein.

01:02:21.730 --> 01:02:23.730
Und das ist ja auch gerade das Tooling über

01:02:23.730 --> 01:02:25.930
Multiprocessing ist halt inzwischen extrem

01:02:25.930 --> 01:02:27.890
geschmeidig geworden. Sowohl, also auf der einen

01:02:27.890 --> 01:02:29.590
Seite halt für I.O., Multiplexing ist

01:02:29.590 --> 01:02:31.710
Async I.O. extrem angenehm

01:02:31.710 --> 01:02:33.430
geworden und mit

01:02:33.430 --> 01:02:35.470
Multiprocessing und so Prozesse starten,

01:02:36.270 --> 01:02:37.450
das tut

01:02:37.450 --> 01:02:38.110
meistens,

01:02:39.010 --> 01:02:41.690
tut vor allem auf eine Art und

01:02:41.690 --> 01:02:43.030
Weise, wo man weniger

01:02:43.030 --> 01:02:45.710
scharf nachdenken muss.

01:02:45.850 --> 01:02:47.490
Threads haben halt das Problem, das wissen wir seit

01:02:47.490 --> 01:02:49.610
20 Jahren, dass du dir ganz

01:02:49.610 --> 01:02:51.410
schnell halt in den Fuß schießt und

01:02:51.410 --> 01:02:53.690
Dinge passieren, die du nicht willst

01:02:53.690 --> 01:02:55.050
und wenn du es halt über so Prozesse

01:02:55.050 --> 01:02:57.430
auftrennst, hast du eine klare I.O.-Grenze

01:02:57.430 --> 01:02:59.270
und wenn du async.io machst, dann hast du halt

01:02:59.270 --> 01:03:01.550
eben das Thema, dass du selber bestimmst,

01:03:01.610 --> 01:03:03.250
wann du die Kontrolle über

01:03:03.250 --> 01:03:05.310
deinen Code-Pfad abgibst

01:03:05.310 --> 01:03:05.750
und wann nicht.

01:03:08.750 --> 01:03:11.210
Ich glaube, das ist nochmal so eine eigene Folge irgendwie.

01:03:11.330 --> 01:03:13.350
Async und Shedding in Python, da haben wir auch gar nicht

01:03:13.350 --> 01:03:15.310
genug für gemacht. Das ist auch jedes Mal, glaube ich,

01:03:15.370 --> 01:03:17.290
mindestens eine Folge, wahrscheinlich

01:03:17.290 --> 01:03:19.270
komplett. Das ist ein alles ziemlich

01:03:19.270 --> 01:03:20.590
fette Brocken.

01:03:21.630 --> 01:03:23.210
Was mir auffällt, ist, dass man bei async

01:03:23.210 --> 01:03:25.330
wahrscheinlich tatsächlich dann,

01:03:25.330 --> 01:03:26.470
wenn man das in einer

01:03:26.470 --> 01:03:28.930
hier nochmal rausholen möchte,

01:03:29.010 --> 01:03:30.730
was, glaube ich, wirklich eine gute Idee ist, dann

01:03:30.730 --> 01:03:32.310
müssten wir uns wahrscheinlich was einfallen lassen, um

01:03:32.310 --> 01:03:34.930
Code-Beispiele während in den Stream

01:03:34.930 --> 01:03:35.910
irgendwie einzubetten.

01:03:36.550 --> 01:03:38.650
Ja, genau, das ist natürlich auch so eine

01:03:38.650 --> 01:03:40.890
Sache, wie kriegt man das eigentlich gut

01:03:40.890 --> 01:03:42.570
hin? Da habe ich auch schon mal drüber nachgedacht, aber

01:03:42.570 --> 01:03:44.630
auch noch keine Lösung gefunden. Ich meine,

01:03:45.010 --> 01:03:47.390
man könnte natürlich auch irgendwie eine Videogeschichte

01:03:47.390 --> 01:03:48.970
dazu machen, aber das ist halt auch irgendwie alles.

01:03:49.030 --> 01:03:50.270
Ja, ich höre meinen Meinten.

01:03:50.270 --> 01:03:52.890
Ja, genau.

01:03:53.010 --> 01:03:54.350
Kann ich noch ein Video einblenden, irgendwo auf der

01:03:54.350 --> 01:03:55.710
Frontscheibe von meinem Wagen?

01:03:55.990 --> 01:03:58.610
Nee, das widerspricht

01:03:58.610 --> 01:04:00.230
irgendwie so dem, wie es benutzt wird.

01:04:01.110 --> 01:04:02.510
Ich weiß es auch nicht.

01:04:03.270 --> 01:04:04.450
Das muss man mal überlegen. Aber

01:04:04.450 --> 01:04:06.390
prinzipiell wäre das natürlich schon eine interessante

01:04:06.390 --> 01:04:07.570
Geschichte, dass man das halt

01:04:07.570 --> 01:04:10.470
irgendwie dabei hätte. Also

01:04:10.470 --> 01:04:12.210
zumindest irgendwie in den Shownotes auf der Website.

01:04:12.590 --> 01:04:14.370
So augmentiert. Ja, ich glaube, Bonus ist

01:04:14.370 --> 01:04:16.310
glaube ich gleich ausreichend. Wenn jemand nachschauen will, wie das

01:04:16.310 --> 01:04:18.630
dann geht, dann haben wir das so als Mini-Tutorial

01:04:18.630 --> 01:04:20.250
drin. Wenn sich jemand dann die Mühe machen möchte, das

01:04:20.250 --> 01:04:22.050
mitzudokumentieren von uns, dann

01:04:22.050 --> 01:04:24.530
ja, reicht ja.

01:04:24.710 --> 01:04:26.310
Also Links sind ja dabei, also ich würde sagen,

01:04:26.510 --> 01:04:28.150
das passt. Ich weiß, ihr der anderen Meinung seid,

01:04:28.190 --> 01:04:30.010
schreibt uns gerne. Also wir sind immer auf euer Feedback.

01:04:30.010 --> 01:04:31.350
Oder vielleicht hat jemand schon mal was gesehen,

01:04:31.470 --> 01:04:33.590
wo das gut gemacht wurde.

01:04:34.470 --> 01:04:35.990
Also ich habe tatsächlich, also das ist irgendwie

01:04:35.990 --> 01:04:38.130
so das Level, auf dem ich jetzt noch nicht so ganz angekommen bin,

01:04:38.270 --> 01:04:39.670
dass ich halt große Probleme habe, immer noch so

01:04:39.670 --> 01:04:42.030
zu verstehen, wann benutze ich denn jetzt was und was ist denn

01:04:42.030 --> 01:04:43.890
jetzt überhaupt ein Swett und wann nehme ich den, wann nehme ich jetzt

01:04:43.890 --> 01:04:45.970
irgendwie Async und vielleicht doch

01:04:45.970 --> 01:04:47.950
irgendwie anderer Taskmanager oder sowas

01:04:47.950 --> 01:04:49.970
dazwischen. Das ist noch nicht so ganz angekommen.

01:04:50.850 --> 01:04:52.050
Und ich glaube, das wäre auf jeden Fall nochmal spannend

01:04:52.050 --> 01:04:53.930
zu verstehen, warum, wieso, weshalb ich denn jetzt welche

01:04:53.930 --> 01:04:55.930
Technik an und wann das so best practice ist

01:04:55.930 --> 01:04:57.230
für was überhaupt.

01:04:58.750 --> 01:04:59.790
Ja, auf jeden Fall.

01:05:00.250 --> 01:05:00.950
Ja, eigene Folge.

01:05:01.550 --> 01:05:03.990
Ja, der

01:05:03.990 --> 01:05:05.670
letzte Punkt, der mir beim

01:05:05.670 --> 01:05:07.890
Sprint aufgefallen war, war, dass Guido

01:05:07.890 --> 01:05:09.810
jetzt schließt sich so für heute wahrscheinlich

01:05:09.810 --> 01:05:11.010
so der Themenkreis ein bisschen,

01:05:11.570 --> 01:05:13.750
dass Guido nämlich angefangen hat,

01:05:13.830 --> 01:05:16.090
eins der im Kern befindlichsten

01:05:16.090 --> 01:05:17.830
Bauteile von Python, nämlich der

01:05:17.830 --> 01:05:19.350
Puzzle-Generator für Python selber,

01:05:20.270 --> 01:05:21.950
wo er tatsächlich sich

01:05:21.950 --> 01:05:22.610
damals

01:05:22.610 --> 01:05:25.610
89, 90 und dann

01:05:25.610 --> 01:05:26.510
über die 90ern weg

01:05:26.510 --> 01:05:28.770
das Herzstück

01:05:28.770 --> 01:05:31.310
der Programmierung einer Sprache

01:05:31.310 --> 01:05:33.830
nämlich Parser, Compiler

01:05:33.830 --> 01:05:34.650
Interpreter

01:05:34.650 --> 01:05:37.510
das er damals halt

01:05:37.510 --> 01:05:39.110
selbst eingebaut hatte und

01:05:39.110 --> 01:05:41.650
er wohl die letzten Jahre immer mal angesprochen

01:05:41.650 --> 01:05:43.690
wurde auf einen ganz spezifischen

01:05:43.690 --> 01:05:45.530
Typ von Parser

01:05:45.530 --> 01:05:47.970
Generator, nämlich einen sogenannten Pack-Parser

01:05:47.970 --> 01:05:49.650
da hat er

01:05:49.650 --> 01:05:51.390
sich dran gemacht, tatsächlich dieses Stück komplett

01:05:51.390 --> 01:05:54.770
noch mal auseinanderzunehmen, neu aufzubauen,

01:05:55.950 --> 01:05:57.850
weil das wohl tatsächlich dann Einfluss hat

01:05:57.850 --> 01:06:01.410
auf die später mal Parsing-Performance auf der einen Seite

01:06:01.410 --> 01:06:02.850
und aber auch welche Sprachkonstrukte

01:06:02.850 --> 01:06:05.730
sich eigentlich wie elegant definieren lassen,

01:06:05.970 --> 01:06:09.850
mit wie viel Hex man eigentlich die Sprache definieren muss,

01:06:09.850 --> 01:06:14.090
um den Parser dazu zu zwingen, dass er tut, was man will.

01:06:15.970 --> 01:06:18.570
Und er hat eine ganze Reihe von Blogposts schon zugeschrieben,

01:06:18.670 --> 01:06:19.770
die entstehen gerade noch,

01:06:19.850 --> 01:06:25.990
aber er hat immerhin schon mal eine Gesamtübersicht aller, ich glaube, acht oder zehn vorhandenen

01:06:25.990 --> 01:06:29.950
und geht immer recht detailliert in der Anwendung durch, in der Motivation

01:06:29.950 --> 01:06:33.450
und auch wie das ganz konkret für Python aussieht, was er da wie zusammensetzt.

01:06:33.510 --> 01:06:35.330
Das ist ein sehr spannend zu lesendes Thema.

01:06:36.690 --> 01:06:38.730
Und das hat mich halt vor allem deshalb beschäftigt,

01:06:38.730 --> 01:06:41.930
weil ich die letzten Wochen immer so ein bisschen wieder mit dem Thema zu tun hatte,

01:06:42.570 --> 01:06:49.150
für einen bestimmten Anwendungsfall Python nativ zu benutzen oder mit einer DSL

01:06:49.150 --> 01:06:51.170
und wenn man DSLs macht,

01:06:51.570 --> 01:06:53.170
eine externe oder eine eingebettete.

01:06:53.890 --> 01:06:55.410
Eine Domain-Specific-Language.

01:06:56.310 --> 01:06:57.490
Also es gibt ein Projekt

01:06:57.490 --> 01:06:59.290
von mir, das ist das

01:06:59.290 --> 01:07:00.890
Bateau, das ist so ein Deployment-Werkzeug

01:07:00.890 --> 01:07:03.510
und da gibt es

01:07:03.510 --> 01:07:05.310
sowohl einen deklarativen

01:07:05.310 --> 01:07:07.390
Anteil von wie definiere

01:07:07.390 --> 01:07:09.310
ich, wie meine Anwendung

01:07:09.310 --> 01:07:10.830
deployed werden soll im Allgemeinen

01:07:10.830 --> 01:07:13.230
und dann auch so einen imperativen von

01:07:13.230 --> 01:07:15.350
ja, wie kommt denn jetzt die Datei auf die Platte und so

01:07:15.350 --> 01:07:17.450
und da habe ich

01:07:17.450 --> 01:07:19.450
mich damals dafür entschieden, dass ich das innerhalb

01:07:19.450 --> 01:07:21.110
von Python mache mit einer reinen

01:07:21.110 --> 01:07:23.290
API und Python

01:07:23.290 --> 01:07:25.510
ist ja keine Sprache, in der Domain-Specific

01:07:25.510 --> 01:07:27.230
Languages so eine große

01:07:27.230 --> 01:07:29.250
Rolle spielen. Also in Ruby

01:07:29.250 --> 01:07:31.030
ist es ganz typisch, da ist die Syntax

01:07:31.030 --> 01:07:33.190
für geeignet, dass du das so

01:07:33.190 --> 01:07:35.130
dir zurechtlegst, dass du im Prinzip

01:07:35.130 --> 01:07:36.950
etwas hast, das sieht kaum noch nach Ruby aus

01:07:36.950 --> 01:07:38.870
und du musst aber keinen eigenen Parser

01:07:38.870 --> 01:07:40.710
schreiben, weil du das Ruby so

01:07:40.710 --> 01:07:43.410
sozusagen gezüchtet hast,

01:07:43.730 --> 01:07:45.390
dass es dann wie was anderes aussieht

01:07:45.390 --> 01:07:47.390
und es kommt auch aus den funktionalen

01:07:47.390 --> 01:07:48.330
Sprachen aus

01:07:48.330 --> 01:07:51.570
Lisp und Scheme, die haben alle ja so Makros

01:07:51.570 --> 01:07:53.350
wie auch C, wo du dir dann so

01:07:53.350 --> 01:07:55.030
komplexe Makros definieren kannst, dass du

01:07:55.030 --> 01:07:57.530
im Prinzip die drunterliegende

01:07:57.530 --> 01:07:59.450
Sprache nicht mehr wiedererkennst. Und das ist in Python

01:07:59.450 --> 01:08:00.370
aber gar nicht so üblich.

01:08:02.030 --> 01:08:03.150
In Python gibt es eher solche,

01:08:03.630 --> 01:08:05.650
da nennt man die dann Domain-Specific Libraries,

01:08:06.450 --> 01:08:07.570
SQL Alchemy ist so ein Beispiel,

01:08:08.350 --> 01:08:09.290
die dir dann einfach

01:08:09.290 --> 01:08:10.750
eine sehr fluffige API

01:08:10.750 --> 01:08:13.290
liefern, die man benutzen kann

01:08:13.290 --> 01:08:15.330
und du nicht das Gefühl hast,

01:08:15.770 --> 01:08:17.250
Brüche zu haben zwischen dem, was

01:08:17.250 --> 01:08:24.470
Den simplen Anspruch, irgendwie so eine Grammatik zu entwickeln, um die Probleme, die ein bisschen komplexer sind, in einfacherer Logik zu beschreiben.

01:08:24.990 --> 01:08:54.090
Ja, und dass du halt auch wenig Brüche hast. Man nennt das halt in der Informatik ein Impedance-Mismatch, wenn du halt bei SQL Alchemy, wenn du SQL hast, dann ist das halt so eine deklarative Sprache und wenn du dann aber diese Statements dynamisch zusammenbauen möchtest, dann hast du halt irgendwann nur noch, ja ich kann irgendwelche Strings generieren, aber dann hast du keine Ahnung mehr, ob die jetzt syntaktisch korrekt sind, ob dir beim Quoting was kaputt geht.

01:08:54.090 --> 01:09:06.350
Das nennt man halt einen Impedance-Mismatch, also die Audio-Techniker können das bestimmt auf Deutsch übersetzen, wenn du halt nicht passende Widerstände anschließt. Das hat keinen guten Sound.

01:09:08.930 --> 01:09:35.390
Und dafür nehmen viele Umgebungen Embedded Domain-Specific Languages, also die du in die eigentliche Programmiersprache halt einbetten kannst und in Python sind die Libraries eher so das Thema, wie SQL Alchemy oder auch Requests, bei denen einfach die API so geschmeidig gemacht ist, dass du das Gefühl hast, du kannst konzeptionell und syntaktisch, so wie du es runtertippst, auf einer Ebene arbeiten und hast dann nicht ständig Übersetzungsverluste dazwischen.

01:09:36.110 --> 01:09:54.290
Und da gibt es tatsächlich inzwischen eine Reihe von, die Pack-Parser kommen halt genau aus diesem Umfeld von, du kannst eine Sprache, eine Metasprache modellieren, die dann wiederum sich in Python zum Beispiel schnell selber parsen lässt.

01:09:54.290 --> 01:10:03.890
Und ich hatte auch gesehen, es gibt Pack-Libraries für Python, die dann wiederum mit dem Python, was du halt hast, interagieren können.

01:10:06.050 --> 01:10:13.150
Das ist ja erstmal so ein bisschen Brainfuck-Niveau und da bin ich aber dann tatsächlich, weil ich mich gerade mit diesem DSL-Thema jetzt beschäftigt hatte,

01:10:13.390 --> 01:10:18.530
darauf angesprungen, dass die Pack-Pause und das, wie du das gerade anfasst, wohl doch irgendwie interessant sein müssen.

01:10:18.950 --> 01:10:42.570
Da gibt es auch ein paar Doktorarbeiten zum Thema, wie kann ich eigentlich schnell Sprachfeatures mal entwickeln und testen und experimentieren und genau das ist das, wo ich gerade davor stehe, will ich eine verballhornte Form von Python haben, die irgendwie so ein bisschen Python ist, aber nicht oder will ich es wie eine ganz neue Sprache mal ausprobieren. Genau, das war eine schöne Anregung, die ich mir aus dem Core Sprint mitgenommen habe.

01:10:42.770 --> 01:11:04.430
Ja, warum denn? Aber warum muss das eigentlich? Ich meine, wenn ich da so ein anderes populäres DevOps-Tool betrachte, so Ansible, da wird ja YAML verwendet. Warum reicht das nicht aus? Oder ist das, ich meine, deklarativ ist das. Man kann natürlich nicht so viel damit machen.

01:11:04.430 --> 01:11:33.890
Genau, also Bateau ist interessanterweise ziemlich glatt genauso alt wie Ansible. Ich glaube, die Repos sind beide mit zwei Wochen Versatz angefangen worden, also 2011, 2012 und wir kamen damals von schon einem deklarativen Format, wo wir ständig das Problem hatten, dass wir die deklarativen Formate, also YAML ist ja jetzt erstmal noch kein Datenformat und noch kein Format,

01:11:33.890 --> 01:11:56.450
Also insofern ist es natürlich deklarativ, weil Daten sozusagen in sich deklarativ sind, aber da wird dann teilweise halt eine Finite State Machine mit beschrieben, also tu das, tu das, tu das, hat teilweise auch selber wieder Eigenschaften von der Programmiersprache mit Schleifenbildung und solchen Dingen.

01:11:56.450 --> 01:11:58.570
und was mir so ein bisschen

01:11:58.570 --> 01:12:00.410
immer wieder die Fingernägel

01:12:00.410 --> 01:12:02.410
hochrollen, ist halt, dass

01:12:02.410 --> 01:12:04.450
da drinnen dann auch noch Ginger-Templates

01:12:04.450 --> 01:12:05.190
abgesenkt werden.

01:12:06.870 --> 01:12:08.470
Und das haut mir so

01:12:08.470 --> 01:12:10.330
ein bisschen dem

01:12:10.330 --> 01:12:11.950
Pferd die Krone aus dem Fass.

01:12:12.470 --> 01:12:16.550
da hat man

01:12:16.550 --> 01:12:18.230
dann so viel aneinander gestrickt und

01:12:18.230 --> 01:12:20.390
wenn man so in der DevOps-Community rumhört,

01:12:20.510 --> 01:12:22.330
ist halt auch so ein bisschen eigentlich die Aussage mit

01:12:22.330 --> 01:12:24.190
Jamel ist so das unvermeidbare Übel,

01:12:24.830 --> 01:12:26.930
Aber so richtig cool finden kann es eigentlich keiner.

01:12:27.970 --> 01:12:29.950
Und deswegen hatte ich mich damals entschieden zu sagen,

01:12:30.010 --> 01:12:30.530
nee, mache ich nicht.

01:12:30.630 --> 01:12:33.990
Ich mache etwas, wo ich in Python deklarativ arbeiten kann.

01:12:34.070 --> 01:12:35.130
Und aber immer, wenn es sein muss,

01:12:35.530 --> 01:12:38.370
kann ich die volle Sprachpower von Python halt wieder rausholen

01:12:38.370 --> 01:12:40.690
und dem Ding meinen Willen aufzwingen.

01:12:43.210 --> 01:12:47.750
Naja, das ist halt, ja, ist natürlich dann schwieriger,

01:12:48.030 --> 01:12:49.850
irgendwelche Voraussagen darüber zu machen,

01:12:49.930 --> 01:12:50.750
was das denn dann tut.

01:12:51.130 --> 01:12:54.150
Weil bei YAML kann ich das vielleicht dann noch so halbwegs oder so.

01:12:54.250 --> 01:13:21.610
Aber das ist in die Tasche gelogen, weil Jamel ist halt eben nur eine Oberflächenstruktur und die tiefe Struktur drinnen, wenn das Jamel selber wieder die Komplexität hat von Schleifen und solchen Dingen und sich dann noch kombiniert mit Ginger, wo dann manchmal je nach Werkzeug nicht klar ist, ob das Ginger als aus dem Ginger fällt dann das Jamel raus oder das, was da dann auf der jeweiligen Zeile steht, kommt erst dann später zur Laufzeit ins Ginger rein.

01:13:21.610 --> 01:13:25.430
Und da können sich auch ganz fiese Kombinationen draus ergeben.

01:13:26.590 --> 01:13:31.250
Und für uns war da die Frage eher, das ein bisschen leichtgewichtiger zu halten.

01:13:32.070 --> 01:13:36.190
Aber, auch das ist sozusagen ein Rückgriff jetzt auf den Walrus-Operator,

01:13:36.670 --> 01:13:39.530
weil Python inzwischen ja syntaktisch relativ vielfältig ist,

01:13:40.750 --> 01:13:45.070
ist da die Lesbarkeit irgendwann schon auch das Problem, wenn es zu komplex wird.

01:13:45.070 --> 01:13:49.010
Und wir haben so an der einen Stelle eben das Thema, dass wir eine Syntax brauchen,

01:13:49.470 --> 01:13:50.990
bräuchten,

01:13:51.470 --> 01:13:53.630
3.8 könnte es jetzt, wo ich gleichzeitig

01:13:53.630 --> 01:13:55.450
etwas mit einer Expression

01:13:55.450 --> 01:13:57.550
mir ranziehe und zuweise

01:13:57.550 --> 01:13:59.770
und dann weiterverarbeite.

01:13:59.890 --> 01:14:01.230
Das wäre ganz nett, aber

01:14:01.230 --> 01:14:03.550
da überlege ich tatsächlich gerade auch

01:14:03.550 --> 01:14:04.750
eben, ob sowas wie ein Pack,

01:14:05.210 --> 01:14:07.330
der sich gut integriert in die Laufzeit

01:14:07.330 --> 01:14:08.470
von dem

01:14:08.470 --> 01:14:11.390
Python, was da ist, nicht die Gelegenheit

01:14:11.390 --> 01:14:13.490
gibt, da nochmal auch über eine Sprache

01:14:13.490 --> 01:14:14.970
nachzudenken, die das eigentlich besser kann.

01:14:17.050 --> 01:14:17.490
Interessant.

01:14:18.630 --> 01:14:20.610
Also auf jeden Fall sehr komplex, das war jetzt kein ganz

01:14:20.610 --> 01:14:22.330
Anfänger-Thema, wenn ich das so sagen darf.

01:14:22.950 --> 01:14:24.950
War das die,

01:14:25.490 --> 01:14:27.290
das war keine Einstellungsvoraussetzung,

01:14:27.470 --> 01:14:27.950
oder?

01:14:28.850 --> 01:14:29.690
Nein, das war so.

01:14:32.010 --> 01:14:32.930
Wahrscheinlich haben wir auch viele Leute,

01:14:33.030 --> 01:14:34.650
die das genau besonders besser interessiert

01:14:34.650 --> 01:14:36.590
und mehr interessiert, das, was du gerade erzählt hast.

01:14:37.110 --> 01:14:38.390
Ach, die Mischung macht es doch hoffentlich.

01:14:38.410 --> 01:14:39.710
Ja, ja, ja, absolut.

01:14:40.410 --> 01:14:42.430
Falls ihr nicht wisst, was Ginger ist, müsst ihr es einfach mal googeln,

01:14:42.530 --> 01:14:43.590
das ist eine kleine Template-Sprache.

01:14:46.730 --> 01:14:48.050
Ja, das ist

01:14:48.050 --> 01:14:50.470
ja, das ist halt auch wieder so ein ganz

01:14:50.470 --> 01:14:52.330
eigenes Feld. Ich glaube, also ich meine, ich würde

01:14:52.330 --> 01:14:54.470
sogar fast sagen, dass es auch

01:14:54.470 --> 01:14:56.610
eines der Dinge, für die Python viel benutzt

01:14:56.610 --> 01:14:58.590
wird, halt so Infrastrukturen hochziehen.

01:14:59.270 --> 01:15:00.170
Ich glaube, bei

01:15:00.170 --> 01:15:02.170
Facebook ist Python

01:15:02.170 --> 01:15:03.650
halt sozusagen die

01:15:03.650 --> 01:15:06.430
Sprache für alle Services, die irgendwelche

01:15:06.430 --> 01:15:07.710
operativen Geschichten

01:15:07.710 --> 01:15:10.070
machen hintendran und so.

01:15:10.530 --> 01:15:11.950
Und es gibt ja noch diverse,

01:15:12.110 --> 01:15:14.330
Ansible wird ja auch viel benutzt oder halt

01:15:14.330 --> 01:15:16.250
OpenStack und ach weiß der Teufel

01:15:16.250 --> 01:15:17.590
ganz viele Sachen.

01:15:18.050 --> 01:15:20.530
ja, aber

01:15:20.530 --> 01:15:22.470
es ist nicht so ein richtig einfaches Problem

01:15:22.470 --> 01:15:23.010
irgendwie.

01:15:28.410 --> 01:15:28.770
Ja.

01:15:30.090 --> 01:15:30.450
Ja.

01:15:30.730 --> 01:15:31.990
Ja, was haben wir denn?

01:15:32.330 --> 01:15:33.310
Ja, habt ihr noch was auf der Liste?

01:15:33.730 --> 01:15:35.450
Ja, meine Liste ist gerade unten angeschlagen.

01:15:35.990 --> 01:15:36.450
Ja, gut.

01:15:38.570 --> 01:15:40.570
Wir könnten noch irgendwelche Dinge picken zum Beispiel.

01:15:41.070 --> 01:15:42.110
Ja, der Pick der Woche

01:15:42.110 --> 01:15:42.830
ist natürlich dran.

01:15:43.030 --> 01:15:45.670
Der Monat muss ja fast fatal sagen, so lange wie wir

01:15:45.670 --> 01:15:46.890
die Folge gebraucht haben.

01:15:47.430 --> 01:15:49.130
Wir verbrochen wieder ein bisschen.

01:15:50.070 --> 01:15:50.510
Montagabend.

01:15:52.790 --> 01:15:55.730
Ich habe eine ganz nette Geschichte

01:15:55.730 --> 01:15:57.350
gesehen, nicht normalerweise, also

01:15:57.350 --> 01:15:58.250
wäre es ja Software, aber

01:15:58.250 --> 01:16:00.850
da habe ich jetzt gerade nichts.

01:16:01.950 --> 01:16:03.930
Aber eine andere

01:16:03.930 --> 01:16:04.970
Geschichte, die auch ganz

01:16:04.970 --> 01:16:07.710
nett ist, finde ich,

01:16:07.710 --> 01:16:09.530
es gibt jetzt ein Django-Forum.

01:16:11.990 --> 01:16:13.450
Ja, überhaupt, Django ist auch

01:16:13.450 --> 01:16:15.670
ganz interessant, gibt es jetzt bald

01:16:15.670 --> 01:16:16.530
wahrscheinlich irgendwie

01:16:16.530 --> 01:16:18.670
eine neue Version.

01:16:19.370 --> 01:16:19.550
3?

01:16:20.730 --> 01:16:23.590
Also erste Schritte

01:16:23.590 --> 01:16:25.490
dahin und

01:16:25.490 --> 01:16:26.710
das wird auch alles

01:16:26.710 --> 01:16:29.470
noch sehr spannend und

01:16:29.470 --> 01:16:30.490
es gibt jetzt halt auch

01:16:30.490 --> 01:16:33.690
ein Forum, wo man

01:16:33.690 --> 01:16:34.930
sich austauschen kann und das

01:16:34.930 --> 01:16:37.490
tatsächlich ziemlich nett aussieht,

01:16:37.590 --> 01:16:38.030
muss ich sagen.

01:16:38.030 --> 01:16:38.510
Also das

01:16:38.510 --> 01:16:40.350
sind

01:16:40.350 --> 01:16:49.890
Und ja, viele der Leute, die da viel machen im Projekt unterwegs und es gibt viele interessante Diskussionen.

01:16:49.890 --> 01:16:57.710
Ich war sehr überrascht, was da alles so geht, weil normalerweise ist ja mal Forum vielleicht irgendwie nicht etwas, wo man jetzt unbedingt hin will.

01:16:57.810 --> 01:16:59.310
Aber da, das war echt toll.

01:16:59.650 --> 01:17:03.590
Und wenn man sich mit Django beschäftigt und da Spaß dran hat, dann kann man sich das mal angucken.

01:17:03.730 --> 01:17:04.810
Das ist echt nett.

01:17:06.750 --> 01:17:26.090
Okay. Ich hatte gehört, tatsächlich in einem der Dango-Cars hatte irgendjemand Text-Blob erwähnt, das fand ich irgendwie ganz interessant. Das ist irgendwie für Sprachanalyse sehr wichtig, irgendwie auf NRTK aufgesetzt und macht dann irgendwie so Tags an, ja, setzt Satzteile dran und Sentimentanalyse und Tokenisierung und so was.

01:17:27.150 --> 01:17:28.630
Da wollte ich noch mal ein bisschen tiefer reingucken.

01:17:28.730 --> 01:17:30.150
Das sah sehr spannend aus und

01:17:30.150 --> 01:17:32.710
das soll wohl ganz cool auch funktionieren

01:17:32.710 --> 01:17:34.090
für größere

01:17:34.090 --> 01:17:36.570
Textoperationen. Wahrscheinlich eher mit

01:17:36.570 --> 01:17:37.730
Englisch, aber ja.

01:17:38.990 --> 01:17:40.010
Das ist mein Pick der Woche.

01:17:41.190 --> 01:17:41.910
Textblock, okay.

01:17:42.890 --> 01:17:44.550
Christian, hast du auch einen?

01:17:44.550 --> 01:17:46.430
Die Woche ist zu neu. Ich habe noch

01:17:46.430 --> 01:17:46.910
keinen Pick.

01:17:51.430 --> 01:17:52.430
Ich glaube, die Packs

01:17:52.430 --> 01:17:53.570
letzte Woche waren mein Pick.

01:17:54.490 --> 01:17:56.470
Das liegt auch mal am Gucken.

01:17:57.150 --> 01:17:58.470
Ein ganzes Peng, statt ein Peng zu auffassen.

01:17:59.050 --> 01:17:59.850
Ja, genau.

01:18:01.130 --> 01:18:03.090
Ja, dann sind wir tatsächlich wieder am Ende

01:18:03.090 --> 01:18:04.990
dieser Folge angelangt, dieser wunderschönen.

01:18:05.650 --> 01:18:07.010
Wo auch immer ihr gerade seid,

01:18:07.110 --> 01:18:08.310
wo auch immer ihr uns gehört habt, oder

01:18:08.310 --> 01:18:10.130
schönen Tag, schönen Abend, schöne Nacht

01:18:10.130 --> 01:18:12.210
und so weiter.

01:18:12.970 --> 01:18:14.570
Bleibt uns gewogen, habt viel Spaß.

01:18:15.070 --> 01:18:16.870
Kommt gut rein, wir hören uns. Achso, bevor ich das

01:18:16.870 --> 01:18:18.790
vergesse, ich wollte noch fragen, wenn ihr Fragen habt

01:18:18.790 --> 01:18:20.770
oder sowas, wir wollten ja nächstes Mal eine große

01:18:20.770 --> 01:18:22.870
Frage-Folge machen, wo wir den Jochen Löchern

01:18:22.870 --> 01:18:24.850
und ganz einfach eine Frage stellen,

01:18:24.850 --> 01:18:26.310
die in einer Minute alle beantworten muss.

01:18:26.610 --> 01:18:28.930
Falls ihr da irgendwelche habt, dann schickt

01:18:28.930 --> 01:18:31.190
die bitte. Ich kann dann immer noch hinterhertreten.

01:18:33.850 --> 01:18:34.770
Mich löchern, ja.

01:18:34.990 --> 01:18:36.410
Ja, genau. Das machen wir.

01:18:37.510 --> 01:18:39.030
Deswegen, wenn ihr Fragen habt, einfach raus damit.

01:18:39.490 --> 01:18:40.670
Achso, und weißt ihr, noch eine

01:18:40.670 --> 01:18:42.790
andere Geschichte. Wir wollten demnächst auch mal was

01:18:42.790 --> 01:18:44.490
über die Standard-Library machen, also so ein bisschen

01:18:44.490 --> 01:18:46.870
erzählen, was das so gibt. Ja, das war auch eine Anregung,

01:18:47.030 --> 01:18:48.810
die wir per Mail bekommen haben und das war eigentlich,

01:18:48.990 --> 01:18:50.710
fanden wir ganz gut, die Idee und

01:18:50.710 --> 01:18:52.350
vielleicht können wir da einfach mal so durchgehen, weil

01:18:52.350 --> 01:18:54.810
da sind ja viele verborgene Schätze eigentlich drin,

01:18:55.070 --> 01:18:56.950
die man mal irgendwie näher betrachten könnte.

01:18:57.050 --> 01:18:59.110
Und falls ihr auch da irgendwie einen Wunsch habt, was wir denn besonders mal

01:18:59.110 --> 01:19:00.570
belohnen sollen, also auch raus damit.

01:19:02.690 --> 01:19:03.450
Ja, vielen Dank, Tony,

01:19:03.530 --> 01:19:04.370
dass du da warst. Vielen Dank, Christian.

01:19:05.030 --> 01:19:07.310
Sehr gerne, jederzeit wieder. Wieder sehr schön. Ich habe wieder viel gelernt heute.

01:19:08.770 --> 01:19:08.890
Ja.

01:19:09.890 --> 01:19:11.050
Bleibt uns gewogen und bis demnächst.

01:19:11.050 --> 01:19:13.110
Dann hoffen wir einfach mal, dass wir es ein bisschen schneller demnächst

01:19:13.110 --> 01:19:15.150
wieder hinkriegen. Ja, wir werden uns diesmal nicht

01:19:15.150 --> 01:19:16.310
wieder zweieinhalb Monate Zeit lassen.

01:19:17.990 --> 01:19:18.870
Alles klar. Gut.

01:19:19.270 --> 01:19:20.370
Ja, bis dann. Tschüss.
