WEBVTT

00:00:00.680 --> 00:00:03.580
Ja, hallihallo, herzlich willkommen zum Python-Podcast.

00:00:03.580 --> 00:00:06.780
Heute haben wir ein Jubiläum und hier haben wir die zehnte Episode.

00:00:06.780 --> 00:00:07.800
Das ist ja hervorragend.

00:00:07.800 --> 00:00:08.180
Cool, ne?

00:00:08.180 --> 00:00:08.460
Hurra!

00:00:08.460 --> 00:00:09.560
Zehn Stück schon geschaffen.

00:00:09.560 --> 00:00:11.580
Ja, und es ist noch eine kleine andere Premiere.

00:00:11.580 --> 00:00:16.540
Und zwar haben wir heute das erste Mal eine Remote-Sitzung, einen Studiogast quasi, der

00:00:16.540 --> 00:00:18.440
nicht bei uns im Garten sitzt.

00:00:18.440 --> 00:00:20.120
Wo sitzt du denn, Christian?

00:00:20.120 --> 00:00:20.440
Hi!

00:00:20.440 --> 00:00:21.400
Hi!

00:00:21.400 --> 00:00:24.100
Ich sitze, ihr sitzt im Garten.

00:00:24.100 --> 00:00:26.020
Das wird da gar nicht so angehört.

00:00:26.020 --> 00:00:26.360
Ja.

00:00:26.360 --> 00:00:26.940
Ah, okay.

00:00:26.940 --> 00:00:28.160
Ich gucke in meinem Garten.

00:00:28.160 --> 00:00:29.180
Ich sitze in meinem Homeoffice.

00:00:29.260 --> 00:00:30.260
Ich sitze in der Nähe von Stuttgart.

00:00:30.260 --> 00:00:31.960
Ah, okay.

00:00:31.960 --> 00:00:34.920
Das ist eine ganz schöne Remote-Verbindung hier von Düsseldorf nach Stuttgart durch die

00:00:34.920 --> 00:00:35.480
heimische Republik.

00:00:35.480 --> 00:00:36.800
Wundervoll.

00:00:36.800 --> 00:00:37.680
Was machen wir heute?

00:00:37.680 --> 00:00:42.380
Wir machen heute DevOps ein bisschen und wie man Python so ausschickt.

00:00:42.380 --> 00:00:46.900
Wenn man irgendwie Python-Applikationen entwickelt hat, dann möchte man ja auch irgendwie die

00:00:46.900 --> 00:00:51.180
sozusagen dann produktiv benutzen können, dass andere Leute sie sehen und so.

00:00:51.180 --> 00:00:53.920
Und dann, genau, muss man da auch noch Dinge tun, damit das geht.

00:00:53.920 --> 00:00:54.720
Und ja.

00:00:54.720 --> 00:00:56.720
Ja, so ein Zirkus.

00:00:56.720 --> 00:00:57.520
Genau.

00:00:57.520 --> 00:00:58.420
Genau.

00:00:58.420 --> 00:00:58.740
Dann.

00:00:59.260 --> 00:00:59.660
Danke.

00:00:59.660 --> 00:01:03.140
Ja, genau.

00:01:03.140 --> 00:01:04.300
Vielleicht ein bisschen.

00:01:04.300 --> 00:01:07.180
Stellst du dich einfach mal vor, Christian?

00:01:07.180 --> 00:01:08.660
Und dann, genau.

00:01:08.660 --> 00:01:09.380
Genau.

00:01:09.380 --> 00:01:10.760
Ja, kann ich gerne machen.

00:01:10.760 --> 00:01:13.620
Also, ich bin Christian, auch bekannt als Toini.

00:01:13.620 --> 00:01:16.060
Das ist dann auch mein Twitter-Handle.

00:01:16.060 --> 00:01:21.340
Und ich müsste mich jetzt eigentlich fast als Urgestein in der Python-Szene sozusagen

00:01:21.340 --> 00:01:22.740
bezeichnen.

00:01:22.740 --> 00:01:25.940
Deswegen bist du auch in unserer Jubiläumsausgabe dabei.

00:01:25.940 --> 00:01:28.480
Ja, mein Herz wird warm.

00:01:29.260 --> 00:01:32.320
Ich mache Python jetzt seit

00:01:32.320 --> 00:01:34.300
99, glaube ich, in der Größenordnung

00:01:34.300 --> 00:01:36.440
Ich weiß sogar, dass ich irgendwann

00:01:36.440 --> 00:01:38.440
95, 96

00:01:38.440 --> 00:01:39.640
als erster mal Internet hatte

00:01:39.640 --> 00:01:42.120
Hat mich in irgendeinem obskuren

00:01:42.120 --> 00:01:44.020
Chatraum damals, das war noch

00:01:44.020 --> 00:01:46.200
mit AOL oder so, hat irgendwer schon mal

00:01:46.200 --> 00:01:48.260
Python gesagt, insofern

00:01:48.260 --> 00:01:50.100
mein frühester Kontakt war glaube ich mit

00:01:50.100 --> 00:01:51.380
14 oder so

00:01:51.380 --> 00:01:53.900
Ja, also

00:01:53.900 --> 00:01:56.140
relativ viel mitgemacht, ich habe die

00:01:56.140 --> 00:01:57.400
Python User Group

00:01:57.400 --> 00:02:00.000
aufgebaut, die ja aus der deutschen

00:02:00.000 --> 00:02:02.020
Soap User Group damals hervorgegangen ist, ich habe lange

00:02:02.020 --> 00:02:04.020
Soap gemacht, da Kernentwicklung

00:02:04.020 --> 00:02:06.060
viel mit den Amerikanern zusammen, habe mal

00:02:06.060 --> 00:02:07.960
auf diversen Sprints so um die

00:02:07.960 --> 00:02:10.540
Jahrtausendwende rum mit Guido rumgemacht

00:02:10.540 --> 00:02:12.220
Wir haben irgendwelche komischen

00:02:12.220 --> 00:02:14.220
Soap Sachen geschrieben, die heutzutage

00:02:14.220 --> 00:02:15.000
nicht mehr existieren

00:02:15.000 --> 00:02:18.020
Der war ja auch bei der Soap bei der Firma

00:02:18.020 --> 00:02:18.800
irgendwie beschäftigt

00:02:18.800 --> 00:02:21.160
Soap hat damals

00:02:21.160 --> 00:02:24.040
tatsächlich eine ganze Zeit lang die Python Labs

00:02:24.040 --> 00:02:25.300
bezahlt, die waren

00:02:25.300 --> 00:02:27.340
komplett von der Soap über

00:02:27.340 --> 00:02:29.860
2-3 Jahre bezahlt worden

00:02:29.860 --> 00:02:31.520
So mit Barry Warsaw, der

00:02:31.520 --> 00:02:33.020
das Mailman macht und

00:02:33.020 --> 00:02:34.980
diversen anderen Leuten

00:02:34.980 --> 00:02:37.500
Genau, ne und da habe ich also jetzt

00:02:37.500 --> 00:02:39.660
viel in der Python Szene gemacht

00:02:39.660 --> 00:02:41.280
selber Software entwickelt für

00:02:41.280 --> 00:02:43.800
gute 15 Jahre im Sinne von

00:02:43.800 --> 00:02:45.340
Anwendungsentwicklung und ich mache aber

00:02:45.340 --> 00:02:47.300
seit Ewigkeiten halt auch schon

00:02:47.300 --> 00:02:49.480
Serverbetrieb nebenbei und

00:02:49.480 --> 00:02:50.920
die Firma wo ich jetzt bin, die

00:02:50.920 --> 00:02:53.400
verdient, also die ist ja jetzt auch meine Brötchen

00:02:53.400 --> 00:02:55.560
aber die lassen wir jetzt hier einfach mal

00:02:55.560 --> 00:02:57.280
fröhlich außen vor, weil wir keine Werbung machen

00:02:57.280 --> 00:02:59.440
Ja, also bei der Python Software Foundation bist du noch

00:02:59.440 --> 00:03:00.580
das hat mich noch ein bisschen interessiert, was

00:03:00.580 --> 00:03:02.300
was ihr denn da noch so macht, vielleicht kannst du die noch mal

00:03:02.300 --> 00:03:03.920
kurz so ins Spiel bringen und vorstellen

00:03:03.920 --> 00:03:06.640
Also ich habe ja zwei, also es gibt jetzt sozusagen zwei

00:03:06.640 --> 00:03:08.600
es gibt den Python Software Verband

00:03:08.600 --> 00:03:10.920
das ist ein deutscher Verein

00:03:10.920 --> 00:03:13.360
und wir fördern

00:03:13.360 --> 00:03:15.360
Python im deutschsprachigen Raum

00:03:15.360 --> 00:03:16.100
also unter anderem

00:03:16.100 --> 00:03:19.220
durch Veranstaltungen, also die

00:03:19.220 --> 00:03:20.240
PyCon.de

00:03:20.240 --> 00:03:23.060
die richten wir aus, ich glaube die

00:03:23.060 --> 00:03:25.120
PyDelta ist unter unserem

00:03:25.120 --> 00:03:27.220
Schirm, die wandert aber durch Europa

00:03:27.220 --> 00:03:29.440
und wir haben jetzt seit

00:03:29.440 --> 00:03:31.000
einem Jahr, seit einem guten Jahr

00:03:31.000 --> 00:03:33.020
ein Förderprogramm, das ist eigentlich auch was, was man

00:03:33.020 --> 00:03:35.260
in dem Podcast hier mal ganz gut

00:03:35.260 --> 00:03:36.860
platzieren kann, weil

00:03:36.860 --> 00:03:39.340
das Förderprogramm ist im Prinzip dafür

00:03:39.340 --> 00:03:41.360
da, dass mehr Leute in der Community

00:03:41.360 --> 00:03:43.340
mal Sachen ausprobieren, wie sie Python

00:03:43.340 --> 00:03:45.480
in Anführungszeichen unter das Volk

00:03:45.480 --> 00:03:47.260
bringen, besser

00:03:47.260 --> 00:03:49.240
eigentlich eher ausgerichtet an

00:03:49.240 --> 00:03:50.840
so einem Diversity-Gedanken, dass wir

00:03:50.840 --> 00:03:53.080
Python selber ist im Mainstream ja

00:03:53.080 --> 00:03:55.300
präsent und angekommen, also vor

00:03:55.300 --> 00:03:57.160
fünf Jahren, vor zehn Jahren sei das alles noch ganz anders

00:03:57.160 --> 00:03:59.380
aus, aber heutzutage muss man sich ja nicht rechtfertigen

00:03:59.380 --> 00:04:01.120
dafür, dass man Python verwendet

00:04:01.120 --> 00:04:03.120
oder irgendwo einsetzt, sondern das ist dann eher das, was man

00:04:03.120 --> 00:04:04.680
unter Best Practice

00:04:04.680 --> 00:04:06.400
so sehr ich dieses Wort hasse

00:04:06.400 --> 00:04:08.820
abhaken kann und dann ist das irgendwie

00:04:08.820 --> 00:04:10.600
erledigt, das ist

00:04:10.600 --> 00:04:11.740
Chef-Approved

00:04:11.740 --> 00:04:13.500
die

00:04:13.500 --> 00:04:16.800
in den letzten Auswertungen

00:04:16.800 --> 00:04:18.180
über den Jahreswechsel, was

00:04:18.180 --> 00:04:21.040
die Beliebtheit von Programmiersprachen angeht, ist Python halt

00:04:21.040 --> 00:04:22.880
weltweit im Prinzip immer unter den

00:04:22.880 --> 00:04:24.960
Top 5, wenn nicht sogar auch auf Platz

00:04:24.960 --> 00:04:27.020
1 und deswegen haben wir von Python

00:04:27.020 --> 00:04:28.260
Softwareverband irgendwann gesagt,

00:04:28.260 --> 00:04:30.900
Python einfach nur an sich zu pushen,

00:04:30.900 --> 00:04:32.840
das braucht es gerade gar nicht mehr, das läuft,

00:04:32.840 --> 00:04:35.140
was ich aber spannend fände, ist halt tatsächlich

00:04:35.140 --> 00:04:37.060
neue Zielgruppen und neue

00:04:37.060 --> 00:04:39.040
Vernetzungen aufzumachen, also zum einen

00:04:39.040 --> 00:04:41.080
Leute, die mit bestimmten Spezialthemen zu tun haben,

00:04:41.080 --> 00:04:43.180
da hat jetzt als ein großes

00:04:43.180 --> 00:04:45.140
Gewicht, früher war es viel Web, jetzt ist es

00:04:45.140 --> 00:04:46.500
Data Science,

00:04:46.500 --> 00:04:49.040
aber tatsächlich halt auch in den

00:04:49.040 --> 00:04:50.940
Embedded-Bereich, in den Bastel-Bereich,

00:04:50.940 --> 00:04:52.320
in der Maker-Szene,

00:04:52.320 --> 00:04:55.140
rüber hin zu anderen Gruppen wie

00:04:55.140 --> 00:04:56.980
Jugendlichen, Diversität,

00:04:56.980 --> 00:04:58.040
zum Thema

00:04:58.040 --> 00:05:01.100
Frauen in der Informatik ist in Python

00:05:01.100 --> 00:05:02.520
eh so ein großes Feld, die PyCon

00:05:02.520 --> 00:05:04.920
US war eine der ersten Konferenzen,

00:05:04.920 --> 00:05:07.040
die über 30% Frauenbeteiligung sowohl

00:05:07.040 --> 00:05:08.980
an den Teilnehmern als auch bei den

00:05:08.980 --> 00:05:10.600
Vortragenden hatte

00:05:10.600 --> 00:05:12.140
und unter diesem Rahmen gibt es

00:05:12.140 --> 00:05:14.700
diesen Gedanken, Python halt sozusagen

00:05:14.700 --> 00:05:16.760
in so viele kleine Nischen auch reinzubringen

00:05:16.760 --> 00:05:17.900
und nicht nur durch den Mainstream,

00:05:17.900 --> 00:05:21.120
da gibt es jetzt das Förderprogramm,

00:05:21.120 --> 00:05:22.800
beziehungsweise gibt es seit einem Jahr und man kann dort

00:05:22.800 --> 00:05:24.900
zum einen einfach mal kleine

00:05:24.900 --> 00:05:26.760
Veranstaltungen ausprobieren, wenn man sagt,

00:05:26.840 --> 00:05:28.660
ich würde gerne, da haben wir ein paar Leute,

00:05:28.660 --> 00:05:30.800
die machen an Schulen immer mal was, wo sie Kindern dann

00:05:30.800 --> 00:05:32.600
Raspberries oder andere

00:05:32.600 --> 00:05:34.660
kleinere Embedded-Python-Geräte mit

00:05:34.660 --> 00:05:36.040
bei einem Workshop in die Hand drücken.

00:05:36.040 --> 00:05:38.540
Das habe ich sogar auch schon mal gemacht, tatsächlich für

00:05:38.540 --> 00:05:40.860
Kinderkurse mit dem Raspi und dann in Python

00:05:40.860 --> 00:05:42.080
mit Minecraft oder so Coden.

00:05:42.080 --> 00:05:44.840
Genau, genau. Und was halt

00:05:44.840 --> 00:05:46.980
schön wäre, wäre, wenn man den Kindern das halt auch mitgeben kann,

00:05:46.980 --> 00:05:48.780
damit sie dann halt zu Hause weitermachen und nicht nur

00:05:48.780 --> 00:05:50.920
mit hier hast du mal was und in zwei Stunden ist es wieder weg.

00:05:50.920 --> 00:05:52.340
Und

00:05:52.340 --> 00:05:54.820
für solche Veranstaltungen sponsern wir

00:05:54.820 --> 00:05:56.700
dann, ich glaube, so eine pauschale

00:05:56.700 --> 00:05:58.220
von 400 Euro pro Veranstaltung,

00:05:58.220 --> 00:06:00.380
beziehungsweise wir brechen das auch runter auf

00:06:00.380 --> 00:06:02.720
pro Kopf. Pro Kopf gibt es 20

00:06:02.720 --> 00:06:04.680
Euro und wenn du abwende 10 Leute hast, kannst

00:06:04.680 --> 00:06:06.740
du die 400 Euro haben. Und wir machen das

00:06:06.740 --> 00:06:08.740
ohne groß Formalismus.

00:06:08.740 --> 00:06:09.960
Da kann man einfach an die

00:06:09.960 --> 00:06:11.960
E-Mail-Adresse, da gibt es eine,

00:06:11.960 --> 00:06:14.800
habe ich gerade nicht im Kopf, kann man auf der Webseite nachschlagen.

00:06:14.800 --> 00:06:16.560
Ich sage jetzt mal so schön wie es beim Podcast

00:06:16.560 --> 00:06:18.100
aber halt, findet ihr in den Shownotes.

00:06:18.100 --> 00:06:19.140
Ja, klar.

00:06:19.140 --> 00:06:22.620
Können wir da reinpacken. Da schreibt ihr

00:06:22.620 --> 00:06:24.620
eine E-Mail hin, sagt, was ihr machen wollt und

00:06:24.620 --> 00:06:26.500
dann wird das im Vorstand innerhalb von ein, zwei Wochen

00:06:26.500 --> 00:06:28.640
beschlossen und dann geht es los und

00:06:28.640 --> 00:06:29.920
ihr könnt das Geld kriegen, entweder

00:06:29.920 --> 00:06:32.340
indem ihr uns ein paar Quittungen schickt oder

00:06:32.340 --> 00:06:34.420
indem wir einen kleinen Sponsoring-Vertrag machen.

00:06:34.420 --> 00:06:36.320
Dann braucht man nicht über irgendwie Kleingruch-Quittungen

00:06:36.320 --> 00:06:38.380
zu reden. Genau, das ist die eine Variante.

00:06:38.380 --> 00:06:40.040
Die andere Variante ist noch, dass wir auch

00:06:40.040 --> 00:06:42.580
größere Veranstaltungen ab 50 Personen sponsern.

00:06:42.580 --> 00:06:43.760
Das ist dann typischerweise sowas wie

00:06:43.760 --> 00:06:45.340
die Jungle-Coin-Sponsorung.

00:06:45.340 --> 00:06:48.340
Da gibt es dann irgendwie 1000 Euro einmal glatt, um

00:06:48.340 --> 00:06:50.220
um anderen Leuten

00:06:50.220 --> 00:06:52.380
halt den Zugang

00:06:52.380 --> 00:06:54.360
zu Veranstaltungen zu erleichtern. Das geht dann

00:06:54.360 --> 00:06:56.300
typischerweise in Financial Aid

00:06:56.300 --> 00:06:58.360
oder Reisekosten oder irgendwie solche Töpfe.

00:06:58.360 --> 00:07:00.560
Und das dritte,

00:07:00.560 --> 00:07:02.200
was wir noch sponsern, sind dann tatsächlich auch

00:07:02.200 --> 00:07:04.300
Feature-Entwicklungen oder allgemeine

00:07:04.300 --> 00:07:06.920
Entwicklungen für Open-Source-Python-Projekte.

00:07:06.920 --> 00:07:08.720
Wenn ihr sagt,

00:07:08.720 --> 00:07:10.360
wir wollen mal einen Sprint machen

00:07:10.360 --> 00:07:12.160
und dafür brauchen wir Reisekosten oder wir wollen es mal

00:07:12.160 --> 00:07:14.340
am Wochenende wegschließen oder ich würde eigentlich gerne mal

00:07:14.340 --> 00:07:15.900
zwei Tage was machen, aber dann habe ich irgendwie

00:07:15.900 --> 00:07:17.720
Arbeitsauswahl, weil ich keinen Urlaub dafür nehmen kann.

00:07:17.720 --> 00:07:20.360
Dann gibt es dafür Projekte

00:07:20.360 --> 00:07:21.680
für jede

00:07:21.680 --> 00:07:23.640
Aktion 500 Euro.

00:07:26.100 --> 00:07:28.920
Genau, und die verteilen wir jetzt.

00:07:28.920 --> 00:07:30.540
Das ist so ein bisschen das Thema, wir haben über den

00:07:30.540 --> 00:07:32.600
Verband halt die Möglichkeit, über Sponsoren und über

00:07:32.600 --> 00:07:34.900
alles andere eben Geldmittel einzusammeln

00:07:34.900 --> 00:07:36.600
und haben gesagt, naja, wir wollen jetzt eigentlich,

00:07:36.600 --> 00:07:38.700
dass die Leute in der Community aktiv

00:07:38.700 --> 00:07:40.660
sind und gerade das

00:07:40.660 --> 00:07:42.040
Thema Sustainability

00:07:42.040 --> 00:07:44.580
ist ja auch so ein großes Ding. Da wollen wir jetzt

00:07:44.580 --> 00:07:46.140
nicht, dass die Leute, die die Zeit mitbringen,

00:07:46.140 --> 00:07:47.680
auch noch das Geld mitbringen,

00:07:47.680 --> 00:07:50.640
sondern dass man das ein bisschen einfach nur als

00:07:50.640 --> 00:07:52.440
man nimmt den Leuten ein bisschen Druck weg und

00:07:52.440 --> 00:07:53.580
lässt sie halt experimentieren.

00:07:53.580 --> 00:07:55.500
Mehr Dinge ausprobieren,

00:07:55.900 --> 00:07:57.560
mehr schauen, was funktioniert, was funktioniert nicht

00:07:57.560 --> 00:07:59.700
und ganz ohne den Druck

00:07:59.700 --> 00:08:01.760
sich irgendwie rechtfertigen zu müssen, ob das jetzt wirtschaftlich war

00:08:01.760 --> 00:08:02.100
oder nicht.

00:08:02.100 --> 00:08:04.460
Klingt super, klingt echt toll.

00:08:04.460 --> 00:08:07.200
Das klingt echt interessant.

00:08:07.200 --> 00:08:09.280
Bestimmt noch ein paar Interessenten, die

00:08:09.280 --> 00:08:11.580
das schätzen müssten. Genau, definitiv.

00:08:11.580 --> 00:08:12.980
Also gerade bei den

00:08:12.980 --> 00:08:15.740
Entwicklungssponsorings

00:08:15.740 --> 00:08:17.460
ist die Soap-Plone-Welt

00:08:17.460 --> 00:08:19.560
irgendwie sehr stark, weil die halt in der ganzen

00:08:19.560 --> 00:08:21.540
Vereins-Community sehr stark

00:08:21.540 --> 00:08:23.400
vertreten ist. Die machen halt viel

00:08:23.400 --> 00:08:25.220
Sprints, wo sie sich treffen, wo sie halt

00:08:25.220 --> 00:08:25.700
...

00:08:25.700 --> 00:08:27.860
an den Open-Source-Projekten

00:08:27.860 --> 00:08:28.680
entwickeln und

00:08:28.680 --> 00:08:31.340
die fordern das immer mal ein, die muss man

00:08:31.340 --> 00:08:33.380
eher mal bremsen. Dummerweise

00:08:33.380 --> 00:08:35.140
haben wir niemanden anders, auf den wir zeigen können, mit

00:08:35.140 --> 00:08:37.240
hier, die rufen auch Geld ab, aber komm, nicht dran.

00:08:37.240 --> 00:08:39.460
Nee, momentan ist es echt so, dass wir uns eigentlich

00:08:39.460 --> 00:08:41.320
wünschen würden, dass mehr Leute auf uns zukommen, dass wir da mehr

00:08:41.320 --> 00:08:43.480
Gutes tun können. Umgekehrt

00:08:43.480 --> 00:08:45.340
kann ich natürlich auch sagen, jetzt wo

00:08:45.340 --> 00:08:47.360
ihr wisst, was der Verband mit dem Geld

00:08:47.360 --> 00:08:48.820
macht, werdet Mitglied.

00:08:48.820 --> 00:08:51.420
Euer Geld ist gut

00:08:51.420 --> 00:08:51.880
angelegt.

00:08:51.880 --> 00:08:55.500
Das ist so ein bisschen was wie eine

00:08:55.500 --> 00:08:56.600
organisierte

00:08:56.600 --> 00:08:59.340
Patron-Variante

00:08:59.340 --> 00:09:01.400
sozusagen dann. Aber es ist

00:09:01.400 --> 00:09:03.340
auch für Unternehmen halt ganz schön. Das andere

00:09:03.340 --> 00:09:04.780
wäre natürlich, was man sonst sagen kann,

00:09:04.780 --> 00:09:07.460
dann mache ich den Kreis mit diesen ganzen

00:09:07.460 --> 00:09:09.640
Organisationen zu, die PSF,

00:09:09.640 --> 00:09:11.400
die Python Software Foundation, das ist

00:09:11.400 --> 00:09:12.180
die amerikanische,

00:09:12.180 --> 00:09:15.360
wo auch, ich glaube, der gehören inzwischen

00:09:15.360 --> 00:09:17.300
die Copyrights für Python.

00:09:17.300 --> 00:09:19.560
Ich glaube, da sind die hingewandert.

00:09:19.560 --> 00:09:21.260
Die sind

00:09:21.260 --> 00:09:23.440
natürlich ziemlich groß, die haben halt die ganzen

00:09:23.440 --> 00:09:25.300
Großsponsoren, auch die koordinieren halt

00:09:25.300 --> 00:09:27.360
eher so Sachen mit Google und Microsoft

00:09:27.360 --> 00:09:29.320
etc. Die veranstalten

00:09:29.320 --> 00:09:31.180
ja hauptsächlich auch die große Python US, haben aber

00:09:31.180 --> 00:09:32.800
eben auch, die haben auch so ein Förderprogramm.

00:09:32.800 --> 00:09:35.140
Und da sind wir aber auch dabei zuzusehen, dass

00:09:35.140 --> 00:09:37.400
wir die Sachen halt

00:09:37.400 --> 00:09:38.780
mit koordinieren, dass wir dann, wenn

00:09:38.780 --> 00:09:41.040
jemand sagt, okay, das Förderprogramm, was wir haben,

00:09:41.040 --> 00:09:43.080
das ist eigentlich zu klein, ich würde gerne von der

00:09:43.080 --> 00:09:45.120
PSF noch was holen, dann haben wir da halt auch die

00:09:45.120 --> 00:09:47.240
Kontakte, um dann zu sagen,

00:09:47.240 --> 00:09:49.500
man kennt sich schon und man muss es nicht groß ausverhandeln,

00:09:49.500 --> 00:09:51.260
wer da welchen Papier kriegt, über einen großen Teich

00:09:51.260 --> 00:09:52.760
schiebt. Genau.

00:09:52.760 --> 00:09:55.100
Eine cool kurze Leitung, also

00:09:55.100 --> 00:09:56.780
falls ihr Ideen habt, meldet euch da direkt,

00:09:56.780 --> 00:09:58.960
können natürlich auch das alles. Genau, immer her damit.

00:09:58.960 --> 00:10:01.100
Ja, ich habe es letztens nur gehört, dass es bei

00:10:01.100 --> 00:10:02.720
Django gibt es da auch sowas, es gibt halt die

00:10:02.720 --> 00:10:04.120
Django Software Foundation

00:10:04.120 --> 00:10:07.080
und die bezahlen ja jetzt auch, glaube ich,

00:10:07.080 --> 00:10:08.600
ein oder zwei

00:10:08.600 --> 00:10:09.840
Vollzeitstellen

00:10:09.840 --> 00:10:12.920
und, aber im Grunde ist das immer

00:10:12.920 --> 00:10:14.440
so ein Problem, dass halt Software, die

00:10:14.440 --> 00:10:16.860
irgendwie wichtige Infrastruktur für ganz viele

00:10:16.860 --> 00:10:18.860
Projekte ist, dann halt

00:10:18.860 --> 00:10:20.860
irgendwie so, wo dann, naja, vielleicht so,

00:10:20.860 --> 00:10:22.760
also bei Django ist es so, dass da, glaube ich,

00:10:22.760 --> 00:10:24.900
ein halbes Dutzend Leute irgendwie so wirklich aktiv dran

00:10:24.900 --> 00:10:26.660
entwickelt und das ist halt eines der

00:10:26.660 --> 00:10:28.680
größten Projekte, aber

00:10:28.680 --> 00:10:30.620
eigentlich ist das ziemlich wenig, wenn man sich überlegt,

00:10:30.620 --> 00:10:32.540
wo das überall eingesetzt wird und

00:10:32.540 --> 00:10:34.600
wie viele Webseiten ja

00:10:34.600 --> 00:10:36.080
darauf angewiesen sind, dass das irgendwie

00:10:36.080 --> 00:10:38.140
weiterentwickelt wird,

00:10:38.140 --> 00:10:40.760
Sicherheitsgeschichten irgendwie

00:10:40.760 --> 00:10:42.620
gehandelt werden und so, also, ja.

00:10:42.620 --> 00:10:43.280
Ich meine, das ist,

00:10:43.280 --> 00:10:46.560
das berührt ein total interessantes Thema, was

00:10:46.560 --> 00:10:48.680
jetzt nicht heute mit unserem Tagesthema zu tun hat,

00:10:48.680 --> 00:10:50.420
aber ich habe in der letzten Zeit halt viel

00:10:50.420 --> 00:10:51.680
Gedanken mir gemacht,

00:10:51.680 --> 00:10:54.700
gerade um diese, wie ich

00:10:54.700 --> 00:10:56.340
an dem Begriff Digitalisierung

00:10:56.340 --> 00:10:58.340
irgendwie

00:10:58.340 --> 00:11:00.640
einen Griff, also wie ich da irgendwie einen Griff dran kriege

00:11:00.640 --> 00:11:01.120
ohne

00:11:01.120 --> 00:11:03.900
Blablabla

00:11:03.900 --> 00:11:06.460
Keiner kann das Wort eigentlich mehr hören

00:11:06.460 --> 00:11:08.540
und wahrscheinlich ist es vom Hype-Cycle her so langsam durch

00:11:08.540 --> 00:11:10.560
und ich habe mich immer gewehrt, es überhaupt einzusetzen

00:11:10.560 --> 00:11:12.060
und aber

00:11:12.060 --> 00:11:13.140
dieses, da sind

00:11:13.140 --> 00:11:16.500
so wenig Leute teilweise an so kritischen Sachen dran

00:11:16.500 --> 00:11:18.400
aus einer Open-Source-Perspektive

00:11:18.400 --> 00:11:20.500
oder freien Software-Perspektive finde ich das überhaupt nicht

00:11:20.500 --> 00:11:22.420
schlimm. Das eigentliche Thema

00:11:22.420 --> 00:11:24.500
ist nur, es müssen alle, die so ein Zeug

00:11:24.500 --> 00:11:26.380
einsetzen, im Prinzip wissen, sie zahlen

00:11:26.380 --> 00:11:28.460
weniger Geld, als man früher

00:11:28.460 --> 00:11:30.460
in Lizenzkosten in sowas reingesteckt hat

00:11:30.460 --> 00:11:32.400
oder Pflege- und Wartungsverträge.

00:11:32.400 --> 00:11:34.540
Das heißt aber im Prinzip, wenn man

00:11:34.540 --> 00:11:36.500
dann die Sicherheit haben möchte, dass einem das

00:11:36.500 --> 00:11:37.880
nicht unter dem Hintern wegschimmelt,

00:11:37.880 --> 00:11:40.400
muss man halt, muss man eigene Kompetenz

00:11:40.400 --> 00:11:42.380
aufbauen und das greift

00:11:42.380 --> 00:11:44.360
aber genau an dieses Thema ran, was bedeutet es eigentlich,

00:11:44.360 --> 00:11:46.600
wenn immer mehr Dinge digitalisiert werden,

00:11:46.600 --> 00:11:48.280
dann heißt das halt eigentlich, ich muss

00:11:48.280 --> 00:11:50.300
dort mehr Kompetenzen selber

00:11:50.300 --> 00:11:52.360
entwickeln, anstatt das Zeug einfach nur

00:11:52.360 --> 00:11:54.300
blind einzusetzen, blind zu kaufen, also

00:11:54.300 --> 00:11:55.960
fast egal, ob ich es kaufe oder

00:11:55.960 --> 00:11:58.300
als Open-Source oder freie

00:11:58.300 --> 00:12:00.240
Software-Lösung habe, ich bin

00:12:00.240 --> 00:12:02.160
eigentlich darauf angewiesen, wenn das mein Kerngeschäft so

00:12:02.160 --> 00:12:04.500
dermaßen berührt, dass ich genügend Kompetenz

00:12:04.500 --> 00:12:06.300
habe, um wenigstens zu wissen, wo

00:12:06.300 --> 00:12:08.240
meine Risiken sind, wenn ich es

00:12:08.240 --> 00:12:10.360
schon nicht selber lösen

00:12:10.360 --> 00:12:12.300
kann. Ja, das ist aber doch schon wieder

00:12:12.300 --> 00:12:14.020
so technisches Detailwissen,

00:12:14.020 --> 00:12:16.200
das hat der meiste normale Vorstand wahrscheinlich

00:12:16.200 --> 00:12:18.160
gar nicht mehr auf dem Schirm. Der denkt

00:12:18.160 --> 00:12:20.160
dann so, ja, ach, jetzt Geld ausgeben für Software, die wir

00:12:20.160 --> 00:12:22.100
gar nicht brauchen, also wir kaufen ja

00:12:22.100 --> 00:12:24.100
nicht, warum? Also, ist ja umsonst.

00:12:24.100 --> 00:12:25.740
Genau. Ja, ja, ja, genau, aber

00:12:25.740 --> 00:12:28.160
ich habe da momentan eine Metapher

00:12:28.160 --> 00:12:30.020
für, das ist

00:12:30.020 --> 00:12:32.140
Digitalisierung wird an der Stelle,

00:12:32.140 --> 00:12:33.400
also die ist ja total relevant,

00:12:33.400 --> 00:12:36.040
weil im Prinzip

00:12:36.040 --> 00:12:38.180
die alten Sprüche, die wir

00:12:38.180 --> 00:12:40.040
jetzt wahrscheinlich schon seit 20 Jahren kennen, so was

00:12:40.040 --> 00:12:41.800
wie Marc Andreessen mit Software

00:12:41.800 --> 00:12:43.940
eats the world, ja, das heißt

00:12:43.940 --> 00:12:45.260
alles wird irgendwie Software sein.

00:12:45.260 --> 00:12:47.500
In der positiven

00:12:47.500 --> 00:12:49.980
Variante bedeutet das, Software

00:12:49.980 --> 00:12:52.140
ist als so Augmentierungshilfsmittel

00:12:52.140 --> 00:12:53.860
ständig dabei, ja,

00:12:53.900 --> 00:12:56.000
nicht im Sinne von

00:12:56.000 --> 00:12:57.700
verdrängt den Menschen oder ersetzt

00:12:57.700 --> 00:12:59.580
ihn, sondern es wird immer mehr

00:12:59.580 --> 00:13:01.880
Stellen geben, wo so ein organisches Zusammenwachsen

00:13:01.880 --> 00:13:03.540
bei Prozessen ist, wo ich auf

00:13:03.540 --> 00:13:05.680
unterschiedliche Teile von Software angewiesen

00:13:05.680 --> 00:13:07.520
bin, mit der ich interagiere und die sich miteinander

00:13:07.520 --> 00:13:09.680
verbindet und das wird aber so integral

00:13:09.680 --> 00:13:10.860
sein, dass es tatsächlich

00:13:10.860 --> 00:13:13.320
im Prinzip wie eine Sprache zu behandeln ist

00:13:13.320 --> 00:13:15.560
und ich habe momentan immer den Eindruck,

00:13:15.560 --> 00:13:17.260
wenn jemand in einem Unternehmen, wenn du jetzt

00:13:17.260 --> 00:13:19.500
Vorstand sagst, sagt, wir machen jetzt irgendwas mit

00:13:19.500 --> 00:13:21.520
Digitalisierung, dann klingt es

00:13:21.520 --> 00:13:23.520
in meinen Ohren so, wie der Vorstand kommt,

00:13:23.700 --> 00:13:25.380
daher und sagt, wir stellen jetzt

00:13:25.380 --> 00:13:26.980
die, wir stellen das Faxgerät ab,

00:13:26.980 --> 00:13:28.880
nee, wir stellen die

00:13:28.880 --> 00:13:31.100
Unternehmenssprache, als Metapher,

00:13:31.100 --> 00:13:33.280
wir stellen die Unternehmenssprache von

00:13:33.280 --> 00:13:35.240
Deutsch auf Englisch um und

00:13:35.240 --> 00:13:37.260
um das richtig hinzukriegen, haben wir jetzt

00:13:37.260 --> 00:13:39.020
einen Übersetzer und zwei Wörterbücher angeschafft.

00:13:39.020 --> 00:13:40.120
Ja.

00:13:40.120 --> 00:13:43.440
So ungefähr ist es auch, wir wollen

00:13:43.440 --> 00:13:45.240
digitalisieren, deswegen kaufen wir jetzt mehr Software

00:13:45.240 --> 00:13:47.240
ein oder so und das aber

00:13:47.240 --> 00:13:49.220
ja ein Unternehmen, das im Prinzip wirklich atmen

00:13:49.220 --> 00:13:51.360
muss und ich trage da momentan

00:13:51.360 --> 00:13:53.240
viel mit mir rum und das ist jetzt extrem Python

00:13:53.500 --> 00:13:55.320
spezifisch, aber echt

00:13:55.320 --> 00:13:56.580
interessant, also ja.

00:13:56.580 --> 00:13:58.800
Das ist

00:13:58.800 --> 00:14:01.200
auch überhaupt nicht so richtig, es gibt da auch

00:14:01.200 --> 00:14:03.380
keine gute Kultur für, also ich habe da auch schon

00:14:03.380 --> 00:14:05.340
in diversen Unternehmen, die ja

00:14:05.340 --> 00:14:07.660
dann oft diese ganzen Sachen einsetzen,

00:14:07.660 --> 00:14:09.340
also am Anfang war es immer noch

00:14:09.340 --> 00:14:11.080
schwer, das irgendwie durchzusetzen,

00:14:11.080 --> 00:14:13.280
dass überhaupt irgendwie Open Source verwendet

00:14:13.280 --> 00:14:15.440
wird und wieso, wenn das nichts kostet,

00:14:15.440 --> 00:14:17.280
ist ja doof und so, war

00:14:17.280 --> 00:14:19.220
diese Haltung noch sehr weit verbreitet und dann

00:14:19.220 --> 00:14:20.720
teilweise wurden so Dinge gemacht,

00:14:20.720 --> 00:14:23.300
wie Weihnachten, als alle oben

00:14:23.300 --> 00:14:25.460
im Urlaub waren, hat man halt dann die

00:14:25.460 --> 00:14:27.220
Netscape-Web-Server

00:14:27.220 --> 00:14:29.200
ersetzt durch Linux-Web-Server und so

00:14:29.200 --> 00:14:31.440
und

00:14:31.440 --> 00:14:33.560
als dann

00:14:33.560 --> 00:14:35.180
sichtbar wurde, dass das sehr gut funktioniert

00:14:35.180 --> 00:14:37.280
und auch besser halt oft als

00:14:37.280 --> 00:14:39.000
die kommerziellen Varianten, dann

00:14:39.000 --> 00:14:41.500
hat sich

00:14:41.500 --> 00:14:43.300
das durchaus etabliert, dass man das so macht, aber

00:14:43.300 --> 00:14:45.020
irgendwie, dass es jetzt immer noch

00:14:45.020 --> 00:14:46.840
eine gute Idee wäre, da halt auch selber

00:14:46.840 --> 00:14:48.860
mit an der Infrastruktur

00:14:48.860 --> 00:14:51.200
zu arbeiten und

00:14:51.200 --> 00:14:53.020
dass das natürlich auch Geld kostet oder dass man

00:14:53.020 --> 00:14:53.100
zumindest

00:14:53.100 --> 00:14:55.080
Selbstkompetenz aufbauen muss, das ist

00:14:55.080 --> 00:14:55.940
auch immer noch schwer.

00:14:55.940 --> 00:14:58.900
Die ganzen Unternehmen haben das nicht verstanden, was das bedeutet,

00:14:58.900 --> 00:15:01.220
was Digitalisierung ist. Das bedeutet für jeden irgendwas anderes

00:15:01.220 --> 00:15:02.940
und die meisten sind so fern von

00:15:02.940 --> 00:15:05.080
jeder Digitalisierung, schleppen dann die

00:15:05.080 --> 00:15:06.820
E-Mails ausgedruckt im Koffer mit sich rum,

00:15:06.820 --> 00:15:09.060
das funktioniert halt dann noch nicht und wenn

00:15:09.060 --> 00:15:10.700
das die Entscheider noch manchmal sind, leider,

00:15:10.700 --> 00:15:13.100
dann braucht das länger.

00:15:13.100 --> 00:15:14.840
Ja, ich würde mal behaupten,

00:15:14.840 --> 00:15:17.180
wie war das jetzt mit der PDF-CDU?

00:15:17.180 --> 00:15:19.240
Ich würde jetzt halt

00:15:19.240 --> 00:15:21.000
behaupten, die E-Mails werden nicht mehr ausgedruckt, sondern

00:15:21.000 --> 00:15:23.060
es werden PDFs draus gemacht, die kann man sich dann aufs iPad

00:15:23.060 --> 00:15:23.360
legen.

00:15:23.360 --> 00:15:26.180
Ja, und dann da drinnen irgendwie rummalen.

00:15:26.180 --> 00:15:27.460
Ja, genau.

00:15:27.460 --> 00:15:31.000
Ja, alles andere wird dann einfach

00:15:31.000 --> 00:15:31.460
verboten.

00:15:31.460 --> 00:15:34.580
Aber genau das, was du beschrieben hast mit den

00:15:34.580 --> 00:15:36.180
Netscape-Servern, das ist halt auch der Punkt,

00:15:36.180 --> 00:15:38.780
wo ich es spannend finde. Meine Erfahrung,

00:15:38.780 --> 00:15:40.640
würde ich halt sagen, ist jetzt auch 20 Jahre

00:15:40.640 --> 00:15:42.640
Digitalisierung. Das ist mein ganzes Berufsleben

00:15:42.640 --> 00:15:44.800
im Prinzip seit 99 und

00:15:44.800 --> 00:15:46.880
der eigentliche Effekt, den wir

00:15:46.880 --> 00:15:48.860
gesehen haben, das, was man jetzt Digitalisierung nennt,

00:15:48.860 --> 00:15:50.760
passiert ja seitdem. Das passiert schon seit

00:15:50.760 --> 00:15:52.860
Ewigkeiten. Ich würde sagen, die Jahrtausendwende

00:15:52.860 --> 00:15:54.440
war tatsächlich so ein Knackpunkt mit Internet,

00:15:54.440 --> 00:15:56.740
ist explodiert. Und wir haben damals

00:15:56.740 --> 00:15:59.060
immer schon Projekte gemacht, wo wir gemerkt haben, du musst

00:15:59.060 --> 00:16:00.640
Digitalisierung im

00:16:00.640 --> 00:16:02.640
ganz, ganz, ganz Kleinen umsetzen.

00:16:02.640 --> 00:16:04.900
Und die eigentlich großen

00:16:04.900 --> 00:16:06.740
Effekte, wenn es halt immer

00:16:06.740 --> 00:16:08.660
heißt, es ist Time-to-Market oder

00:16:08.660 --> 00:16:10.600
alles billiger oder schneller

00:16:10.600 --> 00:16:11.700
oder effizienter oder

00:16:11.700 --> 00:16:14.940
individueller, die eigentlichen

00:16:14.940 --> 00:16:16.500
großen Effekte sind nie

00:16:16.500 --> 00:16:18.580
aus der Planung raus entstanden,

00:16:18.580 --> 00:16:20.760
sondern die sind dann entstanden, wenn wir bei

00:16:20.760 --> 00:16:22.620
den Projekten beim Kunden vor Ort waren,

00:16:22.660 --> 00:16:24.720
und dann zufällig eine

00:16:24.720 --> 00:16:26.680
Dame, die da Sachbearbeiterin ist,

00:16:26.680 --> 00:16:28.820
überhören, wie sie gerade unser Projekt benutzt

00:16:28.820 --> 00:16:30.640
und sie irgendwie über

00:16:30.640 --> 00:16:32.600
Excel flucht. Und man dann

00:16:32.600 --> 00:16:34.480
feststellt, okay, was machst du denn mit

00:16:34.480 --> 00:16:36.580
Excel? Ja, da hat sie halt so eine Tabelle

00:16:36.580 --> 00:16:38.760
gehabt, wo sie so eine Statistik mitführen

00:16:38.760 --> 00:16:40.660
musste, einmal pro Monat. Und

00:16:40.660 --> 00:16:42.580
da das ja niemand auf die Idee kam, dass

00:16:42.580 --> 00:16:44.520
das irgendwas mit unserer Software zu tun haben könnte,

00:16:44.520 --> 00:16:46.220
mündete es darin, dass diese Dame als

00:16:46.220 --> 00:16:47.980
halbe Stelle,

00:16:47.980 --> 00:16:50.100
die hat eine halbe Stelle damit verbracht,

00:16:50.100 --> 00:16:52.460
20 Stunden pro Woche, eine Zähl-

00:16:52.460 --> 00:16:53.520
Liste

00:16:53.520 --> 00:16:56.400
zusammenzuklicken, indem sie sich durch

00:16:56.400 --> 00:16:57.660
unsere Software durchgeklickt hat,

00:16:57.660 --> 00:17:00.420
um dann in dieser Excel-Tabelle zu erfassen,

00:17:00.420 --> 00:17:02.680
wie viele Personen dieses Kriterium,

00:17:02.680 --> 00:17:04.500
wie viele Personen dieses und wie viele Personen dieses Kriterium

00:17:04.500 --> 00:17:06.560
hat. Und nur, weil

00:17:06.560 --> 00:17:08.420
wir neben ihr saßen, immer über die Schulter geschaut

00:17:08.420 --> 00:17:10.300
hatten, konnten wir mal mit ihr reden und sagen, du, das kann ich dir

00:17:10.300 --> 00:17:12.380
da rauslassen. Das merkt man dann so,

00:17:12.380 --> 00:17:14.700
das ist ja alles relativ komplex. Und so ein Excel-Katze,

00:17:14.700 --> 00:17:16.380
wenn die Stadt dir so eine Statistik

00:17:16.380 --> 00:17:18.320
gibt mit tausend Makros drin, dann generierst du das

00:17:18.320 --> 00:17:20.400
nicht. Aber wenn du mit den Leuten ein bisschen Ping-Pong spielst

00:17:20.400 --> 00:17:21.920
mit, zeig mir mal, was du machst,

00:17:22.260 --> 00:17:24.240
und siehst, ah, guck mal, die füllt die Daten

00:17:24.240 --> 00:17:26.080
immer nur in so einem Rechteck aus, dann generiere ich dir jetzt

00:17:26.080 --> 00:17:28.300
eine HTML-Tabelle, die kannst du per Copy & Paste in diese

00:17:28.300 --> 00:17:30.220
andere Tabelle von der Stadt reinpacken

00:17:30.220 --> 00:17:32.700
und plötzlich ist dein 20-Stunden-Job,

00:17:32.700 --> 00:17:33.620
also

00:17:33.620 --> 00:17:35.700
80 Stunden pro Monat auf

00:17:35.700 --> 00:17:37.540
5 Minuten eingedampft.

00:17:37.540 --> 00:17:40.160
Ich hoffe, die Arme hat dann noch

00:17:40.160 --> 00:17:41.620
da arbeiten dürfen für irgendwas anderes.

00:17:41.620 --> 00:17:44.120
Natürlich, also ihre Vorgesetzte war halt

00:17:44.120 --> 00:17:46.220
super glücklich, weil die so viele Themen aus der Pfanne

00:17:46.220 --> 00:17:47.840
hatten, zu denen sie nie gekommen sind, aber

00:17:47.840 --> 00:17:50.000
Bürokratie drückt dir halt immer

00:17:50.000 --> 00:17:51.680
die Prioritäten weg. Also

00:17:52.060 --> 00:17:54.340
Bürokratie kann ja immer sagen, ich muss

00:17:54.340 --> 00:17:56.500
gemacht werden, zum Termin. Und dann hast

00:17:56.500 --> 00:17:58.300
du die Leute beschäftigt. Und eigentlich wollen die noch

00:17:58.300 --> 00:18:00.340
tausend andere Sachen machen, kommen aber nicht dazu, weil

00:18:00.340 --> 00:18:01.520
die Bürokratie das wegfrisst.

00:18:01.520 --> 00:18:04.480
Das ist halt dann dringend aber nicht wichtig

00:18:04.480 --> 00:18:06.460
eigentlich. Und die wichtigen Sachen werden dann nicht mehr

00:18:06.460 --> 00:18:06.680
gemacht.

00:18:06.680 --> 00:18:10.060
Ich habe viel

00:18:10.060 --> 00:18:11.940
Komplexitätstheorie gemacht in den letzten Jahren.

00:18:11.940 --> 00:18:13.580
Dave Snowden, Kenevan und so.

00:18:13.580 --> 00:18:15.120
Und es gibt ein

00:18:15.120 --> 00:18:16.660
wichtiges

00:18:16.660 --> 00:18:20.180
Ding aus der Komplexitätstheorie,

00:18:20.180 --> 00:18:21.860
was da reinspielt, ist, dass

00:18:21.860 --> 00:18:24.000
das sind die unarticulated needs.

00:18:24.000 --> 00:18:25.920
Das ist, die Welt

00:18:25.920 --> 00:18:27.580
ist so komplex, dass

00:18:27.580 --> 00:18:30.360
Anwender, schrägstrich Betroffene,

00:18:30.360 --> 00:18:31.940
schrägstrich Bürger,

00:18:31.940 --> 00:18:33.180
schrägstrich Patienten,

00:18:33.180 --> 00:18:35.980
egal welche Teilgesellschaft

00:18:35.980 --> 00:18:37.840
wir nehmen, die haben gar keine

00:18:37.840 --> 00:18:39.600
Vorstellung mehr davon, was überhaupt

00:18:39.600 --> 00:18:41.860
möglich ist. Oder

00:18:41.860 --> 00:18:43.940
geschweige denn, in welcher Sprache müssten sie

00:18:43.940 --> 00:18:46.060
ihren Bedarf, den sie haben, überhaupt formulieren,

00:18:46.060 --> 00:18:48.160
dass jemand anders angreifen kann

00:18:48.160 --> 00:18:49.380
und sagen kann, hier, da kann ich dir helfen.

00:18:49.380 --> 00:18:51.660
Die Dame hat das halt in

00:18:51.660 --> 00:18:53.920
völliger Zufriedenheit gemacht, sich da monatelang

00:18:53.920 --> 00:18:55.940
durchzuklicken, weil ihr nicht bewusst

00:18:55.940 --> 00:18:57.960
war, dass es da

00:18:57.960 --> 00:18:59.860
überhaupt eine Möglichkeit gibt, das zu lösen.

00:18:59.860 --> 00:19:01.940
Die wusste gar nicht, dass es

00:19:01.940 --> 00:19:03.680
ein Problem war und deswegen ist das nie in der Planung

00:19:03.680 --> 00:19:06.000
aufgetaucht. Und in Digitalisierungsprojekten

00:19:06.000 --> 00:19:07.480
musst du im Prinzip im ganz Kleinen

00:19:07.480 --> 00:19:08.760
alle Leute im Unternehmen

00:19:08.760 --> 00:19:11.700
zu befähigen, diesen Übersprung zu haben

00:19:11.700 --> 00:19:13.300
von, hey, Moment, das hier müsste sich doch eigentlich,

00:19:13.300 --> 00:19:15.440
das hier ist ein Problem, das müsste sich doch in Software

00:19:15.440 --> 00:19:17.560
erschlagen lassen. Und zwar nicht im Sinne eines,

00:19:17.560 --> 00:19:19.580
oh, wir machen mal den großen Aufschlag und

00:19:19.580 --> 00:19:21.460
dieses ganze Unternehmen wird durch KI

00:19:21.460 --> 00:19:22.960
ersetzt, sondern tatsächlich über

00:19:22.960 --> 00:19:25.320
so ganz völlig blöde, kleine

00:19:25.320 --> 00:19:27.340
Teilchen. Und der

00:19:27.340 --> 00:19:29.140
Herr Wolfram von Wolfram Alpha,

00:19:29.140 --> 00:19:31.440
der hat jetzt ein paar Artikel geschrieben, wo er

00:19:31.440 --> 00:19:33.200
meinte halt, Computational Thinking,

00:19:33.200 --> 00:19:35.580
wenn wir sagen, in der Schule

00:19:35.580 --> 00:19:37.360
wird ja Mathematik gelehrt, aber da lernst du halt nur

00:19:37.360 --> 00:19:39.740
rechnen. Und Computational

00:19:39.740 --> 00:19:41.580
Thinking wäre tatsächlich

00:19:41.580 --> 00:19:43.540
total spannend, aus einer Perspektive zu wissen,

00:19:43.540 --> 00:19:44.940
wann sind so

00:19:44.940 --> 00:19:47.600
Zahlen oder Datenmengen

00:19:47.600 --> 00:19:49.280
eigentlich für Computer zugänglich.

00:19:49.280 --> 00:19:51.260
Also ich habe jetzt im

00:19:51.260 --> 00:19:53.100
Bauprojekt an der Backe, weil ich ein privates Haus baue,

00:19:53.100 --> 00:19:54.980
und da fliegen natürlich tausend Excel-Tabellen rum,

00:19:54.980 --> 00:19:57.160
und dann habe ich es mehrfach gehabt, dass dann

00:19:57.160 --> 00:19:59.160
Excel-Tabellen rausfallen, wo in einer

00:19:59.160 --> 00:20:01.200
Spalte irgendwelche Zahlen drinstehen,

00:20:01.200 --> 00:20:03.020
aber dann gleichzeitig auch noch irgendwelche Worte

00:20:03.020 --> 00:20:05.240
mit so entweder einem Kommentar

00:20:05.240 --> 00:20:07.320
dran oder irgendwie unterschiedliche Maßeinheiten,

00:20:07.320 --> 00:20:09.180
wo ich dann auch drauf gucke und sage so,

00:20:09.180 --> 00:20:11.000
ja gut, die kann ich jetzt halt nicht mehr benutzen, um

00:20:11.000 --> 00:20:13.200
eine Formel drüber zu jagen, das geht doch nicht.

00:20:13.200 --> 00:20:15.340
Aber dieses Gefühl halt,

00:20:15.340 --> 00:20:17.120
wann sind Sachen für Rechner zugänglich,

00:20:17.120 --> 00:20:19.140
das musst du im Prinzip kulturell

00:20:19.140 --> 00:20:21.000
in so ein Unternehmen reinkriegen, wenn du Digitalisierung

00:20:21.000 --> 00:20:22.800
machen möchtest, und damit schlagen wir uns halt seit

00:20:22.800 --> 00:20:25.160
20 Jahren rum. Das ist das ganze 90er-Jahre

00:20:25.160 --> 00:20:27.020
Schulens 1 Netz, und das ist Neuland,

00:20:27.020 --> 00:20:28.460
und das ist...

00:20:28.460 --> 00:20:30.940
Ja, ja, klar, das ist ein großer kultureller

00:20:30.940 --> 00:20:32.820
Wandel, der da nötig ist,

00:20:32.820 --> 00:20:34.500
und die Leute müssen,

00:20:34.500 --> 00:20:36.420
ja, ich meine, es gibt halt so ein paar Verrückte,

00:20:36.420 --> 00:20:38.940
irgendwie, die das vielleicht dann vorher schon

00:20:38.940 --> 00:20:40.980
oder machen, oder sich selber

00:20:40.980 --> 00:20:42.780
damit so lange beschäftigt haben, bis sie es irgendwie können,

00:20:42.780 --> 00:20:45.060
aber für viele wird es halt so sein,

00:20:45.060 --> 00:20:46.840
das ist nur dann natürlich, wenn man

00:20:46.840 --> 00:20:48.800
da reingeboren wird. Ich glaube, das ist auch

00:20:48.800 --> 00:20:50.740
gar nicht so, weil ich glaube, gerade durch diese

00:20:50.740 --> 00:20:52.760
Vereinfachung, die man hat, man hat jetzt noch

00:20:52.760 --> 00:20:54.660
so ein Pad in der Hand, wo man links und rechts wischt, ist das nicht

00:20:54.660 --> 00:20:56.740
unbedingt zugänglich. Also dadurch, dass du diese

00:20:56.740 --> 00:20:58.840
tollen User-Interfaces hast und so, ne, das ist

00:20:58.840 --> 00:21:00.420
ja... Ja, aber ich glaube, du kannst

00:21:00.420 --> 00:21:02.620
nicht ohne die Sicht

00:21:02.620 --> 00:21:04.560
der Benutzer oder der Leute, die sich mit

00:21:04.560 --> 00:21:06.900
dem Bereich, mit der Domäne

00:21:06.900 --> 00:21:08.780
irgendwie auskennen, ohne die kommst

00:21:08.780 --> 00:21:10.680
du nicht aus, sondern damit das... Die müssen

00:21:10.680 --> 00:21:12.360
halt auch sozusagen verstehen, wie das, was wir tun...

00:21:12.360 --> 00:21:14.600
Ja, aber die wachsen ja nicht automatisch mit nach, sondern

00:21:14.600 --> 00:21:16.500
du musst sie ausbilden. Ich glaube nicht, dass nur, weil du

00:21:16.500 --> 00:21:18.560
Digital Native irgendwie bist, also reingeboren

00:21:18.560 --> 00:21:20.480
wirst, dass das funktioniert, sondern

00:21:20.480 --> 00:21:22.220
ich glaube, du musst tatsächlich da zur Perspektive

00:21:22.220 --> 00:21:24.820
mit dieser Brille draufgehen, du wirst jetzt da Tech-Experte

00:21:24.820 --> 00:21:26.480
sein. Ich glaube vor allem auch,

00:21:26.480 --> 00:21:28.140
es gab einen massiven Bruch durch die

00:21:28.140 --> 00:21:30.340
Systeme Android IOS,

00:21:30.340 --> 00:21:32.920
weil bisher...

00:21:32.920 --> 00:21:33.940
Wir können es natürlich sozusagen

00:21:33.940 --> 00:21:36.460
Opa erzählt vom Krieg spielen,

00:21:36.460 --> 00:21:38.080
die...

00:21:38.080 --> 00:21:40.080
Chat der Mark, Opa erzählt vom Krieg. Okay, warte mal,

00:21:40.080 --> 00:21:40.960
ich mach das. Ja, genau.

00:21:40.960 --> 00:21:44.100
Das ist mir vorgeworfen worden,

00:21:44.100 --> 00:21:46.240
nein, das ist mir nicht vorgeworfen worden, aber es ist irgendwie mit

00:21:46.240 --> 00:21:48.400
einem zwinkernden Auge auf dem PyCamp in Köln

00:21:48.400 --> 00:21:50.220
konfrontiert worden, wo ich

00:21:50.220 --> 00:21:51.640
halt auch meinte, guck mal, die Historie,

00:21:51.640 --> 00:21:54.120
ging es um irgendein Stück Technik, wo ich nochmal irgendwie

00:21:54.120 --> 00:21:56.140
nachgezeichnet habe, wie das über die letzten 15 Jahre halt

00:21:56.140 --> 00:21:58.200
entstanden ist und ich bin jetzt Mitte 30

00:21:58.200 --> 00:22:00.040
und werde dann halt von Leuten, die gerade im

00:22:00.040 --> 00:22:01.980
Studium stecken, angeguckt mit Opa erzählt vom Krieg.

00:22:01.980 --> 00:22:02.440
Ja, ja.

00:22:02.440 --> 00:22:06.240
Und es ist aber witzig, weil, klar, wir haben

00:22:06.240 --> 00:22:07.700
uns, also ich mich,

00:22:07.700 --> 00:22:09.780
ich glaube, wir sind so eine Liga, glaube ich, vom Alter,

00:22:09.780 --> 00:22:12.100
ich habe mich so über die

00:22:12.100 --> 00:22:14.020
90er Jahre halt durch Sachen durchgequält,

00:22:14.020 --> 00:22:16.180
wo ich ja sagen muss, es gab

00:22:16.180 --> 00:22:17.760
halt nie dort eine Trennung zwischen

00:22:17.760 --> 00:22:19.260
Konsument und Produzent.

00:22:20.220 --> 00:22:22.100
Ja, ich bin, egal ob auf

00:22:22.100 --> 00:22:24.000
DOS oder Windows, dann Mitte

00:22:24.000 --> 00:22:25.300
der 90er, irgendwann Richtung Linux,

00:22:25.300 --> 00:22:27.580
da war halt immer ein,

00:22:27.580 --> 00:22:29.940
du interagierst mit dem Ding und

00:22:29.940 --> 00:22:31.680
du versuchst irgendwie rauszukriegen selber, dass das

00:22:31.680 --> 00:22:33.360
irgendwie tut, was du willst und

00:22:33.360 --> 00:22:35.780
jetzt aber in dem ganzen Umfeld

00:22:35.780 --> 00:22:37.360
iOS, Android, hast du

00:22:37.360 --> 00:22:40.180
fast reine Konsumentengeräte,

00:22:40.180 --> 00:22:41.740
zumindest auf einer Ebene, wo

00:22:41.740 --> 00:22:44.320
diese Rekursivität

00:22:44.320 --> 00:22:46.000
von Rechnern, wo

00:22:46.000 --> 00:22:47.940
also von Neumann-Maschine,

00:22:47.940 --> 00:22:49.260
Daten und

00:22:49.260 --> 00:22:50.060
Daten- und

00:22:50.060 --> 00:22:51.840
Programme sind ja im gleichen Speicher und

00:22:51.840 --> 00:22:54.240
es ist sozusagen eine Wandelgestalt,

00:22:54.240 --> 00:22:56.140
ob etwas als Datum oder als Programm

00:22:56.140 --> 00:22:58.020
interpretiert wird, weswegen wir halt auch

00:22:58.020 --> 00:22:59.240
solche Dinge wie Viren haben

00:22:59.240 --> 00:23:01.100
und

00:23:01.100 --> 00:23:03.320
das ist ja was, was

00:23:03.320 --> 00:23:05.860
damals halt dazu geführt hat, dass man

00:23:05.860 --> 00:23:07.860
ständig, das war wahnsinnig aufwendig,

00:23:07.860 --> 00:23:08.920
das willst du nicht für jeden,

00:23:08.920 --> 00:23:11.960
wir können sagen, okay, wir haben uns

00:23:11.960 --> 00:23:13.900
da durchgekämpft und was einen nicht

00:23:13.900 --> 00:23:15.000
umbringt, macht einen stärker,

00:23:15.000 --> 00:23:18.220
aber das ist natürlich nicht die Zugänglichkeit

00:23:18.220 --> 00:23:19.900
und ich sehe aber tatsächlich, dass das

00:23:19.900 --> 00:23:21.960
Tablets und ganz einfache

00:23:21.960 --> 00:23:23.980
Systeme, eben auch, dass

00:23:23.980 --> 00:23:25.840
zum Beispiel das Dateisystem sich ja als Metapher

00:23:25.840 --> 00:23:27.100
aufgelöst hat im Prinzip,

00:23:27.100 --> 00:23:29.480
das macht, dass die Leute diese

00:23:29.480 --> 00:23:31.880
Universalität der Rechner nicht

00:23:31.880 --> 00:23:33.840
mehr wahrnehmen, sondern es ist nur noch

00:23:33.840 --> 00:23:35.620
eine Sammlung von Apps, die irgendwie,

00:23:35.620 --> 00:23:37.840
entweder sind sie miteinander integriert oder sie sind es nicht.

00:23:37.840 --> 00:23:39.420
Ja, aber sind

00:23:39.420 --> 00:23:42.020
naja, aber sind wir

00:23:42.020 --> 00:23:43.660
da nicht vielleicht noch einfach ein bisschen früh dran?

00:23:43.660 --> 00:23:45.620
Also wenn man sich jetzt sowas anguckt wie Shortcuts

00:23:45.620 --> 00:23:47.140
oder so auf iOS,

00:23:47.140 --> 00:23:49.740
das geht ja schon so ein bisschen in die

00:23:49.740 --> 00:23:51.680
Richtung, dass man damit dann halt auch Dinge tun kann,

00:23:51.680 --> 00:23:53.600
wie, ja, ich meine, ich übertreibe jetzt ein bisschen,

00:23:53.600 --> 00:23:55.680
aber mit Pipes auf der

00:23:55.680 --> 00:23:56.700
Kommandozeile oder so,

00:23:56.700 --> 00:23:59.400
nur halt in grafisch und mit einem schönen

00:23:59.400 --> 00:24:00.360
Interface, ja.

00:24:00.360 --> 00:24:02.840
Halt nicht, weil

00:24:02.840 --> 00:24:05.540
das ist halt nicht mehr universal, es geht halt nur

00:24:05.540 --> 00:24:07.400
das, was dir zugelassen wird, was

00:24:07.400 --> 00:24:07.880
geht.

00:24:07.880 --> 00:24:11.460
Gut, okay, ja, man kann natürlich noch

00:24:11.460 --> 00:24:13.440
einige Sachen selber schreiben, aber

00:24:13.440 --> 00:24:14.940
das ist natürlich dann auch wieder,

00:24:14.940 --> 00:24:17.140
da ist man dann sofort in so einem Profibereich,

00:24:17.140 --> 00:24:19.580
wo man dann irgendwie sich hier

00:24:19.580 --> 00:24:20.980
registrieren muss bei Apple und so, ja.

00:24:20.980 --> 00:24:23.400
Ja, genau, und das Modell ist halt nicht sehr stark an der Stelle,

00:24:23.400 --> 00:24:25.400
sondern das ist halt sehr darauf angelegt, dass es

00:24:25.400 --> 00:24:27.440
halt, ich meine, Sachen einfach zu

00:24:27.440 --> 00:24:29.280
machen ist ein schwieriges Problem und

00:24:29.280 --> 00:24:31.380
Computing ist ein

00:24:31.380 --> 00:24:33.440
schwieriges Problem. Das wird so nicht

00:24:33.440 --> 00:24:35.080
halt für jeden zugänglich sein, aber es ist halt,

00:24:35.080 --> 00:24:37.340
wenn ich die Sprachmetapher nochmal bemühe,

00:24:37.340 --> 00:24:39.300
wenn du halt das Unternehmen umstellst von Deutsch

00:24:39.300 --> 00:24:41.380
auf Englisch, dann erwartest du ja auch nicht, dass

00:24:41.380 --> 00:24:43.660
jeder danach ein englischer Schriftsteller

00:24:43.660 --> 00:24:45.360
ist, sondern du erwartest, dass

00:24:45.360 --> 00:24:47.440
die Leute halt so ein gewisses robustes Set an

00:24:47.440 --> 00:24:48.820
Sprache halt können,

00:24:49.420 --> 00:24:50.800
mit dem sie halt wissen,

00:24:50.800 --> 00:24:52.920
ah, der Empfang kann zumindest mal sagen, wo die Toilette

00:24:52.920 --> 00:24:54.440
ist und wo es in die Chefetage geht

00:24:54.440 --> 00:24:56.100
und kann dir ein Taxi rufen.

00:24:56.100 --> 00:24:58.920
Kantine. Ja, Kantine, auch richtig, genau.

00:24:58.920 --> 00:24:59.640
Ich bin nicht Hunger, ja.

00:24:59.640 --> 00:25:02.780
Aber es ist halt was anderes, als wenn du

00:25:02.780 --> 00:25:04.900
dann sagst, wir bringen jetzt das Unternehmen auf Englisch,

00:25:04.900 --> 00:25:06.500
indem wir halt überall Wörterbücher auslegen.

00:25:06.500 --> 00:25:07.900
Ja.

00:25:07.900 --> 00:25:11.320
Das funktioniert halt einfach nicht, ja.

00:25:11.320 --> 00:25:13.980
Okay, spannend, spannend.

00:25:13.980 --> 00:25:16.760
Ja, aber ich glaube, von diesem generellen Problem der

00:25:16.760 --> 00:25:19.200
Digitalisierung würde ich uns jetzt mal so ein bisschen

00:25:19.260 --> 00:25:20.920
wieder wegführen, weil wir können das, glaube ich, heute auch

00:25:20.920 --> 00:25:22.820
nicht mehr reden oder wir können zumindest noch mindestens zwei Stunden

00:25:22.820 --> 00:25:24.540
darüber reden, was das da alles für Fragen gibt.

00:25:24.540 --> 00:25:26.960
Okay, dann mache ich jetzt hier direkt mal eine Kapitelmarke,

00:25:26.960 --> 00:25:29.040
aber ich würde auch noch gerne eine Sache

00:25:29.040 --> 00:25:29.940
ansprechen,

00:25:29.940 --> 00:25:32.760
wo es, ich glaube, da ging es

00:25:32.760 --> 00:25:34.980
kurz eben drum, aber ich habe

00:25:34.980 --> 00:25:36.120
es nicht geschafft, da reinzugrätschen.

00:25:36.120 --> 00:25:38.740
Aber nur ganz kurz, weil wir wollen dann auch erklären,

00:25:38.740 --> 00:25:40.900
tatsächlich, wie man das mit Preisen so machen kann.

00:25:40.900 --> 00:25:42.800
Ja, und zwar

00:25:42.800 --> 00:25:44.900
ging es da um die

00:25:44.900 --> 00:25:46.020
Bereiche,

00:25:46.020 --> 00:25:47.780
in denen

00:25:49.100 --> 00:25:51.100
Python eingesetzt wird.

00:25:51.100 --> 00:25:53.700
Ich weiß nicht, habt ihr das

00:25:53.700 --> 00:25:56.000
mitbekommen,

00:25:56.000 --> 00:25:58.300
die PyCon US

00:25:58.300 --> 00:25:59.340
war jetzt erst vor kurzem

00:25:59.340 --> 00:26:01.280
und die Keynote hat da, glaube ich,

00:26:01.280 --> 00:26:03.520
Russell Keyes-McGee oder so

00:26:03.520 --> 00:26:04.180
gehalten.

00:26:04.180 --> 00:26:07.580
Ich weiß nicht, ob ihr den Vortrag gehört habt.

00:26:07.580 --> 00:26:08.700
Ich war im Urlaub.

00:26:08.700 --> 00:26:09.960
Achso, nee.

00:26:09.960 --> 00:26:11.380
Ich habe Kinder.

00:26:11.380 --> 00:26:13.900
Ganz gute Entschuldigung.

00:26:13.900 --> 00:26:15.160
Immer.

00:26:15.160 --> 00:26:18.940
Was ich da jetzt mittlerweile

00:26:18.940 --> 00:26:20.140
häufig mache, ist,

00:26:20.140 --> 00:26:23.620
die laden ja meistens auf YouTube

00:26:23.620 --> 00:26:25.400
und es gibt in meinem Podcast-Player

00:26:25.400 --> 00:26:30.120
irgendwie so ein Zeit-Loading-Share-Sheet-Extension-Dings

00:26:30.120 --> 00:26:31.480
für iOS und dann sage ich

00:26:31.480 --> 00:26:33.660
auf der YouTube-Seite

00:26:33.660 --> 00:26:35.440
so irgendwie, share das mal mit meinem

00:26:35.440 --> 00:26:37.580
Podcast-Player und dann kriege ich das Audio halt dann

00:26:37.580 --> 00:26:39.420
als normale Podcast-Folge sozusagen rein

00:26:39.420 --> 00:26:41.560
und das ist ganz angenehm, wobei

00:26:41.560 --> 00:26:42.840
man dann halt auch merkt, dass die

00:26:42.840 --> 00:26:45.400
Audio-Qualität bei so Vorträgen oft auch

00:26:45.400 --> 00:26:47.460
nicht so toll ist und naja, wenn man das Bild halt nicht

00:26:47.460 --> 00:26:48.900
sieht und die Folien ist auch schon so ein bisschen

00:26:48.900 --> 00:26:50.820
Informationen weg, also ganz toll ist es nicht.

00:26:50.820 --> 00:26:53.080
Aber seitdem höre ich mehr

00:26:53.080 --> 00:26:55.400
Talks, weil es ansonsten

00:26:55.400 --> 00:26:57.240
die Zeit irgendwie vom Rechner zu sitzen und ein Video

00:26:57.240 --> 00:26:59.180
zu gucken, das ist einfach nicht...

00:26:59.180 --> 00:27:01.300
Ich kriege das immer nur dann hin, wenn ich noch nebenbei was anderes

00:27:01.300 --> 00:27:03.280
mache. Ansonsten funktioniert das

00:27:03.280 --> 00:27:03.660
irgendwie nicht.

00:27:03.660 --> 00:27:07.000
Aber zum Thema,

00:27:07.000 --> 00:27:09.160
das war ganz interessant und zwar

00:27:09.160 --> 00:27:10.200
hatte der etwas angesprochen,

00:27:10.200 --> 00:27:13.140
was man halt auch so als... Der kommt irgendwie aus

00:27:13.140 --> 00:27:13.620
Australien.

00:27:13.620 --> 00:27:17.260
Nach dem Taleb hat man ein Buch geschrieben, The Black Swan

00:27:17.260 --> 00:27:18.480
und genau,

00:27:18.900 --> 00:27:21.260
das mit den schwarzen Schwänen ist auch so ein Ding,

00:27:21.260 --> 00:27:23.400
was in Australien halt da mal aufgefallen ist. Man dachte

00:27:23.400 --> 00:27:24.960
halt bis irgendwie vor ein paar hundert Jahren,

00:27:24.960 --> 00:27:27.300
also bis halt Australien irgendwie so richtig entdeckt

00:27:27.300 --> 00:27:29.280
war, dass es nur weiße Schwäne gäbe, weil

00:27:29.280 --> 00:27:30.480
man hatte noch nie einen schwarzen gesehen.

00:27:30.480 --> 00:27:33.160
Aber in Australien gibt es tatsächlich wohl

00:27:33.160 --> 00:27:34.660
schwarze Schwäne

00:27:34.660 --> 00:27:36.960
und ja,

00:27:36.960 --> 00:27:39.180
als die zum ersten Mal jemand gesehen hat,

00:27:39.180 --> 00:27:41.040
dann war sozusagen diese Theorie,

00:27:41.040 --> 00:27:42.800
dass alle

00:27:42.800 --> 00:27:45.160
Schwäne weiß sind, halt auf einen Schlag

00:27:45.160 --> 00:27:47.160
erledigt und das sind solche Sachen, die

00:27:47.160 --> 00:27:48.880
passieren halt ab und zu und die kann man sehr,

00:27:48.880 --> 00:27:50.520
sehr schlecht vorhersagen.

00:27:50.520 --> 00:27:52.800
Und das, ja, solche Ereignisse

00:27:52.800 --> 00:27:54.760
gibt es halt nicht nur, wenn man Natur

00:27:54.760 --> 00:27:56.800
beobachtet, sondern halt auch in diversen anderen

00:27:56.800 --> 00:27:58.840
Bereichen. Es gibt halt irgendwelche Finanzkrisen oder so,

00:27:58.840 --> 00:28:00.860
die auftreten können, wo man halt vorher

00:28:00.860 --> 00:28:02.280
gedacht hat, das geht jetzt immer so weiter.

00:28:02.280 --> 00:28:03.720
Und

00:28:03.720 --> 00:28:06.620
naja, der sprach

00:28:06.620 --> 00:28:09.040
halt über diese Ereignisse,

00:28:09.040 --> 00:28:10.680
die halt passieren können und

00:28:10.680 --> 00:28:12.780
was das für Ereignisse sein könnten,

00:28:12.780 --> 00:28:14.240
die Python

00:28:14.240 --> 00:28:16.900
ja, sozusagen vielleicht obsolet machen

00:28:16.900 --> 00:28:17.900
oder schwer,

00:28:18.860 --> 00:28:21.080
sozusagen, ja,

00:28:21.080 --> 00:28:23.580
beeinflussen könnten und die man

00:28:23.580 --> 00:28:25.620
momentan nicht so richtig kommen sieht, weil

00:28:25.620 --> 00:28:27.660
auch im IT-Sektor ist das

00:28:27.660 --> 00:28:29.200
natürlich schon ganz oft passiert, irgendwie so

00:28:29.200 --> 00:28:31.000
der PC, der irgendwie aufgetaucht ist,

00:28:31.000 --> 00:28:33.180
war wahrscheinlich für viele Unternehmen, die vorher ganz gut

00:28:33.180 --> 00:28:34.460
mit irgendwelchen Dingen gelebt haben,

00:28:34.460 --> 00:28:37.320
so ein schwarzer

00:28:37.320 --> 00:28:38.980
Schwan, der aufgetreten ist und dann plötzlich irgendwie die ganze

00:28:38.980 --> 00:28:40.440
Märkte kaputt gemacht hat oder irgendwie,

00:28:40.440 --> 00:28:42.720
ja, Smartphones sind halt auch sowas,

00:28:42.720 --> 00:28:44.260
die den ganzen

00:28:44.260 --> 00:28:46.600
PDA-Markt irgendwie

00:28:46.600 --> 00:28:48.680
aufgerollt haben und Nokia,

00:28:48.840 --> 00:28:50.680
irgendwie sozusagen in die,

00:28:50.680 --> 00:28:52.540
naja, in den,

00:28:52.540 --> 00:28:54.880
ja, wie soll man, Microsoft-Pro-Ruhestand geschickt haben

00:28:54.880 --> 00:28:55.660
und

00:28:55.660 --> 00:28:59.000
was der sagte,

00:28:59.000 --> 00:29:01.240
also man kann inzwischen sehen, was das sein könnte

00:29:01.240 --> 00:29:03.080
und für ihn ist halt interessant

00:29:03.080 --> 00:29:04.800
rauszukriegen, was man dagegen tun kann und

00:29:04.800 --> 00:29:07.160
er meint, dass der halt zum Beispiel

00:29:07.160 --> 00:29:09.100
eine ganz schlechte

00:29:09.100 --> 00:29:10.940
Geschichte ist, dass halt eben auf solchen Geräten

00:29:10.940 --> 00:29:12.900
wie Tablets, irgendwie Telefonen oder so

00:29:12.900 --> 00:29:14.940
halt Python nicht wirklich läuft

00:29:14.940 --> 00:29:17.180
und dass wenn jetzt aber

00:29:17.180 --> 00:29:18.820
der Markt so umkippt, dass halt

00:29:18.820 --> 00:29:20.680
irgendwie Desktop-Computer und auch Laptops

00:29:20.680 --> 00:29:22.280
nur noch was für Profis sind und

00:29:22.280 --> 00:29:23.920
ja,

00:29:23.920 --> 00:29:27.200
die ganzen Konsumenten, der ganze Konsumentenmarkt

00:29:27.200 --> 00:29:29.180
halt auf irgendwelchen

00:29:29.180 --> 00:29:31.160
ja, Tablet- oder Smartphone-mäßigen

00:29:31.160 --> 00:29:33.100
Endgeräten ist, dann kann es

00:29:33.100 --> 00:29:34.780
sein, dass das ein sehr großes Problem wird,

00:29:34.780 --> 00:29:36.800
dass da Python halt überhaupt, dass man damit mit

00:29:36.800 --> 00:29:38.040
Python überhaupt nichts machen kann

00:29:38.040 --> 00:29:40.760
und dass es halt auch ein Riesenproblem ist, dass

00:29:40.760 --> 00:29:42.680
das halt auch nicht sich überbrücken lässt durch irgendwie

00:29:42.680 --> 00:29:44.380
solche Sachen wie Web oder so, weil

00:29:44.380 --> 00:29:46.200
JavaScript wird das wahrscheinlich überleben.

00:29:46.200 --> 00:29:48.800
JavaScript läuft halt in Browser, Browser sind auch

00:29:48.800 --> 00:29:49.920
von den Geräten nicht wegzudenken,

00:29:49.920 --> 00:29:53.080
aber Python läuft weder im Browser

00:29:53.080 --> 00:29:53.560
Ja, wobei,

00:29:53.560 --> 00:29:56.980
was mir da mehr durch den Kopf geht,

00:29:56.980 --> 00:29:58.760
ist, dass ich glaube, wir werden dann

00:29:58.760 --> 00:29:59.960
eher sehen, dass es noch

00:29:59.980 --> 00:30:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:30:29.980 --> 00:30:59.960
und Jochen unterhalten sich über die Programmiersprache Python

00:30:59.980 --> 00:31:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:31:29.980 --> 00:31:52.960
und Jochen unterhalten sich über die Programmiersprache Python

00:31:52.960 --> 00:31:57.980
und Jochen unterhalten sich über die Programmiersprache Python

00:31:57.980 --> 00:31:59.580
und Jochen unterhalten sich über die Programmiersprache Python

00:31:59.580 --> 00:31:59.600
und Jochen unterhalten sich über die Programmiersprache Python

00:31:59.600 --> 00:31:59.960
und Jochen unterhalten sich über die Programmiersprache Python

00:31:59.980 --> 00:32:29.860
und Jochen unterhalten sich über die Programmiersprache Python

00:32:29.860 --> 00:32:29.880
und Jochen unterhalten sich über die Programmiersprache Python

00:32:29.880 --> 00:32:29.900
und Jochen unterhalten sich über die Programmiersprache Python

00:32:29.900 --> 00:32:29.920
und Jochen unterhalten sich über die Programmiersprache Python

00:32:29.920 --> 00:32:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:32:29.980 --> 00:32:30.000
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.000 --> 00:32:30.020
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.020 --> 00:32:30.040
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.040 --> 00:32:30.040
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.040 --> 00:32:30.060
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.060 --> 00:32:30.060
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.060 --> 00:32:30.100
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.100 --> 00:32:30.120
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.120 --> 00:32:30.160
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.160 --> 00:32:30.220
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.220 --> 00:32:30.280
und Jochen unterhalten sich über die Programmiersprache Python

00:32:30.280 --> 00:32:30.300
und Jochen unterhalten sich über die Programmiersprache Python

00:32:59.980 --> 00:33:29.920
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.920 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:29.960
und Jochen unterhalten sich über die Programmiersprache Python

00:33:29.960 --> 00:33:59.940
und Jochen unterhalten sich über die Programmiersprache Python

00:33:59.940 --> 00:34:29.920
und Jochen unterhalten sich über die Programmiersprache Python

00:34:29.920 --> 00:34:59.900
und Jochen unterhalten sich über die Programmiersprache Python

00:34:59.900 --> 00:35:29.880
und Jochen unterhalten sich über die Programmiersprache Python

00:35:29.880 --> 00:35:59.860
und Jochen unterhalten sich über die Programmiersprache Python

00:35:59.860 --> 00:36:29.840
und Jochen unterhalten sich über die Programmiersprache Python

00:36:29.860 --> 00:36:59.840
und Jochen unterhalten sich über die Programmiersprache Python

00:36:59.860 --> 00:37:29.840
und Jochen unterhalten sich über die Programmiersprache Python

00:37:29.840 --> 00:37:58.980
und Jochen unterhalten sich über die Programmiersprache Python

00:37:58.980 --> 00:37:59.000
und Jochen unterhalten sich über die Programmiersprache Python

00:37:59.000 --> 00:37:59.220
und Jochen unterhalten sich über die Programmiersprache Python

00:37:59.220 --> 00:37:59.360
und Jochen unterhalten sich über die Programmiersprache Python

00:37:59.360 --> 00:37:59.380
und Jochen unterhalten sich über die Programmiersprache Python

00:37:59.380 --> 00:37:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:37:59.840 --> 00:38:29.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:29.840 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:38:59.820
und Jochen unterhalten sich über die Programmiersprache Python

00:38:59.820 --> 00:39:29.800
und Jochen unterhalten sich über die Programmiersprache Python

00:39:29.800 --> 00:39:59.780
und Jochen unterhalten sich über die Programmiersprache Python

00:39:59.780 --> 00:40:29.760
und Jochen unterhalten sich über die Programmiersprache Python

00:40:29.760 --> 00:40:59.740
und Jochen unterhalten sich über die Programmiersprache Python

00:40:59.740 --> 00:41:29.720
und Jochen unterhalten sich über die Programmiersprache Python

00:41:29.720 --> 00:41:59.700
und Jochen unterhalten sich über die Programmiersprache Python

00:41:59.700 --> 00:42:25.620
und Jochen unterhalten sich über die Programmiersprache Python

00:42:25.620 --> 00:42:25.640
und Jochen unterhalten sich über die Programmiersprache Python

00:42:25.640 --> 00:42:29.660
und Jochen unterhalten sich über die Programmiersprache Python

00:42:29.660 --> 00:42:29.680
und Jochen unterhalten sich über die Programmiersprache Python

00:42:29.700 --> 00:42:59.680
und Jochen unterhalten sich über die Programmiersprache Python

00:42:59.700 --> 00:43:29.680
und Jochen unterhalten sich über die Programmiersprake Python

00:43:29.700 --> 00:43:59.680
und Jochen unterhalten sich über die Programmiersprake Python

00:43:59.700 --> 00:43:59.720
und Jochen unterhalten sich über die Programmiersprake Python

00:43:59.720 --> 00:43:59.740
und Jochen unterhalten sich über die Programmiersprake Python

00:43:59.740 --> 00:43:59.840
und Jochen unterhalten sich über die Programmiersprake Python

00:43:59.840 --> 00:44:29.060
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.060 --> 00:44:29.160
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.160 --> 00:44:29.240
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.240 --> 00:44:29.300
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.300 --> 00:44:29.320
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.320 --> 00:44:29.340
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.340 --> 00:44:29.360
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.360 --> 00:44:29.380
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.380 --> 00:44:29.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.540 --> 00:44:29.560
und Jochen unterhalten sich über die Programmiersprake Python

00:44:29.560 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:44:59.540
und Jochen unterhalten sich über die Programmiersprake Python

00:44:59.540 --> 00:45:29.520
und Jochen unterhalten sich über die Programmiersprake Python

00:45:29.520 --> 00:45:59.500
und Jochen unterhalten sich über die Programmiersprake Python

00:45:59.500 --> 00:46:29.480
und Jochen unterhalten sich über die Programmiersprake Python

00:46:29.480 --> 00:46:59.460
und Jochen unterhalten sich über die Programmiersprake Python

00:46:59.460 --> 00:47:29.440
und Jochen unterhalten sich über die Programmiersprake Python

00:47:29.440 --> 00:47:59.420
und Jochen unterhalten sich über die Programmiersprake Python

00:47:59.420 --> 00:48:29.400
und Jochen unterhalten sich über die Programmiersprake Python

00:48:29.400 --> 00:48:59.380
und Jochen unterhalten sich über die Programmiersprake Python

00:48:59.380 --> 00:49:26.660
und Jochen unterhalten sich über die Programmiersprake Python

00:49:26.660 --> 00:49:26.800
und Jochen unterhalten sich über die Programmiersprake Python

00:49:26.800 --> 00:49:26.900
und Jochen unterhalten sich über die Programmiersprake Python

00:49:26.900 --> 00:49:26.960
und Jochen unterhalten sich über die Programmiersprake Python

00:49:26.960 --> 00:49:27.020
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.020 --> 00:49:27.040
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.040 --> 00:49:27.080
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.080 --> 00:49:27.140
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.140 --> 00:49:27.160
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.160 --> 00:49:27.240
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.240 --> 00:49:27.260
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.260 --> 00:49:27.280
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.280 --> 00:49:27.320
und Jochen unterhalten sich über die Programmiersprake Python

00:49:27.320 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:49:57.300
und Jochen unterhalten sich über die Programmiersprake Python

00:49:57.300 --> 00:50:27.280
und Jochen unterhalten sich über die Programmiersprake Python

00:50:27.280 --> 00:50:57.260
und Jochen unterhalten sich über die Programmiersprake Python

00:50:57.260 --> 00:51:27.240
und Jochen unterhalten sich über die Programmiersprake Python

00:51:27.240 --> 00:51:57.220
und Jochen unterhalten sich über die Programmiersprake Python

00:51:57.220 --> 00:52:27.200
und Jochen unterhalten sich über die Programmiersprake Python

00:52:27.200 --> 00:52:57.180
und Jochen unterhalten sich über die Programmiersprake Python

00:52:57.180 --> 00:53:27.160
und Jochen unterhalten sich über die Programmiersprake Python

00:53:27.160 --> 00:53:57.140
und Jochen unterhalten sich über die Programmiersprake Python

00:53:57.140 --> 00:54:21.140
und Jochen unterhalten sich über die Programmiersprake Python

00:54:21.140 --> 00:54:22.000
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.000 --> 00:54:22.040
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.040 --> 00:54:22.060
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.060 --> 00:54:22.080
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.080 --> 00:54:22.100
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.100 --> 00:54:22.160
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.160 --> 00:54:22.180
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.180 --> 00:54:22.220
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.220 --> 00:54:22.260
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.260 --> 00:54:22.300
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.300 --> 00:54:22.300
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.300 --> 00:54:22.320
und Jochen unterhalten sich über die Programmiersprake Python

00:54:22.320 --> 00:54:52.300
und Jochen unterhalten sich über die Programmiersprake Python

00:54:52.300 --> 00:54:52.300
und Jochen unterhalten sich über die Programmiersprake Python

00:54:52.300 --> 00:54:52.300
und Jochen unterhalten sich über die Programmiersprake Python

00:54:52.300 --> 00:55:22.280
und Jochen unterhalten sich über die Programmiersprake Python

00:55:22.280 --> 00:55:52.260
und Jochen unterhalten sich über die Programmiersprake Python

00:55:52.260 --> 00:56:22.240
und Jochen unterhalten sich über die Programmiersprake Python

00:56:22.240 --> 00:56:52.220
und Jochen unterhalten sich über die Programmiersprake Python

00:56:52.220 --> 00:57:22.200
und Jochen unterhalten sich über die Programmiersprake Python

00:57:22.200 --> 00:57:52.180
und Jochen unterhalten sich über die Programmiersprake Python

00:57:52.200 --> 00:58:22.180
und Jochen unterhalten sich über die Programmiersprake Python

00:58:22.200 --> 00:58:52.180
und Jochen unterhalten sich über die Programmiersprake Python

00:58:52.200 --> 00:59:22.180
und Jochen unterhalten sich über die Programmiersprake Python

00:59:22.200 --> 00:59:22.280
und Jochen unterhalten sich über die Programmiersprake Python

00:59:22.280 --> 00:59:52.180
und Jochen unterhalten sich über die Programmiersprake Python

00:59:52.200 --> 00:59:52.280
und Jochen unterhalten sich über die Programmiersprake Python

00:59:52.280 --> 00:59:52.360
und Jochen unterhalten sich über die Programmiersprake Python

00:59:52.360 --> 00:59:59.960
und Jochen unterhalten sich über die Programmiersprake Python

00:59:59.960 --> 01:00:06.120
und will mich halt auf bestimmte Funktionen, bestimmte Sachen, die ich entwickeln möchte, halt konzentrieren.

01:00:06.120 --> 01:00:15.560
Und aus einer Obstperspektive hast du aber eher das Thema, dass du eben reaktiv, auch Echtzeitreaktiv auf das Verhalten der Anwendung reagieren können möchtest.

01:00:15.560 --> 01:00:22.700
Und das sind zwei Sachen, die funktionieren nicht gut an einem Tag in der gleichen Person, sagen wir es mal so.

01:00:22.700 --> 01:00:27.780
Also du kannst es schon so machen, wenn ich einen Tag mache, wo ich sage, ich entwickle jetzt wieder Software bei uns,

01:00:28.260 --> 01:00:31.160
dann versuche ich es möglichst zu vermeiden, dass ich irgendwie so Obstsachen mache,

01:00:31.160 --> 01:00:36.280
weil Obstsachen sind Dinge, die können gerne mehrere Stunden dauern, wo du immer mal nochmal hingucken musst.

01:00:36.280 --> 01:00:41.920
Und dann die grüne und dann bringt die blaue die ganze Zeit, dann oh oh, dann kommt jetzt der Bruder auf.

01:00:41.920 --> 01:00:48.540
Genau, genau. Und allein deswegen macht es Sinn, das als unterschiedliche Rollen halt auch aufzufassen.

01:00:48.540 --> 01:00:53.140
Das muss ja noch nicht mal dann sein, dass eine Person immer Obst ist, aber dass du halt zum Beispiel weißt,

01:00:53.140 --> 01:00:56.320
das sind unterschiedliche Zuständigkeiten und ich muss mir das halt auch unterschiedlich zurechtlegen.

01:00:56.560 --> 01:01:01.140
Und dann ist eine mentale Separierung dieser zwei Rollen und die auch so ein bisschen zu klären,

01:01:01.140 --> 01:01:03.940
was haben die eigentlich zu tun, erstmal ganz sinnvoll.

01:01:03.940 --> 01:01:08.420
Und wenn du es jetzt über DevOps als Fortmantur wieder zusammen klatscht, bedeutet es halt nur,

01:01:08.420 --> 01:01:11.440
die beiden müssen trotzdem in einem ständigen Austausch miteinander stehen,

01:01:11.440 --> 01:01:13.080
in einem konstruktiven Austausch miteinander stehen.

01:01:13.080 --> 01:01:17.220
Auf der einen Seite möchtest du, dass operatives Wissen in Projekte reinfließt, während die anfangen.

01:01:17.220 --> 01:01:22.260
Und auf der anderen Seite möchtest du auch, dass Entwicklungen, es kann man in vier Sachen,

01:01:22.260 --> 01:01:26.540
also auf der einen Seite willst du operatives Wissen in Richtung Entwickler bei Projektbeginn haben,

01:01:26.560 --> 01:01:29.440
a la, okay, was wollten ihr machen, was wollten ihr für Tools nehmen,

01:01:29.440 --> 01:01:31.760
ah, könnt ihr vielleicht statt der MySQL lieber eine Postgres nehmen,

01:01:31.760 --> 01:01:34.620
könnt ihr vielleicht, wofür nehmt ihr den Memcache, komm, lindet ihr den Redis.

01:01:34.620 --> 01:01:40.220
Da wundere ich mich auch schon manchmal, dass das eine Ops-Aufgabe ist, sowas zu unterstützen,

01:01:40.220 --> 01:01:43.860
weil eigentlich denke ich mir so, hallo, liebe Entwickler, ihr müsst eure Tools halt auch kennen.

01:01:43.860 --> 01:01:49.100
Aber anyway, die war zumindest mein Entwickleranspruch immer.

01:01:49.100 --> 01:01:53.980
Umgekehrt möchte ich, dass Entwickler wissen, wie tickt diese Anwendung intern eigentlich.

01:01:53.980 --> 01:01:56.540
Und da finde ich auch so Sprachen wie Python zum Beispiel angenehm,

01:01:56.560 --> 01:01:58.860
wo du den Source-Code eigentlich immer gleich zur Hand hast,

01:01:58.860 --> 01:02:03.220
dass die Ops halt mehr Einsicht kriegen in, was macht die Anwendung hier eigentlich,

01:02:03.220 --> 01:02:05.640
ist das hier gerade ein Bug, ist das Absicht, was tut denn das?

01:02:05.640 --> 01:02:08.420
Also wir holen da halt gerne dann auch mal gleich den Code raus, um zu sehen,

01:02:08.420 --> 01:02:10.760
warum rechnen die denn hier, ah, guck mal da drüben.

01:02:10.760 --> 01:02:15.460
Und dass diese Form von Austausch halt dann auch macht, dass Ops zum Beispiel mehr lernen,

01:02:15.460 --> 01:02:18.500
okay, was brauchen Entwickler eigentlich aus der operativen Perspektive.

01:02:18.500 --> 01:02:22.680
Und wenn die Entwickler das dann halt mitgekriegt haben, wie ist denn das mit dem Ops,

01:02:22.680 --> 01:02:24.980
dass die dann halt besser wissen, ah, guck mal, wenn wir folgende Dinge tun,

01:02:25.080 --> 01:02:28.760
dann bauen wir uns halt schon unser eigenes Grab und ich vermeide jetzt halt wieder bestimmte,

01:02:28.760 --> 01:02:33.140
dann vermeide, ja, ein beliebtes Beispiel ist halt irgendwie, du renderst irgendeine Page raus,

01:02:33.140 --> 01:02:35.860
wenn man halt serverseitiges HTML-Rendering macht,

01:02:35.860 --> 01:02:39.160
du willst irgendeinen Twitter-Feed einbinden und redest halt mit der Twitter-API.

01:02:39.160 --> 01:02:47.620
Programmierfehler für 10 Euro, du gehst halt mit einem synchronen Socket per HTTP an diese Schnittstelle ran

01:02:47.620 --> 01:02:50.520
und wenn Twitter in dem Moment meint, ich hab keinen Bock, dann bleibt halt deine Frontpage stehen.

01:02:50.520 --> 01:02:54.200
Dann läuft dir dein Threadpool für den Anwendungs-Server voll und dann bist du halt komplett down.

01:02:55.080 --> 01:02:58.060
Und das dauert halt so ungefähr 30 Sekunden, bis das der Fall ist.

01:02:58.060 --> 01:03:03.860
Es passiert halt immer wieder und das kriegst du auch nicht raus, weil die Welt halt so komplex ist,

01:03:03.860 --> 01:03:08.880
dass auch Entwickler, die zwar entwickeln gelernt haben und selbst die halt schon 10, 20 Jahre dabei sind,

01:03:08.880 --> 01:03:12.080
auch die machen da immer mal Fehler dabei und müssen sich ein bisschen mit Ops reiben,

01:03:12.080 --> 01:03:15.720
mit was sind denn die Fehler, die jetzt halt momentan typischerweise auftreten.

01:03:15.720 --> 01:03:18.820
Es gibt halt bestimmte Fehler, das ist auch wieder so ein Thema aus der komplexen Welt,

01:03:18.820 --> 01:03:25.060
die gleichen Fehler treten die zweimal auf und bestimmte Probleme, die wir dann über sowas wie Root-Core,

01:03:25.080 --> 01:03:29.980
Root-Core-Analysis oder so erschlagen wollen, da kommt immer eins, Root-Core-Analysis.

01:03:29.980 --> 01:03:34.220
Das muss ich einfach nochmal kurz erklären, das sind einige Hörer, die sind genauso doof wie ich und die wissen nicht, was das ist.

01:03:34.220 --> 01:03:36.720
Die Wurzel-Grund-Analyse.

01:03:36.720 --> 01:03:39.960
Jetzt weiß ich mehr.

01:03:39.960 --> 01:03:47.060
Was war, du hast halt bei Fehlern, wenn Probleme auftreten, hast du ja irgendwann mal...

01:03:47.060 --> 01:03:48.360
Also welche Zeile, wo das steht.

01:03:48.360 --> 01:03:54.860
Sozusagen oder halt auch, welche Komponente ist kaputt gegangen, welche Festplatte ist kaputt gegangen,

01:03:55.080 --> 01:03:59.880
hat irgendwer, hat die Putzfrau gerade irgendwie den Server ausgesteckt und die...

01:03:59.880 --> 01:04:02.960
Okay, also wo ist die Lampe an und warum ist die an vor allen Dingen.

01:04:02.960 --> 01:04:08.140
Ja genau, es kann ja so eine Kausalitätskette geben, so eine Kette von mehreren Gründen, die aufeinander aufgelaufen sind,

01:04:08.140 --> 01:04:10.420
warum dann am Ende irgendwie vorne was umgefallen ist.

01:04:10.420 --> 01:04:17.980
Und diese Kette nachzuverfolgen, das nennt sich halt Root-Core-Analysis und die ist halt aus einer auch wieder sehr analytischen Perspektive von

01:04:17.980 --> 01:04:23.360
finde bitte raus, wer schuld ist, erschieß ihn und schaff was besseres an.

01:04:23.360 --> 01:04:24.980
Und das Dumme ist aber...

01:04:25.080 --> 01:04:30.180
Wenn du halt eben in sowas wie die Black-Swan-Theorie reingehst oder in die Komplexität, dann wirst du feststellen,

01:04:30.180 --> 01:04:36.900
im Prinzip ist im Komplexen der Normalzustand, dass ständig irgendwelche Sachen außerhalb des Optimums laufen.

01:04:36.900 --> 01:04:39.300
Das ist halt der Normalzustand.

01:04:39.300 --> 01:04:46.140
Und dein System so zu designen und auch dieses Feedback auf Team-Ebene zu haben von

01:04:46.140 --> 01:04:52.140
was ist eigentlich normal und wann darf ich mich nicht zu weit aus dem Fenster lehnen,

01:04:52.140 --> 01:04:54.660
dafür ein Bauchgefühl zu entwickeln.

01:04:55.080 --> 01:04:57.320
Also die Praktiken, die halt heute relevant sind.

01:04:57.320 --> 01:05:00.500
Ich kann nicht alle Praktiken, die es jemals gab, aufaddieren.

01:05:00.500 --> 01:05:02.540
So wird aber dieser analytische Ansatz gemacht mit

01:05:02.540 --> 01:05:05.240
wir machen jedes Mal, wenn was schief geht, eine Root-Core-Analysis

01:05:05.240 --> 01:05:09.160
und wenn wir alle davon dann fixen, dann kann nie wieder was schief gehen.

01:05:09.160 --> 01:05:12.140
Und die Leute wundern sich dann, warum trotzdem halt regelmäßig was schief geht.

01:05:12.140 --> 01:05:18.040
Und das ist dann halt eine Technik aus dem Ops-Bereich.

01:05:18.040 --> 01:05:21.440
Gibt es noch die, erkläre ich dann auch gleich gerne,

01:05:21.440 --> 01:05:24.000
Meantime-Between-Failure und die Meantime-to-Recovery.

01:05:25.080 --> 01:05:27.760
Und Dominik, sagst du bitte, dass ich es erklären soll?

01:05:27.760 --> 01:05:31.720
Ja, ja, du müsstest bitte erklären, wann genau, wie lange man, wie viel Zeit braucht.

01:05:31.720 --> 01:05:33.240
Ja, genau, genau, genau.

01:05:33.240 --> 01:05:35.680
Also das eine ist, ich kann halt mein System darauf auslegen,

01:05:35.680 --> 01:05:37.200
möglichst selten kaputt zu gehen.

01:05:37.200 --> 01:05:39.820
Und das andere ist, ich kann es halt darauf auslegen,

01:05:39.820 --> 01:05:41.720
möglichst schnell wieder reparierbar zu sein.

01:05:41.720 --> 01:05:46.620
Und Extremwerte sind halt ungünstig.

01:05:46.620 --> 01:05:50.500
Also wenn man sich die Extremwerte anguckt, sage ich, ich will, dass es nie kaputt geht.

01:05:50.500 --> 01:05:54.860
Da wissen wir alle, dann musst du so viel Energie vorab reinstecken,

01:05:55.040 --> 01:05:57.320
dass du die Kosten nie wieder reinkriegst.

01:05:57.320 --> 01:06:00.440
Und der Black Swan sagt uns, es wird trotzdem auf eine Art kaputt gehen,

01:06:00.440 --> 01:06:01.400
die du nicht vorhergesehen hast.

01:06:01.400 --> 01:06:02.900
Das wäre dann sowas wie Full-Test-Coverage.

01:06:02.900 --> 01:06:08.000
Ja, genau, Full-Test-Coverage mit allen Loops, mit allen Grenzbedingungen, mit allen...

01:06:08.000 --> 01:06:09.820
Also formale Verifikationen irgendwie.

01:06:09.820 --> 01:06:12.100
Ja, ja, genau, genau, genau, genau, genau.

01:06:12.100 --> 01:06:16.720
Und das ist halt, jeder Praktiker guckt dich dann halt an und sagt, das geht halt nicht.

01:06:16.720 --> 01:06:19.800
Und das Dumme ist sozusagen, es wird halt sogar irgendwann kontraproduktiv.

01:06:19.800 --> 01:06:23.840
Du steckst dann irgendwann so viel Energie und Zeit rein, Sachen starr zu machen,

01:06:23.840 --> 01:06:24.880
damit sie nicht kaputt gehen.

01:06:25.300 --> 01:06:30.800
Während aber Starrheit gegenüber einer flexiblen Umwelt eine schlechte Idee ist.

01:06:30.800 --> 01:06:35.800
Also das hält halt relativ lange, so lange bis es dann so richtig gar nicht mehr hält.

01:06:35.800 --> 01:06:41.080
Du willst halt Methodiken haben, die so flexibel sind, dass du frühe Warnsignale kriegst von,

01:06:41.080 --> 01:06:44.180
das ist hier eigentlich nicht mehr okay, aber ich explodiere noch nicht.

01:06:44.180 --> 01:06:49.080
Damit du dann nämlich die Möglichkeit hast, aus diesen kleinen, schwachen Signalen

01:06:49.080 --> 01:06:52.260
schon mal was zu lernen und dein System dann schon mal in die richtige Richtung zu bewegen.

01:06:52.260 --> 01:06:54.960
Das andere Ende ist, statt sozusagen die...

01:06:54.960 --> 01:07:01.840
Häufigkeit der Fehler zu reduzieren, ist zu sagen, naja, ich mache mir den Fehlerfall ganz, ganz einfach.

01:07:01.840 --> 01:07:05.240
Das sind dann solche Sachen wie Clean Crash Restart.

01:07:05.240 --> 01:07:09.600
Also im Sinne von, ich mache, dass meine Anwendung extrem schnell starten kann.

01:07:09.600 --> 01:07:12.200
Ich weiß jetzt nicht, wie lange Django zum Hochfahren braucht.

01:07:12.200 --> 01:07:16.060
Soap hatte immer urlange gebraucht, bis es mal einen Port aufgemacht hat.

01:07:16.060 --> 01:07:21.300
Während dann halt neuere Tools, also ich habe halt immer viel mit Pyramid zu tun,

01:07:21.300 --> 01:07:24.940
die machen halt nach 500 Millisekunden oder so den Port auf.

01:07:24.940 --> 01:07:26.420
Und fangen an, wieder zu arbeiten.

01:07:26.420 --> 01:07:30.880
Was bedeutet, im Ernstfall kann ich so eine Anwendung auch einfach abstürzen lassen,

01:07:30.880 --> 01:07:32.480
wenn es in einen unbekannten Zustand kommt.

01:07:32.480 --> 01:07:35.720
Weil ich weiß, die ist in 500 Millisekunden eh wieder am Start.

01:07:35.720 --> 01:07:39.160
Und wenn ich dann einen Pool von 10 oder so davon habe,

01:07:39.160 --> 01:07:42.960
und einen vernünftigen Loadbalancer, dann denke ich mir so,

01:07:42.960 --> 01:07:46.320
klar, die kann jede Nacht einmal abstürzen, das ist mir völlig egal, weil merkt keiner.

01:07:46.320 --> 01:07:47.960
Merkt keiner.

01:07:47.960 --> 01:07:50.580
Und dann kriege ich aber solche Infos mit,

01:07:50.580 --> 01:07:54.640
oh du, übrigens gestern Nacht sind zwei Sachen kaputt gegangen, hier ist der Stack Trace.

01:07:54.900 --> 01:07:54.920
Hm.

01:07:54.920 --> 01:07:56.420
Geh mal gucken.

01:07:56.420 --> 01:07:59.640
Versus, hm, wir haben jetzt ganz lange alle Fehler unterdrückt

01:07:59.640 --> 01:08:01.300
und jetzt ist das ganze System stehen geblieben.

01:08:01.300 --> 01:08:02.180
Viel Spaß.

01:08:02.180 --> 01:08:06.440
Jetzt haben wir nochmal so eine ganz doofe Frage wieder.

01:08:06.440 --> 01:08:09.360
Was ist denn jetzt eigentlich der Unterschied zu einem Administrator dann?

01:08:09.360 --> 01:08:12.320
Ich habe keine Ahnung, Namen sind schade drauf.

01:08:12.320 --> 01:08:12.920
Das weiß ich nicht.

01:08:12.920 --> 01:08:15.700
Naja, genau, ich glaube, ob es ist nochmal ein bisschen älter,

01:08:15.700 --> 01:08:19.300
irgendwie wurden teilweise auch OPs genannt, was ist OPs oder weiß nicht.

01:08:19.300 --> 01:08:23.320
Ja, oder Leute, die dann tatsächlich im Rechenzentrum rumlaufen oder so.

01:08:23.320 --> 01:08:24.860
Und Admin ist schon so ein bisschen,

01:08:24.860 --> 01:08:27.240
so, der sitzt dann schon im Bürostuhl.

01:08:27.240 --> 01:08:31.260
Naja, ein Admin war, ja.

01:08:31.260 --> 01:08:32.880
Auf was bist du da gerade, Christian?

01:08:32.880 --> 01:08:35.760
Ich sitze auf einem schönen Bürostuhl.

01:08:35.760 --> 01:08:43.800
Ja, also auch da wieder, ich rede jetzt erstmal wieder zur Komplexität rüber.

01:08:43.800 --> 01:08:46.560
Menschen haben halt unterschiedliche Facetten, ja.

01:08:46.560 --> 01:08:51.140
Also Leute in so eine eindimensionale Perspektive zu schieben,

01:08:51.140 --> 01:08:54.220
macht den Menschen halt eher weniger Spaß.

01:08:54.820 --> 01:08:54.880
Ja.

01:08:54.880 --> 01:08:56.120
Als Mensch.

01:08:56.120 --> 01:09:00.000
Ich bin gerne mal im Rechenzentrum in Arbeitshose unterwegs,

01:09:00.000 --> 01:09:02.560
weil ich halt irgendwie wissen will, wie ist denn das mit diesen blöden Kabeln.

01:09:02.560 --> 01:09:05.460
Und ach, guck mal, da sind immer diese komischen Nasen, die da abbrechen.

01:09:05.460 --> 01:09:07.040
Ja, genau, und wenn du das nicht ordentlich machst,

01:09:07.040 --> 01:09:09.120
dann hast du nach einem halben Jahr plötzlich ein Kabel, das rausrutscht.

01:09:09.120 --> 01:09:14.800
Und umgekehrt, weil daraus entwickelst du ja auch ein Gefühl zum Beispiel von,

01:09:14.800 --> 01:09:19.620
wie stabil ist so ein Kram eigentlich, anstatt ständig nur über Abstraktionen zu reden.

01:09:19.620 --> 01:09:24.520
Und deswegen ist Multidimensionalität und mehr Facetten den Menschen in ihren,

01:09:24.780 --> 01:09:27.420
äh, in ihrem Alltag zu erlauben, ja, total wichtig.

01:09:27.420 --> 01:09:31.680
Ähm, ein Operator stand tatsächlich, ist der ältere Begriff,

01:09:31.680 --> 01:09:37.240
der stammt dann wirklich schon aus der, aus der, aus dem, äh,

01:09:37.240 --> 01:09:38.960
ja, ich weiß nicht, Zweiter Weltkrieg.

01:09:38.960 --> 01:09:40.400
Aus dem Tiefen der Matrix, oder?

01:09:40.400 --> 01:09:42.580
Nee, Industrialisierung tatsächlich schon.

01:09:42.580 --> 01:09:45.860
Also du hast halt, das war dann eher so Engineering versus Operator.

01:09:45.860 --> 01:09:48.660
Ähm, du hast halt Leute, die entwerfen eine Maschine

01:09:48.660 --> 01:09:52.140
und Leute, die die Maschine im Tagesbetrieb am Laufen halten.

01:09:52.140 --> 01:09:54.660
Ähm, aber auch das sind halt immer so,

01:09:54.740 --> 01:09:56.940
ineinandergreifende Tätigkeiten gewesen.

01:09:56.940 --> 01:09:59.000
Also, die hatten halt ihr begrenztes Feld von,

01:09:59.000 --> 01:10:01.080
ja, ich weiß, hier, die und die Sachen kann ich machen,

01:10:01.080 --> 01:10:02.440
da hört irgendwo meine Kompetenz auf,

01:10:02.440 --> 01:10:03.980
dann hole ich halt den Ingenieur dazu

01:10:03.980 --> 01:10:05.760
und dann ist der Ingenieur halt auch vom Reißbrett weg

01:10:05.760 --> 01:10:07.900
und muss dann halt mit der Ölkanne an das Ding ran.

01:10:07.900 --> 01:10:10.040
Äh, der kann aber in dem Moment überlegen,

01:10:10.040 --> 01:10:11.780
was gerade die Konstruktionsprinzipien sind.

01:10:11.780 --> 01:10:15.040
Und der andere weiß halt, ja, komm, das knarzt jeden Dienstag,

01:10:15.040 --> 01:10:15.960
da rufe ich jetzt nicht an.

01:10:15.960 --> 01:10:19.480
Ja, der Ingenieur, dem würde irgendwie der Hut platzen,

01:10:19.480 --> 01:10:20.680
fand, das darf doch nicht knarzen.

01:10:20.680 --> 01:10:23.120
Und der andere so, das knarzt seit 20 Jahren, das war wurscht.

01:10:24.700 --> 01:10:26.200
Ähm, und das ist halt genau dieses Thema,

01:10:26.200 --> 01:10:29.080
so Alltags-Know-How, wie die Systeme, die designt wurden,

01:10:29.080 --> 01:10:30.320
sich dann real verhalten.

01:10:30.320 --> 01:10:32.680
Das ist so das, was ich einem Op angeben würde.

01:10:32.680 --> 01:10:34.200
Und ein Admin war immer auch eher einer,

01:10:34.200 --> 01:10:36.940
der halt auch so eine Systemmanagement,

01:10:36.940 --> 01:10:39.980
Systemkonfigurationssicht als ein Ingenieur tätig war.

01:10:39.980 --> 01:10:41.160
Also, überleg mir das hier einmal

01:10:41.160 --> 01:10:42.240
und dann tut das irgendwie.

01:10:42.240 --> 01:10:45.620
Ich neige heute mehr zu dem Ops-Begriff,

01:10:45.620 --> 01:10:48.160
weil es halt so ein bisschen umfassender

01:10:48.160 --> 01:10:50.160
den gesamten Lebenszyklus

01:10:50.160 --> 01:10:54.160
auf der Serverseite dann widerspiegelt.

01:10:54.660 --> 01:10:58.100
Ja, ja, ich meine,

01:10:58.100 --> 01:11:00.640
der Ops, da hat man das ja sowieso dann schon im Namen irgendwie mit drin.

01:11:00.640 --> 01:11:03.520
Ähm, was ich an der Stelle noch ganz interessant finde,

01:11:03.520 --> 01:11:04.220
ist, dass halt auch,

01:11:04.220 --> 01:11:07.320
wenn man jetzt sozusagen

01:11:07.320 --> 01:11:08.840
das komplett voneinander getrennt hat,

01:11:08.840 --> 01:11:09.840
auch dieses Problem bekommt,

01:11:09.840 --> 01:11:12.100
dass die unterschiedlichen,

01:11:12.100 --> 01:11:13.820
ja, sozusagen,

01:11:13.820 --> 01:11:16.980
Facetten da halt unterschiedliche,

01:11:16.980 --> 01:11:19.500
also der Erfolg wird halt unterschiedlich gemessen.

01:11:19.500 --> 01:11:20.180
Das war halt also,

01:11:20.180 --> 01:11:23.180
ich war auch eine Zeit lang Admin

01:11:23.180 --> 01:11:24.400
und ich bin auch im Rechnen,

01:11:24.620 --> 01:11:25.460
im Rechenzentrum unterwegs und so.

01:11:25.460 --> 01:11:27.840
Und das Interessante ist halt,

01:11:27.840 --> 01:11:30.980
dass sich das halt gegenseitig blockiert.

01:11:30.980 --> 01:11:32.700
Deswegen ist es vielleicht auch nicht so eine gute Idee,

01:11:32.700 --> 01:11:33.840
das voneinander zu trennen,

01:11:33.840 --> 01:11:37.420
weil sozusagen der ganze Betriebsbereich,

01:11:37.420 --> 01:11:39.460
also eben, ja,

01:11:39.460 --> 01:11:41.580
Administration und die ganzen Infrastruktur-Kramen,

01:11:41.580 --> 01:11:42.360
Rechenzentrumsbetrieb,

01:11:42.360 --> 01:11:44.020
das wird halt daran gemessen,

01:11:44.020 --> 01:11:46.260
dass es halt nicht kaputt geht, sozusagen.

01:11:46.260 --> 01:11:48.340
Also, ja,

01:11:48.340 --> 01:11:49.540
also, ich meine,

01:11:49.540 --> 01:11:52.020
dass der Strom da ist,

01:11:52.020 --> 01:11:52.760
das feiert niemand,

01:11:52.760 --> 01:11:54.220
aber wenn er ausfällt, ist halt blöd.

01:11:54.580 --> 01:11:55.760
Also, das heißt,

01:11:55.760 --> 01:11:58.200
wenn der ganze Kram funktioniert,

01:11:58.200 --> 01:12:00.360
dann wird man nicht wahrgenommen.

01:12:00.360 --> 01:12:02.020
Wenn es kaputt geht, dann ist es blöd.

01:12:02.020 --> 01:12:02.960
Haha.

01:12:02.960 --> 01:12:03.720
Genau.

01:12:03.720 --> 01:12:05.780
Und bei den Entwicklern ist es halt so,

01:12:05.780 --> 01:12:06.460
dass,

01:12:06.460 --> 01:12:09.280
na ja, bei denen schlägt das ja gar nicht so sehr auf,

01:12:09.280 --> 01:12:11.300
wenn das System irgendwie insgesamt nicht mehr funktioniert.

01:12:11.300 --> 01:12:13.380
Und die werden halt daran gemessen,

01:12:13.380 --> 01:12:15.500
wie viele Features sie halt rauskriegen irgendwie.

01:12:15.500 --> 01:12:16.820
Und ob das jetzt irgendwie

01:12:16.820 --> 01:12:19.340
irgendwas verbessert oder so.

01:12:19.340 --> 01:12:19.740
Das heißt,

01:12:19.740 --> 01:12:20.480
jetzt,

01:12:20.480 --> 01:12:22.620
wenn man dann eine klare Trennung

01:12:22.620 --> 01:12:23.740
zwischen den beiden Geschichten hat,

01:12:23.740 --> 01:12:24.540
dann ist es,

01:12:24.540 --> 01:12:25.340
sind halt sozusagen

01:12:25.340 --> 01:12:27.540
die optimalen Strategien

01:12:27.540 --> 01:12:28.880
möglicherweise für Entwickler halt

01:12:28.880 --> 01:12:31.120
möglichst kaputtes Zeug einfach raus,

01:12:31.120 --> 01:12:31.780
dann wird es egal.

01:12:31.780 --> 01:12:34.680
Die werden das schon irgendwie am Laufen halten.

01:12:34.680 --> 01:12:35.820
Vielleicht steht ja nicht mein Name dran

01:12:35.820 --> 01:12:36.260
oder keiner kann das.

01:12:36.260 --> 01:12:36.560
Genau.

01:12:36.560 --> 01:12:37.720
Weil, ich meine,

01:12:37.720 --> 01:12:39.080
ich werde halt nicht dafür bestraft,

01:12:39.080 --> 01:12:40.160
sozusagen, wenn es kaputt geht.

01:12:40.160 --> 01:12:41.720
Aber belohnt,

01:12:41.720 --> 01:12:44.200
wenn ich genug Features rausdrücke.

01:12:44.200 --> 01:12:45.540
Und auf der anderen Seite

01:12:45.540 --> 01:12:46.760
optimiert man halt darauf,

01:12:46.760 --> 01:12:48.340
möglichst keine Änderungen zuzulassen.

01:12:48.340 --> 01:12:49.660
Weil ein System,

01:12:49.660 --> 01:12:51.060
das sich überhaupt nicht ändert,

01:12:51.060 --> 01:12:52.100
das ist auch relativ stabil.

01:12:52.100 --> 01:12:54.500
Und dann blockiert man einfach

01:12:54.500 --> 01:12:55.880
alle Anforderungen sozusagen

01:12:55.880 --> 01:12:57.460
oder alle neuen Geschichten so lange,

01:12:57.460 --> 01:12:58.820
ja,

01:12:58.820 --> 01:13:00.940
bis halt der Strom dann nicht ausgefallen ist

01:13:00.940 --> 01:13:02.280
und man seinen Job erledigt hat.

01:13:02.280 --> 01:13:03.700
Und, ja,

01:13:03.700 --> 01:13:05.020
hat aber das Problem,

01:13:05.020 --> 01:13:05.960
dass es insgesamt auch

01:13:05.960 --> 01:13:06.940
für die Firma nicht funktioniert.

01:13:06.940 --> 01:13:07.880
Und das war halt...

01:13:07.880 --> 01:13:09.120
Ja, also solche neuen modischen Scheiße

01:13:09.120 --> 01:13:09.640
machen wir nicht.

01:13:09.640 --> 01:13:10.780
Ja.

01:13:10.780 --> 01:13:12.720
Ich meine,

01:13:12.720 --> 01:13:13.300
die,

01:13:13.300 --> 01:13:15.700
das ist halt auch da wieder,

01:13:15.700 --> 01:13:17.920
zum einen spannend,

01:13:17.920 --> 01:13:20.340
mein DevOps ist im Prinzip in der Lage,

01:13:20.340 --> 01:13:21.900
dort diese Anreize einmal umzukehren.

01:13:21.900 --> 01:13:24.200
Im Prinzip kannst du

01:13:24.200 --> 01:13:25.600
dann halt nämlich sagen,

01:13:25.600 --> 01:13:26.700
Devs, ihr, also,

01:13:26.700 --> 01:13:29.400
erst mal messen ist zwar eine gute Sache,

01:13:29.400 --> 01:13:30.260
aber auch da,

01:13:30.260 --> 01:13:31.560
Menschen haben halt so den Vorteil,

01:13:31.560 --> 01:13:32.960
die können so Systeme gut austricksen.

01:13:32.960 --> 01:13:33.440
Ja.

01:13:33.440 --> 01:13:35.700
Und wenn du,

01:13:35.700 --> 01:13:37.540
das Schlimmste, was du eben machen kannst,

01:13:37.540 --> 01:13:39.280
ist, wenn du halt so harte Metriken einführst,

01:13:39.280 --> 01:13:40.680
weil, was werden die Leute machen?

01:13:40.680 --> 01:13:42.180
Die optimieren daraufhin

01:13:42.180 --> 01:13:43.920
gnadenlos.

01:13:43.920 --> 01:13:45.340
Gnadenlos.

01:13:45.340 --> 01:13:46.060
Das ist das Problem,

01:13:46.060 --> 01:13:47.880
warum halt Systeme sich dann immer

01:13:47.880 --> 01:13:48.820
ad absurd führen,

01:13:48.820 --> 01:13:50.380
weil sie versuchen,

01:13:50.380 --> 01:13:52.720
eine komplexe Welt reduktionistisch zu betrachten,

01:13:52.720 --> 01:13:53.720
im Sinne von Uptime.

01:13:54.200 --> 01:13:56.820
Das ist unsere Welt, danke.

01:13:56.820 --> 01:14:00.140
Und was man tatsächlich,

01:14:00.140 --> 01:14:01.040
manchmal kann man damit spielen,

01:14:01.040 --> 01:14:02.420
in so einem System kannst du zum Beispiel dann sagen,

01:14:02.420 --> 01:14:04.000
naja, liebe Admins,

01:14:04.000 --> 01:14:04.920
wir messen euch dran,

01:14:04.920 --> 01:14:06.120
wie viele Features rausgehen

01:14:06.120 --> 01:14:06.720
und liebe Devs,

01:14:06.720 --> 01:14:07.620
wir messen euch dran,

01:14:07.620 --> 01:14:09.120
wie stabil das Rechenzentrum ist.

01:14:09.120 --> 01:14:10.320
Beziehungsweise nicht das Rechenzentrum,

01:14:10.320 --> 01:14:13.720
sondern wie stabil halt die Anwendung draußen ist.

01:14:13.720 --> 01:14:15.940
Und dann kriegst du nämlich plötzlich

01:14:15.940 --> 01:14:17.200
eine ganz andere Bewegung da rein.

01:14:17.200 --> 01:14:21.340
Das wird auf jeden Fall dann dynamisch.

01:14:21.340 --> 01:14:23.000
Dann jagen nämlich die Devs den Admin

01:14:23.000 --> 01:14:23.500
durchs Haus,

01:14:23.500 --> 01:14:24.180
wenn das so ist.

01:14:24.320 --> 01:14:25.460
Das willst du.

01:14:25.460 --> 01:14:26.780
Du willst Reibung.

01:14:26.780 --> 01:14:28.740
Du willst Reibung,

01:14:28.740 --> 01:14:29.580
du willst Dynamik,

01:14:29.580 --> 01:14:31.700
du willst nicht Complacency haben.

01:14:31.700 --> 01:14:32.120
Du willst nicht,

01:14:32.120 --> 01:14:33.920
dass die Leute zufrieden in ihrer Ecke sitzen mit

01:14:33.920 --> 01:14:35.720
der Strom ist an.

01:14:35.720 --> 01:14:37.160
Sondern du willst sagen,

01:14:37.160 --> 01:14:38.160
ist ja schön,

01:14:38.160 --> 01:14:39.120
dass hier der Strom an ist,

01:14:39.120 --> 01:14:40.160
wo bleiben die Features?

01:14:40.160 --> 01:14:44.640
Und das ist tatsächlich was,

01:14:44.640 --> 01:14:47.820
wo DevOps eigentlich sich ganz gut positioniert

01:14:47.820 --> 01:14:48.320
an der Stelle.

01:14:48.320 --> 01:14:49.700
Da sind auch viele Tools

01:14:49.700 --> 01:14:51.400
eigentlich gut drauf ausgerichtet,

01:14:51.400 --> 01:14:53.280
das eben so zu überlagern,

01:14:53.280 --> 01:14:54.000
dass man dann eben

01:14:54.000 --> 01:14:55.220
nicht mehr klar trennen kann.

01:14:55.220 --> 01:14:56.320
Okay.

01:14:56.320 --> 01:14:57.580
Ich würde jetzt sagen,

01:14:57.580 --> 01:14:59.120
der nächste Marker würde jetzt ganz gut passen,

01:14:59.120 --> 01:15:00.300
weil die nächste Frage wäre nämlich,

01:15:00.300 --> 01:15:02.140
wie macht man das Ganze denn jetzt mit Python am besten?

01:15:02.140 --> 01:15:08.240
Mit Python?

01:15:08.240 --> 01:15:08.700
Okay.

01:15:08.700 --> 01:15:09.220
Tja.

01:15:09.220 --> 01:15:10.820
Wie macht man das denn?

01:15:10.820 --> 01:15:13.640
Ja.

01:15:13.640 --> 01:15:14.440
Achso.

01:15:14.440 --> 01:15:15.020
Ich meine,

01:15:15.020 --> 01:15:17.220
wenn man jetzt über komplette Systeme redet,

01:15:17.220 --> 01:15:17.880
da ist es ja so,

01:15:17.880 --> 01:15:18.880
dass da gibt es halt so

01:15:18.880 --> 01:15:20.640
diverses Text,

01:15:20.640 --> 01:15:21.420
die man verwenden kann,

01:15:21.420 --> 01:15:23.280
um halt so komplette Infrastrukturen

01:15:23.280 --> 01:15:23.420
aufzuzeigen.

01:15:23.420 --> 01:15:24.740
Ich weiß aber nicht,

01:15:24.740 --> 01:15:25.140
ob man das,

01:15:25.140 --> 01:15:26.380
also sowas wie Ansible

01:15:26.380 --> 01:15:27.800
oder halt Solstack

01:15:27.800 --> 01:15:28.420
oder OpenStack

01:15:28.420 --> 01:15:29.680
oder was auch immer.

01:15:29.680 --> 01:15:34.380
Tja.

01:15:34.380 --> 01:15:37.820
Und einiges davon ist ja auch

01:15:37.820 --> 01:15:39.020
in Python tatsächlich geschrieben.

01:15:39.020 --> 01:15:39.900
Ja, das wäre möglicherweise,

01:15:39.900 --> 01:15:40.780
dass das halt auch so einfällt,

01:15:40.780 --> 01:15:42.000
wo Python relativ stark ist.

01:15:42.000 --> 01:15:44.100
Ich glaube,

01:15:44.100 --> 01:15:44.580
viele der,

01:15:44.580 --> 01:15:46.020
es gibt irgendwie noch

01:15:46.020 --> 01:15:47.420
ChefPuppet,

01:15:47.420 --> 01:15:49.540
das ist...

01:15:49.540 --> 01:15:50.380
ChefPuppet?

01:15:50.380 --> 01:15:51.180
Ja,

01:15:51.180 --> 01:15:52.960
das ist zwar unterschiedlich hier,

01:15:52.960 --> 01:15:53.400
aber es gibt auch

01:15:53.400 --> 01:15:54.180
Geschichten.

01:15:54.180 --> 01:15:55.920
Das ist irgendwie Ruby oder sowas?

01:15:55.920 --> 01:15:56.700
Ich weiß es nicht mehr so genau.

01:15:56.700 --> 01:15:58.000
Ja, Chef und Puppet sind Ruby

01:15:58.000 --> 01:15:59.000
und ich glaube,

01:15:59.000 --> 01:16:00.400
Salt ist Python

01:16:00.400 --> 01:16:01.920
und Ansible ist definitiv auch Python.

01:16:01.920 --> 01:16:02.400
Ist auch Python

01:16:02.400 --> 01:16:03.300
und OpenStack ist auch Python.

01:16:03.300 --> 01:16:04.500
Also...

01:16:04.500 --> 01:16:05.980
Aber ja,

01:16:05.980 --> 01:16:06.620
OpenStack ist wahrscheinlich

01:16:06.620 --> 01:16:07.200
alles mögliche.

01:16:07.200 --> 01:16:11.380
Ja.

01:16:11.380 --> 01:16:14.760
Was ist denn sowas drin?

01:16:14.760 --> 01:16:15.400
Also für jemanden,

01:16:15.400 --> 01:16:16.120
der es jetzt noch nie gehört hat,

01:16:16.120 --> 01:16:16.960
was wäre jetzt in so einem Ansible

01:16:16.960 --> 01:16:17.700
denn jetzt drin?

01:16:17.700 --> 01:16:19.600
Ich würde es vielleicht tatsächlich

01:16:19.600 --> 01:16:20.900
nochmal von einem anderen Ende her holen,

01:16:20.900 --> 01:16:22.200
weil Ansible ist sozusagen schon

01:16:22.200 --> 01:16:23.380
ziemlich weit weg,

01:16:23.380 --> 01:16:25.460
auf der einen Seite ist Python

01:16:25.460 --> 01:16:26.300
in diesem ganzen Umfeld

01:16:26.300 --> 01:16:28.860
erstmal an sich...

01:16:28.860 --> 01:16:30.080
Wir haben jetzt ja zwei Enden.

01:16:30.080 --> 01:16:31.300
Auf der einen Seite können wir darüber reden,

01:16:31.300 --> 01:16:33.080
dass wir Anwendungen haben,

01:16:33.080 --> 01:16:34.320
die in Python geschrieben sind,

01:16:34.320 --> 01:16:35.680
von denen ich irgendwie möchte,

01:16:35.680 --> 01:16:36.700
dass die raus in die Welt kommen

01:16:36.700 --> 01:16:39.360
und das andere wiederum ist,

01:16:39.360 --> 01:16:40.120
dass Python ja selber

01:16:40.120 --> 01:16:41.300
so eine gute Sprache ist,

01:16:41.300 --> 01:16:42.940
um Tools zu schreiben,

01:16:42.940 --> 01:16:44.300
die Dinge automatisieren.

01:16:44.300 --> 01:16:47.060
Und damit habe ich sozusagen

01:16:47.060 --> 01:16:48.500
so eine kleine Janusköpfigkeit

01:16:48.500 --> 01:16:50.840
von dem Ökosystem.

01:16:53.360 --> 01:16:54.140
Ja, das ist halt die Frage,

01:16:54.140 --> 01:16:55.660
von welchem Ende man anfangen möchte.

01:16:55.660 --> 01:16:58.100
Die so große Systeme,

01:16:58.100 --> 01:16:58.900
ich tue mich schwer,

01:16:58.900 --> 01:17:00.560
bei so großen Systemen anzufangen,

01:17:00.560 --> 01:17:02.760
selbst Ansible ist da mental bei mir

01:17:02.760 --> 01:17:03.580
ein großes System.

01:17:03.580 --> 01:17:07.080
Eher so ein bisschen die Grundlagen anzugucken,

01:17:07.080 --> 01:17:10.180
ein bisschen die kleinsten Einheiten,

01:17:10.180 --> 01:17:11.600
in die es sich eigentlich verlegt,

01:17:11.600 --> 01:17:15.980
weil ansonsten glauben unsere Hörer,

01:17:15.980 --> 01:17:18.360
glauben die Menschen da draußen halt,

01:17:18.360 --> 01:17:20.320
A, um das zu machen,

01:17:20.320 --> 01:17:21.820
muss ich irgendwie Kubernetes rausholen.

01:17:21.820 --> 01:17:23.340
Das stimmt halt nicht.

01:17:23.340 --> 01:17:26.320
Das ist halt kontextabhängig.

01:17:26.320 --> 01:17:30.520
Ich meine, man kann vielleicht mal

01:17:30.520 --> 01:17:31.260
so ein bisschen skizzieren,

01:17:31.260 --> 01:17:32.560
auf der einen Seite gibt es halt

01:17:32.560 --> 01:17:34.580
das Problem der Runtime-Umgebung.

01:17:34.580 --> 01:17:37.400
Ich habe halt mein Python-Skript

01:17:37.400 --> 01:17:38.600
und brauche dann irgendwie einen Interpreter,

01:17:38.600 --> 01:17:41.060
der die richtigen Dependencies alle so hat.

01:17:41.060 --> 01:17:44.240
Das ist so ein Spielfeld.

01:17:44.240 --> 01:17:47.160
Und das andere ist dann halt tatsächlich

01:17:47.160 --> 01:17:48.420
auch so diese Mechanik von,

01:17:48.420 --> 01:17:50.560
wie verteile ich das dann halt von

01:17:50.560 --> 01:17:52.160
meinem, wie mache ich das

01:17:52.160 --> 01:17:53.120
auf meinem Entwicklungssystem,

01:17:53.120 --> 01:17:53.320
wie mache ich das auf meinem

01:17:53.320 --> 01:17:55.280
Staging-System, wie mache ich das

01:17:55.280 --> 01:17:57.100
dann draußen in der Produktion.

01:17:57.100 --> 01:17:59.200
Da kann man so die unterschiedlichen,

01:17:59.200 --> 01:18:00.980
das wäre also mindestens mal so zwei Perspektiven,

01:18:00.980 --> 01:18:03.460
aus denen man das mal andiskutieren kann.

01:18:03.460 --> 01:18:05.180
Ja.

01:18:05.180 --> 01:18:06.260
Nee, finde ich

01:18:06.260 --> 01:18:09.040
im Grunde auch genauso richtig, weil

01:18:09.040 --> 01:18:11.280
ja, also das ist ja auch vielleicht dann tatsächlich das,

01:18:11.280 --> 01:18:13.420
was Leute praktisch als Problem

01:18:13.420 --> 01:18:15.200
haben. Wenn sie jetzt

01:18:15.200 --> 01:18:16.680
sich überlegen, okay, ich würde gerne, weiß ich nicht,

01:18:16.680 --> 01:18:19.440
Pyramid oder Django oder Flask oder was auch immer,

01:18:19.440 --> 01:18:21.420
anwendig würde ich gerne eine Webseite oder so

01:18:21.420 --> 01:18:22.700
bauen und wie kriege ich denn die jetzt,

01:18:22.820 --> 01:18:25.180
sozusagen, ja, live?

01:18:25.180 --> 01:18:26.140
Ja.

01:18:26.140 --> 01:18:28.720
Also, das eine ist natürlich, dass

01:18:28.720 --> 01:18:31.420
Python ein standardisiertes

01:18:31.420 --> 01:18:32.900
Umfeld hat mit den Interpretern.

01:18:32.900 --> 01:18:34.840
Ich meine, die Versionsunterschiede zwischen

01:18:34.840 --> 01:18:37.200
2 und 3,

01:18:37.200 --> 01:18:38.340
ich glaube, das ist jetzt eh gegessen,

01:18:38.340 --> 01:18:40.960
zumal dann machen wir

01:18:40.960 --> 01:18:42.800
ein Begräbnis-Podcast

01:18:42.800 --> 01:18:44.500
Ende des Jahres für Python 2.7.

01:18:44.500 --> 01:18:47.720
Könnte man auf jeden Fall machen, ja.

01:18:47.720 --> 01:18:49.520
Ein Gedächtnis-Podcast.

01:18:49.520 --> 01:18:50.860
Ein Python 2.7

01:18:50.860 --> 01:18:52.420
Gedächtnis-Podcast, so,

01:18:52.660 --> 01:18:53.760
zum Jahresausklang.

01:18:53.760 --> 01:18:56.720
Aber auch innerhalb von Python 3 sind die

01:18:56.720 --> 01:18:58.740
Sprachfeatures nochmal so weiter, dass man halt auch da

01:18:58.740 --> 01:19:00.860
zumindest erstmal wissen muss, ah, okay, ich habe eine Anforderung

01:19:00.860 --> 01:19:02.920
von, welche Version vom Interpreter

01:19:02.920 --> 01:19:05.260
brauche ich eigentlich? Da ist die

01:19:05.260 --> 01:19:06.820
Spreizung zwischen 3.3,

01:19:06.820 --> 01:19:08.980
was so die erste vernünftig einsetzbare

01:19:08.980 --> 01:19:10.940
Version war, bis jetzt hoch zu 3.7 und demnächst

01:19:10.940 --> 01:19:12.940
3.8, ja, schon relativ

01:19:12.940 --> 01:19:14.760
heftig, zumal ich auch merke, da waren für mich

01:19:14.760 --> 01:19:16.780
immer wieder Features dabei, die ich

01:19:16.780 --> 01:19:18.840
einsetzen möchte. Also, die F-Strings waren

01:19:18.840 --> 01:19:20.800
mit die neuesten Sachen, wo ich sagte,

01:19:20.800 --> 01:19:22.160
so, oh ja, die will ich unbedingt haben.

01:19:22.160 --> 01:19:23.940
Die Spreizung ist sogar schneller als String-Off, ne?

01:19:23.940 --> 01:19:26.380
Ja. Das kann sein.

01:19:26.380 --> 01:19:28.860
Die, ähm,

01:19:28.860 --> 01:19:30.280
und das ist sozusagen schon mal so das erste

01:19:30.280 --> 01:19:32.080
Thema von, okay, ich brauche also irgendwie ein Zielsystem,

01:19:32.080 --> 01:19:34.180
wo die richtige Version von diesem Interpreter vorliegt.

01:19:34.180 --> 01:19:36.000
Ähm, das ist dann häufig, äh,

01:19:36.000 --> 01:19:38.020
damit gekoppelt, dass ich, äh,

01:19:38.020 --> 01:19:40.220
bestimmte Versionen von einem Betriebssystem irgendwo habe.

01:19:40.220 --> 01:19:41.540
Ähm, genau.

01:19:41.540 --> 01:19:44.160
Wenn ich, wenn ich Docker nehme, dann ist da typischerweise

01:19:44.160 --> 01:19:46.040
die Auswahl, nimm dir irgendwie so ein Basis-Image,

01:19:46.040 --> 01:19:47.880
wo jemand draufgeschrieben hat, das hier ist das mit

01:19:47.880 --> 01:19:50.180
Python-Version so und so, oder wo alle Python-Versionen

01:19:50.180 --> 01:19:51.200
drin sind, oder was auch immer.

01:19:52.000 --> 01:19:53.860
Ähm, aber im Prinzip läuft es halt

01:19:53.860 --> 01:19:55.820
darauf hinaus, naja, ich habe erstmal die Frage,

01:19:55.820 --> 01:19:57.300
welchen Python-Interpreter würde ich gerne haben.

01:19:57.300 --> 01:19:59.900
Ich mache es in letzter Zeit so, wenn ich kleinere

01:19:59.900 --> 01:20:01.900
Projekte mache und, äh, tatsächlich im Sinne von

01:20:01.900 --> 01:20:03.860
mal so Command-Line-Skripte, das ist bei mir relativ

01:20:03.860 --> 01:20:06.120
viel dran, ähm, dann gebe ich mir

01:20:06.120 --> 01:20:08.260
Mühe, dass ich am Anfang,

01:20:08.260 --> 01:20:10.180
wenn ich noch rumexperimentiere

01:20:10.180 --> 01:20:11.920
und das teilweise auch verteilte Systeme

01:20:11.920 --> 01:20:14.000
sind, dann habe ich meinen Editor,

01:20:14.000 --> 01:20:16.020
bei mir ist das dann zufällig der Sublime,

01:20:16.020 --> 01:20:18.140
ähm, mit einem R-Sync-Plugin,

01:20:18.140 --> 01:20:19.780
mache ein einziges

01:20:19.780 --> 01:20:21.320
Python-File, und das kann gerne mal

01:20:21.840 --> 01:20:23.440
für den Anfang bei der Entwicklung

01:20:23.440 --> 01:20:25.620
1000, 2000, 4000 Teilen lang werden,

01:20:25.620 --> 01:20:26.480
ähm,

01:20:26.480 --> 01:20:28.420
um,

01:20:28.420 --> 01:20:31.660
und habe ein R-Sync-Plugin, was mir bei jedem Speichern

01:20:31.660 --> 01:20:33.700
das auf 7, 8, 9 Kisten verteilt,

01:20:33.700 --> 01:20:35.680
äh, und gebe mir Mühe, dass ich

01:20:35.680 --> 01:20:37.820
nichts anderes außer der Standard-Library

01:20:37.820 --> 01:20:38.180
benutze.

01:20:38.180 --> 01:20:41.620
Mhm. Dann brauche ich mir

01:20:41.620 --> 01:20:43.760
nämlich keine Gedanken machen.

01:20:43.760 --> 01:20:46.160
Und ich meine,

01:20:46.160 --> 01:20:47.580
die Standard-Library hat einen Haufen Kram

01:20:47.580 --> 01:20:48.860
drin, ähm, da ist halt,

01:20:48.860 --> 01:20:51.580
damit machst du dann keine Web-Entwicklung mit Django,

01:20:51.680 --> 01:20:53.380
in dem Moment, aber, äh, du hast...

01:20:53.380 --> 01:20:54.740
Interferenz, Interferenz, äh, sorry.

01:20:54.740 --> 01:20:56.880
Oh ja, Entschuldigung, ich glaube, das war diesmal, ich,

01:20:56.880 --> 01:20:59.260
ah, weg da, halben Meter weggeworfen.

01:20:59.260 --> 01:21:01.400
Ähm, lag zu nah am Kabel.

01:21:01.400 --> 01:21:03.320
Die, äh,

01:21:03.320 --> 01:21:05.620
die Standard-Library bietet ja schon so viele

01:21:05.620 --> 01:21:06.680
Sachen, ähm,

01:21:06.680 --> 01:21:08.860
von, von JSON zu,

01:21:08.860 --> 01:21:11.660
hast du nicht gesehen, typische Dinge,

01:21:11.660 --> 01:21:13.540
die dann bei mir relativ schnell dazukommen, als Appendances,

01:21:13.540 --> 01:21:15.300
sind dann halt irgendwie Requests, oder

01:21:15.300 --> 01:21:17.600
irgendwas in der Art, ähm, aber

01:21:17.600 --> 01:21:19.580
ich baue selbst bei mir

01:21:19.580 --> 01:21:21.600
die Projekte dann immer erstmal von so einem,

01:21:21.600 --> 01:21:21.660
ähm,

01:21:21.680 --> 01:21:23.800
ganz kleinen, minimalen Punkt auf

01:21:23.800 --> 01:21:26.180
und ich mache nicht so dieses, oh, ich habe hier mein Projekt-Template

01:21:26.180 --> 01:21:27.120
und jetzt schütte ich erstmal

01:21:27.120 --> 01:21:29.680
ein Megabyte-Template ins

01:21:29.680 --> 01:21:31.220
Repository, ähm,

01:21:31.220 --> 01:21:33.600
sondern fange halt gegebenenfalls wirklich mit einer einzelnen

01:21:33.600 --> 01:21:35.320
Datei an. Blank, quasi.

01:21:35.320 --> 01:21:37.640
Blank, völlig blank, und kann auf dem

01:21:37.640 --> 01:21:39.660
Zielsystem auch einfach sagen, hier, Python 3.6,

01:21:39.660 --> 01:21:41.080
da die Datei, puh, mach mal.

01:21:41.080 --> 01:21:43.020
Ähm, und kann halt, äh, weil

01:21:43.020 --> 01:21:45.360
ich bin immer der Freund von diesen,

01:21:45.360 --> 01:21:47.680
ich nerv meine, meine Kollegen,

01:21:47.680 --> 01:21:48.920
mit denen ich arbeite, auch an der Stelle,

01:21:48.920 --> 01:21:51.520
ich will eigentlich so schnell wie möglich, eigentlich innerhalb

01:21:51.520 --> 01:21:53.600
von einer Stunde oder zwei, irgendeine Ahnung

01:21:53.600 --> 01:21:55.480
haben, wie das, was ich gerade mache, von Ende

01:21:55.480 --> 01:21:57.800
zu Ende funktioniert, ja? Von...

01:21:57.800 --> 01:21:59.720
Also, dich interessieren die Knoten dann dazwischen,

01:21:59.720 --> 01:22:01.720
oder? Nee, mich interessiert halt,

01:22:01.720 --> 01:22:03.340
okay, ich will irgendwie X erreichen,

01:22:03.340 --> 01:22:05.500
und dann kann man halt entweder sagen, ah, für

01:22:05.500 --> 01:22:07.520
X muss ich erstmal A, B, C und D

01:22:07.520 --> 01:22:09.420
machen, und dann fängt jemand an und macht A total

01:22:09.420 --> 01:22:11.420
hübsch und definiert das durch, und macht B total

01:22:11.420 --> 01:22:13.420
hübsch und definiert das durch, am dritten Tag

01:22:13.420 --> 01:22:15.240
macht er C, und am vierten Tag macht er D,

01:22:15.240 --> 01:22:17.680
dann läuft das Skript zum ersten Mal

01:22:17.680 --> 01:22:19.160
und er stellt fest, nee, das brauche ich eigentlich auch nicht.

01:22:19.160 --> 01:22:21.320
Was ich

01:22:21.320 --> 01:22:23.400
eher haben will, ist, ich rotz da

01:22:23.400 --> 01:22:24.780
A, B, C und D einmal so,

01:22:24.780 --> 01:22:26.120
gerade mal so hin,

01:22:26.120 --> 01:22:29.460
in den so wenig Zeilen wie nur möglich,

01:22:29.460 --> 01:22:31.320
mit auch

01:22:31.320 --> 01:22:33.300
wenig Fehlerbehandlung, wenig, also

01:22:33.300 --> 01:22:35.220
nur den, der Happy Path im Prinzip,

01:22:35.220 --> 01:22:37.140
so der Idealfall,

01:22:37.140 --> 01:22:39.760
der Happy Path, ja, genau,

01:22:39.760 --> 01:22:40.740
um

01:22:40.740 --> 01:22:43.400
tatsächlich zu sehen, ist das,

01:22:43.400 --> 01:22:45.140
was ich hier baue, gerade überhaupt das, was ich will,

01:22:45.140 --> 01:22:47.200
oder fange ich schon mal an, Zeug zu polieren,

01:22:47.200 --> 01:22:48.940
was ich gleich in zwei Tagen

01:22:48.940 --> 01:22:49.680
wieder wegwerfe.

01:22:51.120 --> 01:22:52.600
Happy, happy, ja, genau.

01:22:52.600 --> 01:22:54.900
Und

01:22:54.900 --> 01:22:57.700
das erleichtert, dadurch kann ich halt auch

01:22:57.700 --> 01:22:59.520
mit wenig Dependencies anfangen, dadurch kann ich halt,

01:22:59.520 --> 01:23:01.140
oder auch ohne Dependencies,

01:23:01.140 --> 01:23:03.200
und baue das halt komplett inkrementell auf,

01:23:03.200 --> 01:23:04.840
und das ist wieder für mich auch so ein Ausdruck von,

01:23:04.840 --> 01:23:07.340
ich beschäftige mich die ganze Zeit mit meinen Tools,

01:23:07.340 --> 01:23:09.380
um zu merken, brauche ich das hier überhaupt,

01:23:09.380 --> 01:23:10.320
das muss ich halt im Prinzip

01:23:10.320 --> 01:23:12.180
jedes Mal validieren.

01:23:12.180 --> 01:23:14.440
Kannst du nochmal vielleicht einmal ganz kurz so erkennen,

01:23:14.440 --> 01:23:17.080
so einen Abstraction-Layer so drunter, was steht denn dann da

01:23:17.080 --> 01:23:19.160
in dem Skript so konkret da drin?

01:23:19.160 --> 01:23:20.900
Klar, das ist nur die Standard-Library, irgendwelche Sachen,

01:23:20.920 --> 01:23:22.040
aber was macht das?

01:23:22.040 --> 01:23:24.260
Also ich habe zum Beispiel ein Skript, mit dem wir

01:23:24.260 --> 01:23:26.400
das Ceph-Server managen.

01:23:26.400 --> 01:23:28.540
Ceph ist so ein verteiltes Storage-System,

01:23:28.540 --> 01:23:31.240
und da hat jede Festplatte,

01:23:31.240 --> 01:23:32.740
die du in deinem Cluster hast,

01:23:32.740 --> 01:23:34.820
einen Daemon, der da läuft, und die Config

01:23:34.820 --> 01:23:36.960
zu generieren und die Teile aufzusetzen

01:23:36.960 --> 01:23:37.980
ist halt nicht so ganz trivial,

01:23:37.980 --> 01:23:40.960
und die Tools, die es dafür schon vordefiniert gibt,

01:23:40.960 --> 01:23:42.620
die haben alle so ihre Meinung darüber,

01:23:42.620 --> 01:23:44.820
wie die Umgebung aussehen soll, wo wir leider

01:23:44.820 --> 01:23:46.580
eine andere Meinung haben, und

01:23:46.580 --> 01:23:48.800
deswegen habe ich dann halt irgendwann

01:23:48.800 --> 01:23:50.880
ein Tool geschrieben, wir schreiben gerne Tools,

01:23:50.880 --> 01:23:50.900
aber wir schreiben gerne Tools,

01:23:50.900 --> 01:23:53.140
die andere Tools integrieren,

01:23:53.140 --> 01:23:54.740
wir machen Glue-Code gern selber,

01:23:54.740 --> 01:23:55.860
so Policy-Code,

01:23:55.860 --> 01:23:59.020
und versuchen eigentlich Werkzeuge einzusetzen,

01:23:59.020 --> 01:24:00.800
die Standalone für sich irgendeinen

01:24:00.800 --> 01:24:02.960
konkreten Job haben, und wir integrieren uns die dann halt,

01:24:02.960 --> 01:24:05.000
und dann habe ich halt so ein Tool, der kann dann halt

01:24:05.000 --> 01:24:06.940
irgendwie die Festplatten-Controller

01:24:06.940 --> 01:24:08.880
angucken und kann sagen, machen wir mal eine neue

01:24:08.880 --> 01:24:11.160
Partition, machen wir diesmal jenes, bauen das mal wieder ab,

01:24:11.160 --> 01:24:13.160
aber eben mit so Policy-Entscheidungen

01:24:13.160 --> 01:24:15.160
wie, ja, da musst du vorher mal

01:24:15.160 --> 01:24:17.100
gucken, ob da drüben in den Logs komische Dinge auflaufen,

01:24:17.100 --> 01:24:18.920
weil das ist die Karte dafür, dass gerade der Cluster

01:24:18.920 --> 01:24:20.880
überlastet ist, dann darfst du das schon nicht machen, und

01:24:20.880 --> 01:24:22.820
solcherlei Dinge, und dann ist das halt was,

01:24:22.820 --> 01:24:24.820
da ist dann der Arc-Parsen mit drin, und da wird

01:24:24.820 --> 01:24:26.640
dann mit irgendwie so Prozessen geredet, da ist

01:24:26.640 --> 01:24:28.780
JSON-Depoding drin, da ist so

01:24:28.780 --> 01:24:30.980
Glue-Code, um 5, 6 unterschiedliche

01:24:30.980 --> 01:24:32.640
Tools und Prozesse aneinander anzubinden,

01:24:32.640 --> 01:24:34.980
und den baue ich halt meistens

01:24:34.980 --> 01:24:37.200
immer wieder erstmal nackt auf,

01:24:37.200 --> 01:24:38.960
und erst wenn der eine gewisse

01:24:38.960 --> 01:24:40.840
Größe hat, setzt dann das Refactoring

01:24:40.840 --> 01:24:42.680
ein, und natürlich hat man so eine

01:24:42.680 --> 01:24:45.100
Standard-Library im Hinterkopf von, wie abstrahiere

01:24:45.100 --> 01:24:46.440
ich mir eine bestimmte API, um

01:24:46.440 --> 01:24:48.500
Subprozesse aufzurufen, wie abstrahiere ich mir

01:24:48.500 --> 01:24:50.700
eine bestimmte API, um HTTP-APIs anzusprechen,

01:24:50.860 --> 01:24:52.700
aber selbst denen gebe ich

01:24:52.700 --> 01:24:54.540
eigentlich immer wieder die Chance, sich

01:24:54.540 --> 01:24:56.580
nochmal neu zu beweisen, weil

01:24:56.580 --> 01:24:58.520
Python nun mal eigentlich so einfach ist,

01:24:58.520 --> 01:24:59.780
um den Happy Path

01:24:59.780 --> 01:25:02.000
mal schnell runterzuschreiben,

01:25:02.000 --> 01:25:04.540
um dann später nochmal mit der

01:25:04.540 --> 01:25:06.460
Zahnbürste hinterher zu gehen, und das irgendwie

01:25:06.460 --> 01:25:08.140
blank zu machen, und hübsch zu machen.

01:25:08.140 --> 01:25:10.600
Genau.

01:25:10.600 --> 01:25:12.460
Und das heißt, also im ersten Fall bei mir

01:25:12.460 --> 01:25:14.680
habe ich sogar ein Deployment, da passiert

01:25:14.680 --> 01:25:16.480
nichts außer aus meinem Editor raus in

01:25:16.480 --> 01:25:17.940
R-Sync irgendwo in die Umgebung rein,

01:25:17.940 --> 01:25:20.840
und ich nehme den Standard-Interpreter

01:25:20.840 --> 01:25:22.620
der vom System halt mir entgegengeworfen wird.

01:25:22.620 --> 01:25:24.720
Das hört sich so ein bisschen an,

01:25:24.720 --> 01:25:26.720
also hast du gar nicht so viele Klassen hier im Loss,

01:25:26.720 --> 01:25:28.120
das ist mehr funktional alles, oder?

01:25:28.120 --> 01:25:29.780
Das geht quer durcheinander.

01:25:29.780 --> 01:25:30.820
Das geht quer durcheinander.

01:25:30.820 --> 01:25:34.020
Klassen ziehe ich mir halt dann rein,

01:25:34.020 --> 01:25:35.980
wenn es halt nötig ist,

01:25:35.980 --> 01:25:37.740
wenn ich merke, da kristallisieren sich

01:25:37.740 --> 01:25:39.840
Strukturen raus, die sich halt in Klassen gut abbilden

01:25:39.840 --> 01:25:41.420
lassen. Machst du dann auch ein extra Modul dafür, oder

01:25:41.420 --> 01:25:43.140
packst du das dann trotzdem alles in die...

01:25:43.140 --> 01:25:45.440
Das ist halt spannend, also wenn ich dann

01:25:45.440 --> 01:25:47.020
einen gewissen Reifegrad erreicht habe,

01:25:47.020 --> 01:25:49.580
und merke, ah, ich laufe in die richtige Richtung,

01:25:49.580 --> 01:25:50.420
und das, was ich hier baue,

01:25:50.820 --> 01:25:52.200
fliegt nicht morgen wieder über den Jordan,

01:25:52.200 --> 01:25:54.680
dann fange ich an, das halt zu systematisieren.

01:25:54.680 --> 01:25:57.240
Und dann mache ich dann aus dem Repository

01:25:57.240 --> 01:25:58.360
halt mal ein gescheites Package,

01:25:58.360 --> 01:26:02.060
in Richtung halt, dass da ein Egg rausfallen könnte,

01:26:02.060 --> 01:26:05.080
bzw. Eggs macht man ja nicht mehr,

01:26:05.080 --> 01:26:07.160
also eine Sauce-List oder ein Reel

01:26:07.160 --> 01:26:07.700
oder was auch immer,

01:26:07.700 --> 01:26:10.900
aber eben irgendwas, wo eine Setup-Pie drin ist,

01:26:10.900 --> 01:26:13.000
und wo man diese ganze Kram, dass man es paketieren kann,

01:26:13.000 --> 01:26:14.500
dass man es auf dem Pipe-Pie laden kann, etc.

01:26:14.500 --> 01:26:17.280
Und das Zweite ist, dann fängt es halt

01:26:17.280 --> 01:26:19.160
meistens auch an, dass da die ersten Dependencies

01:26:19.160 --> 01:26:20.800
dazukommen, und

01:26:20.800 --> 01:26:22.600
weil das kommt meistens sogar früher, als dass ich

01:26:22.600 --> 01:26:24.540
ein Package draus mache, wenn ich so kleine Sachen habe.

01:26:24.540 --> 01:26:26.620
Was aber mit den Dependencies

01:26:26.620 --> 01:26:28.940
halt auf jeden Fall kommt, ist

01:26:28.940 --> 01:26:30.920
Jochen kann es

01:26:30.920 --> 01:26:32.420
bestimmt auch aussprechen, was ich jetzt denke.

01:26:32.420 --> 01:26:35.040
Ja, natürlich, Virtual Environments

01:26:35.040 --> 01:26:36.820
oder irgendeine Art zu isolieren

01:26:36.820 --> 01:26:38.620
halt, die Prägung, die man auch schafft.

01:26:38.620 --> 01:26:39.740
Genau, also

01:26:39.740 --> 01:26:42.680
verlockende Falle ist halt, aber das ist eigentlich auch

01:26:42.680 --> 01:26:44.680
schon so eine alte Technik, dass die eigentlich

01:26:44.680 --> 01:26:46.640
nicht mehr vorkommen sollte, ohne

01:26:46.640 --> 01:26:48.340
irgendwem von unseren Hörern zu nahe zu treten.

01:26:48.340 --> 01:26:50.160
Man kann natürlich jetzt dem

01:26:50.780 --> 01:26:52.360
System-Python-Interpreter

01:26:52.360 --> 01:26:55.100
über Debian-Packaging

01:26:55.100 --> 01:26:56.920
oder über YAML oder was auch immer

01:26:56.920 --> 01:26:58.720
dann noch zusätzliche Libraries

01:26:58.720 --> 01:27:00.980
mit rein installieren,

01:27:00.980 --> 01:27:03.140
aber das Problem ist, dann haben halt

01:27:03.140 --> 01:27:04.560
alle Programme

01:27:04.560 --> 01:27:06.900
auf diesem System die gleichen

01:27:06.900 --> 01:27:09.200
Dependencies. Ich meine, das ist so ein

01:27:09.200 --> 01:27:11.040
altes Problem von Paketierung

01:27:11.040 --> 01:27:12.580
halt an sich, also auch bei Debian.

01:27:12.580 --> 01:27:15.240
Wenn Debian halt sagt, ich paketiere Version 7

01:27:15.240 --> 01:27:16.840
und deine Anwendung braucht

01:27:16.840 --> 01:27:18.340
Version 8, dann hast du halt verloren.

01:27:18.340 --> 01:27:20.760
Deswegen macht man sowas nicht

01:27:20.760 --> 01:27:22.820
dass man Sachen in den System-Interpreter

01:27:22.820 --> 01:27:24.800
rein installiert, sondern

01:27:24.800 --> 01:27:26.580
dafür gibt es halt die sogenannten Virtual-Env, die sind

01:27:26.580 --> 01:27:29.000
seit Python 3 auch kein extra zu installierendes

01:27:29.000 --> 01:27:30.400
Tool mehr, sondern du kannst ja über

01:27:30.400 --> 01:27:32.780
Python 3

01:27:32.780 --> 01:27:34.720
minus mv-env

01:27:34.720 --> 01:27:36.860
und dann Verzeichnisname oder

01:27:36.860 --> 01:27:38.860
wenn du es in deinem Repo direkt machst, willst du mit Punkt

01:27:38.860 --> 01:27:40.780
erzeugst du dir eine

01:27:40.780 --> 01:27:42.740
virtuelle neue Python-Installation,

01:27:42.740 --> 01:27:43.940
in der du dann beliebig

01:27:43.940 --> 01:27:46.180
Dependencies installieren kannst

01:27:46.180 --> 01:27:48.540
und dann installierst du die da halt rein.

01:27:48.540 --> 01:27:49.980
Das kannst du mitmeißeln,

01:27:50.740 --> 01:27:52.560
also das kannst du imperativ machen, indem du

01:27:52.560 --> 01:27:54.540
dann aufrufst bin-pip

01:27:54.540 --> 01:27:57.160
install-requests

01:27:57.160 --> 01:27:58.920
oder du kannst

01:27:58.920 --> 01:28:01.040
auch ein Requirements-File

01:28:01.040 --> 01:28:02.520
schreiben, was sowas dann deklarativ

01:28:02.520 --> 01:28:04.740
erfasst, wo du sagst, hier, ich hätte gerne

01:28:04.740 --> 01:28:06.560
Requirements und ich hätte es gerne in folgender Version

01:28:06.560 --> 01:28:08.840
oder ich hätte es gerne zumindest größer als

01:28:08.840 --> 01:28:10.940
Version X, solche Sachen kannst du dann da ausdrücken.

01:28:10.940 --> 01:28:12.800
Das ist dann ein bisschen ergänzend dazu,

01:28:12.800 --> 01:28:13.940
dass du dein eigenes

01:28:13.940 --> 01:28:16.800
dein Skript selber paketierst und sagst,

01:28:16.800 --> 01:28:18.700
ich habe einen Package, wo auch

01:28:18.700 --> 01:28:20.700
Dependencies in der Setup-Pi deklariert sind, dann kannst

01:28:20.700 --> 01:28:22.160
du die über bin-pip

01:28:22.160 --> 01:28:24.600
minus e. zum Beispiel

01:28:24.600 --> 01:28:26.640
installieren, dann zieht

01:28:26.640 --> 01:28:28.360
er die Dependencies auch, wobei da gibt es halt

01:28:28.360 --> 01:28:30.180
auch so eine Unterscheidung von

01:28:30.180 --> 01:28:32.560
wie drücke ich Versionen in einem Paket

01:28:32.560 --> 01:28:34.300
aus, da gibt es eigentlich die

01:28:34.300 --> 01:28:36.620
Heuristik, dass man sagt, dass man nur

01:28:36.620 --> 01:28:38.680
dort Mindest-Versionen angibt,

01:28:38.680 --> 01:28:40.400
dass man sagt, ich brauche mindestens

01:28:40.400 --> 01:28:42.340
Version XY von einer Dependency, weil

01:28:42.340 --> 01:28:44.580
da gibt es ein Feature drin, was ich halt unbedingt

01:28:44.580 --> 01:28:46.360
brauche ab der Version,

01:28:46.360 --> 01:28:48.360
aber ich lasse es dir nach oben hin offen, auch

01:28:48.360 --> 01:28:50.580
neuere zu nehmen und

01:28:50.580 --> 01:28:52.480
man macht dann gegebenenfalls noch als zweites

01:28:52.480 --> 01:28:54.900
dazu einen Requirements-Text-File,

01:28:54.900 --> 01:28:55.840
wo man dann sagt, okay,

01:28:55.840 --> 01:28:58.260
aber jetzt für dieses konkrete Release

01:28:58.260 --> 01:29:00.580
legen wir uns einmal auf einen exakten

01:29:00.580 --> 01:29:02.580
Satz an Versionen fest, das nennt man

01:29:02.580 --> 01:29:03.360
dann Version-Pinning

01:29:03.360 --> 01:29:06.340
und dort schreibt man dann nur noch rein, okay, jetzt

01:29:06.340 --> 01:29:08.020
die Requests in exakt Versionen

01:29:08.020 --> 01:29:09.580
2, 3, 4 oder was auch immer.

01:29:09.580 --> 01:29:12.400
Genau. Das ist

01:29:12.400 --> 01:29:14.480
so ein bisschen hartelig

01:29:14.480 --> 01:29:16.020
im Sinne von

01:29:16.020 --> 01:29:18.500
das gibt

01:29:18.500 --> 01:29:20.420
dir kein garantiert pures Environment,

01:29:20.460 --> 01:29:22.460
weil du kannst das halt vermixen, dass du sagst,

01:29:22.460 --> 01:29:25.040
du installierst Sachen, Dependencies per Requirements-Text

01:29:25.040 --> 01:29:26.680
und kannst dann gleichzeitig

01:29:26.680 --> 01:29:28.500
trotzdem noch mit bin-pip-install dazwischen

01:29:28.500 --> 01:29:30.340
rumfuhrwerken. Ist da nicht jetzt sogar

01:29:30.340 --> 01:29:32.300
so eine Neuerung geplant, irgendwie in 3.8,

01:29:32.300 --> 01:29:33.880
dass man das irgendwie mit in die Verzeichnisse

01:29:33.880 --> 01:29:35.700
direkt reinkriegen kann oder sowas?

01:29:35.700 --> 01:29:38.620
Ja, das wäre interessant,

01:29:38.620 --> 01:29:39.760
das habe ich jetzt noch nicht auf dem Schirm.

01:29:39.760 --> 01:29:42.440
Ja, das hatten wir irgendwie, ich habe es jetzt aber auch nicht mehr

01:29:42.440 --> 01:29:44.300
so wirklich genau, also da ist es

01:29:44.300 --> 01:29:45.280
auf jeden Fall so, dass man

01:29:45.280 --> 01:29:48.100
pip irgendwie sagen kann,

01:29:48.100 --> 01:29:50.240
war das pip?

01:29:50.340 --> 01:29:52.440
Ja, man kann ja irgendwie die Versionen

01:29:52.440 --> 01:29:54.100
aussuchen, ob der irgendwie Versionen nimmt,

01:29:54.100 --> 01:29:55.680
die irgendwie im System hängt oder halt die...

01:29:55.680 --> 01:29:58.060
Das ist halt lokal, also das macht halt

01:29:58.060 --> 01:29:59.920
automatisch ein Environment, das halt lokal

01:29:59.940 --> 01:30:05.600
in dem Verzeichnis, das ist quasi genauso wie bei, ja, npm auch.

01:30:05.600 --> 01:30:14.120
Ja, okay. Das mit dem System-Byte ist noch ein, es gab früher, die Option gibt es immer noch

01:30:14.120 --> 01:30:17.760
als Abwärtskompetenz, früher gab es noch die Variante, dass du dir ein Virtual-Env machst,

01:30:17.760 --> 01:30:23.200
was aber sozusagen alle Nicht-Standard-Library-Pakete aus dem System miterbt

01:30:23.200 --> 01:30:24.740
und das ist genau das, was du aber nicht willst.

01:30:24.740 --> 01:30:27.640
Deswegen heißt das auch momentan der Default und ich glaube,

01:30:27.640 --> 01:30:32.020
das fliegt vermutlich auch irgendwann weg oder es wird zumindest so wenig dokumentiert,

01:30:32.020 --> 01:30:34.420
dass keiner mehr aus Versehen drüber stolpert und meint, das wäre eine gute Idee.

01:30:34.420 --> 01:30:42.220
Das Problem, das ich habe, ist eher, dass diese Virtual-Envs, wenn du dann, keine Ahnung,

01:30:42.220 --> 01:30:45.140
dann entwickelst du ein Team und die Requirements-Text entwickelt sich weiter

01:30:45.140 --> 01:30:50.500
und du sagst dann bin-pip install-r-requirements-text, dann kriegst du halt nur die Änderungen

01:30:50.500 --> 01:30:53.820
und wenn du aber schon irgendwelche Sachen, keine Ahnung, dann gibt es irgendwas,

01:30:53.820 --> 01:30:56.400
das ist keine Dependency mehr, dann ist die aber trotzdem noch drin,

01:30:56.400 --> 01:30:57.620
weil etwas, was mir...

01:30:57.620 --> 01:31:00.700
...die Requirements-Text nicht drin steht, wird halt nicht rausgeworfen in dem Moment.

01:31:00.700 --> 01:31:06.940
Du hast halt also keine abgeschlossene Hülle von dem, was da drin definiert ist

01:31:06.940 --> 01:31:10.000
und kannst dich nicht darauf verlassen, dass nicht noch zufällig mehr Zeug da ist.

01:31:10.000 --> 01:31:13.580
Und das kann aber tricky sein, weil es gibt halt Mechanismen, zum Beispiel in Setup-Tools,

01:31:13.580 --> 01:31:16.280
die haben halt Auto-Discovery für irgendwelche Entry-Points

01:31:16.280 --> 01:31:19.700
und dann werden da Entry-Points aktiviert, von denen du nicht wusstest, dass sie da sind

01:31:19.700 --> 01:31:21.120
und dann geht dir irgendwie alles den Bach runter.

01:31:21.120 --> 01:31:23.400
Das will man halt einfach nicht.

01:31:23.400 --> 01:31:27.600
Und auch das ist so ein Black-Swan-Ding im Sinne von, ja, in vielen...

01:31:27.600 --> 01:31:29.640
...in vielen Fällen funktioniert das sehr gut,

01:31:29.640 --> 01:31:35.140
aber nächsten Dienstag geht deswegen halt irgendein Server baden.

01:31:35.140 --> 01:31:40.640
Weil wir haben halt so viel Code, der so viel Auto-Detection für bestimmte Dinge macht,

01:31:40.640 --> 01:31:43.820
dann kann es halt sein, dass nächsten Dienstag tritt halt irgendein Exception auf

01:31:43.820 --> 01:31:46.520
und dann gibt es halt irgendein Tool, das hat so Exception-Handling,

01:31:46.520 --> 01:31:50.540
der geht dann wieder auf die Suche, ob es für das Exception-Handling noch irgendeinen Entry-Point gibt,

01:31:50.540 --> 01:31:55.640
der da irgendwie deklariert ist und deswegen kommt da plötzlich irgendwie Code zum Tragen,

01:31:55.640 --> 01:31:57.160
wo du dachtest, das haben wir doch nie definiert.

01:31:57.160 --> 01:31:57.340
Ja.

01:31:57.600 --> 01:31:59.840
Hm, der war halt noch von vor zwei Wochen da.

01:31:59.840 --> 01:32:03.200
Auch das ist ein Problem, was Docker ja löst.

01:32:03.200 --> 01:32:09.260
Ja, löst Docker das Problem?

01:32:09.260 --> 01:32:15.080
Ja, weil du bei Docker bei einem Release fängst du halt immer mit deinem leeren Basis-Image an

01:32:15.080 --> 01:32:16.360
und baust das halt wieder komplett auf.

01:32:16.360 --> 01:32:19.840
Während wenn du einen Virtual-Env sozusagen zweitverwendest,

01:32:19.840 --> 01:32:22.040
was ich völlig okay finde, was man machen kann,

01:32:22.040 --> 01:32:25.720
man muss halt wissen, was die Konsequenz daraus dann halt ist.

01:32:25.720 --> 01:32:26.720
Ja, naja, gut, bei Docker...

01:32:27.380 --> 01:32:30.200
Also so wirklich weißt du ja nicht, was in deinem Basis-Image alles drin ist.

01:32:30.200 --> 01:32:33.240
Also, wenn du es selber baust, ja klar.

01:32:33.240 --> 01:32:34.080
Machst du diese schöne Welt nicht kaputt.

01:32:34.080 --> 01:32:35.840
Machst du diese schöne Welt nicht kaputt.

01:32:35.840 --> 01:32:37.340
Ja, also klar.

01:32:37.340 --> 01:32:39.600
Ich meine, war jetzt ja auch bei Heise gerade wieder das Thema,

01:32:39.600 --> 01:32:46.660
dass ein Haufen von den Top 500 Docker-Images halt keine Root-Passwörter gesetzt hatte.

01:32:46.660 --> 01:32:48.020
Ja, ja.

01:32:48.020 --> 01:32:50.200
Ja, ja.

01:32:50.200 --> 01:32:54.880
Das ist halt, genau, ich meine, das ist das ganze Thema Dependency-Management,

01:32:54.880 --> 01:32:57.040
Vendoring, wo kommen meine Sachen her,

01:32:57.060 --> 01:32:59.920
die ich jetzt irgendwie als Route irgendwo in das System reinschieße.

01:32:59.920 --> 01:33:04.240
Es gab noch ein Tool, was ich eigentlich jetzt hier noch mit einbringen wollte,

01:33:04.240 --> 01:33:07.160
falls euch das was sagt, das ist CC Buildout.

01:33:07.160 --> 01:33:11.340
Buildout, habe ich schon mal irgendwie gehört, aber ich glaube, ich habe es immer noch nicht verwendet.

01:33:11.340 --> 01:33:14.420
Ja, das ist ein Tool, das stammt halt auch so aus der Zeit,

01:33:14.420 --> 01:33:16.080
wo die Virtual-Env sich gerade etabliert haben.

01:33:16.080 --> 01:33:20.560
Der kann zum einen, kann er das, was Virtual-Env macht, auch machen,

01:33:20.560 --> 01:33:25.280
nämlich dir vom System-Python entkoppelte Pfade zu liefern,

01:33:25.280 --> 01:33:26.840
die...

01:33:26.840 --> 01:33:28.840
Wo die Dependencies klar ausgesteuert sind.

01:33:28.840 --> 01:33:32.720
Und was ich am Buildout aber spannend finde, ist, der hat eben diese Option,

01:33:32.720 --> 01:33:37.060
dass du über die Buildout-Config explizit sagst, auf der einen Seite,

01:33:37.060 --> 01:33:41.800
du darfst nur Pakete mit folgenden Versionsnummern anziehen.

01:33:41.800 --> 01:33:46.500
Und wenn die wiederum rekursiv Dependencies anziehen, die ich nicht dokumentiert habe,

01:33:46.500 --> 01:33:49.600
hier explizit in meinem Version-Pinning, dann fall bitte aufs Maul.

01:33:49.600 --> 01:33:55.560
Und das ist total spannend, weil der putzt auf der einen Seite sozusagen nach hinten hinweg Sachen,

01:33:55.560 --> 01:33:56.620
die du nicht mehr verwendest.

01:33:56.620 --> 01:34:01.420
Das heißt, das ist immer automatisch garantiert clean und auf der anderen Seite kannst du

01:34:01.420 --> 01:34:07.800
halt dich darauf verlassen, dass wirklich nur exakt das Versions-Set da ist, was du halt

01:34:07.800 --> 01:34:08.800
brauchst.

01:34:08.800 --> 01:34:09.800
Und das ist halt relativ...

01:34:09.800 --> 01:34:10.800
Das Ding ist relativ leichtgewichtig in dieser Hinsicht.

01:34:10.800 --> 01:34:14.140
Und ich benutze es halt an vielen Stellen genau dafür, dass ich sage, ich mache mir

01:34:14.140 --> 01:34:16.800
auf der einen Seite einen Virtual-Env, um die Systemtrennung zu erreichen.

01:34:16.800 --> 01:34:17.800
Das ist da bequemlichkeithalber.

01:34:17.800 --> 01:34:22.320
Und installiere darin CC-Buildout und mache dann eine kleine Buildout-Config, wo ich sage,

01:34:22.320 --> 01:34:26.400
ich möchte gerne bitte eine Interpreterumgebung für folgende Packages haben.

01:34:26.400 --> 01:34:33.760
Und deren kompletter Dependency Tree muss übrigens durch folgende abgeschlossene Liste komplett

01:34:33.760 --> 01:34:36.240
gedeckt sein oder du darfst sie nicht installieren.

01:34:36.240 --> 01:34:42.000
Und das ist tatsächlich was, das garantiert dir so reproducible Builds halt sehr gut.

01:34:42.000 --> 01:34:43.000
Hm.

01:34:43.000 --> 01:34:44.000
Okay, cool.

01:34:44.000 --> 01:34:45.000
Muss ich mir mal angucken.

01:34:45.000 --> 01:34:47.000
Habe ich bisher noch nicht so gemacht.

01:34:47.000 --> 01:34:48.000
Ja.

01:34:48.000 --> 01:34:52.400
Ja, das ist so ein typisches Tool aus der SOAP-Welt, was sozusagen dann halt es über

01:34:52.400 --> 01:34:54.180
die SOAP-Welt raus nie geschafft hat.

01:34:54.180 --> 01:34:55.180
Und es hat eigentlich...

01:34:55.180 --> 01:34:56.180
Da hängt so ein bisschen mein...

01:34:56.180 --> 01:35:00.000
Da hängt so ein Open-Source-Herz von vor 10 Jahren halt dran.

01:35:00.000 --> 01:35:02.380
Das hat eigentlich das bessere Engineering.

01:35:02.380 --> 01:35:08.680
Es hat sich halt nur nicht durchgesetzt, das ist so ein bisschen, ach, Krokodil-Trainer.

01:35:08.680 --> 01:35:09.680
Genau.

01:35:09.680 --> 01:35:10.680
Ja.

01:35:10.680 --> 01:35:14.940
So, ja, jetzt haben wir so Virtual-Env und...

01:35:14.940 --> 01:35:15.940
Genau.

01:35:15.940 --> 01:35:19.120
Ja, dann machen wir doch da einen Web-Summer drum und machen auch mal weiter.

01:35:19.120 --> 01:35:20.120
Also habt ihr...

01:35:20.120 --> 01:35:21.120
Was habt ihr denn noch?

01:35:21.120 --> 01:35:24.180
Wie macht man denn dann, wenn jetzt so das Umgebung-Setting so gebaut ist?

01:35:24.180 --> 01:35:25.180
Ja, jetzt...

01:35:25.180 --> 01:35:26.180
Okay.

01:35:26.180 --> 01:35:30.420
Jetzt haben wir erst mal die Möglichkeit, dass wir in Projekten überhaupt Umgebungen

01:35:30.420 --> 01:35:31.420
mehrfach bauen können.

01:35:31.420 --> 01:35:36.180
Ja, also du checkst ja jetzt die Requirements-Texte, das Build-Out checkst du halt mit ein.

01:35:36.180 --> 01:35:41.060
Und da kommt eine interessante Frage, nämlich: Checkst du zusammen mit deinem Code ein oder

01:35:41.060 --> 01:35:42.060
machst du ein neues Repo?

01:35:42.060 --> 01:35:43.060
Ja.

01:35:43.060 --> 01:35:50.380
Also ich check das immer zusammen mit allem anderen ein, aber, ja, man könnte natürlich

01:35:50.380 --> 01:35:55.980
das so machen, dass man den Code in einen Repository packt und dann die ganze Infrastruktur, wie,

01:35:55.980 --> 01:36:04.220
ja, wie deployed man das Projekt halt in eine andere Geschichte reinpackt, ja, hm.

01:36:04.220 --> 01:36:08.020
Das machen wir eigentlich, das machen wir sehr gerne, ja.

01:36:08.020 --> 01:36:11.640
Also zieht sich dann die Maschine selber immer den Code von Remote und andersherum musst

01:36:11.640 --> 01:36:12.640
du den mal pushen?

01:36:12.640 --> 01:36:13.640
Oder was war jetzt der Unterschied?

01:36:13.640 --> 01:36:16.940
Ah, das ist mal ein interessanter Vorschlag, genau.

01:36:16.940 --> 01:36:17.940
Hm.

01:36:17.940 --> 01:36:18.940
Hm.

01:36:18.940 --> 01:36:19.940
Hm.

01:36:19.940 --> 01:36:20.940
Interessant.

01:36:20.940 --> 01:36:21.980
Also, weißt du, klar, was du halt machen kannst, ist, du kannst jetzt solche Dinge

01:36:21.980 --> 01:36:22.980
spielen wie...

01:36:22.980 --> 01:36:23.980
Du gehst...

01:36:23.980 --> 01:36:24.980
Auf deinen Zielmaschinen...

01:36:24.980 --> 01:36:31.340
Auf deinen Zielmaschinen machst du dir einen Con-Job, der zieht das Repo selbstständig

01:36:31.340 --> 01:36:36.040
alle, entweder per Trigger oder irgendwie alle fünf Minuten oder was auch immer, von

01:36:36.040 --> 01:36:40.360
einer Production Branch und führt dann irgendwie so ein Build-Skript aus.

01:36:40.360 --> 01:36:42.360
Das kannst du machen.

01:36:42.360 --> 01:36:44.820
Das machen wir auch an ein paar Stellen.

01:36:44.820 --> 01:36:50.020
Es kommt ja immer drauf an, wofür man es braucht.

01:36:50.020 --> 01:36:51.020
Ja, genau.

01:36:51.020 --> 01:36:54.780
Und selbst da kann man eben diese Auftrennung machen.

01:36:54.780 --> 01:36:58.540
Also, wenn du davon ausgehst, dass deine Anwendung zum Beispiel von unterschiedlichen Leuten

01:36:58.540 --> 01:37:03.060
mal deployed werden soll, dann macht es halt Sinn, das in unterschiedliche Repos zu legen.

01:37:03.060 --> 01:37:04.060
Hm.

01:37:04.060 --> 01:37:05.840
Oder wenn du es über Teams trennst.

01:37:05.840 --> 01:37:09.560
Also, wir haben es halt häufig, weil wir ja als Dienstleister in Projekten drinnen hängen,

01:37:09.560 --> 01:37:13.380
wo jemand anderes die Software entwickelt, dann haben die halt ihre Repo für die eigentliche

01:37:13.380 --> 01:37:14.380
Software.

01:37:14.380 --> 01:37:15.380
Hm.

01:37:15.380 --> 01:37:19.520
Und wir haben das Repo für das Deployment.

01:37:19.520 --> 01:37:23.140
Wir haben meistens gegenseitig auch Schreibzugriffe drauf, aber es ist so mehr ein, man tritt sich

01:37:23.140 --> 01:37:24.780
halt nicht unnötig auf den Füßen rum.

01:37:24.780 --> 01:37:25.780
Ja.

01:37:25.780 --> 01:37:31.460
Naja, das ist, ich meine, ich weiß nicht, also das, was man da vielleicht, also mache

01:37:31.460 --> 01:37:36.340
ich jetzt für meine, also so privaten, kleineren Geschichten auch nicht, aber wenn man jetzt

01:37:36.340 --> 01:37:40.760
irgendwie eine größere Sache hat, was man ja vielleicht dann haben will, ist halt Continuous

01:37:40.760 --> 01:37:47.680
Integration oder Delivery sogar, dass man dann, wenn halt man, ja, sozusagen Code, den

01:37:47.680 --> 01:37:51.820
man irgendwie geändert hat, dann in den Master Branch oder so reinpusht, dass das dann halt

01:37:51.820 --> 01:37:54.580
automatisch irgendwie in einem neuen Bild lostritt und das auch ausrollt.

01:37:54.580 --> 01:38:00.040
Das rollt automatisch alles, wenn man halt irgendwie so einen CI-Server da irgendwo stehen hat, der

01:38:00.040 --> 01:38:00.540
das dann macht.

01:38:00.540 --> 01:38:03.560
Du musst einmal vielleicht nochmal für die Leute, die es auch gar nicht kennen, erklären,

01:38:03.560 --> 01:38:07.300
was ist der Unterschied zwischen Continuous Integration und Delivery und ist das einfach

01:38:07.300 --> 01:38:11.500
so ein Prozess, der automatisch angestoßen wird, wenn man einen Entwicklungsschritt abgeschlossen

01:38:11.500 --> 01:38:16.920
hat oder geht es um Feature-Entwicklung oder um irgendwie Fixes oder worum geht es?

01:38:16.920 --> 01:38:22.280
Ja, es geht halt im Grunde darum, dass, also was man ganz früher gemacht hat, ist, dass

01:38:22.280 --> 01:38:24.180
man halt baut die Software irgendwie.

01:38:24.380 --> 01:38:29.100
Zu periodischen Zeiten oder halt, wenn man irgendwie mit einer Release fertig ist und

01:38:29.100 --> 01:38:35.000
dann baut man die halt einmal und dann presst man die auf eine CD oder schmeichelt die auf

01:38:35.000 --> 01:38:36.760
Disketten und verschickt die mit der Post oder irgendwie sowas.

01:38:36.760 --> 01:38:42.560
Aber was man ja jetzt eigentlich tun kann, wenn das Ganze sowieso alles irgendwie mit

01:38:42.560 --> 01:38:48.480
dem Netz verbunden ist, dass man das ja auch in kleineren Intervallen macht, was halt den

01:38:48.480 --> 01:38:53.620
Vorteil hat, dass man nicht sozusagen vor dem Problem steht, dass man bekommt, wenn man

01:38:53.620 --> 01:38:54.180
jetzt so...

01:38:54.180 --> 01:38:59.540
fixe Releases machen möchte, dass man halt, wenn man jetzt, also klassische Geschichte

01:38:59.540 --> 01:39:05.000
dabei ist halt so, man hat halt so Milestones und dann irgendwann ist man fertig und dann

01:39:05.000 --> 01:39:08.760
sagt man, okay, jetzt machen wir noch irgendwie eine Woche testen hintendran und dann liefern

01:39:08.760 --> 01:39:13.360
wir das aus und dann fällt an Tag drei irgendwie beim Testen fällt halt auf, oh, wir haben

01:39:13.360 --> 01:39:14.620
ja ein großes Problem gefunden.

01:39:14.620 --> 01:39:15.640
Was macht man denn dann?

01:39:15.640 --> 01:39:17.100
Dann ist halt irgendwie doof.

01:39:17.100 --> 01:39:20.940
Dann kann man halt entweder das irgendwie Duct Tape auspacken.

01:39:23.980 --> 01:39:31.260
Oder man kann halt irgendwie, ja, sagen, okay, wir können doch nicht releasen, was dann halt

01:39:31.260 --> 01:39:31.920
auch wieder Nachteile hat.

01:39:31.920 --> 01:39:35.320
Also man ist in einer Situation, wo man keine gute, keine guten Optionen mehr hat eigentlich.

01:39:35.320 --> 01:39:37.500
Und das ist natürlich ein bisschen dumm.

01:39:37.500 --> 01:39:41.120
Oder man hat halt das Problem, dass man die Arbeit von anderen Leuten, die dann vielleicht

01:39:41.120 --> 01:39:44.500
auf anderen Branches irgendwie gearbeitet haben, irgendwie integrieren muss und das

01:39:44.500 --> 01:39:47.820
dann auch nicht richtig funktioniert und einem erst zum Schluss auffällt, dass das alles

01:39:47.820 --> 01:39:49.980
so nicht funktionieren kann, wie man das geplant hatte.

01:39:49.980 --> 01:39:52.720
Und das ist halt blöd.

01:39:52.720 --> 01:39:53.960
Und das kann man so ein bisschen loswerden.

01:39:53.960 --> 01:40:00.540
Oder diese Geschichten sind halt der Versuch, dass sozusagen dadurch, dass man das Release

01:40:00.540 --> 01:40:04.120
jetzt nicht einmal so ein großes, riesenbrockenes Ding macht, sondern man zerteilt das halt

01:40:04.120 --> 01:40:08.520
in viele kleine Geschichten, das dann halt so undramatischer zu machen.

01:40:08.520 --> 01:40:13.880
Und damit dann dahin zu kommen, dass das dadurch, dass das halt häufig passiert und alles

01:40:13.880 --> 01:40:18.240
durchautomatisiert ist, ist ja auch so etwas, was man früher hat man dann viele dieser

01:40:18.240 --> 01:40:23.120
Prozesse, die nötig sind, um irgendwas zu releasen, hat man dann manuell gemacht.

01:40:23.120 --> 01:40:23.860
Dann hat man dann mit Chat.

01:40:23.920 --> 01:40:26.020
Dann hat man dann mit Chat Listen gearbeitet, weil man sich das nicht alles merken kann.

01:40:26.020 --> 01:40:31.640
Und trotzdem passieren dann immer wieder Fehler und alles nicht so toll.

01:40:31.640 --> 01:40:36.420
Aber wenn man das halt ganz oft macht, dann ist auch ein gewisser Druck da, das halt so

01:40:36.420 --> 01:40:39.020
zu automatisieren, dass man da im Grunde nur noch auf Knapp drücken muss.

01:40:39.020 --> 01:40:43.220
Also das ist jetzt, was man jetzt hat, wenn man jetzt so ein Git-Flow sich eingerichtet

01:40:43.220 --> 01:40:46.740
hat und das dann irgendwie in so ein Framework reinlädt, dann wird das automatisch getestet,

01:40:46.740 --> 01:40:49.440
dass man bei Git, ich weiß nicht, Travis oder was habe ich da gemeint?

01:40:49.440 --> 01:40:52.160
Ja, Travis CI ist halt so ein Continuous Integration.

01:40:53.160 --> 01:40:59.380
Ja, also man hört ja so manchmal so komische Geschichten, dass da irgendwie Leute plötzlich

01:40:59.380 --> 01:41:02.580
irgendwie arbeitslos werden und so in letzter Zeit, ja.

01:41:02.580 --> 01:41:06.900
Aber ich weiß da halt nichts drüber, keine Ahnung.

01:41:06.900 --> 01:41:10.320
Ich verwende es immer noch für meine GitHub-Geschichten, weil da gibt es halt eine sehr schöne Integration.

01:41:10.320 --> 01:41:12.960
Ah, die läuft noch?

01:41:12.960 --> 01:41:14.400
Ich dachte, die haben sie auch zugemacht schon.

01:41:14.400 --> 01:41:15.200
Nö, die läuft noch.

01:41:15.200 --> 01:41:16.720
Also die Travis ist eigentlich durch.

01:41:16.720 --> 01:41:17.380
Oh.

01:41:17.380 --> 01:41:18.320
Was gibt es jetzt?

01:41:18.320 --> 01:41:22.660
Naja, du hast halt GitHub.

01:41:22.660 --> 01:41:23.120
Kannst du es ja auch so nennen?

01:41:23.120 --> 01:41:24.160
Kannst du es inzwischen selber machen?

01:41:24.160 --> 01:41:27.280
Bitbucket kann Pipelines, du hast GitLab.

01:41:27.280 --> 01:41:28.500
Es gibt schon noch einiges.

01:41:28.500 --> 01:41:29.480
Ja.

01:41:29.480 --> 01:41:31.920
Okay, die Pipelines werden dann eigentlich integriert.

01:41:31.920 --> 01:41:32.820
Ich habe das bei Azure mal gesehen.

01:41:32.820 --> 01:41:34.960
Dann wird dann einfach direkt getestet.

01:41:34.960 --> 01:41:38.440
Dann kann man sich da was schreiben und dann testet der das direkt durch, also ob es läuft.

01:41:38.440 --> 01:41:41.020
Einfach auf dem Server integriert insgesamt oder?

01:41:41.020 --> 01:41:43.460
Ja, ob die Tests durchlaufen, kann man natürlich machen.

01:41:43.460 --> 01:41:46.880
Und das kann man halt dann auch nicht nur so machen, dass das halt irgendwie für eine

01:41:46.880 --> 01:41:48.500
Spezies, sondern man kann dann auch, ja.

01:41:48.500 --> 01:41:51.420
Man kann so eine Maschine spawnen, die dann halt auch irgendwo stehen sollte, oder?

01:41:51.420 --> 01:41:52.820
Ja, könnte man.

01:41:52.820 --> 01:41:53.080
Aber das kann man auch nicht.

01:41:53.080 --> 01:41:54.840
Das kann man im Grunde machen, wie man möchte.

01:41:54.840 --> 01:41:58.660
Also üblicherweise wird irgendwie eine virtuelle Maschine wahrscheinlich hochgezogen und dann

01:41:58.660 --> 01:42:03.180
werden halt da die unterschiedlichen Environments, da gibt es so Talks, mit denen kann man sagen,

01:42:03.180 --> 01:42:06.980
welchen Dingern das halt funktionieren sollte.

01:42:06.980 --> 01:42:10.960
Und dann werden Interpreter in unterschiedlichen Versionen installiert und Software in unterschiedlichen

01:42:10.960 --> 01:42:11.280
Versionen.

01:42:11.280 --> 01:42:14.340
Und dann wird das halt, wenn die Tests laufen gelassen und wenn die halt durchlaufen, dann

01:42:14.340 --> 01:42:14.760
ist halt gut.

01:42:14.760 --> 01:42:19.580
Aber man kann halt nicht nur das machen, sondern man kann halt beliebige Dinge tun, wie auch

01:42:19.580 --> 01:42:22.780
irgendwie dann halt ein Deployment lostreten.

01:42:23.040 --> 01:42:27.620
Das dann halt alles funktioniert hat und so, dass es halt im Grunde dann komplett durchautomatisiert

01:42:27.620 --> 01:42:34.100
ist von irgendwie Entwickler sagt jetzt, okay, ich bin mit dem Feature fertig, macht eine

01:42:34.100 --> 01:42:39.480
Release oder macht einfach nur Push auf Master und ja, irgendwie, weiß ich nicht, ein paar

01:42:39.480 --> 01:42:41.660
Minuten später ist es dann halt im Produktionssystem live.

01:42:41.660 --> 01:42:50.420
Aber zwischen irgendwie, man macht halt irgendwie alle paar Wochen eine Release und eben so

01:42:50.420 --> 01:42:52.880
etwas, man checkt Code ein und es geht dann sofort live.

01:42:53.000 --> 01:42:57.160
Gibt es halt alle möglichen Zwischenstufen und die dann, ich weiß gar nicht genau, wie

01:42:57.160 --> 01:43:00.200
die, wie die genauen Definitionen jetzt für die, für die unterschiedlichen Sachen da

01:43:00.200 --> 01:43:00.380
sind.

01:43:00.380 --> 01:43:05.160
Hätte ich jetzt auch keine, die irgendwie formal wären.

01:43:05.160 --> 01:43:10.780
Ich finde es, ich finde es eher spannend, dass auch da wieder diese beiden Extreme nur

01:43:10.780 --> 01:43:13.200
zu betrachten eben genau nicht, nicht hilfreich ist.

01:43:13.200 --> 01:43:17.000
Wir haben so viele Projekte, wo wir ganz unterschiedlich eben diese Zwischentöne eher

01:43:17.000 --> 01:43:22.200
sehen, wo auch Entwickler dann teilweise sagen, ich finde es eigentlich ganz gut, wenn, wenn

01:43:22.960 --> 01:43:27.060
ihr bestimmte Sachen auch nochmal mit anschaut und das ist halt genau dieses Thema von, warum

01:43:27.060 --> 01:43:31.800
will man denn enger zusammenarbeiten, weil man ja möchte, dass Menschen miteinander

01:43:31.800 --> 01:43:37.000
Wissen austauschen und dann ist sozusagen dieser, so, das geht jetzt hier blind raus,

01:43:37.000 --> 01:43:42.240
das kannst du schon machen und das funktioniert auch, das hat halt andere Konsequenzen und

01:43:42.240 --> 01:43:43.240
ich muss mich da anders aufstellen.

01:43:43.240 --> 01:43:47.900
Wir haben halt auch so Flows, wo die Leute sagen, wir können beide auf den Knopf drücken

01:43:47.900 --> 01:43:51.440
und ich komme nur an, wenn ich mir nicht sicher bin und dann bitte ich dich mal irgendwie

01:43:51.440 --> 01:43:52.920
noch bestimmte Sachen mit mir gemeinsam anzuschauen.

01:43:52.920 --> 01:43:57.600
Oder einige sagen, hier komm du, kümmer du dich drum, mach einfach, wie du willst, drück

01:43:57.600 --> 01:44:02.800
selber auf den Knopf, wenn du soweit bist, da gibt man halt tatsächlich diese, die ganzen,

01:44:02.800 --> 01:44:06.040
wenn du es durchautomatisiert, es ist halt, wenn du es durchautomatisiert hast, kannst

01:44:06.040 --> 01:44:09.480
du die ganzen kleineren Varianten davon halt automatisch auch spielen.

01:44:09.480 --> 01:44:13.500
Ja, zu sagen, okay, das läuft jetzt halt nicht vollautomatisch, sondern es läuft jetzt halt

01:44:13.500 --> 01:44:17.680
nur bis hier hin und dann muss man mal draufdrücken oder dann schicke ich hier nur eine Nachricht

01:44:17.680 --> 01:44:22.880
ab in irgendeinem Channel, das lässt sich halt besser erreichen und du musst dich im

01:44:22.880 --> 01:44:29.260
Moment da auch annähern und ich meine, jeden Commit sofort rauszublasen, das kommt dann

01:44:29.260 --> 01:44:32.920
halt auch drauf an, wie, was für einen Impact so ein Deployment halt hat.

01:44:32.920 --> 01:44:39.480
Wenn du, wir sind bei, okay, das dauert halt nur 500 Millisekunden, um mal neu zu starten,

01:44:39.480 --> 01:44:41.880
ja, das kannst du fast immer überall machen.

01:44:41.880 --> 01:44:46.640
Wenn du halt Rolling Releases kannst, wenn du also sozusagen in der Lage bist, alte und

01:44:46.640 --> 01:44:50.260
neue Versionen deiner Software parallel zu betreiben, dann versteckst du das hinter einem

01:44:50.260 --> 01:44:52.840
Loadbalancer, hast irgendwie zehn Instanzen und dann updatest du die.

01:44:52.840 --> 01:44:56.240
Die erste startest du neu, updatest du die zweite, startest du neu, jada, jada, dann müssen

01:44:56.240 --> 01:45:01.380
aber halt die Softwareversionen mit den unterschiedlichen Datenbankständen halt auch zumindest adäquat

01:45:01.380 --> 01:45:06.500
klarkommen und das ist halt was, was man dann halt bauen muss oder du sagst halt, nee, das

01:45:06.500 --> 01:45:09.360
will ich nicht bauen, weil ich habe halt auch noch irgendwelche Dependencies auf Sachen,

01:45:09.360 --> 01:45:10.600
wo ich das nicht unter Kontrolle habe.

01:45:10.600 --> 01:45:14.820
Ich brauche ein Black Deployment, dann musst du halt irgendwas machen, was halt vielleicht

01:45:14.820 --> 01:45:16.420
nachts losläuft oder um drei.

01:45:16.420 --> 01:45:17.740
Ja, genau.

01:45:17.740 --> 01:45:21.620
Der Trick ist, das kannst du ja machen, wenn du dir im Prinzip sicher bist, weil das alles

01:45:21.620 --> 01:45:22.380
so eingespielt ist.

01:45:22.800 --> 01:45:23.440
Wenn es halt nicht kaputt geht.

01:45:23.440 --> 01:45:28.520
Wie du vorhin meintest, wenn es halt weh tut, dann, weil du es halt ständig machst, dann

01:45:28.520 --> 01:45:30.520
optimieren die Leute halt darauf hin, dass man es ständig macht.

01:45:30.520 --> 01:45:36.820
Die alte Leier dazu ist doch, if something hurts, do it more.

01:45:36.820 --> 01:45:38.540
Genau.

01:45:38.540 --> 01:45:40.440
Je nach Präferenz.

01:45:40.440 --> 01:45:42.220
Ja, genau.

01:45:42.220 --> 01:45:46.060
Nee, aber der Mensch neigt ja dazu, halt irgendwie Schmerzen abzustellen, insofern,

01:45:46.060 --> 01:45:46.800
wenn du...

01:45:46.800 --> 01:45:49.120
Ja.

01:45:49.120 --> 01:45:51.140
Genau.

01:45:51.140 --> 01:45:52.720
Man muss das halt irgendwie wegkriegen.

01:45:52.760 --> 01:45:56.480
Von dem, es ist irgendwas Außergewöhnliches, Schreckliches, wovor alle Angst haben und

01:45:56.480 --> 01:46:02.000
dann zu etwas, was halt vielleicht ein bisschen weh tut, aber das, was man regelmäßig machen

01:46:02.000 --> 01:46:03.980
muss, wie die Zähne putzen, keine Ahnung, dann geht das.

01:46:03.980 --> 01:46:05.000
Ja.

01:46:05.000 --> 01:46:07.860
Genau.

01:46:07.860 --> 01:46:11.640
Also, das ist halt so die Idee dahinter.

01:46:11.640 --> 01:46:22.600
Und dann, genau, wie das dann auf die Maschinen kommt, ja, genau, so große Systeme mit Lobbalancern

01:46:22.600 --> 01:46:27.400
oder so, das ist ja auch schon dann etwas, ja, da würde man eben Ansible nehmen oder so

01:46:27.400 --> 01:46:31.060
und dann, das hätte ein Inventory von den ganzen Maschinen und dann könnte man irgendwie

01:46:31.060 --> 01:46:34.320
so Rolling-Updates machen oder so, ja.

01:46:34.320 --> 01:46:39.420
Also, für so private, kleine, kleine Geschichten.

01:46:39.420 --> 01:46:45.620
Also, was ich momentan tatsächlich irgendwie selbst am liebsten mache, ist, ich benutze

01:46:45.620 --> 01:46:46.240
tatsächlich Docker.

01:46:46.240 --> 01:46:48.520
Ja.

01:46:48.520 --> 01:46:52.240
Also, aus Entwicklersicht hat das einige echt...

01:46:52.600 --> 01:46:53.260
Ich habe schon schicke Vorteile.

01:46:53.260 --> 01:46:57.780
Ich habe früher auch mal das dann irgendwie mit Vagrant gemacht und dann immer komplette

01:46:57.780 --> 01:46:59.220
Maschinen hochgezogen und so.

01:46:59.220 --> 01:47:03.340
Aber das ist, das dauert halt alles so ewig, wenn man irgendwas ändern möchte an der Maschine,

01:47:03.340 --> 01:47:07.980
dann muss man da irgendwie dann, ist das, dann, gerade wenn man sie dann per Ansible

01:47:07.980 --> 01:47:11.680
oder so hochzieht, das ist alles, alles ziemlich mühselig.

01:47:11.680 --> 01:47:16.500
Und natürlich ist mir auch klar, dass das irgendwie problematisch ist, aber bei Docker

01:47:16.500 --> 01:47:17.380
ist das halt viel, viel schneller.

01:47:17.380 --> 01:47:21.820
Da hat man halt irgendwie, ist die Maschine halt innerhalb von, ja, sagen wir mal, wenigen

01:47:21.820 --> 01:47:22.380
Sekunden da.

01:47:22.600 --> 01:47:23.460
Oder noch weniger.

01:47:23.460 --> 01:47:26.200
Und man kann sofort damit was machen.

01:47:26.200 --> 01:47:29.580
Klar, wenn man was ändern muss, dauert es auch ein bisschen länger, aber das ist alles

01:47:29.580 --> 01:47:32.340
nicht so schlimm, wie das von davor hatte.

01:47:32.340 --> 01:47:37.720
Und es ist vor allem, es ist vor allem robuster halt, weil es halt die Stände ein bisschen

01:47:37.720 --> 01:47:42.040
besser definiert, dass du halt nicht mit einem Basis-Image anfängst, was du, also gerade

01:47:42.040 --> 01:47:44.480
beim Vagrant, da sind wir auch noch ein bisschen dran.

01:47:44.480 --> 01:47:50.680
Wir haben für uns ja, wir haben ja NixOS als Linux-Derivat.

01:47:50.680 --> 01:47:52.480
Was dieses ganze Thema...

01:47:52.600 --> 01:47:56.220
Wie manage ich Runtimes sauber gelöst hat?

01:47:56.220 --> 01:47:59.380
Da ist eher die Frage, wie kann ich dann da drinnen wieder unsauber rumpunken?

01:47:59.380 --> 01:48:04.680
Die, ähm, und dann haben wir da halt auch so Vagrant-Images und die sind schon relativ

01:48:04.680 --> 01:48:09.160
gut, gute Zustände immer als Basis-Image, dass ich weiß, wo ich bitten und aber tatsächlich

01:48:09.160 --> 01:48:15.100
NixOS kann halt auch so hier, installiere jetzt mal bitte xyz, das haben die in dieser Sprache

01:48:15.100 --> 01:48:18.860
drinnen schon verwusst, das ist eigentlich eine schöne Alternative zu dem, wie, wie Docker

01:48:18.860 --> 01:48:19.860
das macht.

01:48:19.860 --> 01:48:22.400
Ähm, aber auch das ist tatsächlich immer wieder so...

01:48:22.400 --> 01:48:26.500
...relativ fragil, weil es dann doch noch darauf ankommt, wie das Vagrant genau aussieht

01:48:26.500 --> 01:48:33.940
und, ähm, nervt gerade auch noch ein bisschen, ähm, an der Stelle ist das, ist das Docker-Konzept

01:48:33.940 --> 01:48:40.680
halt zumindest so, dass man halt relativ gut produktiv sein kann, ähm, ja, ja und vor allen

01:48:40.680 --> 01:48:43.800
Dingen, also es hat halt, also was ich, ich kann ja einfach vielleicht, also ich mach

01:48:43.800 --> 01:48:47.420
das so, äh, ist auch, auch, auch interessant, weil das vielleicht so ein bisschen der, der

01:48:47.420 --> 01:48:52.280
umgekehrter Ansatz ist zu dem, man macht halt ein, ein, ein Skript, ähm, dass man, äh, irgendwie,

01:48:52.280 --> 01:48:56.540
die Remote direkt vielleicht schon sogar entwickelt, um sofort sehen zu können, ob das irgendwie

01:48:56.540 --> 01:49:01.160
funktioniert oder nicht, äh, wenn man jetzt irgendwie so eine Webseite, ähm, zusammenbaut,

01:49:01.160 --> 01:49:07.820
dann hat man da enorm viel komische, äh, Abhängigkeiten auch noch zu anderen Systemen hin, blöderweise,

01:49:07.820 --> 01:49:11.560
das ist auch so etwas, was ich irgendwie so ein bisschen schrecklich finde, aber wo ich

01:49:11.560 --> 01:49:15.020
nicht genau weiß, wie man das irgendwie besser hinkriegt und ich fange tatsächlich oft so

01:49:15.020 --> 01:49:19.640
an, selbst für kleine Geschichten, dass ich halt, äh, so ein Cookie-Cutter-Django-Template

01:49:19.640 --> 01:49:21.640
oder so halt ausführe und dann erstmal...

01:49:22.280 --> 01:49:26.500
äh, wie ich so ein riesen Ding da ausrolle, ähm...

01:49:26.500 --> 01:49:27.960
Ist das ein selbstgeschriebenes Template oder nimmst du...

01:49:27.960 --> 01:49:33.780
Nein, nein, ich nehme das, äh, das, das, äh, irgendwie, ja, kriegt man immer nach Django-Cookie-Cutter,

01:49:33.780 --> 01:49:38.080
googelt, ist von den Leuten, die halt auch das, äh, Two-Scoops-of-Django-Buch geschrieben

01:49:38.080 --> 01:49:44.960
haben und, ähm, ja, das macht dann halt schon eine ganze Menge, äh, Sachen, unter anderem

01:49:44.960 --> 01:49:51.480
halt, äh, äh, legt es halt auch schon so, äh, äh, Docker-Config-Files, also Docker-Composed-YAML-Files

01:49:51.480 --> 01:49:51.740
an.

01:49:52.160 --> 01:49:58.900
Und, ähm, äh, ein, ein, ein großer Vorteil jetzt, wenn man damit arbeitet, ist, man kann

01:49:58.900 --> 01:50:03.440
sofort hochfahren, äh, kann Dinge damit tun und vor allen Dingen kann man halt auch lokal

01:50:03.440 --> 01:50:08.440
das Produktions, äh, Produktionssystem halt mal hochfahren und dann gucken, weil oft, also

01:50:08.440 --> 01:50:13.120
es wäre natürlich schön, wenn das, äh, identisch wäre, aber, äh, lässt sich oft

01:50:13.120 --> 01:50:17.620
nicht so wirklich, äh, komplett durchziehen und dann hat man schon Unterschiede zwischen,

01:50:17.620 --> 01:50:22.040
äh, lokalem Entwicklungssystem, ja, also wenn ich jetzt irgendwas...

01:50:22.040 --> 01:50:22.860
86er schmeißen.

01:50:22.860 --> 01:50:30.220
Ähm, also, äh, genau, und dann auf dem Server ist es halt, dann sieht es dann doch anders

01:50:30.220 --> 01:50:33.820
aus, also die Unterschiede sind halt vor allen Dingen sowas wie, naja, wenn ich halt lokal

01:50:33.820 --> 01:50:39.620
entwickle, äh, dann, dann ist das halt eher das lokale Fallsystem, äh, äh, einfach, weil,

01:50:39.620 --> 01:50:43.140
weil, weil ich auch lokal nicht so toll ans Netz angebunden bin und produktiv ist es dann

01:50:43.140 --> 01:50:48.580
halt irgendwie, äh, äh, Google Computer Engine oder, oder, äh, AWS oder S3 Buckets

01:50:48.580 --> 01:50:51.920
oder sowas und das verhält sich dann manchmal dann doch subtil anders.

01:50:51.920 --> 01:50:54.140
Oder auch ganz, ganz krass anders.

01:50:54.140 --> 01:51:00.240
Und, äh, äh, dann treten halt Dinge, äh, auf, die man halt lokal einfach nicht sieht.

01:51:00.240 --> 01:51:04.600
Da funktioniert das Problem los und dann, naja, dann, wenn man das aber trotzdem mal lokal

01:51:04.600 --> 01:51:08.580
reproduzieren möchte, weil man halt, äh, weil das halt auch blöd ist, äh, man kann

01:51:08.580 --> 01:51:13.080
ja auch, äh, irgendwie Debug, äh, das Debug-Flag sozusagen auf Produktionsmaschinen nicht,

01:51:13.080 --> 01:51:19.560
nicht einschalten, weil, äh, ansonsten reicht man halt diverse, äh, äh, äh, Sachen, die

01:51:19.560 --> 01:51:20.960
eigentlich vertraulich bleiben sollten nach außen.

01:51:20.960 --> 01:51:24.520
Daher, ja, ist das halt schon mal, aber das ist halt alles mit dabei und das ist dann

01:51:24.520 --> 01:51:28.400
natürlich eine ganz, ganz schöne Geschichte, dass es da halt eben über Docker gelöst.

01:51:28.400 --> 01:51:33.380
Wenn ich das anders machen wollte, wäre das relativ schwierig.

01:51:33.380 --> 01:51:37.460
Also über Vagrant wäre das dann schon so, uh, geht wahrscheinlich auch noch irgendwie,

01:51:37.460 --> 01:51:39.180
aber dann wird es halt schon sehr, sehr schwergewichtig.

01:51:39.180 --> 01:51:44.340
Und, ähm, ja, natürlich funktioniert das auch nur, solange die Systeme halbwegs klein

01:51:44.340 --> 01:51:48.820
sind, ja, wenn das dann, äh, irgendwie, äh, sehr, sehr viele unterschiedliche Services

01:51:48.820 --> 01:51:49.200
werden.

01:51:49.440 --> 01:51:53.840
Bei mir ist es halt meistens nur eben Postgres-Datenbank, ist irgendwie ein Redis, ist irgendwie vielleicht

01:51:53.840 --> 01:51:54.880
ein bisschen Celery oder so.

01:51:54.880 --> 01:51:56.840
Das ist so was, was mir Teddy erzählt, als bei Instagram.

01:51:56.840 --> 01:52:03.180
Das ist, äh, das ist sozusagen der, der Applikations-Server vorne dran meistens, den ich, äh, meistens

01:52:03.180 --> 01:52:03.600
benutze.

01:52:03.600 --> 01:52:08.900
Äh, der, der, der, der, ähm, der, der Web-Server einfach vorne dran, der halt, äh, so ein Reverse-Proxy

01:52:08.900 --> 01:52:10.900
auch ist für die Applikations-Server.

01:52:10.900 --> 01:52:12.980
Applikations-Server ist, äh, Junicorn meistens.

01:52:12.980 --> 01:52:18.840
Ähm, und, äh, ja, das sind halt vier, fünf unterschiedliche Container-Typen, das war's.

01:52:19.320 --> 01:52:22.800
Und das, äh, kann man auch lokal problemlos noch, äh, handeln.

01:52:22.800 --> 01:52:24.620
Eigentlich.

01:52:24.620 --> 01:52:26.080
Ähm, genau.

01:52:26.080 --> 01:52:33.680
Und, ähm, ja, äh, meistens mache ich das dann einfach so, dass ich, äh, ich hab halt

01:52:33.680 --> 01:52:38.840
so, äh, Skripte, die, äh, also ich hab zum Beispiel einen Deploy-Skript, mit dem ich

01:52:38.840 --> 01:52:44.480
das, also ich mach das dann halt per, äh, per SSH und, ähm, benutze aber auch Python

01:52:44.480 --> 01:52:48.320
dafür, damit ich einfach nur Python-Skripte aus, ausführen muss, äh, das, äh, lockt

01:52:48.320 --> 01:52:49.120
sich halt dann irgendwie auf.

01:52:49.200 --> 01:52:52.600
Dann kommt man auf Produktionsmaschine ein oder so, checkt halt den Code aus, äh, baut

01:52:52.600 --> 01:52:55.960
irgendwelche Container neu und startet dann alles, äh, neu oder so.

01:52:55.960 --> 01:52:59.120
Das ist halt so das, was es, äh, was es, äh, an der Stelle macht.

01:52:59.120 --> 01:53:03.680
Und dann halt auch noch irgendwelche Skripte, die halt, äh, lokal und produktiv Systeme

01:53:03.680 --> 01:53:04.520
komplett abgleichen.

01:53:04.520 --> 01:53:11.160
Also Datenbank-Backups ziehen, das Kopieren, irgendwie die, äh, äh, vielleicht Daten,

01:53:11.160 --> 01:53:14.580
die aus irgendwelchen Buckets benötigt werden, äh, ziehen und synchronisieren.

01:53:14.580 --> 01:53:15.100
Ja.

01:53:15.100 --> 01:53:19.080
Ähm, und das funktioniert.

01:53:19.080 --> 01:53:21.020
Das funktioniert für mich eigentlich ganz gut.

01:53:21.020 --> 01:53:24.880
Hat halt so ein bisschen das Problem, dass ich jetzt auf, auf, auf dem Server sozusagen

01:53:24.880 --> 01:53:28.600
auch, äh, Docker laufen lassen muss, was natürlich so ein bisschen ätzend ist.

01:53:28.600 --> 01:53:33.760
Aber das, da komme ich natürlich nicht so wirklich drum rum, weil wenn ich das, äh,

01:53:33.760 --> 01:53:38.820
äh, lokal genauso nachstellen können möchte, wie es halt produktiv läuft, dann muss ich

01:53:38.820 --> 01:53:43.020
das halt so machen, weil, äh, ich kann ja den Produktions-Server nicht, äh, also wenn

01:53:43.020 --> 01:53:47.660
das jetzt halt irgendwie, keine Ahnung, das ist halt wahrscheinlich irgendein Debian-Stable

01:53:47.660 --> 01:53:48.400
oder sonst irgendwas.

01:53:48.400 --> 01:53:48.960
Das kriege ich halt so.

01:53:48.960 --> 01:53:54.000
Der ist ja lokal irgendwie nur schwer, äh, reproduziert, irgendwie in all der, also, ja,

01:53:54.000 --> 01:53:57.080
außer wiederum mit Vagrant und, und, und Ansible oder so, aber, ja.

01:53:57.080 --> 01:54:01.240
Ich meine, das, das ist halt ein, das ist ein ungelöstes Problem, so ein bisschen da dran.

01:54:01.240 --> 01:54:06.240
Ähm, was mir immer, äh, negativ auffällt, ist, dass die Tech-Stacks immer größer werden,

01:54:06.240 --> 01:54:08.020
ohne dass wir die eigentlich Probleme gelöst haben.

01:54:08.020 --> 01:54:08.320
Ja.

01:54:08.320 --> 01:54:12.320
Ähm, also dieses, äh, wenn du jetzt halt einen Docker hast, dann hast du jetzt sozusagen

01:54:12.320 --> 01:54:16.360
das ganze Thema, ja, die Security-Updates für, äh, dein Zeug musst du halt selber machen.

01:54:16.360 --> 01:54:16.960
Ja.

01:54:17.840 --> 01:54:22.460
Du musst halt das Basis-Image, äh, nachziehen, musst halt hoffen, also du kannst es unterschiedlich

01:54:22.460 --> 01:54:25.500
machen, du kannst es, es gibt welche, es gibt Leute, die machen das irgendwie so, dass

01:54:25.500 --> 01:54:31.640
sie sagen, okay, ähm, da, wo ich den Docker, das Docker-Image betreibe, ähm, rebuilde

01:54:31.640 --> 01:54:37.440
ich den Container jeden Tag nochmal, indem ich halt noch einen Layer drüber jage, der

01:54:37.440 --> 01:54:41.340
sagt, upget, upgrade, upget, äh, äh, upgrade.

01:54:41.340 --> 01:54:42.820
Ja, genau, genau, so macht sich das auch.

01:54:42.820 --> 01:54:46.440
Das habe ich ja auch da drin, sozusagen in meinem Docker-File und ich habe halt, äh,

01:54:46.440 --> 01:54:47.680
irgendwie, ich mache das dann build no cache.

01:54:47.720 --> 01:54:50.160
Und dann muss das halt nochmal neu gebaut werden, alles, ja.

01:54:50.160 --> 01:54:50.680
Ja, genau.

01:54:50.680 --> 01:54:55.660
Aber das ist halt, ich finde das halt so von der, von dem konzeptionellen Layering eher,

01:54:55.660 --> 01:54:57.900
pff, sagen wir mal, Holzklasse.

01:54:57.900 --> 01:54:58.640
Ja, ja.

01:54:58.640 --> 01:55:08.460
Ähm, die, ähm, die, die, ähm, das andere, was du meinst von wegen Produktiv-Server und

01:55:08.460 --> 01:55:13.500
dem Debug, das ist halt spannend, weil, ähm, du kannst dir ja natürlich schon, ähm, das

01:55:13.500 --> 01:55:16.580
über einen Load-Balancer zum Beispiel aussteuern, also ich mache sowas gerne mal, wenn es wirklich

01:55:16.580 --> 01:55:17.600
völlig abstrus ist.

01:55:17.600 --> 01:55:19.820
Sachen sind, die halt auch zum Beispiel

01:55:19.820 --> 01:55:21.560
eben temporal

01:55:21.560 --> 01:55:23.580
davon abhängen,

01:55:23.580 --> 01:55:25.860
dass momentan im Internet irgendwas komisch

01:55:25.860 --> 01:55:27.680
ist. Ich hatte zum Beispiel, wir hatten

01:55:27.680 --> 01:55:29.040
zum Beispiel mal ein Problem, dass...

01:55:29.040 --> 01:55:29.860
Der Satz war super.

01:55:29.860 --> 01:55:33.640
Ja, wir hatten zum Beispiel mal das Problem, dass

01:55:33.640 --> 01:55:35.680
Leute bei uns nicht deployen konnten und die kamen

01:55:35.680 --> 01:55:37.660
an und meinten, bei uns im Netzwerk wäre irgendwas kaputt,

01:55:37.660 --> 01:55:39.620
weil GitHub geht nicht mehr.

01:55:39.620 --> 01:55:41.640
So,

01:55:41.640 --> 01:55:43.660
und dann gehst du halt irgendwie auf die Suche und dann

01:55:43.660 --> 01:55:45.440
stellst du irgendwann fest... Oh, GitHub Offline.

01:55:46.600 --> 01:55:47.780
Nee, GitHub ist online.

01:55:47.780 --> 01:55:49.580
Geht bei uns im

01:55:49.580 --> 01:55:51.500
RZ aber nur jedes zweite Mal.

01:55:51.500 --> 01:55:55.100
So, also

01:55:55.100 --> 01:55:57.120
damit bist du schon mal in so einer Art von Problem,

01:55:57.120 --> 01:55:59.160
die du halt nicht lokal nachstellen kannst.

01:55:59.160 --> 01:56:01.540
Und das muss halt nicht GitHub sein, das kann

01:56:01.540 --> 01:56:03.380
halt auch irgendwas anderes sein. Und da haben wir

01:56:03.380 --> 01:56:04.560
damals festgestellt,

01:56:04.560 --> 01:56:07.720
dass GitHub halt über Fastly

01:56:07.720 --> 01:56:09.720
ausliefert und

01:56:09.720 --> 01:56:11.560
unser RZ sitzt

01:56:11.560 --> 01:56:13.320
typologisch so genau in der Mitte zwischen

01:56:13.320 --> 01:56:15.540
Amsterdam und Frankfurt. Das sind so zwei der

01:56:15.540 --> 01:56:16.440
großen

01:56:16.600 --> 01:56:18.060
Netzknoten in Europa.

01:56:18.060 --> 01:56:21.300
Und

01:56:21.300 --> 01:56:22.240
da war es also...

01:56:22.240 --> 01:56:24.080
Ja, genau,

01:56:24.080 --> 01:56:26.060
es ist manchmal nach Frankfurt

01:56:26.060 --> 01:56:28.600
und manchmal nach Amsterdam gegangen zu einem Fastly-Knoten.

01:56:28.600 --> 01:56:30.300
Und das Problem war, der Fastly-Knoten

01:56:30.300 --> 01:56:31.460
in Frankfurt war

01:56:31.460 --> 01:56:33.900
anders konfiguriert als der in Amsterdam

01:56:33.900 --> 01:56:36.180
und hat auf ein ganz bestimmtes

01:56:36.180 --> 01:56:37.060
TCP-Flag,

01:56:37.060 --> 01:56:39.440
was bei uns gesetzt war,

01:56:39.440 --> 01:56:40.800
allergisch reagiert.

01:56:40.800 --> 01:56:43.260
Out.

01:56:43.260 --> 01:56:46.260
Habt ihr das so?

01:56:46.260 --> 01:56:48.480
Habt ihr das Schiebel mitgesetzt?

01:56:48.480 --> 01:56:53.560
Naja, ich weiß ja gar nicht mehr, welches das war.

01:56:53.560 --> 01:56:55.080
Und der

01:56:55.080 --> 01:56:59.040
mündete halt darin,

01:56:59.040 --> 01:57:00.460
das ist ja auch die Frage von der

01:57:00.460 --> 01:57:02.760
Internet-Architektur mit diesen Greyboxes,

01:57:02.760 --> 01:57:05.120
das mündete halt am Ende darin, dass wir halt

01:57:05.120 --> 01:57:06.940
irgendwo im Fastly-Support aufgeschlagen sind,

01:57:06.940 --> 01:57:08.380
um ihnen klar zu machen, dass sie dort

01:57:08.380 --> 01:57:11.980
ein Netz-Konfigurationsproblem

01:57:11.980 --> 01:57:12.400
haben.

01:57:12.400 --> 01:57:15.640
Das ist sozusagen so,

01:57:15.640 --> 01:57:17.720
das ist das Ops-Ende von diesem

01:57:17.720 --> 01:57:19.600
Thema von, was gibt es da an Zeug

01:57:19.600 --> 01:57:21.640
zu debuggen. Oder eben, wenn

01:57:21.640 --> 01:57:23.120
halt die Webseite steht still,

01:57:23.120 --> 01:57:25.440
warum? Und dann gehst du halt her

01:57:25.440 --> 01:57:26.920
und stracest den Python-Prozess,

01:57:26.920 --> 01:57:29.060
um festzustellen, guck mal, der macht dauernd

01:57:29.060 --> 01:57:31.280
Twitter auf, aber die gehen nie wieder zu.

01:57:31.280 --> 01:57:33.080
Ich glaube, die bleiben hängen. Dann stellst du dir fest,

01:57:33.080 --> 01:57:34.520
Twitter ist die API gerade kaputt.

01:57:34.520 --> 01:57:37.320
Und das ist halt,

01:57:37.320 --> 01:57:39.520
da ist Docker an der Stelle für uns

01:57:39.520 --> 01:57:41.640
manchmal so ein...

01:57:41.640 --> 01:57:43.980
Kann man nicht gut reingucken, das stimmt, ja.

01:57:43.980 --> 01:57:45.440
Kann man nicht gut reingucken,

01:57:45.480 --> 01:57:47.340
und das Tooling ist,

01:57:47.340 --> 01:57:49.080
also, man kann ja schon,

01:57:49.080 --> 01:57:51.320
also, man kann ja schon, man sieht ja

01:57:51.320 --> 01:57:52.960
die Subprozesse typischerweise im

01:57:52.960 --> 01:57:55.520
Host, beziehungsweise

01:57:55.520 --> 01:57:57.080
bei uns wird das, also, das Docker-Structure

01:57:57.080 --> 01:57:59.280
halt erstmal in der VM, und dann läuft die VM halt irgendwo

01:57:59.280 --> 01:58:01.440
auf so einer Infrastruktur, und du kannst

01:58:01.440 --> 01:58:03.320
ja die Subprozesse schon sehen, das heißt, du kannst deine

01:58:03.320 --> 01:58:05.520
Tools wie ein S-Trace da von außen

01:58:05.520 --> 01:58:06.920
drauf jagen, aber es ist so ein bisschen

01:58:06.920 --> 01:58:09.200
dann schnell zu suchen, wo ist denn jetzt das

01:58:09.200 --> 01:58:11.380
Dateisystem von dem Ding, wo ist denn der Socket, wo ist

01:58:11.380 --> 01:58:13.480
denn das, das ist halt alles viel, viel

01:58:13.480 --> 01:58:14.440
verdröselter.

01:58:15.320 --> 01:58:17.800
Ähm, und, ähm,

01:58:17.800 --> 01:58:18.280
äh,

01:58:18.280 --> 01:58:20.400
ja, was bei uns

01:58:20.400 --> 01:58:22.060
häufiger passiert vom Workflow ist, dass Entwickler

01:58:22.060 --> 01:58:23.780
tatsächlich das Zeug erstmal in Docker bauen,

01:58:23.780 --> 01:58:26.380
das macht sie produktiv, äh, und

01:58:26.380 --> 01:58:28.120
wir gehen dann aber wieder her und sagen, super,

01:58:28.120 --> 01:58:30.200
das Docker ist jetzt erstmal die Grundlage, auf der wir das

01:58:30.200 --> 01:58:30.940
auseinanderreißen.

01:58:30.940 --> 01:58:34.080
Dann nehmen wir das alles auseinander und sagen, okay,

01:58:34.080 --> 01:58:35.740
was habt ihr denn hier da? Okay, dann habt ihr irgendwie die

01:58:35.740 --> 01:58:38.280
russische Postgres, das ist aber nett, das nehmen wir mal

01:58:38.280 --> 01:58:38.520
nicht.

01:58:38.520 --> 01:58:42.280
Oder was halt auch manchmal

01:58:42.280 --> 01:58:44.120
vorkommt, ist, dass Entwickler sich dann sehr

01:58:44.120 --> 01:58:45.160
große Basis-Images

01:58:45.160 --> 01:58:47.320
bauen, wo sie dir nachher nicht mehr

01:58:47.320 --> 01:58:49.120
erklären können, was davon eigentlich

01:58:49.120 --> 01:58:50.420
in Benutzung ist.

01:58:50.420 --> 01:58:53.460
Ja, das heißt, da hast du dann halt so,

01:58:53.460 --> 01:58:55.100
ich kenn das selber, wir hatten früher so

01:58:55.100 --> 01:58:57.160
2004, 2005 rum auch immer mal

01:58:57.160 --> 01:58:59.080
für irgendwelche, äh, Web-Projekte

01:58:59.080 --> 01:59:01.280
dann und so Hilfspackages geschrieben,

01:59:01.280 --> 01:59:02.900
die dann alles konnten, weil

01:59:02.900 --> 01:59:04.500
das braucht man ja in jedem Projekt.

01:59:04.500 --> 01:59:07.000
Das Dumme war nur, wenn du das jemals aktualisieren

01:59:07.000 --> 01:59:09.060
wolltest, musstest du alle deine Projekte anfassen,

01:59:09.060 --> 01:59:11.200
weil dir alle von diesem Ding

01:59:11.200 --> 01:59:12.540
abhängen, wo alles drin ist.

01:59:12.540 --> 01:59:15.000
Ähm, das war so ein bisschen, du warst so ein

01:59:15.000 --> 01:59:16.840
Nexus an Dependencies, das ist immer

01:59:16.840 --> 01:59:19.040
schwierig, ähm, und vor allem, wenn du halt

01:59:19.040 --> 01:59:21.000
implizite Dependencies hast, die einfach nur von

01:59:21.000 --> 01:59:22.940
ja, ich benutze halt das Basis-Image, äh,

01:59:22.940 --> 01:59:25.160
und wenn das aber dann eine Dependency war, die nie gewollt

01:59:25.160 --> 01:59:26.900
war, und die schaltet jemand ab, dann

01:59:26.900 --> 01:59:28.840
fliegt sie plötzlich um die Ohren und du weißt noch nicht mal, warum.

01:59:28.840 --> 01:59:30.760
Äh, da kommen dann teilweise ganz obskure

01:59:30.760 --> 01:59:32.840
Fehlermeldungen, wir hatten das, glaube ich, beim Thema, da hatte jemand

01:59:32.840 --> 01:59:35.160
eine Postgres mit 17.000

01:59:35.160 --> 01:59:35.780
Extensions,

01:59:35.780 --> 01:59:38.560
und, äh, unser,

01:59:38.560 --> 01:59:40.920
also übertriebenermaßen, ähm,

01:59:40.920 --> 01:59:42.760
schon das dritte alkoholfreie Bier hier,

01:59:42.760 --> 01:59:44.980
ähm, die,

01:59:45.000 --> 01:59:47.040
ähm, die hat

01:59:47.040 --> 01:59:48.940
dann auch nur das noch quittiert beim Einspielen

01:59:48.940 --> 01:59:50.780
von einem Dump mit einer völlig obskuren

01:59:50.780 --> 01:59:52.880
Fehlermeldung, die auch kein Postgres-Expert

01:59:52.880 --> 01:59:54.640
mal so richtig lesen konnte, bis irgendwer meinte,

01:59:54.640 --> 01:59:56.720
ah, wir benutzen ja noch die Extensions, so, ah, okay,

01:59:56.720 --> 01:59:58.340
alles klar, gut, ähm,

01:59:58.340 --> 01:59:59.660
und, äh,

01:59:59.660 --> 02:00:29.640
und Jochen unterhalten sich über die Programmiersprache Python

02:00:29.660 --> 02:00:59.540
und Jochen unterhalten sich über die Programmiersprache Python

02:00:59.540 --> 02:00:59.640
und Jochen unterhalten sich über die Programmiersprache Python

02:00:59.640 --> 02:00:59.640
und Jochen unterhalten sich über die Programmiersprache Python

02:00:59.640 --> 02:00:59.640
und Jochen unterhalten sich über die Programmiersprache Python

02:00:59.640 --> 02:00:59.640
und Jochen unterhalten sich über die Programmiersprache Python

02:00:59.640 --> 02:01:29.620
und Jochen unterhalten sich über die Programmiersprache Python

02:01:29.620 --> 02:01:59.600
und Jochen unterhalten sich über die Programmiersprache Python

02:01:59.600 --> 02:02:29.580
und Jochen unterhalten sich über die Programmiersprache Python

02:02:29.580 --> 02:02:59.560
und Jochen unterhalten sich über die Programmiersprache Python

02:02:59.560 --> 02:03:29.540
und Jochen unterhalten sich über die Programmiersprache Python

02:03:29.540 --> 02:03:59.520
und Jochen unterhalten sich über die Programmiersprache Python

02:03:59.520 --> 02:03:59.540
und Jochen unterhalten sich über die Programmiersprache Python

02:03:59.540 --> 02:03:59.580
und Jochen unterhalten sich über die Programmiersprache Python

02:03:59.580 --> 02:04:00.000
und Jochen unterhalten sich über die Programmiersprache Python

02:04:00.000 --> 02:04:11.120
und Jochen unterhalten sich über die Programmiersprache Python

02:04:11.120 --> 02:04:25.550
und dann haben wir wieder das Problem, die Ops sind die, die es über den Zaun geworfen kriegen, die sollen machen, dass es nicht ausgeht und dass der Strom da ist, haben aber keine Chance zu verstehen, was da drinnen eigentlich abläuft und ihr eigentlich operatives Wissen ins Spiel zu bringen.

02:04:26.630 --> 02:04:54.770
Ja, ja, wobei aus meiner Perspektive der Trend, der da momentan so ein bisschen nicht da ist, ist halt, das ist ja auch das, was einem dann dadurch ermöglicht wird, wenn man jetzt quasi so ein System auch lokal komplett hochziehen kann, dass man halt eben so AWS oder Google Computer Engine, da kriegt man halt irgendwie, kann man auch per API-Maschinen hochfahren, dann schmeißt man da die Container drauf und dann, naja, funktioniert das halt in einer wissenschaftlichen Menge weniger.

02:04:54.770 --> 02:04:55.530
Genau.

02:04:55.530 --> 02:04:56.610
Da hat man halt schon.

02:04:56.630 --> 02:05:03.790
Das ist auch eine harte Trennung, aber die, die, sozusagen die Trennung ist halt an der, man bekommt halt Maschine und kann da per RUT und SH drauf.

02:05:03.790 --> 02:05:07.770
Genau, aber das ist jetzt auch nicht viel besser als das mit dem FTP und dem PHP.

02:05:07.770 --> 02:05:26.550
Ja, genau, das ist natürlich so, ja, das stimmt natürlich auch, ja, und dann, auf der anderen Seite gibt es dann halt so Dienstleister, wie jetzt sowas wie Heroku oder so, die dann halt schon sehr viel selber betreiben, da hat man dann das Problem sozusagen nicht, dass man sich auch um die Daten,

02:05:26.550 --> 02:05:28.530
Bank und so selber kümmern muss, sondern man

02:05:28.530 --> 02:05:30.650
im Wesentlichen schiebt man da

02:05:30.650 --> 02:05:33.050
so den Code hin und der läuft dann in der Heroku-Infrastruktur

02:05:33.050 --> 02:05:33.570
irgendwie.

02:05:33.570 --> 02:05:36.450
Auch bei AWS dann? Wahrscheinlich

02:05:36.450 --> 02:05:37.050
auch bei AWS.

02:05:37.050 --> 02:05:39.890
Heroku ist ja nur AWS.

02:05:39.890 --> 02:05:42.930
Naja gut,

02:05:42.930 --> 02:05:44.410
das sind ja auch diese unterschiedlichen Konzepte,

02:05:44.410 --> 02:05:46.570
auf was für Infrastruktur möchte ich

02:05:46.570 --> 02:05:48.350
aufsetzen, von Infrastructure-as-a-Service

02:05:48.350 --> 02:05:49.670
zu Plattform-as-a-Service zu

02:05:49.670 --> 02:05:52.250
whatever-as-a-Service.

02:05:52.250 --> 02:05:54.710
Da ist halt auch spannend,

02:05:54.710 --> 02:05:55.950
dieses

02:05:55.950 --> 02:05:57.590
Frage danach,

02:05:57.590 --> 02:06:00.390
habe ich halt diese Magic-Services im Sinne von

02:06:00.390 --> 02:06:02.170
die Postgres, ist da irgendwie Magic irgendwo

02:06:02.170 --> 02:06:04.530
gemanagt? Das heißt, ich weiß

02:06:04.530 --> 02:06:06.070
auch gar nicht so richtig, was ist da noch an

02:06:06.070 --> 02:06:08.590
Sachen drinne. Ich habe dann teilweise auch keinen Überblick,

02:06:08.590 --> 02:06:10.330
wie sind eigentlich jetzt die Latenzen, wie ist denn der

02:06:10.330 --> 02:06:11.570
Netzwerkpfad zu diesem Ding?

02:06:11.570 --> 02:06:14.070
Bei Heroku kann einem das passieren, wenn man so

02:06:14.070 --> 02:06:16.130
Add-ons dazu bestellt, dann laufen die

02:06:16.130 --> 02:06:17.970
Add-ons, sind die zwar eine gut integrierte API,

02:06:17.970 --> 02:06:20.590
die lebt aber irgendwie in einem Rechenzehr

02:06:20.590 --> 02:06:21.330
am anderen Ende

02:06:21.330 --> 02:06:23.330
des Erdballs.

02:06:23.330 --> 02:06:25.850
Und wenn man

02:06:25.850 --> 02:06:27.590
dann halt den Datenschutz irgendwie reinholt, ist so ein bisschen

02:06:27.590 --> 02:06:29.690
die Frage, weißt du wirklich, wo deine Daten gerade

02:06:29.690 --> 02:06:31.430
sind? So, ja, die sind bei Heroku.

02:06:31.430 --> 02:06:32.950
Okay, das heißt, die sind bei Amazon. Das heißt,

02:06:32.950 --> 02:06:35.390
die sind bei Amazon in Nordamerika. Das heißt,

02:06:35.390 --> 02:06:37.590
ach, da hast du noch die MongoDB geklickt? Ja, nee, dann ist

02:06:37.590 --> 02:06:39.510
die bei Amazon in da drüben. Dann ist...

02:06:39.510 --> 02:06:41.690
Okay. Und ich

02:06:41.690 --> 02:06:43.730
finde halt an der Stelle, es ist

02:06:43.730 --> 02:06:45.430
halt so verlockend, sich so

02:06:45.430 --> 02:06:47.470
Zeug zusammenzuklicken. Und ich finde das

02:06:47.470 --> 02:06:48.870
cool zum Experimentieren.

02:06:48.870 --> 02:06:51.410
Und was mir so ein bisschen

02:06:51.410 --> 02:06:53.270
aber dieser Übergang zu

02:06:53.270 --> 02:06:55.730
wann muss man mal den Besen rausholen

02:06:55.730 --> 02:06:57.570
und dieses Experimentieren ordentlich aufräumen

02:06:57.570 --> 02:06:59.330
und kriegt man das dann überhaupt noch eingefangen

02:06:59.330 --> 02:07:01.630
oder ist es dann wirklich eigentlich aus der Hand

02:07:01.630 --> 02:07:03.090
und dieses große Argument von

02:07:03.090 --> 02:07:05.290
naja, Amazon wird irgendwann der einzige

02:07:05.290 --> 02:07:06.730
RZ-Betreiber der Welt sein,

02:07:06.730 --> 02:07:09.310
das widerstrebt mir so

02:07:09.310 --> 02:07:11.430
massiv, weil das ist aus einem Gedanken

02:07:11.430 --> 02:07:13.130
der auch informationellen

02:07:13.130 --> 02:07:14.430
Selbstbestimmung und diesem

02:07:14.430 --> 02:07:17.250
mach Dinge selber und

02:07:17.250 --> 02:07:19.390
mach die Fehlerdomänen

02:07:19.390 --> 02:07:21.190
auch kleiner. Also Amazon

02:07:21.190 --> 02:07:23.410
wird ja am Ende zu einer einzigen großen Fehlerdomäne.

02:07:23.410 --> 02:07:25.610
Ja, ja, da ist ja auch...

02:07:25.610 --> 02:07:27.090
Das ist auch gar nicht so lange her, dass da

02:07:27.090 --> 02:07:29.030
irgendwo war das in das Virginia

02:07:29.030 --> 02:07:31.130
Rechenzentrum oder so, war weg und dann war

02:07:31.130 --> 02:07:33.090
irgendwie so...

02:07:33.090 --> 02:07:34.910
Na gut, vielleicht ist es auch schon fast

02:07:34.910 --> 02:07:37.170
von zwei Jahren her oder so, aber da erinnere ich mich noch gut,

02:07:37.170 --> 02:07:39.170
da war 80% des Webs war plötzlich irgendwie

02:07:39.170 --> 02:07:40.630
tot, weil

02:07:40.630 --> 02:07:43.250
da ein Rechenzentrum

02:07:43.250 --> 02:07:45.110
wegen einem Blitzschlag nicht mehr

02:07:45.110 --> 02:07:47.270
funktioniert hat. Lustigerweise auch die eigene

02:07:47.270 --> 02:07:49.230
Amazon-Statusseite war

02:07:49.230 --> 02:07:51.170
also die AWS-Statusseite, die sagen sollte, ob

02:07:51.170 --> 02:07:53.350
das noch alles funktioniert oder nicht, die war auch kaputt.

02:07:53.350 --> 02:07:55.490
Nee, nee, nee, das war so

02:07:55.490 --> 02:07:56.730
subtiler, das war viel subtiler.

02:07:56.730 --> 02:07:59.110
Die Amazon-Statusseite ging

02:07:59.110 --> 02:08:00.690
und hat grün angezeigt,

02:08:00.690 --> 02:08:03.130
weil das grüne Icon war

02:08:03.130 --> 02:08:05.170
in der Statusseiten-Software hart kodiert

02:08:05.170 --> 02:08:07.210
und das

02:08:07.210 --> 02:08:08.910
rote Icon haben sie aber aus dem

02:08:08.910 --> 02:08:11.090
S3 gezogen und das S3 war kaputt und dann

02:08:11.090 --> 02:08:12.370
blieb das grüne Icon da stehen.

02:08:12.370 --> 02:08:13.250
Ach so, ja, okay.

02:08:13.250 --> 02:08:15.250
Das ist doch schön.

02:08:15.250 --> 02:08:18.490
Da hatte ja niemand anderes ein Tennis gehabt, dann nur grüne Lämpchen, bitte.

02:08:18.490 --> 02:08:19.530
Ja, genau.

02:08:19.530 --> 02:08:21.450
Nee, und

02:08:21.450 --> 02:08:22.570
ja, ja.

02:08:22.570 --> 02:08:24.680
und ich merke so, die Themen, die mich halt

02:08:24.680 --> 02:08:26.880
umtreiben, deswegen habe ich ja vorhin auch mit der Komplexität

02:08:26.880 --> 02:08:28.820
so ausgeholt, ist halt die Frage

02:08:28.820 --> 02:08:30.800
und damit sind wir auch ins DevOps eingestiegen,

02:08:30.800 --> 02:08:33.020
wie macht man aber, dass die Leute halt besser zusammenarbeiten

02:08:33.020 --> 02:08:34.620
können und dass man diesen Know-how-Transfer

02:08:34.620 --> 02:08:36.920
halt hinkriegt. Wie macht man sie? Happy, happy.

02:08:36.920 --> 02:08:38.360
Wie macht man sie? Happy, happy, happy.

02:08:38.360 --> 02:08:38.920
Ja, genau.

02:08:38.920 --> 02:08:40.800
Weil

02:08:40.800 --> 02:08:44.460
das war unsere Schleif zur Digitalisierung.

02:08:44.460 --> 02:08:46.680
Diese Erkenntnisse finden ja an vielen Stellen

02:08:46.680 --> 02:08:48.460
im Kleinen statt und

02:08:48.460 --> 02:08:50.680
das wird jetzt momentan

02:08:50.680 --> 02:08:52.100
so

02:08:52.100 --> 02:08:54.760
Entwicklungen, das wird mit so Pinselstrichen

02:08:54.760 --> 02:08:56.580
werden, ganze Systemarchitekturen

02:08:56.580 --> 02:08:58.460
ganz breit mal auf irgendein Bier

02:08:58.460 --> 02:09:00.860
geschrieben und das aber die eigentlichen

02:09:00.860 --> 02:09:02.640
Schwierigkeiten und das wissen

02:09:02.640 --> 02:09:04.580
die Ops-Leute von den großen Anbietern

02:09:04.580 --> 02:09:06.320
wie von AWS und von Google, die

02:09:06.320 --> 02:09:08.760
wenn man sich die Google System Reliability

02:09:08.760 --> 02:09:10.520
Engineering Dokumente anguckt und so,

02:09:10.520 --> 02:09:12.620
die wissen, der Teufel liegt

02:09:12.620 --> 02:09:14.360
im Detail. Du kannst es halt nicht

02:09:14.360 --> 02:09:16.400
sagen mit, naja, ich habe es jetzt halt in der Cloud

02:09:16.400 --> 02:09:17.580
und dann ist das halt alles super.

02:09:17.580 --> 02:09:20.960
Im Gegenteil, du hast jetzt halt noch eine Abstraktionsebene

02:09:20.960 --> 02:09:21.240
mehr

02:09:21.640 --> 02:09:22.080
und

02:09:22.080 --> 02:09:24.160
wir wissen ja alle, also

02:09:24.160 --> 02:09:26.820
jedes Problem kann dadurch gelöst werden, dass ich halt noch

02:09:26.820 --> 02:09:28.040
ein Layer oben drüber ziehe.

02:09:28.040 --> 02:09:30.260
Und

02:09:30.260 --> 02:09:33.080
ja, also ich merke so, für mich sind die Lösungen

02:09:33.080 --> 02:09:34.740
immer an so Stellen, wo ich gucke, wo

02:09:34.740 --> 02:09:36.740
ich suche sie ja eher immer im

02:09:36.740 --> 02:09:38.280
Kleinen und an den

02:09:38.280 --> 02:09:40.860
etwas nicht so ausgetretenen Faden,

02:09:40.860 --> 02:09:42.540
um zu gucken, wie kann man das denn so

02:09:42.540 --> 02:09:43.360
zurechtschneiden,

02:09:43.360 --> 02:09:46.940
dass man mit Entwicklern so einen konstruktiven

02:09:46.940 --> 02:09:48.440
Alltag hinkriegt auch an der Stelle.

02:09:48.440 --> 02:09:50.820
Weil eben,

02:09:51.180 --> 02:09:52.700
jetzt haben wir ja gesagt, diese zwei Rollen,

02:09:52.700 --> 02:09:54.880
die etwas diskret sind,

02:09:54.880 --> 02:09:56.980
ob es hat halt eben auch

02:09:56.980 --> 02:09:59.100
einen anderen Rhythmus, dass man sagt, okay, wir würden gerne

02:09:59.100 --> 02:10:01.020
ein paar Updates ausrollen, wir würden gerne ein paar alte

02:10:01.020 --> 02:10:02.820
Versionen sanieren, wir würden gerne ein bisschen

02:10:02.820 --> 02:10:05.240
dieses und jenes machen, das würde ich gerne unabhängig von dir können.

02:10:05.240 --> 02:10:07.040
Ich will das nicht ohne

02:10:07.040 --> 02:10:09.060
einen Entwickler können, ich will nicht einfach nur

02:10:09.060 --> 02:10:11.000
sagen, so halt, jetzt updaten wir die MySQL

02:10:11.000 --> 02:10:12.980
auf die neuesten Major oder auf die oder das, sondern

02:10:12.980 --> 02:10:15.000
ich will da halt eher so ein

02:10:15.000 --> 02:10:16.440
vernünftiges Verständnis haben von,

02:10:16.440 --> 02:10:19.040
warum sind zum Beispiel welche Komponenten

02:10:19.040 --> 02:10:20.720
für einen Entwickler eher so mit Feingefühlung,

02:10:20.720 --> 02:10:22.720
Feingefühl zu updaten, während

02:10:22.720 --> 02:10:24.420
andere irgendwie völlig egal sind, die

02:10:24.420 --> 02:10:26.380
updatest du halt durch und da geht nie irgendwas kaputt.

02:10:26.380 --> 02:10:28.540
Um da dann halt auch mal

02:10:28.540 --> 02:10:30.820
die Augen offen halten zu können, was sind denn möglicherweise

02:10:30.820 --> 02:10:31.940
bessere andere Tools

02:10:31.940 --> 02:10:34.580
für bestimmte Probleme oder wo muss man irgendwie

02:10:34.580 --> 02:10:36.480
eine Integrationsleistung noch erbringen oder wo

02:10:36.480 --> 02:10:38.680
lohnt es sich aus beiden Perspektiven zu

02:10:38.680 --> 02:10:40.700
sagen, hey, würdest du die Anwendung da drüben

02:10:40.700 --> 02:10:42.500
so ein bisschen umbauen, dann wäre

02:10:42.500 --> 02:10:44.660
hier vorne alles viel einfacher

02:10:44.660 --> 02:10:46.720
und es fällt weniger Seiten um.

02:10:50.260 --> 02:10:51.780
Naja, ganzheitlicher Blick

02:10:51.780 --> 02:10:53.380
auf die ganze Mikroarchitektur.

02:10:53.380 --> 02:10:55.860
Ja, ja.

02:10:55.860 --> 02:10:57.660
Richtig. Ja, im Grunde brauchst

02:10:57.660 --> 02:10:59.740
du halt, um halt ein Projekt wirklich

02:10:59.740 --> 02:11:01.840
komplett machen zu können, brauchst du halt

02:11:01.840 --> 02:11:03.640
in dem Team, das das Produkt baut, halt

02:11:03.640 --> 02:11:05.100
all diese Kompetenzen irgendwie drin.

02:11:05.100 --> 02:11:06.980
Ja.

02:11:06.980 --> 02:11:08.100
Die Dünge.

02:11:08.100 --> 02:11:11.400
Das Problem ist ja,

02:11:11.400 --> 02:11:12.660
dein Teamgröße ist gespenkt.

02:11:12.660 --> 02:11:15.720
Ja, ja, ja.

02:11:15.720 --> 02:11:17.760
Das ist dann halt auch das, was

02:11:17.760 --> 02:11:19.800
einem dann passieren kann, dass man dann irgendwie alles selber macht.

02:11:19.800 --> 02:11:21.480
Das ist natürlich auch eine Situation, wo man dann kann.

02:11:21.480 --> 02:11:21.920
Ja, genau.

02:11:21.920 --> 02:11:27.100
Aber NIH ist halt der Trick.

02:11:27.100 --> 02:11:29.500
Manchmal geht es beim Neuerfinden des Rades

02:11:29.500 --> 02:11:30.920
ja auch nicht darum,

02:11:30.920 --> 02:11:33.160
das bessere Rad zu erfinden,

02:11:33.160 --> 02:11:35.800
sondern zu verstehen, wie so ein Rad funktioniert.

02:11:35.800 --> 02:11:37.700
Also, da muss man halt

02:11:37.700 --> 02:11:39.720
auch der Maker-Szene an der Stelle ja noch eine Lanze

02:11:39.720 --> 02:11:40.440
brechen und sagen,

02:11:40.440 --> 02:11:43.500
viel von diesen großen

02:11:43.500 --> 02:11:45.000
Architekturen, ob das jetzt Kubernetes

02:11:45.000 --> 02:11:47.800
oder halt so diese Amazon Magic

02:11:47.800 --> 02:11:49.100
Elastic Services sind,

02:11:49.340 --> 02:11:51.660
die versuchen, dich ja zum reinen Konsumenten

02:11:51.660 --> 02:11:52.800
zu degradieren und sagen,

02:11:52.800 --> 02:11:54.580
benutze mich einfach, dann ist alles gut.

02:11:54.580 --> 02:11:57.160
Die kochen und drücken halt auch nur mit Wasser.

02:11:57.160 --> 02:11:59.240
Also in Amazon, irgendwie hast du nicht gesehen,

02:11:59.240 --> 02:12:00.700
MySQL ist halt immer noch in MySQL,

02:12:00.700 --> 02:12:03.040
vermutlich noch mit irgendwelchen obskuren Patches drin.

02:12:03.040 --> 02:12:05.000
Aber das läuft dann auch bloß in einer

02:12:05.000 --> 02:12:06.240
EC2-Instanz irgendwo.

02:12:06.240 --> 02:12:09.000
Da ist jetzt nicht irgendwie was

02:12:09.000 --> 02:12:10.920
groß anders. Der einzige Unterschied ist,

02:12:10.920 --> 02:12:11.760
du siehst es halt nicht.

02:12:11.760 --> 02:12:14.800
Anekdote am Rand, MongoDB hat irgendwie

02:12:14.800 --> 02:12:17.600
eine Lizenz geändert.

02:12:18.880 --> 02:12:20.680
Weil ihnen das ein Dorn im Auge war,

02:12:20.680 --> 02:12:22.580
dass die ganzen Plattformen

02:12:22.580 --> 02:12:24.580
jetzt da irgendwie Geld mit verdienen.

02:12:24.580 --> 02:12:26.480
Redis, Redis, nicht Mongo.

02:12:26.480 --> 02:12:27.340
Redis war es.

02:12:27.340 --> 02:12:29.100
Ja, aber MongoDB hat das auch irgendwie gemacht.

02:12:29.100 --> 02:12:32.320
Und hat sozusagen

02:12:32.320 --> 02:12:33.900
eine Qualizenz Amazon

02:12:34.010 --> 02:12:43.090
verboten, irgendwie MongoDB anzubieten, woraufhin Amazon irgendwie ein quasi komplett

02:12:43.090 --> 02:12:46.390
kompatibles, eigenes, selbstgeschriebenes Ding an die Stelle gesetzt hat.

02:12:46.390 --> 02:12:48.670
Ja, krass.

02:12:48.670 --> 02:12:53.110
Und jetzt kannst du darauf warten, dass das sich inkompatibel weiterentwickeln wird, damit

02:12:53.110 --> 02:12:55.070
die Leute halt nicht mehr in der Lage sind, davon wegzugehen.

02:12:55.070 --> 02:13:01.290
Also dieser Login an der Stelle ist halt auch unglaublich.

02:13:02.150 --> 02:13:10.390
Ja, das ist, ja, die, und dafür finde ich halt teilweise dann eben der, klar, bei allem,

02:13:10.390 --> 02:13:16.750
was Flexibilität in Richtung Investkosten, also CapEx versus OpEx und so angeht, ist das

02:13:16.750 --> 02:13:20.110
alles super und du kannst, musst halt nicht um Erlaubnis fragen, wobei das halt auch,

02:13:20.110 --> 02:13:22.610
Ich heiße CapEx, OpEx, ich bin gerade wieder rausgeflogen.

02:13:22.610 --> 02:13:29.030
Ja, unternehmerisch, wenn du halt deine Kosten betrachtest, dann ist die CapEx, OpEx-Trennung

02:13:29.030 --> 02:13:29.730
ganz spannend.

02:13:29.730 --> 02:13:31.990
Und CapEx bedeutet, du gibst Geld.

02:13:32.150 --> 02:13:38.730
Einmal aus, um ein Gerät zu kaufen, sogenannte Capital Expenditure, also Investitionsgüter,

02:13:38.730 --> 02:13:44.110
da wird der Wert des Gutes, also wenn du zum Beispiel ein Auto kaufst, dann hast du deine

02:13:44.110 --> 02:13:48.330
da 30.000 Euro, 50.000 Euro, die du ausgegeben hast, die gehen auf einmal von deinem Konto

02:13:48.330 --> 02:13:48.670
runter.

02:13:48.670 --> 02:13:54.190
Ich bin nicht, glaube ich, dran, du baust es dann so ein bisschen und guckst, wie du es...

02:13:54.190 --> 02:13:57.170
Genau, du brauchst das, der Wert des Autos wird wieder in deine Bücher geschrieben,

02:13:57.170 --> 02:14:00.370
da ist sozusagen das Geld nicht einfach nur weg, sondern du hast ja einen Gegenwert dafür

02:14:00.370 --> 02:14:00.730
bekommen.

02:14:01.530 --> 02:14:04.390
Dafür musst du es halt abschreiben, das hat eine bestimmte steuerliche Behandlung, etc.

02:14:04.390 --> 02:14:10.790
Und OpEx ist das sogenannte Operative Expenditure, das sind sowas wie Miete.

02:14:10.790 --> 02:14:15.810
Das Geld ist halt in dem Moment weg, dafür hast du dir aber erspart, einmalig große

02:14:15.810 --> 02:14:19.750
Investitionen zu tätigen und machst halt viele kleine, beziehungsweise viele kleine

02:14:19.750 --> 02:14:24.150
Ausgaben, die sind steuerlich halt sofort gültig und Amazon erlaubt dir halt, dass

02:14:24.150 --> 02:14:28.590
du, wo du früher mal Millionen in der RZ stecken musstest, was du dann runterwohnen

02:14:28.590 --> 02:14:30.570
musst, was dann entsorgt werden muss, etc.

02:14:30.910 --> 02:14:34.930
Kannst du halt ein reines OpEx draus machen, hast halt auch kurze Kündigungsfristen und

02:14:34.930 --> 02:14:35.070
so.

02:14:35.070 --> 02:14:38.830
Das ist halt, das macht es wirtschaftlich extrem attraktiv an den Stellen.

02:14:38.830 --> 02:14:39.550
Das geht ja nicht mal...

02:14:39.550 --> 02:14:40.030
Das ist halt super, ne?

02:14:40.030 --> 02:14:42.930
Weil du erst dann bestimmt das Geld irgendwie dann auf die Idee kommst, irgendwie die Kosten

02:14:42.930 --> 02:14:44.590
selber zu investieren dann.

02:14:44.590 --> 02:14:45.590
Ja, genau.

02:14:45.590 --> 02:14:47.330
Ich glaube, Netflix hatte das dann irgendwann auch mal gemacht.

02:14:47.330 --> 02:14:50.730
Netflix hat jetzt auch wieder eigene Ersätze mit im Mix, weil sie gesagt haben, auf Dauer

02:14:50.730 --> 02:14:52.050
ist ihnen Amazon halt zu teuer.

02:14:52.050 --> 02:14:55.810
Also Amazon ist ja nicht billig an der Stelle, du kannst natürlich viele Sachen optimieren,

02:14:55.810 --> 02:15:00.290
aber da ist so für mich als Person auch in der ganzen Komplexität, die Amazon selber

02:15:00.290 --> 02:15:04.590
mitbringt, ist mir dann einfach teilweise die Lebenszeit zu schade.

02:15:04.590 --> 02:15:09.990
Wenn ich dann höre, es gibt Leute, die bezahle ich dafür, um bei Amazon weniger zu bezahlen,

02:15:09.990 --> 02:15:10.810
denke ich mir so, jetzt...

02:15:10.810 --> 02:15:21.450
Ja, dann haben wir jetzt quasi ja die Kurven alle wieder zum Ende gekriegt.

02:15:21.450 --> 02:15:23.250
Alle losen wieder zusammen, genau.

02:15:23.250 --> 02:15:25.710
Das ist ja die Aufgabe, die der Admin dann ja hat, ne?

02:15:25.710 --> 02:15:28.570
Alles das zusammenhängen, der Operator.

02:15:28.570 --> 02:15:29.890
Kriegst du ja twice.

02:15:30.210 --> 02:15:32.790
Ja, ich war auch, irgendwann mal hatte ich mal so ein Obzeichnen zum EZ-Channel.

02:15:32.790 --> 02:15:35.170
Wollte ich gerade noch loswerden.

02:15:35.170 --> 02:15:39.730
Ja, schön, dass ihr wieder so schön viel erzählt habt.

02:15:39.730 --> 02:15:43.270
Ich glaube, das war die Folge, in der Jochen am wenigsten gesagt hat, bisher.

02:15:43.270 --> 02:15:45.270
Also so im Vergleich jetzt, ne, zu unserem Gast.

02:15:45.270 --> 02:15:48.230
Ich nehme das jetzt nicht als Ehre, weil das ist immer mein Fluch.

02:15:48.230 --> 02:15:52.970
Ja, großartig.

02:15:52.970 --> 02:15:55.150
Ja, auch beim Zuhören sehr interessant.

02:15:55.150 --> 02:15:55.990
Ja, genau.

02:15:55.990 --> 02:16:00.130
Das hat mega Spaß gemacht und wieder ganz viel gelernt und ich hoffe, euch hat es

02:16:00.130 --> 02:16:00.910
genauso viel Spaß gemacht.

02:16:00.910 --> 02:16:03.790
Vielleicht, ich weiß nicht, ob wir uns entschuldigen müssen für die Voice-Qualität diesmal

02:16:03.790 --> 02:16:06.570
oder ob das genauso gut geworden ist wie sonst.

02:16:06.570 --> 02:16:07.190
Ja.

02:16:07.190 --> 02:16:09.510
Schreibt uns das in die Kommentare, falls ihr noch nicht wusstet.

02:16:09.510 --> 02:16:11.130
Wir kriegen jetzt Kommentare bei uns.

02:16:11.130 --> 02:16:14.190
Ja, ich habe die letzte Folge heute mal angehört.

02:16:14.190 --> 02:16:14.930
Oh, ja.

02:16:14.930 --> 02:16:15.910
Ja, genau.

02:16:15.910 --> 02:16:16.910
Da ging es um die Kommentare, genau.

02:16:16.910 --> 02:16:18.950
Ich habe auch gesehen, es gab einen sehr guten Kommentar.

02:16:18.950 --> 02:16:19.550
Ah, ja.

02:16:19.550 --> 02:16:22.610
Ja.

02:16:22.610 --> 02:16:23.970
Ja.

02:16:23.970 --> 02:16:25.850
Ja, das war irgendwas, was?

02:16:25.850 --> 02:16:27.550
Feedback, hallo, at peisenpodcast.de.

02:16:27.550 --> 02:16:29.090
Jo.

02:16:29.090 --> 02:16:29.650
Jo.

02:16:30.470 --> 02:16:32.130
Ich glaube, für heute sind wir sonst gleich durch, oder?

02:16:32.130 --> 02:16:33.510
Ja, das ist auch schon relativ lang dran, ja.

02:16:33.510 --> 02:16:35.270
Ja, so war es das ja, dass du da warst heute.

02:16:35.270 --> 02:16:36.010
Das war echt toll.

02:16:36.010 --> 02:16:36.330
Ja, war echt gut.

02:16:36.330 --> 02:16:37.930
Sehr gerne, jederzeit wieder.

02:16:37.930 --> 02:16:39.670
Alles klar, ja, dann.

02:16:39.670 --> 02:16:41.370
Okay, bis zum nächsten Mal.

02:16:41.370 --> 02:16:42.130
Ja, bis zum nächsten Mal.

02:16:42.130 --> 02:16:42.810
Tschüss.

02:16:42.810 --> 02:16:42.950
Tschüss.
