WEBVTT

00:00:00.000 --> 00:00:05.740
Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, heute Jubiläums-Episode 50, herzlichen Glückwunsch Jochen.

00:00:05.740 --> 00:00:10.680
Ja, herzlichen Glückwunsch zurück, 50, sind wir schon, wow.

00:00:10.680 --> 00:00:11.940
Ja, ganz gut, oder?

00:00:11.940 --> 00:00:12.580
Ja.

00:00:12.580 --> 00:00:20.460
Wir sprechen heute über Qt und andere grafische Anwendungen in Python und über Mia-Plan, das da gebaut ist, und haben den Martin zu Gast, hi Martin.

00:00:20.460 --> 00:00:21.280
Hallihallo.

00:00:21.280 --> 00:00:21.800
Hallöchen.

00:00:21.800 --> 00:00:25.260
Ja, wollen wir ein bisschen News machen am Anfang?

00:00:25.260 --> 00:00:27.100
Ja, diesmal vielleicht schon, hatten wir letztes Mal ja nicht.

00:00:27.100 --> 00:00:32.760
Genau, und dann mache ich das hier gerade mal auf, was wir da so.

00:00:32.760 --> 00:00:36.420
Ja, also es gibt halt so ein paar langweilige Software-Geschichten,

00:00:36.420 --> 00:00:38.360
wo es vielleicht nicht schlecht wäre zu wissen, was da passiert.

00:00:38.360 --> 00:00:40.760
Es gab jetzt, das ist aber auch schon was länger her,

00:00:40.760 --> 00:00:44.860
ich habe jetzt ja dummerweise die News von zwei Episoden

00:00:44.860 --> 00:00:46.120
und dazwischen ist auch mal was ausgefallen.

00:00:46.120 --> 00:00:47.840
Kann sein, dass es jetzt doch ein bisschen veraltet ist.

00:00:47.840 --> 00:00:49.220
Zum Beispiel, was ich hier drauf habe, ist,

00:00:49.220 --> 00:00:52.960
dass die einzelne Version von MyPi rausgekommen ist,

00:00:52.960 --> 00:00:54.340
was vielleicht ganz interessant ist.

00:00:54.600 --> 00:00:56.440
ist auch nochmal, dass

00:00:56.440 --> 00:00:58.740
rausgekommen gewesen war, wolltest du also sagen.

00:00:58.740 --> 00:01:00.180
Ja,

00:01:00.180 --> 00:01:02.460
ist schon länger her und

00:01:02.460 --> 00:01:04.840
das Einzige, was mir jetzt noch so in Erinnerung ist,

00:01:04.840 --> 00:01:06.500
ist halt deutlich schneller geworden damit auch.

00:01:06.500 --> 00:01:10.880
Ansonsten

00:01:10.880 --> 00:01:12.920
SQL Alchemy 2

00:01:12.920 --> 00:01:14.840
ist raus. Da war

00:01:14.840 --> 00:01:16.700
auch das, was man quasi an coolen Dingen

00:01:16.700 --> 00:01:18.720
verwenden konnte, war schon in 1.4 irgendwie

00:01:18.720 --> 00:01:20.680
drin und der 2.0 Schritt

00:01:20.680 --> 00:01:22.260
ist glaube ich nur, dass jetzt Sachen

00:01:22.260 --> 00:01:24.320
deprecated sind, die halt vorher

00:01:24.320 --> 00:01:25.860
noch gingen und jetzt gehen sie halt nicht mehr.

00:01:25.860 --> 00:01:28.440
Deswegen halt der Manager-Versionssprung.

00:01:28.440 --> 00:01:30.380
Aber eigentlich auch ganz

00:01:30.380 --> 00:01:32.100
interessant, weil so gerade so Async-Geschichten

00:01:32.100 --> 00:01:34.320
ist halt, das ist

00:01:34.320 --> 00:01:35.700
auch da noch relativ neu.

00:01:35.700 --> 00:01:38.300
Also, dass man da halt so mit

00:01:38.300 --> 00:01:40.500
na, wie heißt das?

00:01:40.500 --> 00:01:41.720
PG?

00:01:41.720 --> 00:01:43.700
Async-PG.

00:01:43.700 --> 00:01:44.700
Async-PG, genau.

00:01:44.700 --> 00:01:47.260
Das auf Postgres zum Beispiel zugreifen kann.

00:01:47.260 --> 00:01:49.420
Und das halt alles so ordentlich

00:01:49.420 --> 00:01:49.860
funktioniert.

00:01:51.160 --> 00:01:52.520
Ja, da hatte ich auch schon viel Spaß mit.

00:01:52.520 --> 00:01:55.900
Hört sich gut an.

00:01:55.900 --> 00:01:58.980
Dann Wagtail hat sich eine ganze Menge getan.

00:01:58.980 --> 00:02:03.100
Da habe ich hier noch die Release Notes drin von Wagtail 4.2.

00:02:03.100 --> 00:02:03.720
Ui.

00:02:03.720 --> 00:02:07.820
Und jetzt ist aber schon 5.0 gestern erschienen.

00:02:07.820 --> 00:02:08.680
Ah.

00:02:08.680 --> 00:02:10.820
Das ist tatsächlich, ja.

00:02:10.820 --> 00:02:14.140
Wie viele Backing Chases gab es diesmal?

00:02:14.140 --> 00:02:15.960
Doch, gab ein paar.

00:02:15.960 --> 00:02:17.640
Und ich hatte auch da so ein bisschen Probleme mit.

00:02:17.640 --> 00:02:20.680
Also das war nicht so, das war schon ein etwas holprigeres Update.

00:02:21.160 --> 00:02:28.060
Weil, also dazu, die Software, mit der wir hier den Podcast irgendwie publishen, basiert halt auch auf Wagtail.

00:02:28.060 --> 00:02:28.920
DjangoCast.

00:02:28.920 --> 00:02:37.940
Genau, und auf Django natürlich. Und ja, deswegen kriege ich das immer mit, wenn es irgendwas bricht, dann bricht es halt ja auch.

00:02:37.940 --> 00:02:41.060
Der Grund, warum ich es nicht mehr mitkriege, ich habe es aus diesem Grund rausgeschmissen.

00:02:41.380 --> 00:03:10.500
Ja, aber also, ja gut, sie machen da was dran, sie machen das jetzt auch über Major-Versionen, also man kriegt zumindest so ein bisschen irgendwie einen Eindruck davon, dass irgendwas kaputt gehen könnte, wenn sie dann die Major-Version erhöhen und sie koppeln sich jetzt auch quasi an den Django-Release-Prozess dran und das war jetzt auch nur einen Monat nach dem Release von Django 4.2, also Wagtail 5 ist die erste Wagtail-Version, die offiziell Django 4.2 unterstützt und das ist, früher war das immer noch ein bisschen länger.

00:03:10.640 --> 00:03:12.560
Und jetzt inzwischen ist es halt so

00:03:12.560 --> 00:03:14.180
einen Monat später oder so.

00:03:14.180 --> 00:03:16.280
Ja gut, ist nicht super aktuell.

00:03:16.280 --> 00:03:17.460
Ein Monat ist ein Monat.

00:03:17.460 --> 00:03:19.300
Ja, ist schon ganz okay.

00:03:19.300 --> 00:03:21.820
Die müssen halt auch relativ viel fixen und ändern.

00:03:21.820 --> 00:03:23.380
Daher ist es schon verständlich,

00:03:23.380 --> 00:03:25.420
dass es nicht immer so fortgeht.

00:03:25.420 --> 00:03:27.600
Aber Jocken, du bist doch eigentlich immer dagegen,

00:03:27.600 --> 00:03:29.820
dass man sich so dicke Klötze ans Bein bindet.

00:03:29.820 --> 00:03:31.680
Ja, ich hätte das auch

00:03:31.680 --> 00:03:34.260
am liebsten vermieden, wenn das irgendwie möglich gewesen wäre.

00:03:34.260 --> 00:03:35.880
Aber ich möchte,

00:03:35.880 --> 00:03:37.900
also ich hätte jetzt auch ein eigenes Thema schreiben können.

00:03:37.900 --> 00:03:38.860
Ja, das wäre auch gegangen.

00:03:40.140 --> 00:03:41.160
Warum denn nicht?

00:03:41.160 --> 00:03:44.140
Wir hatten letztens jemanden getroffen,

00:03:44.140 --> 00:03:45.980
der hat ein eigenes CMS in PHP geschrieben.

00:03:45.980 --> 00:03:46.360
Kann das sein?

00:03:46.360 --> 00:03:48.920
Ja, oder hat er mit...

00:03:48.920 --> 00:03:51.900
Wir waren auf dem Vue.js

00:03:51.900 --> 00:03:53.700
Meetup Cologne.

00:03:53.700 --> 00:03:55.360
Das war ganz interessant, ja.

00:03:55.360 --> 00:03:57.720
Der hat ein Statamic

00:03:57.720 --> 00:03:59.980
mitentwickelt, beziehungsweise ist einer der Leute, die da halt

00:03:59.980 --> 00:04:01.680
bezahlt werden für, dass sie da dann entwickeln.

00:04:01.680 --> 00:04:04.040
Das ist tatsächlich so ähnlich wie Wagtail, bloß halt für

00:04:04.040 --> 00:04:05.480
PHP und Laravel.

00:04:05.480 --> 00:04:06.820
Und

00:04:06.820 --> 00:04:09.900
ja, nee, das ist also CMS

00:04:09.900 --> 00:04:11.760
das ist schon eine große Geschichte. Wacktail ist auch

00:04:11.760 --> 00:04:13.060
relativ groß, viel Code drin

00:04:13.060 --> 00:04:15.600
und das weiß ich nicht, ob man das wirklich selber machen möchte.

00:04:15.600 --> 00:04:17.880
Es gibt da ein schönes Projekt von, jetzt habe ich den Namen

00:04:17.880 --> 00:04:18.220
vergessen,

00:04:18.220 --> 00:04:21.400
auch sehr bekannt eigentlich in der

00:04:21.400 --> 00:04:23.340
Kerstin,

00:04:23.340 --> 00:04:25.900
in der

00:04:25.900 --> 00:04:26.480
Django-Community,

00:04:26.480 --> 00:04:29.040
genau, der hat FeinCMS geschrieben

00:04:29.040 --> 00:04:31.860
und das gefällt mir,

00:04:31.860 --> 00:04:33.640
also wenn man sich den Source anguckt, das gefällt mir

00:04:33.640 --> 00:04:35.280
tatsächlich auch ein bisschen besser als Wacktail, aber

00:04:35.280 --> 00:04:37.620
es kann halt nicht so viel und

00:04:37.620 --> 00:04:39.720
ja, an der Stelle ist halt, Wacktail kann

00:04:39.720 --> 00:04:41.560
halt schon sehr, sehr viel. Also das ist halt

00:04:41.560 --> 00:04:43.560
irgendwie, also damit kann man so ziemlich

00:04:43.560 --> 00:04:45.520
alles machen, was man irgendwie gerne machen möchte.

00:04:45.520 --> 00:04:47.580
Fein CMS, also tatsächlich

00:04:47.580 --> 00:04:49.660
ein deutsches Fein und kein

00:04:49.660 --> 00:04:51.580
englisches Fein. Ja, ich glaube, der kommt aus

00:04:51.580 --> 00:04:53.740
der Schweiz oder so. Und ja,

00:04:53.740 --> 00:04:55.520
also ich meine, sowas hätte ich natürlich auch schreiben können

00:04:55.520 --> 00:04:57.600
oder das nehmen können, aber dann hätte ich auch viel schreiben müssen,

00:04:57.600 --> 00:04:59.600
weil viele Sachen, die ich gerne hätte, sind da halt auch

00:04:59.600 --> 00:04:59.920
nicht drin.

00:04:59.920 --> 00:05:03.400
Das muss ein Alter sein, Copyright 2009.

00:05:03.400 --> 00:05:04.720
Der macht das schon lange, ja.

00:05:04.720 --> 00:05:07.560
Ja, ja. Und

00:05:07.560 --> 00:05:09.260
ja, deswegen

00:05:09.260 --> 00:05:11.780
nehme ich halt Wacktail, obwohl ich auch

00:05:11.780 --> 00:05:12.400
manchmal denke so,

00:05:12.400 --> 00:05:15.180
es knirscht halt ab und zu.

00:05:15.180 --> 00:05:17.940
Das letzte Release war die Kompatibilität

00:05:17.940 --> 00:05:19.100
mit Django 1.10.

00:05:19.100 --> 00:05:21.580
Nee, dann bist du wahrscheinlich auf der falschen Seite.

00:05:21.580 --> 00:05:23.780
Da ist auch in letzter Zeit noch mal was

00:05:23.780 --> 00:05:25.040
dazugekommen, meine ich, ja.

00:05:25.040 --> 00:05:27.460
Es gibt da möglicherweise auch

00:05:27.460 --> 00:05:29.740
vielleicht ist es dann auch FeinCMS 3 oder

00:05:29.740 --> 00:05:31.480
so. Das hat auch mehrere

00:05:31.480 --> 00:05:33.200
Major-Visionen inzwischen.

00:05:33.200 --> 00:05:35.680
Ja,

00:05:35.680 --> 00:05:37.400
also Wacktail, also

00:05:37.400 --> 00:05:39.660
CMS, das hab ich früher immer gedacht, das ist ja gut, was ist das

00:05:39.660 --> 00:05:41.580
schon groß, aber es ist halt, da hängt schon eine ganze Menge

00:05:41.580 --> 00:05:43.700
Zeugs dran. Und was

00:05:43.700 --> 00:05:45.660
jetzt zum Beispiel mir Probleme

00:05:45.660 --> 00:05:47.660
gemacht hat bei dem Update, ist halt,

00:05:47.660 --> 00:05:49.580
dass sie intern irgendwie einen, weil ich

00:05:49.580 --> 00:05:51.520
hab halt eine Extension, also ein Ding gebaut,

00:05:51.520 --> 00:05:53.440
was das halt so ein bisschen erweitert, weil ich hab halt viele

00:05:53.440 --> 00:05:55.480
Bilder für andere Zwecke, jetzt bei dem Podcast

00:05:55.480 --> 00:05:56.960
kommen nicht so viele Bilder vor, aber

00:05:56.960 --> 00:05:59.520
noch andere Interessen machen. Ich möchte gerne Bilder

00:05:59.520 --> 00:06:01.660
in der absolut maximal bestmöglichen

00:06:01.660 --> 00:06:03.700
Qualität. Ich möchte, dass sie nicht total unscharf

00:06:03.700 --> 00:06:04.800
sind. Das ist,

00:06:04.800 --> 00:06:06.580
kann man so oder so sehen.

00:06:07.400 --> 00:06:08.620
Ja, aber ich sehe das schon.

00:06:08.620 --> 00:06:10.480
Ich denke mir immer, immer wenn ich auf so Seiten,

00:06:10.480 --> 00:06:12.360
also gerade auch Wagtail-Seiten, es gibt ja viele

00:06:12.360 --> 00:06:14.660
andere, die auch Wagtail verwenden,

00:06:14.660 --> 00:06:16.340
so unter anderem NASA, Google,

00:06:16.340 --> 00:06:18.600
irgendwie der National Health

00:06:18.600 --> 00:06:20.760
Service in den UK und so.

00:06:20.760 --> 00:06:22.440
Es gibt schon viele große und immer wenn ich da drauf gucke,

00:06:22.440 --> 00:06:24.160
denke ich mir so, ey, die Bilder sind doch unscharf.

00:06:24.160 --> 00:06:26.440
2.000 Leute haben auch dieses Problem.

00:06:26.440 --> 00:06:28.060
Ja, also ich weiß nicht.

00:06:28.060 --> 00:06:29.920
Also ich finde es super, das ist cool. Mir ist es tatsächlich auch

00:06:29.920 --> 00:06:31.980
aufgefallen, wenn ich mal so ein paar Sachen von dir angeguckt habe,

00:06:31.980 --> 00:06:34.000
dass das sehr viel schöner ist. Wahrscheinlich hat man sich

00:06:34.000 --> 00:06:36.020
einfach nur daran gewohnt, dass die Sachen gar nicht so cool

00:06:36.020 --> 00:06:38.020
aussehen, dass das gar nicht so schön

00:06:38.020 --> 00:06:39.300
sein kann, weiß man gar nicht so genau.

00:06:39.300 --> 00:06:41.180
Ja, also sag mal so,

00:06:41.180 --> 00:06:44.040
ich meine, selbst WordPress macht das

00:06:44.040 --> 00:06:45.900
besser. Also das hat

00:06:45.900 --> 00:06:47.980
auch nur so drei oder fünf

00:06:47.980 --> 00:06:49.560
statische Größen für Bilder drin.

00:06:49.560 --> 00:06:51.840
Also das Problem ist grundsätzlich, dass

00:06:51.840 --> 00:06:54.000
wenn du, du hast halt

00:06:54.000 --> 00:06:55.820
zwei unterschiedliche Arten von Pixel, du hast halt sozusagen

00:06:55.820 --> 00:06:56.940
die Pixel für deine,

00:06:56.940 --> 00:06:59.300
wie groß dein,

00:06:59.300 --> 00:07:01.900
wie breit quasi dein Bildschirm ist oder so und da kannst du auch

00:07:01.900 --> 00:07:03.760
in Pixeln rechnen, aber das, was angezeigt ist,

00:07:03.760 --> 00:07:05.200
ist halt was anderes,

00:07:05.760 --> 00:07:07.580
weil es halt mittlerweile halt

00:07:07.580 --> 00:07:09.600
Devices gibt,

00:07:09.600 --> 00:07:11.400
Telefone, irgendwie

00:07:11.400 --> 00:07:13.480
Bildschirme, 4K-Bildschirme oder noch

00:07:13.480 --> 00:07:15.200
mehr, die halt dann mehrere

00:07:15.200 --> 00:07:17.300
physikalische Pixel für einen virtuellen Pixel

00:07:17.300 --> 00:07:19.420
quasi benutzen. Und wenn

00:07:19.420 --> 00:07:21.440
du halt nicht sozusagen dann die

00:07:21.440 --> 00:07:23.080
Bildgrößen entsprechend mitlieferst,

00:07:23.080 --> 00:07:25.280
sondern sagst, mein Bild ist halt genauso breit wie

00:07:25.280 --> 00:07:27.380
so viele virtuelle Pixel, dann hast

00:07:27.380 --> 00:07:29.520
du halt ein implizites Upscaling

00:07:29.520 --> 00:07:31.360
von Faktor 4 oder so darin und dann wird's halt

00:07:31.360 --> 00:07:33.440
unscharf. Und ja,

00:07:33.440 --> 00:07:35.460
das ist halt irgendwie, da gibt's noch, sie arbeiten

00:07:35.460 --> 00:07:37.480
da auch dran. Also so ist es nicht. Da gibt es jetzt inzwischen

00:07:37.480 --> 00:07:39.400
auch ein sehr vielversprechendes, da gibt es

00:07:39.400 --> 00:07:41.440
so eine Roadmap, wo drin steht, was sie da machen

00:07:41.440 --> 00:07:42.360
wollen und sie wollen das mit

00:07:42.360 --> 00:07:45.160
Picture-Elementen machen und irgendwie so

00:07:45.160 --> 00:07:47.480
modern oder so. Ihre Hauptmotivation

00:07:47.480 --> 00:07:49.440
dabei ist aber eher irgendwie Wandbreite

00:07:49.440 --> 00:07:51.520
sparen, weil man dann halt so modernere

00:07:51.520 --> 00:07:52.280
Formate wie

00:07:52.280 --> 00:07:55.380
WP oder solche

00:07:55.380 --> 00:07:56.320
Sachen verwenden kann.

00:07:56.320 --> 00:07:59.420
Aber damit

00:07:59.420 --> 00:08:01.360
kriegt man das auch hin, dass man dann halt scharfe Bilder

00:08:01.360 --> 00:08:03.460
hat. Mein Ding ist aber eher, ich will scharfe

00:08:03.460 --> 00:08:05.380
Bilder haben und JPEG reicht mir eigentlich.

00:08:05.460 --> 00:08:08.620
und deshalb habe ich da so ein Ding geschrieben

00:08:08.620 --> 00:08:10.400
und da haben sie jetzt irgendwas umbenannt, irgendwie

00:08:10.400 --> 00:08:12.400
ein Attribut auf dem Image-Node

00:08:12.400 --> 00:08:14.580
heißt jetzt irgendwie anders, weil

00:08:14.580 --> 00:08:16.060
ich muss jetzt halt, also meine

00:08:16.060 --> 00:08:17.760
Erweiterung für Wagtail,

00:08:17.760 --> 00:08:20.540
die erzeugt halt

00:08:20.540 --> 00:08:22.100
dann Bilder in unterschiedlichen Größen

00:08:22.100 --> 00:08:23.740
und macht da so ein Sourced-Attribut.

00:08:23.740 --> 00:08:26.160
Und dann, genau,

00:08:26.160 --> 00:08:28.520
da greife ich halt auf irgendwie so

00:08:28.520 --> 00:08:30.620
die Filter von dem

00:08:30.620 --> 00:08:32.620
Ding irgendwie zu, weil du kannst ja da noch andere Sachen

00:08:32.620 --> 00:08:34.540
reinschreiben wie JPEG-Qualität

00:08:34.540 --> 00:08:36.580
und weißer Teufel und die Breite

00:08:36.580 --> 00:08:39.000
und das muss ich ja irgendwie auslesen

00:08:39.000 --> 00:08:40.720
und das hat sich irgendwie umgeladen. Vorher war es ein String,

00:08:40.720 --> 00:08:42.720
der irgendwie durch so Pipes getrennt war und den habe ich dann

00:08:42.720 --> 00:08:44.720
gesplittet und jetzt ist es halt irgendwie die Liste

00:08:44.720 --> 00:08:46.200
schon gesplittet.

00:08:46.200 --> 00:08:48.400
Und jetzt muss ich halt eine Fallunterscheidung machen zwischen

00:08:48.400 --> 00:08:50.040
also wenn es... Alte Version, neue Version.

00:08:50.040 --> 00:08:52.760
Es war nicht

00:08:52.760 --> 00:08:54.760
mal irgendwie so ein...

00:08:54.760 --> 00:08:56.620
Es war eigentlich ein...

00:08:56.620 --> 00:08:58.120
Und solche Sachen machen halt schon Arbeit.

00:08:58.120 --> 00:09:00.500
Da habe ich so ein bisschen was jetzt machen müssen, aber insgesamt

00:09:00.500 --> 00:09:02.000
ging es eigentlich. So schlimm war es nicht.

00:09:02.400 --> 00:09:08.000
Und jetzt laufen halt auch, läuft alles irgendwie auf Django 4.2 und Wagtail 5.

00:09:08.000 --> 00:09:08.960
Und das ist eigentlich schon nett.

00:09:08.960 --> 00:09:14.620
Also Wagtail, wenn man sich das vor einiger Zeit angeguckt hat und nicht zufrieden war,

00:09:14.620 --> 00:09:15.560
kann man das eigentlich nochmal machen.

00:09:15.560 --> 00:09:19.060
Also einige Zeit heißt, bei mir ist das zwei Jahre her, würde ich sagen.

00:09:19.060 --> 00:09:20.380
Ja, zwei Jahre reicht auf jeden Fall.

00:09:20.380 --> 00:09:21.760
Also inzwischen hat sich da sehr viel getan.

00:09:21.760 --> 00:09:26.580
Also die Changelogs sind halt auch immer sehr lang.

00:09:26.580 --> 00:09:29.040
Also würde ich sagen, was ist an dem modernen Wagtail eigentlich cooler?

00:09:30.340 --> 00:09:32.280
Was sie verbessert haben, ist, es gibt ja schon

00:09:32.280 --> 00:09:33.980
seit einiger Zeit so ein Stream-Field.

00:09:33.980 --> 00:09:36.360
Das machen alle CMSs irgendwie gleich.

00:09:36.360 --> 00:09:39.700
Für Video, Audio und dergleichen.

00:09:39.700 --> 00:09:44.540
Du hast halt ein JSON-Field in der Datenbank oder so

00:09:44.540 --> 00:09:45.740
und dann hast du halt so Blöcke drin,

00:09:45.740 --> 00:09:47.940
wo halt in dem Block steht halt sozusagen drin,

00:09:47.940 --> 00:09:48.600
was das jetzt ist.

00:09:48.600 --> 00:09:50.260
Ist das jetzt ein Text oder ist das jetzt ein Bild?

00:09:50.260 --> 00:09:53.340
Und dann kannst du die sozusagen,

00:09:53.340 --> 00:09:55.620
kannst du eigene Widgets dafür bauen,

00:09:55.620 --> 00:09:56.820
um solche Sachen einzutragen.

00:09:56.820 --> 00:10:00.120
Und ja, Vectel macht das halt auch.

00:10:00.240 --> 00:10:01.880
Aber das war, wenn das sehr groß wurde,

00:10:01.880 --> 00:10:04.300
früher dann halt schon auch

00:10:04.300 --> 00:10:06.140
eher langsam und so und ein bisschen

00:10:06.140 --> 00:10:08.040
komisch, weil das halt alles,

00:10:08.040 --> 00:10:09.980
weil die HTML-Formulare so unfassbar riesig

00:10:09.980 --> 00:10:11.940
groß geworden sind, wenn du halt viele Dinge drin hattest.

00:10:11.940 --> 00:10:13.880
Und du musst ja deine Formulare

00:10:13.880 --> 00:10:16.360
für jeden Eintrag

00:10:16.360 --> 00:10:17.200
quasi generieren.

00:10:17.200 --> 00:10:19.700
Und das ist jetzt,

00:10:19.700 --> 00:10:20.740
das

00:10:20.740 --> 00:10:24.060
Editier von Reactel ist jetzt auch

00:10:24.060 --> 00:10:25.640
eine React-App, kann man auch sagen, so igitt.

00:10:25.640 --> 00:10:27.380
Aber,

00:10:27.380 --> 00:10:29.880
also das ist halt einer der Vorteile, ist halt, wenn man jetzt

00:10:29.880 --> 00:10:31.760
riesige Seiten hat mit ganz, ganz vielen Formularen

00:10:31.760 --> 00:10:33.720
oder so, dann ist das halt

00:10:33.720 --> 00:10:35.480
nicht mehr langsam

00:10:35.480 --> 00:10:37.800
beim Rendern. Oder wenn man irgendwas ändert,

00:10:37.800 --> 00:10:39.780
dann muss nicht alles neu gerendert werden, weil es halt nicht mehr

00:10:39.780 --> 00:10:41.920
klassisch ist, sondern dann passiert das alles im Kleinen

00:10:41.920 --> 00:10:43.900
nur noch und das geht jetzt schneller.

00:10:43.900 --> 00:10:45.520
Also überhaupt, das ganze Ding ist deutlich schneller geworden.

00:10:45.520 --> 00:10:47.700
Also ich meine, so sehr React irgendwie doof ist

00:10:47.700 --> 00:10:49.800
für die Sachen, für die es

00:10:49.800 --> 00:10:51.900
oft verwendet wird, für sowas wie eine komplizierte

00:10:51.900 --> 00:10:55.540
Content-Editier-Geschichte,

00:10:55.540 --> 00:10:57.960
wo halt irre viele Formulare

00:10:57.960 --> 00:10:59.820
sind und es Interaktionen dazwischen

00:10:59.820 --> 00:11:01.580
gibt und dafür ist es jetzt vielleicht auch nicht so schlecht.

00:11:01.580 --> 00:11:03.800
Das ist eigentlich gar nicht schlecht. Sieht das denn gut aus und kann man

00:11:03.800 --> 00:11:05.920
das denn theme? Theme

00:11:05.920 --> 00:11:07.560
kann sein, das weiß ich,

00:11:07.560 --> 00:11:09.540
kann man, man kann auf jeden Fall Dinge ändern.

00:11:09.540 --> 00:11:11.320
Oder dass man jetzt halt ganz tief wieder rein...

00:11:11.320 --> 00:11:13.660
Eines der neuen Features bei Vectile 5 ist,

00:11:13.660 --> 00:11:15.360
es gibt jetzt ein Dark-Theme.

00:11:15.360 --> 00:11:15.880
Oh ja.

00:11:15.880 --> 00:11:20.100
Wer braucht das nicht?

00:11:20.100 --> 00:11:21.060
Genau,

00:11:21.060 --> 00:11:22.400
ist mir direkt aufgefallen,

00:11:22.400 --> 00:11:25.280
weil ich das dann auch direkt hatte, weil ich hier auf dem

00:11:25.280 --> 00:11:26.880
Dark-Mode bin.

00:11:26.880 --> 00:11:28.520
Das ist für die Augen viel angenehmer.

00:11:29.420 --> 00:11:31.080
Naja, also ich finde, es sieht ganz okay aus.

00:11:31.080 --> 00:11:33.100
Also so wirklich hübsch ist es nicht, aber ich meine, das ist ja nur das

00:11:33.100 --> 00:11:35.160
Editier-Ding. Es ist ja nicht so, also wie es dann

00:11:35.160 --> 00:11:36.960
hinterher aussieht, was auf der Webseite zu sehen ist.

00:11:36.960 --> 00:11:38.060
Das kannst du ja machen, wie du willst.

00:11:38.060 --> 00:11:40.320
Das hat ja nichts mit Wagtail zu tun.

00:11:40.320 --> 00:11:43.080
Ja, insofern. Jetzt hatten wir fast eine schöne Übergleichung

00:11:43.080 --> 00:11:44.480
zum Thema, aber ich glaube, wir sind noch nicht ganz fertig.

00:11:44.480 --> 00:11:46.960
Nee, da kommt noch, oh je. Genau,

00:11:46.960 --> 00:11:48.640
nächstes wäre halt Django 4.2.

00:11:48.640 --> 00:11:50.880
Ja, auch nächste

00:11:50.880 --> 00:11:52.040
LTS. 42.

00:11:52.040 --> 00:11:53.280
Ja.

00:11:53.280 --> 00:11:56.820
War auch jetzt, da war auch wenig drin, was irgendwie

00:11:56.820 --> 00:11:58.880
kaputt gegangen ist. Die große Neuerung da

00:11:58.880 --> 00:11:59.860
ist halt, dass

00:11:59.860 --> 00:12:02.800
man jetzt auch Async mit der Datenbank

00:12:02.800 --> 00:12:04.780
sprechen kann und

00:12:04.780 --> 00:12:06.700
zum Beispiel PsychoPG

00:12:06.700 --> 00:12:08.760
3 wird jetzt unterstützt und dann

00:12:08.760 --> 00:12:10.740
also sozusagen man hat jetzt die Voraussetzungen dafür,

00:12:10.740 --> 00:12:12.440
dass man komplett Async von

00:12:12.440 --> 00:12:14.920
vorne bis hinten sozusagen von Frontend

00:12:14.920 --> 00:12:16.060
von View bis

00:12:16.060 --> 00:12:19.000
zur Datenbank kann man halt jetzt durchgängig

00:12:19.000 --> 00:12:20.940
Async Dinge machen und man könnte

00:12:20.940 --> 00:12:21.860
jetzt so Sachen bauen wie

00:12:21.860 --> 00:12:24.360
man verwendet diesen ListenNotify

00:12:24.360 --> 00:12:26.860
Mechanismus von Postgres, um halt wirklich so richtig

00:12:26.860 --> 00:12:29.000
reaktiv Dinge zu machen,

00:12:29.000 --> 00:12:29.860
sodass man,

00:12:29.860 --> 00:12:33.120
also ging ja auch vorher schon, aber da war es immer so ein bisschen

00:12:33.120 --> 00:12:34.900
hm, jetzt geht's halt, also

00:12:34.900 --> 00:12:37.100
man muss dann Django Channels verwenden und

00:12:37.100 --> 00:12:39.040
weiß nicht, aber jetzt

00:12:39.040 --> 00:12:40.240
ging es halt richtig

00:12:40.240 --> 00:12:43.240
sauber eigentlich. Also da gibt's

00:12:43.240 --> 00:12:45.180
noch keine wirkliche Unterstützung für, das müsste

00:12:45.180 --> 00:12:47.040
man dann alle selber schreiben, aber es geht jetzt theoretisch

00:12:47.040 --> 00:12:49.040
zumindest schon mal. Und das ist eigentlich schon schön.

00:12:49.040 --> 00:12:51.200
Auch der ORM könnte jetzt dann halt irgendwie

00:12:51.200 --> 00:12:53.440
Async werden, der hat ja auch schon Async-Interfaces,

00:12:53.440 --> 00:12:55.380
aber

00:12:55.380 --> 00:12:57.680
die kann man auch schon verwenden

00:12:57.680 --> 00:12:59.680
und kriegt dann halt irgendwie den Gewinn, dass es

00:12:59.680 --> 00:13:01.620
wirklich Async ist, irgendwann, wenn das dann halt

00:13:01.620 --> 00:13:04.200
mal bepflichtet ist. Momentan

00:13:04.200 --> 00:13:05.360
ist es dann halt nicht

00:13:05.360 --> 00:13:07.660
Async wirklich, sondern es ist halt dann irgendwie

00:13:07.660 --> 00:13:08.720
es wird über ein Threadpool

00:13:08.720 --> 00:13:11.460
und in Sync gemacht, aber

00:13:11.460 --> 00:13:13.720
ja, so das

00:13:13.720 --> 00:13:15.640
wird noch ein bisschen dauern, bis die ORM

00:13:15.640 --> 00:13:17.320
Geschichten halt auch wirklich Async sind, aber

00:13:17.320 --> 00:13:19.680
ja, geht auf jeden Fall in die Richtung und

00:13:19.680 --> 00:13:20.960
irgendwann dann

00:13:20.960 --> 00:13:23.760
wird auch alles auf Async dann quasi

00:13:23.760 --> 00:13:26.060
umgestellt sein und man kann es dann

00:13:26.060 --> 00:13:27.940
verwenden, wenn man möchte. Muss man ja nicht. Man kann auch einfach

00:13:27.940 --> 00:13:30.060
Sync verwenden, wenn man nicht so viele Queries hat

00:13:30.060 --> 00:13:30.660
und wenn es

00:13:30.660 --> 00:13:33.900
Sync ist auch mal ein bisschen schneller als

00:13:33.900 --> 00:13:35.720
iSync, weil man da halt schon noch so ein bisschen

00:13:35.720 --> 00:13:37.200
Abstraktionsschichten mehr dazwischen hat.

00:13:37.200 --> 00:13:39.820
Aber es gibt halt einiges Fälle, in denen es

00:13:39.820 --> 00:13:41.760
total praktisch wäre, das zu haben. Und

00:13:41.760 --> 00:13:43.720
dafür ist es natürlich gut. Kannst du noch mal

00:13:43.720 --> 00:13:44.680
einen Anwendungsfall dafür nennen?

00:13:44.680 --> 00:13:47.860
Ne, wenn du zum Beispiel viele Queries machst

00:13:47.860 --> 00:13:50.060
und du willst halt

00:13:50.060 --> 00:13:51.900
nicht, dass sich die Latenzen und deine Datenbank

00:13:51.900 --> 00:13:53.720
steht jetzt zum Beispiel woanders, sagen wir mal so.

00:13:53.720 --> 00:13:54.960
Das wäre jetzt nochmal so.

00:13:54.960 --> 00:13:58.080
Nehmen wir an, deine Datenbank

00:13:58.080 --> 00:13:59.880
steht irgendwie in Amerika und du hast hier

00:13:59.880 --> 00:14:02.160
deinen Applikationsserver oder wie auch immer

00:14:02.160 --> 00:14:03.780
das Ding, was halt jedenfalls

00:14:03.780 --> 00:14:05.960
das HTML rendert, ist halt

00:14:05.960 --> 00:14:08.060
irgendwo so. Und jetzt hast du halt große Latenz

00:14:08.060 --> 00:14:09.760
zwischen Datenbank und

00:14:09.760 --> 00:14:11.480
Frontend. Dann

00:14:11.480 --> 00:14:14.000
momentan ist es halt so, leider addieren sich

00:14:14.000 --> 00:14:15.600
die Latenzen auf. Und wenn du halt

00:14:15.600 --> 00:14:18.040
100 Queries machst, um eine Seite

00:14:18.040 --> 00:14:20.040
anzuzeigen, dann hast du 100 Mal die Latenz

00:14:20.040 --> 00:14:21.380
dazwischen und das ist halt dann schon

00:14:21.380 --> 00:14:23.640
ätzend. Also wenn das halt nur

00:14:23.640 --> 00:14:25.600
ein paar Millisekunden sind, dann sind es halt insgesamt

00:14:25.600 --> 00:14:27.700
ein paar hundert Millisekunden vielleicht. Das ist nicht so tragisch,

00:14:27.700 --> 00:14:29.500
aber wenn du jetzt 50 Millisekunden Latenz dazwischen hast,

00:14:29.500 --> 00:14:31.580
dann bist du halt schon bei 5 Sekunden

00:14:31.580 --> 00:14:32.840
oder sowas. Und dann ist es halt doof.

00:14:32.840 --> 00:14:35.420
Und wenn du

00:14:35.420 --> 00:14:37.240
das I-Sync machen würdest und könntest

00:14:37.240 --> 00:14:39.660
die Datenbank-Requests gleichzeitig

00:14:39.660 --> 00:14:41.500
an die Datenbank schicken, dann

00:14:41.500 --> 00:14:43.380
wäre die Gesamtlatenz halt nur

00:14:43.380 --> 00:14:45.860
die Latenz der langsamsten

00:14:45.860 --> 00:14:47.160
Query und nicht irgendwie

00:14:47.160 --> 00:14:48.560
die würden sich nicht alle aufaddieren.

00:14:48.560 --> 00:14:51.180
Also in solchen Fällen wäre es halt irgendwie durchaus

00:14:51.180 --> 00:14:53.360
ja, sehr praktisch

00:14:53.360 --> 00:14:55.400
ähm, genau

00:14:55.400 --> 00:14:57.640
ja, also genau

00:14:57.640 --> 00:14:59.720
Jungle 4 2, weiß jetzt gar nicht

00:14:59.720 --> 00:15:01.700
genau was sonst noch da an, wirklich, da waren auch noch

00:15:01.700 --> 00:15:03.800
jede Menge coole Sachen dabei, ach, das hab ich jetzt

00:15:03.800 --> 00:15:05.000
ähm

00:15:05.000 --> 00:15:07.820
hab ich mir gar nicht mehr so in Erinnerung, das ist doch schon wieder einen Monat her

00:15:07.820 --> 00:15:09.600
dass das

00:15:09.600 --> 00:15:12.020
äh, dass das veröffentlicht

00:15:12.020 --> 00:15:13.800
wurde, und bei

00:15:13.800 --> 00:15:15.340
Formularen hat sich auch noch eine Menge getan

00:15:15.340 --> 00:15:17.660
also, äh

00:15:17.660 --> 00:15:20.020
ja, ähm

00:15:20.020 --> 00:15:22.360
und es sind halt einige Sachen

00:15:22.360 --> 00:15:24.400
noch deprecated worden, ja so

00:15:24.400 --> 00:15:26.140
keine Ahnung, kann man sich mal angucken

00:15:26.140 --> 00:15:28.200
Der kam bestimmt auch dann die

00:15:28.200 --> 00:15:29.120
World Map von Django 5, oder?

00:15:29.120 --> 00:15:32.340
Ja

00:15:32.340 --> 00:15:34.320
bestimmt irgendwie, keine Ahnung

00:15:34.320 --> 00:15:36.460
es gibt auf jeden Fall schon Leute, die sich darüber Gedanken

00:15:36.460 --> 00:15:36.800
machen

00:15:36.800 --> 00:15:40.200
ich habe auch schon so ein bisschen gehört, was

00:15:40.200 --> 00:15:42.240
bei Django 5

00:15:42.240 --> 00:15:44.340
die nächste Geschichte, die jetzt angegangen

00:15:44.340 --> 00:15:46.240
wird, es ist halt jetzt so, ich habe das jetzt nicht

00:15:46.240 --> 00:15:48.180
irgendwo gelesen offiziell, sondern ich habe das jetzt so

00:15:48.180 --> 00:15:50.220
was ich so mitkriege, wenn ich da mal ab und zu

00:15:50.220 --> 00:15:52.140
irgendwie so mitlese, was da so passiert,

00:15:52.140 --> 00:15:53.440
ist,

00:15:53.440 --> 00:15:56.240
sie wollen das Request-Objekt,

00:15:56.240 --> 00:15:58.140
das halt uralt ist und das sehr schwer

00:15:58.140 --> 00:16:00.140
zu ändern ist, so ein bisschen anpassen. Also da gibt's

00:16:00.140 --> 00:16:02.020
ja immer noch momentan so Request.get

00:16:02.020 --> 00:16:04.020
und Request.post und Post.get sind groß

00:16:04.020 --> 00:16:06.120
geschrieben und das ist quasi genauso, wie

00:16:06.120 --> 00:16:07.520
das damals halt so in

00:16:07.520 --> 00:16:10.300
CGI oder PHP war,

00:16:10.300 --> 00:16:12.220
wo man das dann halt sozusagen, diese Inspiration

00:16:12.220 --> 00:16:14.080
für diese Geschichten her hatte, aber

00:16:14.080 --> 00:16:16.040
das ist natürlich jetzt heutzutage eigentlich blöd

00:16:16.040 --> 00:16:27.660
Und man hat es aber nie geändert in den letzten 15 Jahren, weil klar ist, dass wenn man das ändert, dann brechen halt überall Deployments, in denen halt irgendwie, keine Ahnung, Leute darauf halt zugreifen.

00:16:27.660 --> 00:16:29.560
Und deswegen kann man das nicht so einfach jetzt irgendwie umdenken.

00:16:29.560 --> 00:16:32.660
Ja, aber da soll jetzt was passieren.

00:16:32.660 --> 00:16:36.160
Und zwar hat man jetzt einen Grund, um diese großen Änderungen anzugehen.

00:16:36.160 --> 00:16:41.760
Und zwar soll halt so ein bisschen Fähigkeit zu JSON generieren und so.

00:16:41.760 --> 00:16:51.420
Also ich glaube, die harten Sachen, die man dafür braucht, also der Umgang mit unterschiedlichen, ich weiß es gar nicht mehr, also jedenfalls die Basisarbeit dafür ist schon drin.

00:16:51.420 --> 00:17:01.220
Diese ganzen, da geht es irgendwie um Header und weiß der Teufel, irgendwie Support.

00:17:01.220 --> 00:17:06.940
Aber was man eigentlich gerne hätte, ist ja, dass man JSON rausrennen kann und das halt auch ordentlich funktioniert.

00:17:07.560 --> 00:17:10.900
Also sozusagen eigentlich wird jetzt quasi die Basis dafür gelegt,

00:17:10.900 --> 00:17:12.100
dass sowas wie Django REST-Framework

00:17:12.100 --> 00:17:13.900
eigentlich in Django Core mit reinwandert.

00:17:13.900 --> 00:17:16.500
Oder man das halt sowas wie Django REST-Framework

00:17:16.500 --> 00:17:17.600
eigentlich gar nicht mehr braucht.

00:17:17.600 --> 00:17:20.560
Weil die schwierigen Teile in Django REST-Framework,

00:17:20.560 --> 00:17:22.020
die sind jetzt eigentlich schon in Django Core drin.

00:17:22.020 --> 00:17:23.880
Und jetzt geht es halt noch darum,

00:17:23.880 --> 00:17:25.500
das alles so ein bisschen aufzuhübschen,

00:17:25.500 --> 00:17:26.960
das Request-Objekt zu modernisieren,

00:17:26.960 --> 00:17:28.520
dass man halt jetzt sehr viel leichter

00:17:28.520 --> 00:17:30.900
JSON da auch rausrennen kann oder irgendwas anderes halt XML.

00:17:30.900 --> 00:17:33.300
Gut, mittlerweile benutzen alle nur noch JSON.

00:17:33.300 --> 00:17:36.960
Ja, das ist auf jeden Fall das, was ...

00:17:36.960 --> 00:17:38.880
Jason, eine von den Sachen in Django 5 ist

00:17:38.880 --> 00:17:39.980
Formulare.

00:17:39.980 --> 00:17:43.020
Django 5 ist auch Formulare? Ja, ein bisschen besser.

00:17:43.020 --> 00:17:45.100
Also Formulare sind auch jetzt schon, da wird

00:17:45.100 --> 00:17:46.980
auch schon viel dran gemacht. Ja, ich meine, also

00:17:46.980 --> 00:17:49.080
der Anwendungsfall

00:17:49.080 --> 00:17:50.460
an der Stelle ist halt einfach, dass man

00:17:50.460 --> 00:17:52.700
lieber, also das war früher etwas schwierig,

00:17:52.700 --> 00:17:55.080
man möchte halt

00:17:55.080 --> 00:17:56.920
Teile von Formularen und so rendern können besser.

00:17:56.920 --> 00:17:59.520
Also gerade so interaktiv

00:17:59.520 --> 00:18:01.080
möchte man gerne das

00:18:01.080 --> 00:18:03.060
Verhalten so haben, wie jetzt man das in der SBA halt

00:18:03.060 --> 00:18:05.160
auch hat, nur halt mit

00:18:05.160 --> 00:18:07.000
ordentlicher Serversite, Validierung von

00:18:07.000 --> 00:18:09.160
irgendwelchen Eingabedaten und so. Und das geht

00:18:09.160 --> 00:18:11.240
natürlich auch. Also, das habe ich auch schon häufiger

00:18:11.240 --> 00:18:13.300
gemacht, dass man dann halt, sobald sich

00:18:13.300 --> 00:18:15.220
irgendwie ein Feld von einem

00:18:15.220 --> 00:18:17.020
Formular ändert, dass man dann halt das

00:18:17.020 --> 00:18:19.100
an den Server schickt und dann kriegt man halt sozusagen

00:18:19.100 --> 00:18:20.920
nur das gerenderte Feld zurück

00:18:20.920 --> 00:18:23.340
und ersetzt das dann. Und dann, wenn da eine Fehlermeldung

00:18:23.340 --> 00:18:25.140
drinsteht, dann steht die halt auch da drin und so. Das geht alles.

00:18:25.140 --> 00:18:27.840
Aber irgendwie zum Beispiel mit Crispy Forms

00:18:27.840 --> 00:18:29.440
irgendwie einzelne Felder rendern

00:18:29.440 --> 00:18:31.480
ist halt, ist es möglich?

00:18:31.480 --> 00:18:33.140
Es ist halt irgendwie nicht.

00:18:33.320 --> 00:18:35.020
das macht keinen Spaß. Und das zu testen

00:18:35.020 --> 00:18:36.880
macht auch nicht so richtig Spaß und das ist alles

00:18:36.880 --> 00:18:38.520
so ein bisschen, und ja, da wird auch viel daran gearbeitet,

00:18:38.520 --> 00:18:40.680
damit das halt einfacher wird und besser geht alles.

00:18:40.680 --> 00:18:43.240
Ja.

00:18:43.240 --> 00:18:47.120
Ja, genau, Django 4.2.

00:18:47.120 --> 00:18:49.140
Ja. Ich hab gehört, die Twitter-API ist kaputt.

00:18:49.140 --> 00:18:50.480
Ja.

00:18:50.480 --> 00:18:53.200
Das ist auch schon lange her.

00:18:53.200 --> 00:18:55.140
Bei Twitter ist noch alles möglich kaputt gegangen.

00:18:55.140 --> 00:18:56.980
Ja, es ist

00:18:56.980 --> 00:18:58.980
da...

00:18:58.980 --> 00:19:01.000
Du machst ja immer gerne so einen

00:19:01.000 --> 00:19:02.440
Pann, deswegen dachte ich...

00:19:02.440 --> 00:19:04.840
Ich glaube, das ist echt total

00:19:04.840 --> 00:19:06.540
veraltet, was da drin steht. Also das ist

00:19:06.540 --> 00:19:08.800
irgendwie von vor zwei Monaten oder so, dass das halt

00:19:08.800 --> 00:19:10.940
jetzt die APIs zugemacht haben.

00:19:10.940 --> 00:19:12.680
Ja, und das halt für viele Leute war das halt echt

00:19:12.680 --> 00:19:14.780
nochmal so ein Grund, dann auch

00:19:14.780 --> 00:19:15.980
zu Mastodon zu wechseln, weil

00:19:15.980 --> 00:19:19.080
für Mastodon gibt es jetzt noch irgendwie ordentliche

00:19:19.080 --> 00:19:20.260
Apps und Twitch wird halt nicht mehr.

00:19:20.260 --> 00:19:21.780
Gibt es nur die

00:19:21.780 --> 00:19:26.700
Standard-App und die ist halt Mist.

00:19:26.700 --> 00:19:29.340
Genau.

00:19:30.640 --> 00:19:32.540
Ah, was auch noch ganz interessant ist vielleicht,

00:19:32.540 --> 00:19:34.220
ist,

00:19:34.220 --> 00:19:36.520
es gibt das Pidentic.

00:19:36.520 --> 00:19:40.700
Pidentic hat irgendwie Venture Capital

00:19:40.700 --> 00:19:42.700
eingesammelt. Oh, okay.

00:19:42.700 --> 00:19:44.540
Ja, ja. Fünf Millionen

00:19:44.540 --> 00:19:46.580
von Sequoia oder so. Okay.

00:19:46.580 --> 00:19:48.580
Was ich jetzt, weiß ich nicht, ob man

00:19:48.580 --> 00:19:50.640
sich darüber freuen soll oder ob man besorgt sein soll.

00:19:50.640 --> 00:19:52.620
Gut oder schlecht? Das kann beides sein,

00:19:52.620 --> 00:19:54.520
das ist so unklar. Ich weiß nicht genau,

00:19:54.520 --> 00:19:56.460
wie sie sich vorgestellt haben, dass sie das Investment

00:19:56.460 --> 00:19:57.380
wieder reinholen, aber

00:19:57.380 --> 00:20:00.160
das ist natürlich das Problem,

00:20:00.300 --> 00:20:02.340
Wenn man jetzt irgendwie ganz viel Infrastruktur, also

00:20:02.340 --> 00:20:04.440
Pidentic als Infrastruktur verwendet

00:20:04.440 --> 00:20:06.180
und darauf aufbaut, dann ist es so, okay,

00:20:06.180 --> 00:20:08.520
hm, haben die

00:20:08.520 --> 00:20:10.580
jetzt ein großes Incentives, mich irgendwie

00:20:10.580 --> 00:20:11.900
dafür bezahlen zu lassen?

00:20:11.900 --> 00:20:14.340
Das will man vielleicht nicht unbedingt, aber

00:20:14.340 --> 00:20:16.460
ja,

00:20:16.460 --> 00:20:18.240
auf der anderen Seite, was natürlich

00:20:18.240 --> 00:20:20.180
vielleicht schon schön wäre, ist, wenn da halt so ein bisschen

00:20:20.180 --> 00:20:22.240
mehr, also ich glaube,

00:20:22.240 --> 00:20:23.900
der hat dann noch, also hier, wie heißt der noch?

00:20:23.900 --> 00:20:26.240
Samuel? Der Bastian Ramirez? Nee, das ist der

00:20:26.240 --> 00:20:28.020
von FastAPI, aber

00:20:28.020 --> 00:20:30.180
der ist Samuel Colvin, glaube ich, heißt der?

00:20:30.300 --> 00:20:32.120
von Pydentic. Macht die

00:20:32.120 --> 00:20:33.880
natürlich auch mit Pydentic?

00:20:33.880 --> 00:20:35.920
Ja, kann sein. Weiß ich nicht so genau.

00:20:35.920 --> 00:20:38.100
Aber der hat

00:20:38.100 --> 00:20:39.900
jetzt dann auch irgendwie Leute angeheuert und

00:20:39.900 --> 00:20:41.200
jetzt gibt es dann noch ein bisschen mehr

00:20:41.200 --> 00:20:43.880
Druck irgendwie beim Entwickeln

00:20:43.880 --> 00:20:46.060
an der Stelle und das ist natürlich vielleicht schon

00:20:46.060 --> 00:20:47.980
nicht so schlecht, weil also Pydentic ist ja eigentlich schon

00:20:47.980 --> 00:20:50.020
eine sehr coole Idee. Ich fände das auch mal gerne,

00:20:50.020 --> 00:20:52.080
wenn man mal irgendwie

00:20:52.080 --> 00:20:54.060
so wirklich validieren will, dass die Daten,

00:20:54.060 --> 00:20:55.600
die man irgendwo reinbekommt, halt so richtig

00:20:55.600 --> 00:20:58.200
so quasi tatsächlich dem entsprechen, was man erwartet.

00:20:58.200 --> 00:20:59.880
Ja, hat eine so schöne Syntax.

00:21:00.300 --> 00:21:02.040
Man schreibt eigentlich nur die Type-Annotations hin

00:21:02.040 --> 00:21:04.160
und dann, genau, hat man

00:21:04.160 --> 00:21:05.920
hinterher validierte Daten. Das ist ja alles

00:21:05.920 --> 00:21:07.260
echt schick.

00:21:07.260 --> 00:21:08.580
Du hast natürlich recht, ja.

00:21:08.580 --> 00:21:11.940
Ja, genau. Aber das,

00:21:11.940 --> 00:21:14.300
was halt so ein bisschen problematisch ist, ist halt, dass es sehr langsam

00:21:14.300 --> 00:21:16.260
im Vergleich zu Standard

00:21:16.260 --> 00:21:18.200
Python-Objekte irgendwie einfach nur

00:21:18.200 --> 00:21:20.020
erstellen. Da kannst du ja Python-Icon nehmen, damit

00:21:20.020 --> 00:21:21.860
das dann auch in Rust läuft. Ja, genau. Und wenn das dann

00:21:21.860 --> 00:21:23.920
in Rust ist, ist es natürlich auch klar,

00:21:23.920 --> 00:21:25.660
dass man mehr Arbeit hat, das in Rust zu schreiben und so.

00:21:25.660 --> 00:21:28.060
Ja, also mal gucken. Aber es ist auf jeden Fall eine interessante

00:21:28.060 --> 00:21:29.560
Entwicklung und gut,

00:21:30.100 --> 00:21:32.020
Ja, wie es ausgeht, wissen wir nicht.

00:21:32.020 --> 00:21:34.320
Dann haben wir noch, was haben wir noch?

00:21:34.320 --> 00:21:40.420
Node.js 20, naja, ich weiß nicht, ob das irgendwie interessant ist.

00:21:40.420 --> 00:21:41.240
Nö, eigentlich nicht.

00:21:41.240 --> 00:21:48.080
Ja, Pythonista ist eine neue Version veröffentlicht worden.

00:21:48.080 --> 00:21:50.360
Das freut mich ja total.

00:21:50.360 --> 00:21:52.400
Aber ich glaube, vielen Leuten wird das nichts sagen.

00:21:52.400 --> 00:21:58.400
Aber es gibt für iOS eine App namens Pythonista.

00:21:58.660 --> 00:22:00.900
da kann man tatsächlich Python-Code ausführen.

00:22:00.900 --> 00:22:03.140
Also man kriegt dann halt so eine richtige interaktive

00:22:03.140 --> 00:22:05.180
Shell und da ist auch NumPy mit drin und der ganze Kram

00:22:05.180 --> 00:22:07.560
auf dem Telefon.

00:22:07.560 --> 00:22:08.380
Achso.

00:22:08.380 --> 00:22:10.940
Und man kann sogar dann Python-Programme...

00:22:10.940 --> 00:22:12.580
Ja, ja.

00:22:12.580 --> 00:22:14.820
Man kann da auch Programme dann ausführen und so.

00:22:14.820 --> 00:22:17.080
Man kann die auch, das habe ich schon mal gemacht,

00:22:17.080 --> 00:22:19.180
dann, dass man im Share-Sheet sagen kann,

00:22:19.180 --> 00:22:21.100
ich share das jetzt mit irgendwie

00:22:21.100 --> 00:22:22.880
einem Python-Skript und dann

00:22:22.880 --> 00:22:25.000
kriege ich das Python-Skript das und kann damit

00:22:25.000 --> 00:22:27.020
irgendwas machen. Also man kann da tatsächlich irgendwie

00:22:27.020 --> 00:22:28.800
Python-Code auf Telefonen und

00:22:28.800 --> 00:22:30.500
iPads und so ausführen

00:22:30.500 --> 00:22:33.040
und das ist jetzt halt in der Version erschienen,

00:22:33.040 --> 00:22:34.800
dass Python 3.10 unterstützt wird und

00:22:34.800 --> 00:22:36.860
ja, das ist schon sehr nett.

00:22:36.860 --> 00:22:38.840
Also das ist wirklich, wie das mit dieser

00:22:38.840 --> 00:22:40.920
App-Store-Policy vereinbar ist, dass eigentlich

00:22:40.920 --> 00:22:43.300
nur Objective-C,

00:22:43.300 --> 00:22:44.940
Swift und irgendwie C

00:22:44.940 --> 00:22:46.800
und C++ irgendwie ausgeführt werden können,

00:22:46.800 --> 00:22:48.940
sollen, ist mir

00:22:48.940 --> 00:22:50.480
nicht so ganz klar. Eigentlich

00:22:50.480 --> 00:22:52.880
ja, war es wahrscheinlich zu unbekannt,

00:22:52.880 --> 00:22:54.420
dass da jemand wirklich mal drauf geguckt hätte.

00:22:57.020 --> 00:22:57.860
Jetzt rausgekegelt.

00:22:57.860 --> 00:23:00.820
Aber es ist wirklich toll. Also das ist auch

00:23:00.820 --> 00:23:01.960
mit sehr viel Liebe

00:23:01.960 --> 00:23:04.520
handgedengelt. Ja, sehr schön.

00:23:04.520 --> 00:23:06.600
Ja.

00:23:06.600 --> 00:23:08.380
Ich finde, wir können ja langsam mal übergehen.

00:23:08.380 --> 00:23:09.400
Wir könnten langsam mal übergehen, ne?

00:23:09.400 --> 00:23:11.160
Interessanten Dingen.

00:23:11.160 --> 00:23:14.220
Genau, machen wir doch einfach mal so allmählich das Thema.

00:23:14.220 --> 00:23:16.380
Ansonsten habe ich ja auch nur so Meta-Kram und so Zeugs.

00:23:16.380 --> 00:23:18.540
Ja, wir wollten heute so ein bisschen über grafische

00:23:18.540 --> 00:23:20.500
Interfaces reden. Ja, haben wir noch nie gemacht.

00:23:20.500 --> 00:23:22.140
Genau, und was man da machen kann.

00:23:22.140 --> 00:23:23.940
Also ich höre ja immer, oder ich

00:23:23.940 --> 00:23:26.340
weiß das aus eigener Erfahrung, dass man grafische Interfaces

00:23:26.340 --> 00:23:28.360
Python vielleicht gar nicht so wirklich machen will.

00:23:28.360 --> 00:23:31.080
Man kann vielleicht

00:23:31.080 --> 00:23:31.920
Turtle benutzen oder so.

00:23:31.920 --> 00:23:34.880
Ja, es ist die Frage, ob man das überhaupt noch machen will, aber gut.

00:23:34.880 --> 00:23:37.180
Ja, aber

00:23:37.180 --> 00:23:38.820
genau, es gibt verschiedene Sachen

00:23:38.820 --> 00:23:40.840
in Python dazu und vielleicht mal den Martin

00:23:40.840 --> 00:23:42.820
fragen, warum benutzt du denn Qt?

00:23:42.820 --> 00:23:44.480
Oder wer bist du eigentlich?

00:23:44.480 --> 00:23:46.240
Ja, vielleicht bringst du einfach erstmal.

00:23:46.240 --> 00:23:48.960
Ja, also

00:23:48.960 --> 00:23:50.740
ich bin Martin von miaplan.de

00:23:50.740 --> 00:23:52.720
und soll ich mich kurz

00:23:52.720 --> 00:23:54.900
vorstellen oder wie habt ihr euch das gedacht?

00:23:55.400 --> 00:24:05.220
Also vielleicht kurz zu mir. Ich habe Bioinformatik studiert, war dann fünf Jahre in der Softwareentwicklung, erst im SAP-Umfeld, dann im Bereich Automobil.

00:24:05.220 --> 00:24:13.320
Dann habe ich das Angebot bekommen, in den Familienbetrieb meiner Eltern mit einzusteigen.

00:24:14.000 --> 00:24:18.220
Die machen Märkte im Einzelhandel, also Fressnapf.

00:24:18.220 --> 00:24:28.380
Und das habe ich angenommen und habe dann gesehen, wie meine Mutter dort die Dienstpläne erstellt.

00:24:28.380 --> 00:24:30.960
Also sie hatte Personalverantwortung sozusagen, hat Dienstpläne erstellt.

00:24:30.960 --> 00:24:41.960
Und sie hat dort Excel-Listen erstellt und hat ein Kreuz für jede halbe Stunde gemacht, die ihren Mitarbeiter sozusagen eingeplant ist.

00:24:42.580 --> 00:24:51.680
Das Ganze für damals zehn Mitarbeiter, acht Stunden pro Tag, 26 Tage im Monat, da kann man sich dann vorstellen, wie viele Kreuze sie da gemacht hat.

00:24:51.680 --> 00:25:07.960
Sie hatte dann irgendwann sich eine größere Sammlung an Bleistiften zugelegt, weil die halt der Reihe nach abgenutzt waren und ja, das habe ich mir eine Weile angeschaut und habe mir dann gedacht, also das muss besser gehen und ja, da war dann Miaplan geboren.

00:25:09.360 --> 00:25:36.620
Ja, vielleicht dazu, was ist MIA Plan? Also das ist ein SAS, also Software as a Service zur Dienstplanung. Man kann damit machen Schichtplanung, Planung in der Produktion, also wenn man Maschinen hat, automatische Planung, Bereitschaftsdienste, Nachtarbeit, ja, also alles, was man sich da so will oder fast alles, was man sich da so wünschen kann in dem Bereich.

00:25:37.900 --> 00:25:42.160
Ja, klingt interessant.

00:25:42.160 --> 00:25:43.680
Also ich glaube, die Menge der Unternehmen,

00:25:43.680 --> 00:25:45.020
die das halt irgendwie mit Excel-Listen machen,

00:25:45.020 --> 00:25:46.120
das wird nicht so klein sein.

00:25:46.120 --> 00:25:47.200
Das habe ich auch schon häufig gesehen.

00:25:47.200 --> 00:25:50.020
Also ich habe ganz oft da schon die Anforderungen an sowas gehört.

00:25:50.020 --> 00:25:51.320
Aber mich würde jetzt interessieren,

00:25:51.320 --> 00:25:54.000
warum denn mit Qt und nicht als Web-Anwendung?

00:25:54.000 --> 00:25:56.420
Ja, ganz kurz zu Excel.

00:25:56.420 --> 00:25:57.560
Also Excel machen, glaube ich, alle.

00:25:57.560 --> 00:25:59.760
Also man fängt halt mit Excel an,

00:25:59.760 --> 00:26:04.000
probiert es quasi umzusetzen, was man sich halt so wünscht.

00:26:04.000 --> 00:26:05.840
Und irgendwann stößt man an Grenzen.

00:26:06.520 --> 00:26:08.520
Ich glaube, das haben halt alle.

00:26:08.520 --> 00:26:11.520
Und dann fängt man halt an, sich umzuschauen.

00:26:11.520 --> 00:26:16.240
Ja, warum QT?

00:26:16.240 --> 00:26:21.380
Also ich habe mir angeguckt, wie komme ich quasi zum Ziel?

00:26:21.380 --> 00:26:24.660
Also am Anfang des Projektes war klar,

00:26:24.660 --> 00:26:25.900
ich brauche eine grafische Oberfläche.

00:26:25.900 --> 00:26:29.340
Ja, die soll im Web stattfinden.

00:26:29.340 --> 00:26:35.020
Also das soll quasi nicht auf einer Computer installiert werden,

00:26:35.520 --> 00:26:53.040
Denn, ja, also wir wollen eigentlich von überall planen, also nicht nur, man hat nicht immer einen Rechner zur Verfügung und meine Mutti war nicht immer am Rechner zu Hause, sondern die wollte halt auch vom Markt aus planen und was weiß ich. Also es war klar, das muss irgendwie auch ins Web, das Ganze.

00:26:54.060 --> 00:27:10.120
Hab mir verschiedene Sachen angeschaut. Ihr habt es ja auch schon so ein bisschen angesprochen. Also es gibt zig Frameworks, die man nutzen kann. Euer Liebling ist Django, wie man unschwer raushört, wenn man euch kennt. Das habe ich mir auch angeschaut. Kann ich ja dann noch ein bisschen was zu erzählen.

00:27:11.720 --> 00:27:33.560
Ansonsten, wenn man jetzt nicht die Bedingung Web hat, gibt es verschiedene Frameworks. Also Kiwi ist eins davon. Qt ist eins davon. Ansonsten gibt es auch noch GTK zum Beispiel. Das gibt Toolkit. Und ja, habe ich mir sozusagen alle der Reihe nochmal angeguckt und geschaut, was können die für mich leisten sozusagen.

00:27:35.000 --> 00:27:55.140
Und wenn man die so vergleicht, also die Frameworks für den Desktop, dann kommt man eigentlich darauf, dass es zwei Frameworks gibt, die da nur in Frage kommen. Das ist einmal QT und einmal GTK. Das sind die einzigen, die, ich sag mal, weit fortgeschrittene Widgets bieten.

00:27:55.620 --> 00:28:07.740
Also wenn man quasi sehr spezielle Sachen machen will und das will ich, dann kommt man eigentlich um QT beziehungsweise GTK nicht drumherum.

00:28:07.740 --> 00:28:12.740
Was wäre so ein Widget beispielsweise, wo du sagen würdest, gut, das ist halt so was, was man nur da bekommt?

00:28:12.740 --> 00:28:22.360
Ja, also zum Beispiel Tabellen, aber nicht einfach nur Tabellen, sondern halt spezielle Tabellen.

00:28:22.360 --> 00:28:39.520
Zum Beispiel brauchte ich Tabellen, die ein Kontextmenü können, die sollten Farben können. Ich wollte Farbige Frames um die Zellen zeichnen. Ich brauche Callbacks, wenn ich einen Klick auf so eine Tabellenzelle mache und so weiter.

00:28:40.260 --> 00:28:57.620
Und ich habe mir das Ganze auch im Web angeschaut, also die Webframeworks angenommen. Ich hätte jetzt Django genommen. Dann hätte ich wahrscheinlich irgendeine Art JavaScript-Tabellenframework genommen. Und ich habe dort sehr, sehr lange gesucht. Ich habe keins gefunden, was alles kann, was ich brauche.

00:28:58.620 --> 00:29:18.780
Und dann habe ich überlegt, naja, jetzt könnte ich das vielleicht anders umsetzen, als ich mir das eigentlich vorstelle. Also ich könnte, weiß ich nicht, die Bedienung müsste ich dann halt so umstricken, dass das irgendwie dann die jeweilige Bibliothek kann. Und das wollte ich aber nicht. Also ich wollte das eigentlich so machen, wie ich mir das vorstelle.

00:29:21.140 --> 00:29:37.980
Und ja, da kam ich eigentlich nur bei Qt raus. Also Qt hat sehr weit entwickelte Widgets und damit kann man, also sagen wir so, ich habe noch nichts gefunden, was man damit nicht umsetzen könnte. Und das ist alles schon da.

00:29:38.640 --> 00:30:06.440
Also ich brauche dann nichts mehr selber entwickeln sozusagen, also was die Oberfläche angeht, sondern QT bietet eigentlich von Haus aus schon alles, was man sich vorstellen kann. Und das war quasi, sag mal, eine Grundvoraussetzung, denn ich bin in einem Mann SAS, das heißt, ich brauche eine hohe Entwicklungsgeschwindigkeit, sonst komme ich nicht zum Ziel.

00:30:07.700 --> 00:30:29.080
Und genau, ja, das war quasi die Bedingung und hätte ich angefangen, da mir einen Web-Framework rauszusuchen. Django, ich habe ein Testprojekt aufgesetzt schon gehabt und habe mal geguckt, wie weit ich komme. Aber da hat sich ziemlich schnell herausgestellt, da hätte ich sehr, sehr viel selber entwickeln müssen an Funktionalität. Und das kam nicht in Frage.

00:30:29.080 --> 00:30:31.940
Und wie machst du es hübsch?

00:30:33.360 --> 00:30:38.740
Werd mal spezieller, was genau

00:30:38.740 --> 00:30:40.680
stellst du dir heute hübsch vor? Also wie kannst du das

00:30:40.680 --> 00:30:42.160
erst teilen, also oder sieben oder

00:30:42.160 --> 00:30:44.560
musst du da alle

00:30:44.560 --> 00:30:46.740
Widgets einzeln überschreiben

00:30:46.740 --> 00:30:48.720
ist das responsive oder musst du

00:30:48.720 --> 00:30:50.140
jeweils eine eigene Applikation für

00:30:50.140 --> 00:30:52.620
verschiedene Geräte schreiben oder wie löst

00:30:52.620 --> 00:30:54.040
Qt das? Ja

00:30:54.040 --> 00:30:56.840
da müsste ich vielleicht erst mal

00:30:56.840 --> 00:30:58.800
sagen, wie ich das überhaupt gebaut

00:30:58.800 --> 00:31:00.180
habe, das Ganze, also

00:31:00.180 --> 00:31:02.820
fangen wir von vorne an vielleicht, ja. Fangen wir mal von vorne an

00:31:02.820 --> 00:31:11.900
Also es stand sozusagen fest, oder ihr könnt ja auch vielleicht noch mal was zu den Widgets sagen und wie man die in Django einbindet.

00:31:11.900 --> 00:31:18.100
Aber für mich stand fest, okay, mit Qt kann ich sozusagen das sehr schnell umsetzen, was ich brauche.

00:31:18.100 --> 00:31:25.600
Jetzt hat Qt aber ein Problem, das ist eigentlich eine Desktop-Framework.

00:31:25.600 --> 00:31:43.360
Ja, also üblicherweise würde ich also eine Software schreiben, würde die dann bundeln, ja, also mit Pi-Installer, was weiß ich, und würde die dann sozusagen eine Software mir erstellen und die dann zum Kunden liefern oder würde die zum Download anbieten oder so.

00:31:44.940 --> 00:32:04.500
Ging in dem Fall, also in meinem Fall sozusagen nicht. Jetzt ist die Frage, wie kriegen wir quasi die Desktop-Anwendung ins Web? Und die Lösung dafür lautet Apache Jack-a-Molly. Das ist quasi, ich weiß nicht, habt ihr das schon mal gehört?

00:32:04.500 --> 00:32:27.260
Das ist im Prinzip wie Remote Desktop, aber ohne Client. Das heißt, jeder Nutzer bekommt quasi einen Account und lockt sich damit sozusagen auf meinen Servern ein und läuft damit unter einen Nutzeraccount.

00:32:30.260 --> 00:32:47.980
Also ich starte dann sozusagen auf meinem Server eine Anwendung, zum Beispiel in Qt und die kriegt dann der Anwender zu sehen. Also die Software läuft sozusagen auf meinen Servern und der Anwender guckt sich das quasi von außen an und kann die Software auch bedienen und installiert aber selber nichts.

00:32:48.440 --> 00:33:01.380
Das heißt, es läuft rein über den Browser. Oder anders gesagt, Apache stellt quasi einen HTML5-Client schon zur Verfügung, der einfach im Browser läuft.

00:33:03.520 --> 00:33:05.940
Ja, ich glaube, ich habe das mal irgendwie gesehen.

00:33:05.940 --> 00:33:07.160
Wie heißt das?

00:33:07.160 --> 00:33:08.900
Guacamole?

00:33:08.900 --> 00:33:09.940
Guacamole?

00:33:09.940 --> 00:33:12.840
Auf der DjangoCon

00:33:12.840 --> 00:33:14.780
2021

00:33:14.780 --> 00:33:17.780
gab es

00:33:17.780 --> 00:33:19.440
einen Talk darüber, wo auch jemand

00:33:19.440 --> 00:33:21.480
eine Shell

00:33:21.480 --> 00:33:23.640
quasi damit, also konnte man

00:33:23.640 --> 00:33:25.220
halt quasi auf eine Shell zugreifen,

00:33:25.220 --> 00:33:26.200
auch über einen Browser.

00:33:26.200 --> 00:33:28.720
Das war ziemlich cool.

00:33:28.720 --> 00:33:30.780
Und das ist jetzt quasi das gleiche System,

00:33:30.780 --> 00:33:32.520
wie das funktioniert. Ja, sehr schick.

00:33:33.320 --> 00:33:35.320
Cool Idee. Also theoretisch kann man

00:33:35.320 --> 00:33:36.660
damit einen ganzen Desktop

00:33:36.660 --> 00:33:39.220
in den Browser reinzeichnen.

00:33:39.220 --> 00:33:41.080
Das ist auch die Standard,

00:33:41.080 --> 00:33:43.200
also der Standard-Anwendungsfall, aber es geht

00:33:43.200 --> 00:33:45.000
eben auch für eine einzelne Software.

00:33:45.000 --> 00:33:47.300
Ja. Genau.

00:33:47.300 --> 00:33:49.320
Ja, das hat den

00:33:49.320 --> 00:33:51.220
Vorteil, dass ich Qt

00:33:51.220 --> 00:33:51.720
nutzen kann.

00:33:51.720 --> 00:33:55.380
Mittlerweile macht mir Qt auch Spaß.

00:33:55.380 --> 00:33:56.940
Also mittlerweile im Sinne von, jetzt

00:33:56.940 --> 00:33:58.120
weiß ich, wie es funktioniert.

00:33:58.120 --> 00:34:01.020
Das heißt, das hat ein bisschen gedauert. Hört sich so an,

00:34:01.020 --> 00:34:03.040
als wäre die Lernkommissar. Ja, ja. Also die

00:34:03.040 --> 00:34:05.180
Lernkurve ist schon steil, würde

00:34:05.180 --> 00:34:06.100
ich behaupten.

00:34:06.100 --> 00:34:09.040
Aber, also ich habe

00:34:09.040 --> 00:34:11.180
festgestellt, das kann eigentlich alles, was man braucht.

00:34:11.180 --> 00:34:13.040
Also ich habe noch nichts gefunden, was

00:34:13.040 --> 00:34:13.660
das Ding nicht kann.

00:34:13.660 --> 00:34:17.000
Und was außerdem Spaß macht, ist,

00:34:17.000 --> 00:34:18.960
also ich arbeite jetzt seit ungefähr drei Jahren

00:34:18.960 --> 00:34:21.100
damit und ich habe insgesamt

00:34:21.100 --> 00:34:22.120
fünf Bugs gefunden.

00:34:22.120 --> 00:34:24.880
Und das ist

00:34:24.880 --> 00:34:25.880
echt wenig.

00:34:25.880 --> 00:34:29.040
Also da habe ich schon

00:34:29.040 --> 00:34:30.280
ganz, ganz andere Sachen erlebt.

00:34:32.520 --> 00:34:34.380
Genau, also das ist, also

00:34:34.380 --> 00:34:35.920
macht echt Spaß, muss ich sagen.

00:34:35.920 --> 00:34:38.840
Ja, ansonsten

00:34:38.840 --> 00:34:40.560
kann ich

00:34:40.560 --> 00:34:42.320
fast nur

00:34:42.320 --> 00:34:44.440
synchronen Code schreiben. Ihr habt ja schon

00:34:44.440 --> 00:34:46.520
ein bisschen gesprochen, die Frameworks

00:34:46.520 --> 00:34:47.760
stellen jetzt alle auf Async um,

00:34:47.760 --> 00:34:50.480
damit die mehrere, also

00:34:50.480 --> 00:34:52.280
mehr Requests quasi handeln können

00:34:52.280 --> 00:34:54.660
und ich habe eigentlich den Vorteil,

00:34:54.660 --> 00:34:56.480
ich kann synchronen

00:34:56.480 --> 00:34:58.520
Code schreiben. Ja, ja, das ist

00:34:58.520 --> 00:35:00.020
natürlich, wenn man es aus Entwicklersicht

00:35:00.020 --> 00:35:02.460
angenehmer. Ja, das ist deutlich

00:35:02.460 --> 00:35:04.740
angenehmer und es ist einfach.

00:35:04.740 --> 00:35:05.560
Ja.

00:35:05.560 --> 00:35:08.340
Es ist sehr einfach.

00:35:08.340 --> 00:35:10.420
Ja,

00:35:10.420 --> 00:35:11.920
ich meine, ich glaube auch, dass

00:35:11.920 --> 00:35:14.500
Qt hat halt irgendwie, das ist halt

00:35:14.500 --> 00:35:16.560
schon, das ist halt eigentlich ein sehr, sehr altes

00:35:16.560 --> 00:35:18.520
Projekt tatsächlich, aus heutiger Sicht nicht,

00:35:18.520 --> 00:35:20.800
weil ich weiß gar nicht, wann das genau gestartet

00:35:20.800 --> 00:35:22.480
ist und wann es die Firma

00:35:22.480 --> 00:35:24.520
dazu gab. KDE ist ja da irgendwie, das war schon

00:35:24.520 --> 00:35:26.060
so in den 90ern irgendwie, ist das

00:35:26.060 --> 00:35:27.280
ich

00:35:27.280 --> 00:35:30.400
weiß gar nicht, wann Qt gestartet ist, aber

00:35:30.400 --> 00:35:32.160
muss irgendwann in den 90ern wahrscheinlich gewesen sein.

00:35:32.460 --> 00:35:36.200
Und das ist jetzt in Version 5 oder 6 oder wie benutzt ihr das?

00:35:36.200 --> 00:35:41.300
Ich mache gerade die Transition von 5 nach 6.

00:35:41.300 --> 00:35:46.920
Und das ist keine komplett Open-Source-Lizenz, wenn ich das richtig in Erinnerung habe.

00:35:46.920 --> 00:35:51.120
Genau, also das ist dual lizenziert.

00:35:51.120 --> 00:35:54.480
Also es hängt ein bisschen davon ab, welche Version du nutzt.

00:35:54.480 --> 00:36:01.640
Immer die aktuellste Version, meine ich, ist ausschließlich kommerziell.

00:36:02.460 --> 00:36:12.620
Und die Lizenz, also da bin ich jetzt nicht hundertprozentig drin, aber die Lizenz sagt so in etwa, wenn der Code ein Jahr alt ist, dann müssen sie es zusätzlich unter die LGPL stellen.

00:36:12.620 --> 00:36:21.640
Also wenn man quasi die LGPL-Lizenz nutzen will, dann ist der Code recht gut abgehangen, sozusagen.

00:36:21.640 --> 00:36:26.140
Also LGPL ist Strong Copy Left, wenn ich das richtig verstehe?

00:36:27.820 --> 00:36:45.460
Da müsste ich jetzt meinen Anwalt fragen. Aber ja, es ist eine relativ restriktive Lizenz und man muss schauen, dass man das, also wenn man das verwenden will und man möchte es kommerziell einsetzen, dann muss man schon ganz genau hingucken, sage ich mal.

00:36:46.680 --> 00:36:47.160
Ja.

00:36:47.160 --> 00:36:50.460
Ja, ja, ja, ja.

00:36:50.460 --> 00:36:53.740
Ja, interessant.

00:36:53.740 --> 00:36:55.940
Ja, ja, ich...

00:36:55.940 --> 00:36:58.420
Genau, MySQL hatte doch so eine ähnliche

00:36:58.420 --> 00:37:00.400
Lizenz, aber ich bin mir nicht sicher,

00:37:00.400 --> 00:37:01.840
ob es die LGPL war, wahrscheinlich eher nicht.

00:37:01.840 --> 00:37:02.900
Ja.

00:37:02.900 --> 00:37:04.700
Ja.

00:37:04.700 --> 00:37:07.660
Ja, nee.

00:37:07.660 --> 00:37:09.800
Qt irgendwie...

00:37:09.800 --> 00:37:11.560
Aber ich meine, dann...

00:37:11.560 --> 00:37:13.900
Qt selber ist ja

00:37:13.900 --> 00:37:15.900
irgendwie in C++

00:37:15.900 --> 00:37:16.720
geschrieben, glaube ich.

00:37:16.720 --> 00:37:19.760
Wie greift man denn dann von

00:37:19.760 --> 00:37:22.140
Python, weil ich meine, die Anwendung

00:37:22.140 --> 00:37:24.100
ist ja dann in Python irgendwie geschrieben, hauptsächlich.

00:37:24.100 --> 00:37:26.220
Richtig, genau. Das ist 100% Python.

00:37:26.220 --> 00:37:28.100
Wie kommt man denn dann an C++

00:37:28.100 --> 00:37:29.960
dran? Da braucht man ja wahrscheinlich irgendeinen Wrapper um

00:37:29.960 --> 00:37:31.140
PyQT oder sowas.

00:37:31.140 --> 00:37:33.920
Irgendwie sowas. Das ist, die haben

00:37:33.920 --> 00:37:36.020
ja eine

00:37:36.020 --> 00:37:38.000
Python API. Python Bindings

00:37:38.000 --> 00:37:39.920
quasi. Python Bindings, richtig.

00:37:39.920 --> 00:37:41.280
Und

00:37:41.280 --> 00:37:44.000
die Widgets, die du brauchst, die kannst du auch einfach quasi

00:37:44.000 --> 00:37:45.940
in jedem Betriebssystem jetzt wieder verwenden,

00:37:45.940 --> 00:37:46.640
wenn du das möchtest?

00:37:46.640 --> 00:37:49.860
Könnte ich, ja. Also Qt

00:37:49.860 --> 00:37:51.700
ist plattformunabhängig,

00:37:51.700 --> 00:37:53.900
also die laufen eigentlich fast überall.

00:37:53.900 --> 00:37:56.120
Ich setze

00:37:56.120 --> 00:37:57.340
es aber unter Linux einfach ein.

00:37:57.340 --> 00:37:59.000
Naja.

00:37:59.000 --> 00:38:02.240
Und wie machst du

00:38:02.240 --> 00:38:03.840
sowas wie Stylings und sowas, also wie

00:38:03.840 --> 00:38:06.100
das, was ich eben gesagt habe, mit Hübsch

00:38:06.100 --> 00:38:08.020
oder sowas, wie gehst du da vor,

00:38:08.020 --> 00:38:09.600
dass das irgendwie so ein bisschen dynamisch ist und so?

00:38:09.600 --> 00:38:12.100
Bietet das Qt einfach alles von Haus

00:38:12.100 --> 00:38:12.480
aus oder?

00:38:14.000 --> 00:38:41.020
Ja, Theming lässt sich machen mit Qt, es bringt aber von Haus aus schon quasi das Styling mit, das sieht einigermaßen nativ aus unter jeder Plattform, unter Linux hat es eben den Style, den es unter Linux hat, lässt sich aber anpassen, man kann quasi jedes Element nochmal separat stylen, wenn man das möchte, das geht einfach mit CSS dann, wenn man das möchte.

00:38:41.020 --> 00:38:54.240
Also die haben quasi so eine abgespeckte Art von CSS, unterstützen sie und ja, da kann man quasi seine Elemente dann färben oder einen anderen Rahmen geben oder was weiß ich.

00:38:57.180 --> 00:38:58.400
Ja, genau.

00:38:58.400 --> 00:39:01.180
Ja, ja, ja.

00:39:01.180 --> 00:39:03.240
Nee, interessant. Ich glaube, ich fand natürlich das letzte Mal

00:39:03.240 --> 00:39:04.860
mit Qt, also ich erinnere mich noch daran,

00:39:04.860 --> 00:39:07.000
das ist aber schon auch wieder ein bisschen her, glaube ich, 2016

00:39:07.000 --> 00:39:09.100
oder so, habe ich das letzte Mal irgendwie

00:39:09.100 --> 00:39:11.140
für einen Headless-Browser, den ich

00:39:11.140 --> 00:39:13.020
brauchte, weil irgendwie JavaScript

00:39:13.020 --> 00:39:14.380
ausgeführt werden sollte.

00:39:14.380 --> 00:39:16.900
Irgendwie, das war auch damals irgendwie

00:39:16.900 --> 00:39:18.580
das Ding, was ich da verwendet hatte.

00:39:18.580 --> 00:39:20.820
Das war auch noch diese,

00:39:20.820 --> 00:39:23.140
die, ich glaube, mit WebKit,

00:39:23.140 --> 00:39:24.920
die Engine war WebKit und dann

00:39:24.920 --> 00:39:26.480
brauchte man noch so ein bisschen

00:39:26.480 --> 00:39:29.340
Qt außenrum und dann musste ich da irgendwie

00:39:29.340 --> 00:39:31.280
Qt 5 selber kompilieren und ich erinnere mich noch,

00:39:31.280 --> 00:39:32.840
dass das ganz schön schmerzhaft war, aber

00:39:32.840 --> 00:39:35.400
Also ich erinnere mich auch daran, dass ich bin damals, glaube ich,

00:39:35.400 --> 00:39:37.440
über die Lizenz gestolpert. In meinen ersten

00:39:37.440 --> 00:39:39.260
Gehversuchen, so in Python, da wollte ich unbedingt,

00:39:39.260 --> 00:39:41.500
wie man das am Anfang macht, irgendwas mit GUI bauen,

00:39:41.500 --> 00:39:43.300
dass da irgendwie man was anzeigen kann auf seinem

00:39:43.300 --> 00:39:45.280
Bildschirm. Und dann habe ich so ein bisschen

00:39:45.280 --> 00:39:47.460
rumprobiert, auch mit Qt, aber das hat irgendwie nicht

00:39:47.460 --> 00:39:49.460
so funktioniert, wie ich das wollte

00:39:49.460 --> 00:39:51.640
und ich bin da so ein bisschen über diese C++-Implementierung

00:39:51.640 --> 00:39:53.400
gestolpert und ich fand auch diese PyQt

00:39:53.400 --> 00:39:55.480
nicht so super und bin dann bei Kiwi gelandet

00:39:55.480 --> 00:39:57.280
tatsächlich. Wo ich auch sagen muss, da gingen

00:39:57.280 --> 00:39:59.400
zwar ein paar Sachen, aber das war auch alles eher so

00:39:59.400 --> 00:40:00.880
ich weiß nicht genau.

00:40:00.880 --> 00:40:03.420
Nicht so, wie ich das eigentlich

00:40:03.420 --> 00:40:05.560
angenehm finde. Und dann habe ich es dann mit den

00:40:05.560 --> 00:40:07.580
GUIs wieder gelassen, beziehungsweise mit Web angefangen

00:40:07.580 --> 00:40:07.800
irgendwann.

00:40:07.800 --> 00:40:10.760
Ja, Kiwi.

00:40:10.760 --> 00:40:13.320
Also Kiwi, die Widgets sind halt,

00:40:13.320 --> 00:40:14.600
also die haben nicht genug Widgets.

00:40:14.600 --> 00:40:17.060
Da kommt man nicht weit, wenn man wirklich

00:40:17.060 --> 00:40:19.420
intensiv was damit machen will,

00:40:19.420 --> 00:40:19.900
finde ich.

00:40:19.900 --> 00:40:20.800
Ja.

00:40:23.620 --> 00:40:51.860
Ja, ich meine, aus meiner Perspektive wäre jetzt eher so die Frage, warum nicht, ich meine, warum macht man heutzutage überhaupt noch GUI? Ich meine, das macht man, eigentlich ist doch heute alles Web. Und sagen wir mal, das ist ja ein etwas anderes Modell und eigentlich vielleicht ein bisschen einfacher zu maintainen, gerade wenn man jetzt eben nicht so eine größere Organisation ist, sondern eher kleiner, dann ist das ja mit irgendwie, wie macht man das, wenn Clients inkompatibel werden oder so oder unterschiedliche Versionen hat oder das ist ja alles ganz schrecklich.

00:40:52.140 --> 00:41:10.900
Und das ist ja so ein Problem, das man halt hat, wenn man irgendwie klassisch Client-Server machen würde oder so oder diese alten Desktop-UI-Geschichten machen würde. Aber ich meine, klar, wenn du das zentral laufen lässt und greifst dann nur sozusagen auf das Ding, wo das dann läuft zu, dann hast du diese ganzen Probleme eigentlich nicht mehr.

00:41:11.160 --> 00:41:22.340
Richtig, also ich habe eine ganze Menge Probleme vom Hals geschafft sozusagen. Wo ich mir am Anfang sehr, sehr viele Gedanken darüber gemacht habe, ist, wie ist das ressourcentechnisch?

00:41:23.260 --> 00:41:42.580
Ja, also man hat ja quasi das, oder wenn man eine Web-Anwendung hat, dann habe ich ja quasi einen ganzen Schwung von Usern und die teilen sich in der Regel keinen, die teilen sich einen State in der Web-Anwendung, in der Regel würde ich jetzt mal behaupten.

00:41:42.580 --> 00:41:51.220
Und dadurch kann ich quasi die Ressourcen, sag mal, gleichmäßig auf meine Datenbank und so weiter verteilen.

00:41:52.760 --> 00:41:54.780
Ja, ich weiß nicht, also da kennt ihr euch eigentlich

00:41:54.780 --> 00:41:56.600
besser aus. Ja, also ich würde sagen, also der

00:41:56.600 --> 00:41:58.680
State einer Web-Anwendung liegt

00:41:58.680 --> 00:42:00.620
normalerweise in der Datenbank, sozusagen aus meiner

00:42:00.620 --> 00:42:02.800
Perspektive und genau, dann gibt es

00:42:02.800 --> 00:42:04.700
halt irgendwie diverse Prozesse, die halt

00:42:04.700 --> 00:42:06.640
an die man Requests hinschickt und dann senden sie halt

00:42:06.640 --> 00:42:07.320
Responses zurück

00:42:07.320 --> 00:42:10.120
und genau, ja.

00:42:10.120 --> 00:42:12.780
So, und da

00:42:12.780 --> 00:42:14.840
hatte ich das Problem, also ich dachte, es gäbe

00:42:14.840 --> 00:42:15.440
das Problem,

00:42:15.440 --> 00:42:18.880
dass ich das nicht machen kann, sozusagen.

00:42:18.880 --> 00:42:20.600
Also meine

00:42:20.600 --> 00:42:22.600
Anwendung, die ich, also Miaplan ist

00:42:22.600 --> 00:42:24.340
hat ein State

00:42:24.340 --> 00:42:25.180
für jeden Nutzer.

00:42:25.180 --> 00:42:28.180
Und hier

00:42:28.180 --> 00:42:30.260
hatte ich in meinem Django-Prototypen auch

00:42:30.260 --> 00:42:32.440
probiert, diesen Zustand

00:42:32.440 --> 00:42:34.520
quasi umzusetzen

00:42:34.520 --> 00:42:36.320
und bin da aber so schon

00:42:36.320 --> 00:42:38.280
irgendwie auf eine Hürde gestoßen. Also das

00:42:38.280 --> 00:42:39.440
scheint jedenfalls nicht

00:42:39.440 --> 00:42:42.460
nativ so zu gehen

00:42:42.460 --> 00:42:44.500
in Django, wenn ich das richtig gesehen

00:42:44.500 --> 00:42:46.280
habe. Allerdings habe ich auch nur vielleicht

00:42:46.280 --> 00:42:48.100
eine Woche oder so das ausgetestet.

00:42:48.100 --> 00:42:50.180
Das geht schon. Also du musst halt deine Daten irgendwie

00:42:50.180 --> 00:42:52.080
modellieren und die kannst du in eine Datensprache speichern

00:42:52.080 --> 00:42:54.000
Und dann kommst du da auch wieder dran.

00:42:54.000 --> 00:42:58.080
Also es ist die Frage, was genau du da halten wolltest an State.

00:42:58.080 --> 00:43:02.700
Naja, also ich habe zum Beispiel relativ große NumPy-Matrizen.

00:43:02.700 --> 00:43:06.520
Und das muss auch NumPy sein.

00:43:06.520 --> 00:43:10.020
Also das kann ich mir jetzt nicht irgendwie in die Datenbank reinschieben.

00:43:10.020 --> 00:43:15.020
Das könnte ich schon tun, aber für jede Operation müsste ich mir das dann wieder rausziehen.

00:43:15.020 --> 00:43:16.040
Das macht also eigentlich keinen Sinn.

00:43:16.760 --> 00:43:20.700
Und da hatte ich jetzt, also von meinem Draufgucken,

00:43:20.700 --> 00:43:23.560
keine gute Idee, wie ich das mit Django überhaupt umsetzen kann.

00:43:23.560 --> 00:43:25.140
Okay, das ist natürlich auch eine interessante Anforderung.

00:43:25.140 --> 00:43:30.440
Also das wäre dann die Frage, okay, warum hast du denn NumPy-Matrizen?

00:43:30.440 --> 00:43:33.760
Also ich meine, klassischerweise hast du ja eine relationale Datenbank

00:43:33.760 --> 00:43:37.180
und dann hast du die Daten halt in einer Tabelle irgendwie

00:43:37.180 --> 00:43:38.080
oder in mehreren Tabellen.

00:43:38.080 --> 00:43:39.520
Ja, vielleicht nochmal ein Planungsding.

00:43:39.520 --> 00:43:40.700
Also was ist überhaupt das Problem?

00:43:40.700 --> 00:43:43.560
Also du hast jetzt Menschen, die arbeiten zu Zeiten

00:43:43.560 --> 00:43:46.020
und die sich koordinieren wollen.

00:43:46.760 --> 00:44:12.260
Ja, also Anforderung ist im Prinzip die folgende. Ich habe einen Sprung von Mitarbeitern und die möchte ich quasi einplanen über meinetwegen einen Monat. Also der Zeitraum ist variabel und ich möchte eigentlich zu jeder halben Stunde wissen, wie viele Mitarbeiter arbeiten in Summe gerade an diesem Tag, meinetwegen an diesem Arbeitsplatz.

00:44:13.840 --> 00:44:27.920
Das muss ich wissen und da muss ich effizient Berechnungen drauf machen können. Und auch auf der Länge, also wie lange arbeitet ein Mitarbeiter an diesem Tag, an dieser Maschine zum Beispiel.

00:44:28.420 --> 00:44:45.140
Und da muss ich in der Lage sein, effizient Berechnungen drauf zu machen, weil darauf basiert natürlich zum Beispiel die automatische Planung, die ich machen kann und so weiter. Also da mache ich eigentlich sämtliche Berechnungen drauf, auch die Anzahl der Stunden, wie lange ist ein Mitarbeiter eingeplant und so weiter.

00:44:46.100 --> 00:44:47.780
Und ja, das lässt sich

00:44:47.780 --> 00:44:50.000
meiner Ansicht nach am einfachsten mit NumPy machen,

00:44:50.000 --> 00:44:51.820
weil da lege ich mir eine Matrix an,

00:44:51.820 --> 00:44:53.900
tue die Stunden rein

00:44:53.900 --> 00:44:54.920
und dann

00:44:54.920 --> 00:44:58.000
kann ich in NumPy, sage ich, oder habe ich

00:44:58.000 --> 00:44:59.680
aber sämtliche Operationen, die ich brauche.

00:44:59.680 --> 00:45:04.000
Ja, also

00:45:04.000 --> 00:45:05.580
ja klar, also wenn man jetzt

00:45:05.580 --> 00:45:08.160
NumPy-Arrays

00:45:08.160 --> 00:45:09.760
hat, dann ist das natürlich so ein bisschen

00:45:09.760 --> 00:45:11.360
inkompatibel jetzt mit diesem

00:45:11.360 --> 00:45:13.180
Standardmodell,

00:45:13.180 --> 00:45:15.440
wo man in Django halt

00:45:15.440 --> 00:45:16.600
ein relationaler Datenbank hat.

00:45:16.600 --> 00:45:19.480
Ich meine, man kann das natürlich auch machen, dann ist halt die Frage,

00:45:19.480 --> 00:45:21.020
ob einem Django noch so viel nützt, weil dann

00:45:21.020 --> 00:45:23.860
kann man den ORM halt nicht benutzen.

00:45:23.860 --> 00:45:26.500
Ich bin schon mal

00:45:26.500 --> 00:45:27.580
erfreut,

00:45:27.580 --> 00:45:28.840
dass ihr nicht sagt, ach,

00:45:28.840 --> 00:45:31.320
Mensch, da gibt es doch hier dieses Plug-in,

00:45:31.320 --> 00:45:33.360
da lädst du dir einfach Folgendes

00:45:33.360 --> 00:45:34.620
und dann geht das schon.

00:45:34.620 --> 00:45:35.960
Nee, nee, das geht tatsächlich

00:45:35.960 --> 00:45:37.860
eher nicht, denke ich.

00:45:37.860 --> 00:45:40.720
Also, was man,

00:45:40.720 --> 00:45:43.540
wahrscheinlich wäre dann

00:45:43.540 --> 00:45:45.100
eine Art, dass man das halt irgendwie

00:45:45.100 --> 00:45:47.300
die Daten, die man hat, die hat man halt

00:45:47.300 --> 00:45:48.740
irgendwo in einem Object zu liegen oder so,

00:45:48.740 --> 00:45:51.500
in Parquet-Format oder sonst wie

00:45:51.500 --> 00:45:53.440
und dann geht das natürlich

00:45:53.440 --> 00:45:55.320
auch, aber dann nützt einem halt der ganze

00:45:55.320 --> 00:45:57.320
ORM-Kram nichts mehr. Die Frage wäre halt,

00:45:57.320 --> 00:45:59.300
kann man das nicht vielleicht doch irgendwie auf SQL abbilden

00:45:59.300 --> 00:46:01.260
oder geht das halt gar nicht? Wenn es nicht geht,

00:46:01.260 --> 00:46:03.200
ja, dann kann man halt nichts machen, dann nützt

00:46:03.200 --> 00:46:05.480
einem... Also klingt für mich, als wären da viele Relationen

00:46:05.480 --> 00:46:07.260
irgendwie, ne? Also das kann man

00:46:07.260 --> 00:46:09.140
mit Sicherheit abbilden.

00:46:09.140 --> 00:46:11.260
Die Frage ist, wie viel Schmerzen hat man dabei?

00:46:11.260 --> 00:46:13.220
Ja, gut, genau. Und wenn man es schon

00:46:13.220 --> 00:46:15.240
so hat und das gut funktioniert, dann ist halt

00:46:15.240 --> 00:46:16.880
die Frage, ist das, lohnt sich das?

00:46:16.880 --> 00:46:19.080
Oder macht man es nicht dann lieber so, dass man das einfach

00:46:19.080 --> 00:46:20.780
verwenden kann, was man schon hat, was funktioniert?

00:46:20.780 --> 00:46:22.140
Ja.

00:46:22.140 --> 00:46:24.140
Ja.

00:46:24.140 --> 00:46:26.720
Ja, da kommt es her.

00:46:26.720 --> 00:46:28.980
Interessant.

00:46:28.980 --> 00:46:31.040
Aber es ist auch wirklich rein

00:46:31.040 --> 00:46:33.060
Nampai. Kein Pandas oder sowas, sondern

00:46:33.060 --> 00:46:34.300
einfach auch.

00:46:34.300 --> 00:46:35.980
Aber das versuche ich zu vermeiden.

00:46:35.980 --> 00:46:39.300
Also jetzt rein Pandas

00:46:39.300 --> 00:46:41.320
ist meiner Ansicht nach

00:46:41.320 --> 00:46:42.700
nicht praktikabel, weil

00:46:42.700 --> 00:46:44.460
ganz einfach die Importzeit

00:46:44.460 --> 00:46:46.580
beträgt. Drei Sekunden?

00:46:46.580 --> 00:46:48.820
Ja, ja, ja. Das ist völlig

00:46:48.820 --> 00:46:50.180
inakzeptabel.

00:46:50.180 --> 00:46:51.360
Das soll ich nur einmal importieren.

00:46:51.360 --> 00:46:54.040
Ja, aber

00:46:54.040 --> 00:46:56.560
selbst wenn ich den Import

00:46:56.560 --> 00:46:58.260
an die Startzeit

00:46:58.260 --> 00:46:59.600
verschiebe,

00:46:59.600 --> 00:47:02.200
oder in die Laufzeit, ist ja egal.

00:47:02.200 --> 00:47:04.700
Drei Sekunden sind an keiner Stelle akzeptabel.

00:47:04.700 --> 00:47:05.980
Okay, ja gut.

00:47:05.980 --> 00:47:08.280
Und da bleibt höchstens die Variante,

00:47:08.280 --> 00:47:10.020
hier die Alternativen

00:47:10.020 --> 00:47:12.260
zu nehmen, die es inzwischen

00:47:12.260 --> 00:47:14.320
gibt. Jetzt müsste ich Polars

00:47:14.320 --> 00:47:16.540
war, glaube ich, die aktuelle

00:47:16.540 --> 00:47:18.240
Entwicklung in Rust, wenn mich nicht

00:47:18.240 --> 00:47:18.780
alles täuscht.

00:47:18.780 --> 00:47:21.800
Das habe ich mir noch nicht in der Tiefe angeguckt.

00:47:21.800 --> 00:47:24.040
Ich nehme mal an, die

00:47:24.040 --> 00:47:25.060
Import-Seiten sind da besser.

00:47:25.060 --> 00:47:28.340
Ich weiß aber nicht, ob Polars schon alles

00:47:28.340 --> 00:47:29.500
kann, was ich da brauche.

00:47:29.500 --> 00:47:32.180
Ja, das ist ja

00:47:32.180 --> 00:47:33.120
jetzt erst am Anfang, genau.

00:47:33.120 --> 00:47:35.200
Ja, interessant.

00:47:35.200 --> 00:47:37.560
Ja.

00:47:37.560 --> 00:47:40.260
Ja, also das ist

00:47:40.260 --> 00:47:42.180
natürlich auch etwas, was man halt in Python gut machen kann

00:47:42.180 --> 00:47:44.040
und sonst wahrscheinlich auch eher nicht hat, dass man halt

00:47:44.040 --> 00:47:45.960
diese NumPy-Geschichte da direkt

00:47:45.960 --> 00:47:47.540
irgendwie verwenden kann.

00:47:47.540 --> 00:47:50.040
Ja, also

00:47:50.040 --> 00:47:52.400
NumPy ist eine der besten Bibliotheken

00:47:52.400 --> 00:47:53.600
in Python, würde ich sagen.

00:47:53.600 --> 00:47:55.800
Da kann man echt so viel rausziehen

00:47:55.800 --> 00:47:58.020
und da ist so viel schon da und es ist

00:47:58.020 --> 00:47:59.060
vor allem verdammt schnell.

00:47:59.060 --> 00:47:59.820
Ja.

00:47:59.820 --> 00:48:04.280
Aber

00:48:04.280 --> 00:48:05.720
wie ist denn das, also wenn wir jetzt

00:48:05.720 --> 00:48:08.040
zu dem Qt da,

00:48:08.040 --> 00:48:10.000
also die beiden

00:48:10.000 --> 00:48:11.760
Dings, ist das dann halt, da muss man dann

00:48:11.760 --> 00:48:13.120
Camel Case verwenden?

00:48:13.120 --> 00:48:15.720
Wahrscheinlich ja, ne?

00:48:15.720 --> 00:48:18.180
In Qt 6 nicht mehr.

00:48:18.180 --> 00:48:20.060
Da haben sie es

00:48:20.060 --> 00:48:21.940
quasi normal gemacht.

00:48:21.940 --> 00:48:23.660
Aber

00:48:23.660 --> 00:48:26.020
naja, man gewöhnt sich dran, sage ich mal.

00:48:26.020 --> 00:48:28.280
Es ist jetzt auch kein

00:48:28.280 --> 00:48:30.480
Weltuntergang, wenn ich jetzt für die

00:48:30.480 --> 00:48:32.280
Calls

00:48:32.280 --> 00:48:34.020
dann eben Camel Case habe, aber ja,

00:48:34.020 --> 00:48:35.100
schön ist es nicht, das stimmt.

00:48:35.100 --> 00:48:38.340
Ja, sind die Fußlegel nach oben gekriegt?

00:48:38.340 --> 00:48:39.740
Ja gut, ich meine, ich mache ja auch

00:48:39.740 --> 00:48:42.180
andere Sachen, noch TypeScript und so, dann mache ich auch CamelCase,

00:48:42.180 --> 00:48:44.000
aber wenn man in Python ist, dann

00:48:44.000 --> 00:48:45.700
finde ich das mal, wenn die Kombination, wenn man manchmal

00:48:45.700 --> 00:48:47.360
SnackCase hat und manchmal CamelCase, dann ist es ein bisschen

00:48:47.360 --> 00:48:48.560
aber ja, gut.

00:48:48.560 --> 00:48:49.640
Ja,

00:48:49.640 --> 00:48:54.100
interessante Geschichte,

00:48:54.100 --> 00:48:55.460
aber wie ist das denn jetzt, wenn jetzt

00:48:55.460 --> 00:48:56.660
mehrere Leute

00:48:56.660 --> 00:49:00.220
auf die Applikation zugreifen?

00:49:00.220 --> 00:49:00.760
Genau.

00:49:00.760 --> 00:49:03.260
Ich war ja stehen geblieben, also ich habe mir

00:49:03.260 --> 00:49:05.100
Sorgen gemacht sozusagen,

00:49:05.100 --> 00:49:07.200
dass das nicht skaliert

00:49:07.200 --> 00:49:30.760
Und das scheint aber nicht so schlimm zu sein. Also nein, es scheint relativ gut zu sein. Also ich habe mir vor allem Sorgen gemacht um die Bandbreite und da muss ich sagen, das ist gar kein Problem. Also das kostet tatsächlich fast keine Bandbreite und würde sogar behaupten, das ist ähnlich einer Web-Applikation.

00:49:32.460 --> 00:49:39.020
Wie überträgt denn dieses Guacamole-Daten, ist das nicht ein Bild?

00:49:39.020 --> 00:49:43.060
Nein, also das kommt darauf an.

00:49:43.060 --> 00:49:46.660
Das unterstützt mehrere Backends.

00:49:46.660 --> 00:49:52.280
Man kann zum Beispiel VNC nehmen, man kann aber auch XRDP nehmen.

00:49:52.280 --> 00:49:57.560
Und je nachdem, wie effizient das implementiert ist, ist es gut.

00:49:57.560 --> 00:50:02.280
Und im Fall von XRDP ist es gut.

00:50:02.460 --> 00:50:05.960
und da werden also keine Bilder mehr übertragen.

00:50:05.960 --> 00:50:08.180
Also da wird vielleicht ein Frame am Anfang übertragen

00:50:08.180 --> 00:50:09.600
und dann werden nur noch Deltas übertragen.

00:50:09.600 --> 00:50:11.100
Okay, ja.

00:50:11.100 --> 00:50:13.080
Also da entsteht tatsächlich nicht viel Traffic.

00:50:13.080 --> 00:50:17.620
Und was den Speicherbedarf angeht,

00:50:17.620 --> 00:50:19.500
da bin ich ja selber für verantwortlich

00:50:19.500 --> 00:50:21.540
und habe das selber in der Hand.

00:50:21.540 --> 00:50:22.880
Aber es ist dann ja schon so,

00:50:22.880 --> 00:50:25.740
dass du quasi eine Applikation pro Nutzer irgendwie starten musst.

00:50:25.740 --> 00:50:26.780
Ja, richtig.

00:50:26.780 --> 00:50:28.340
Genau, das ist schon so.

00:50:28.340 --> 00:50:30.140
Aber ich habe mir das durchgerechnet,

00:50:30.140 --> 00:50:31.900
also das funktioniert.

00:50:32.180 --> 00:50:35.840
Also ich kann ja auch selber mehr oder weniger bestimmen,

00:50:35.840 --> 00:50:38.560
sage ich mal, wie viel Speicher das Ganze frisst.

00:50:38.560 --> 00:50:43.380
Und wenn ich mir halt die Bibliothek reinziehe,

00:50:43.380 --> 00:50:45.580
die 500 Megabyte beim Import frisst,

00:50:45.580 --> 00:50:46.760
dann kann ich die halt nicht nehmen.

00:50:46.760 --> 00:50:51.980
Ja, auch interessant.

00:50:51.980 --> 00:50:54.420
Und genau, was mich auch noch interessieren würde,

00:50:54.420 --> 00:50:57.200
um diese grafische Darstellung,

00:50:57.200 --> 00:51:01.080
die muss ja dann irgendwie schon irgendwo gerendert werden.

00:51:01.240 --> 00:51:03.200
Das heißt, du brauchst auf dem Server, hast du dann quasi

00:51:03.200 --> 00:51:05.060
auch ein X oder

00:51:05.060 --> 00:51:06.340
irgendwie sowas? Genau.

00:51:06.340 --> 00:51:09.000
Leider ist es noch ein, also es wird

00:51:09.000 --> 00:51:10.880
ein X-Server pro Anwender gestartet.

00:51:10.880 --> 00:51:13.100
Ah, okay. Und es ist

00:51:13.100 --> 00:51:14.320
leider noch ein X-Server und

00:51:14.320 --> 00:51:17.020
jetzt komme ich gerade nicht auf den

00:51:17.020 --> 00:51:18.960
Namen, was war die Weiterentwicklung

00:51:18.960 --> 00:51:21.220
davon? Oh, das kam nach

00:51:21.220 --> 00:51:22.520
X.

00:51:22.520 --> 00:51:24.460
Wayland, genau.

00:51:24.460 --> 00:51:26.040
Wayland, richtig, genau.

00:51:26.040 --> 00:51:29.000
Also, es wird

00:51:29.000 --> 00:51:30.820
daran gearbeitet, dass das Ganze Wayland

00:51:30.820 --> 00:51:32.720
kompatibel wird, aber ist noch nicht so weit.

00:51:32.720 --> 00:51:34.760
Aber meine Hoffnung ist ja, dass

00:51:34.760 --> 00:51:36.660
X gibt es ja jetzt schon, ich weiß nicht,

00:51:36.660 --> 00:51:37.920
20 Jahre, 30 Jahre.

00:51:37.920 --> 00:51:40.920
Also ich denke, es wird es auch noch eine Weile geben,

00:51:40.920 --> 00:51:42.760
dass da noch genug Zeit ist,

00:51:42.760 --> 00:51:43.400
das zu portieren.

00:51:43.400 --> 00:51:46.620
Ja. Und dann

00:51:46.620 --> 00:51:48.660
ist Matt quasi ein User, der

00:51:48.660 --> 00:51:50.580
das von außen benutzt,

00:51:50.580 --> 00:51:52.300
eigentlich mehr oder weniger auf dem User

00:51:52.300 --> 00:51:53.920
im Unix-System.

00:51:53.920 --> 00:51:55.960
Nicht eigentlich, sondern tatsächlich.

00:51:55.960 --> 00:51:56.980
Tatsächlich, genau.

00:51:56.980 --> 00:51:57.920
Ja.

00:52:00.260 --> 00:52:16.320
Ja, das ist, Dominik hat mir gerade irgendwie, hat auf dem Telefon aufgemacht und da flackerte das.

00:52:16.320 --> 00:52:17.480
Oh je.

00:52:17.480 --> 00:52:19.420
Das weiß ich allerdings aber nicht, ob das jetzt irgendwie.

00:52:19.420 --> 00:52:26.920
Ja, also das Ganze läuft auf Tablets und Telefonen, aber das ist nicht meine Zielgruppe eigentlich.

00:52:27.920 --> 00:52:43.020
Also es funktioniert. Man kann damit auch planen. Man kann sogar Tastatureingaben und alles machen. Da gibt es eine Tastenkombination dafür, wie das geht. Wenn man in der FAK nachguckt, steht es da drin. Aber eigentlich ziele ich auf den Desktop-Anwender.

00:52:44.260 --> 00:52:46.540
Eigentlich ist es nur schön, auf dem Desktop zu planen.

00:52:46.540 --> 00:52:49.480
Ich glaube, keiner möchte wirklich auf dem Handy

00:52:49.480 --> 00:52:53.000
seine 32 Mitarbeiter planen.

00:52:53.000 --> 00:52:56.600
Also ich weiß nicht, ob es da irgendeine Software gibt,

00:52:56.600 --> 00:52:57.480
die das gut macht.

00:52:57.480 --> 00:52:58.400
Wenn, dann Chapeau.

00:52:58.400 --> 00:53:01.760
Aber ich ziele da nicht drauf.

00:53:01.760 --> 00:53:02.540
Also ich habe es nicht davor.

00:53:02.540 --> 00:53:04.000
Also ich habe tatsächlich so ein paar Ideen

00:53:04.000 --> 00:53:05.520
an der Stelle auch schon durchgespielt,

00:53:05.520 --> 00:53:07.520
weil ich diese Anforderung wirklich auch so ein paar Mal

00:53:07.520 --> 00:53:10.020
gekriegt habe, auch so Businesses heraus,

00:53:10.020 --> 00:53:13.680
die es halt wirklich brauchten und das ganz interessant fanden.

00:53:14.260 --> 00:53:18.740
Also, da bist du nicht raus

00:53:18.740 --> 00:53:20.480
Muss ich eigentlich nochmal umsetzen

00:53:20.480 --> 00:53:23.080
Irgendwann im nächsten Leben, wenn ich mal teilzunehmen

00:53:23.080 --> 00:53:25.760
Wenn es immer so ist

00:53:25.760 --> 00:53:26.720
Ja, ja, ja

00:53:26.720 --> 00:53:28.780
Aber ich meine, man kann sich schon, also so gerade im

00:53:28.780 --> 00:53:30.420
Probenfeld haben die sitzen, die Leute ja schon mal

00:53:30.420 --> 00:53:32.460
schon vom Rechner, dann kann man schon davon ausgehen, dass das so

00:53:32.460 --> 00:53:34.300
dass das so funktioniert, ja

00:53:34.300 --> 00:53:35.940
Ja, ja, ja

00:53:35.940 --> 00:53:38.820
Naja, ich meine, das ist halt ganz anders

00:53:38.820 --> 00:53:40.680
als man das sozusagen so

00:53:40.680 --> 00:53:42.940
kennt, aber ich meine, wenn man so ein bisschen drüber nachdenkt

00:53:42.940 --> 00:53:45.440
dann ist das eigentlich gar nicht so blöd.

00:53:45.440 --> 00:53:47.380
Das ist schon interessant.

00:53:47.380 --> 00:53:50.260
Also der größte Vorteil, den ich sehe,

00:53:50.260 --> 00:53:52.160
ist wirklich die Entwicklungsgeschwindigkeit.

00:53:52.160 --> 00:53:56.300
Ich habe kein HTML, ich habe kein CSS,

00:53:56.300 --> 00:53:57.360
ich habe kein JavaScript,

00:53:57.360 --> 00:53:59.260
ich kann reines Python schreiben

00:53:59.260 --> 00:54:00.940
und kann mein Feature deployen.

00:54:00.940 --> 00:54:02.560
Ja.

00:54:02.560 --> 00:54:06.820
Und ich mag Python.

00:54:06.820 --> 00:54:09.440
Und ich mag weniger CSS und JavaScript,

00:54:09.440 --> 00:54:10.500
das mag ich nicht so gerne.

00:54:11.600 --> 00:54:16.520
Also ich kann es, ich komme nicht drum rum, also ich mache das auch, aber nur, wo es wirklich nötig ist.

00:54:16.520 --> 00:54:17.740
Ja.

00:54:17.740 --> 00:54:21.900
Ja, ich überlege gerade, man hat sich so ein bisschen daran gewohnt.

00:54:21.900 --> 00:54:31.540
Also ich finde zum Beispiel mittlerweile schwierig, das Frontend nicht mit CSS irgendwie, vielleicht auch ein bisschen in JavaScript zu stylen, weil mir so ein paar Sachen dann immer fehlen.

00:54:31.540 --> 00:54:35.660
So diese dynamischen Sachen, an die man sich dann doch irgendwie daran gewöhnt, so Headless UI oder so.

00:54:38.180 --> 00:54:40.020
Das geht mir schon auf die Nerven, wenn ich jetzt

00:54:40.020 --> 00:54:42.340
in Django das ohne

00:54:42.340 --> 00:54:44.380
REST-API benutzen möchte, sondern das in die Templates

00:54:44.380 --> 00:54:46.300
einbaue, das ist manchmal schon immer so ein bisschen

00:54:46.300 --> 00:54:48.300
strugglig, weil ich halt da schon relativ

00:54:48.300 --> 00:54:49.760
viel auf Vue.js klebe.

00:54:49.760 --> 00:54:52.340
Ja, aber das ist ja kein

00:54:52.340 --> 00:54:54.300
Problem von, also

00:54:54.300 --> 00:54:54.700
es ist ja beides.

00:54:54.700 --> 00:54:58.120
Die Frage ist halt, welche

00:54:58.120 --> 00:55:00.520
Leute haben sich schon wie viel auseinandergesetzt

00:55:00.520 --> 00:55:02.180
mit Dingen zu entwickeln, die das

00:55:02.180 --> 00:55:04.140
schön einfach und

00:55:04.140 --> 00:55:05.780
pretty zu benutzen machen.

00:55:05.780 --> 00:55:07.980
Du meinst, achso, ja gut, okay,

00:55:08.100 --> 00:55:10.320
also wenn du aus der Entwicklersicht drauf guckst

00:55:10.320 --> 00:55:12.200
und dir dann überlegst, okay, wenn ich

00:55:12.200 --> 00:55:14.100
jetzt schnell Produktivität

00:55:14.100 --> 00:55:15.700
und Maximalaufbau. Webgeschichten mit

00:55:15.700 --> 00:55:18.180
irgendwie UI-Sachen, wo ich

00:55:18.180 --> 00:55:20.340
meine, wenn ich quasi

00:55:20.340 --> 00:55:22.160
fürs Web eine Applikation so schreiben will,

00:55:22.160 --> 00:55:24.360
wie ich das sonst mit PyQt machen würde

00:55:24.360 --> 00:55:25.700
oder mit Qt.

00:55:25.700 --> 00:55:28.220
Welches, was nehme ich denn da?

00:55:28.220 --> 00:55:29.900
Dann landest du wahrscheinlich bei den

00:55:29.900 --> 00:55:32.100
SPAs und dann landest du halt auch irgendwie bei

00:55:32.100 --> 00:55:33.380
irgendwas von den großen

00:55:33.380 --> 00:55:35.960
UI-Frameworks, die es halt für JavaScript gibt, weil

00:55:35.960 --> 00:55:37.820
genau, da ist halt schon am meisten Arbeit reingegangen.

00:55:37.840 --> 00:55:39.740
Also ich bin mir natürlich da so ein bisschen so ein Klotz ans Bein.

00:55:39.740 --> 00:55:41.860
Naja,

00:55:41.860 --> 00:55:43.760
aber dafür habe ich natürlich auch das ganze Ökosystem mit

00:55:43.760 --> 00:55:45.440
damit. Ich bin halt nicht ganz alleine.

00:55:45.440 --> 00:55:47.760
Mein Problem wäre jetzt bei Qt in Python

00:55:47.760 --> 00:55:48.580
mit den Bindings.

00:55:48.580 --> 00:55:50.900
Ich muss halt alles selber bauen.

00:55:50.900 --> 00:55:53.680
Also vom Scratch irgendwie. Ich muss mir selber

00:55:53.680 --> 00:55:55.320
komplett überlegen, wie das aussehen muss.

00:55:55.320 --> 00:55:56.840
Ich frage mich

00:55:56.840 --> 00:55:58.580
gerade so ein bisschen,

00:55:58.580 --> 00:56:01.560
was ich auch noch gerne von Martin wissen würde,

00:56:01.560 --> 00:56:03.480
wie überhaupt so ein UI strukturiert ist,

00:56:03.480 --> 00:56:04.300
so prinzipiell

00:56:04.300 --> 00:56:05.940
in Python.

00:56:06.880 --> 00:56:08.120
Also von der Struktur her?

00:56:08.120 --> 00:56:10.260
Also ich glaube, das ist

00:56:10.260 --> 00:56:12.440
gar nicht so groß anders, als

00:56:12.440 --> 00:56:13.380
wenn man

00:56:13.380 --> 00:56:15.920
mit Django das machen würde.

00:56:15.920 --> 00:56:18.100
Also es gibt einen Event-Loop

00:56:18.100 --> 00:56:20.460
und

00:56:20.460 --> 00:56:22.520
ja, eigentlich dreht sich alles um das

00:56:22.520 --> 00:56:24.060
Event-Loop. Und

00:56:24.060 --> 00:56:26.280
wenn man was Asynchrones braucht,

00:56:26.280 --> 00:56:28.360
dann bietet Qt da auch

00:56:28.360 --> 00:56:30.340
was Asynchrones. Das ist

00:56:30.340 --> 00:56:31.460
im Wesentlichen eine Python-Klasse.

00:56:31.460 --> 00:56:33.640
Ja.

00:56:33.640 --> 00:56:36.300
Was interessiert dich speziell?

00:56:36.880 --> 00:56:49.560
Also mich interessiert vor allem das UI irgendwie. Also wie baue ich zuerst mir einen Rahmen und dann da verschiedene Container rein oder mache ich das irgendwie über so Floating-Geschichten oder mache ich das alles statisch?

00:56:49.560 --> 00:56:58.000
Achso, achso, jetzt habe ich dich falsch verstanden. Ich dachte, du meinst das Design der Python-Applikation, aber du meinst tatsächlich die Oberfläche an sich.

00:56:58.000 --> 00:57:14.860
Ja, also QT hat unterschiedliche Wege, wie man das machen kann. Ich habe da auch noch nicht alle bis ins Detail ergründet tatsächlich, auch nach drei Jahren noch nicht. Aber der Standardweg ist, man programmiert sich sozusagen seine Oberfläche.

00:57:14.860 --> 00:57:35.060
Also ich sage, ich möchte einen, also es gibt verschiedene Frame-Arten, zum Beispiel einen horizontalen Frame, einen vertikalen Frame oder was Tabellenartiges oder was Formularartiges und dort gruppiere ich mir quasi meine Elemente rein, in diese Boxen, sage ich mal.

00:57:36.300 --> 00:57:40.100
Und das Ganze ist responsiv, wenn man das will.

00:57:40.100 --> 00:57:43.080
Auch animiert?

00:57:43.080 --> 00:57:44.180
Ja, ist responsiv, wenn man das will.

00:57:44.180 --> 00:57:44.560
Wie bitte?

00:57:44.560 --> 00:57:45.360
Auch animiert?

00:57:45.360 --> 00:57:47.780
Ja, kann alles.

00:57:47.780 --> 00:57:53.440
Du kannst animieren, du kannst, also du kannst ja immer die Widgets angucken, die es so gibt.

00:57:53.440 --> 00:58:04.040
Animiert, du kannst dir Schieberegler machen, du kannst dir Knöpfe machen in bunt oder in blinkend oder in wabernd.

00:58:04.040 --> 00:58:05.560
Ja, das geht alles.

00:58:06.300 --> 00:58:10.340
woran ich eben denken musste

00:58:10.340 --> 00:58:12.100
ist halt, ich glaube es ist halt sehr

00:58:12.100 --> 00:58:14.160
stark davon abhängig, ob das jetzt eine gute Idee

00:58:14.160 --> 00:58:15.980
ist sozusagen, dass

00:58:15.980 --> 00:58:18.220
man das einfach so nehmen

00:58:18.220 --> 00:58:20.160
kann, die Widgets, oder wahrscheinlich kann man sie ein bisschen

00:58:20.160 --> 00:58:22.120
stylen, oder ob das jetzt besser wäre

00:58:22.120 --> 00:58:23.960
das über CSS und JavaScript zu machen

00:58:23.960 --> 00:58:25.960
hängt halt wahrscheinlich sehr stark von einem Use Case ab

00:58:25.960 --> 00:58:28.040
Ja, die Frage ist halt, wie viel Arbeit muss ich jetzt

00:58:28.040 --> 00:58:30.100
da noch reinstecken, um mir so ein komplettes Konzept

00:58:30.100 --> 00:58:32.100
auszudenken. Aber wenn dein Use Case ist

00:58:32.100 --> 00:58:34.380
du willst irgendwas kompliziertes machen, aber letztlich

00:58:34.380 --> 00:58:36.160
ist es nicht so wahnsinnig wichtig, dass

00:58:36.160 --> 00:58:38.060
das jetzt zu deinen Brandfarben passt, weil

00:58:38.060 --> 00:58:39.800
das ist halt gar nichts, was jetzt

00:58:39.800 --> 00:58:41.800
Customer-Facing ist, sondern

00:58:41.800 --> 00:58:44.120
es ist halt irgendwie ein Ding, was Leute benutzen,

00:58:44.120 --> 00:58:46.120
um irgendwas zu erreichen, aber das ist nie nach

00:58:46.120 --> 00:58:47.660
außen hin sozusagen

00:58:47.660 --> 00:58:50.180
Wer ist denn in der Customer?

00:58:50.180 --> 00:58:52.080
Naja gut,

00:58:52.080 --> 00:58:53.960
natürlich schon die Leute, die das benutzen,

00:58:53.960 --> 00:58:55.780
aber das ist halt nur intern.

00:58:55.780 --> 00:58:58.020
Das würde ich

00:58:58.020 --> 00:58:59.740
anders sehen, mit dem nur intern.

00:58:59.740 --> 00:59:02.160
Ja gut, aber

00:59:02.160 --> 00:59:04.100
warum, ja okay, aber da würde ich jetzt

00:59:04.100 --> 00:59:05.920
denken, an der Stelle ist es

00:59:05.920 --> 00:59:08.020
macht es halt Sinn, vielleicht was zu verwenden,

00:59:08.020 --> 00:59:10.180
womit du komplizierte Sachen

00:59:10.180 --> 00:59:11.520
hinbekommst,

00:59:11.520 --> 00:59:14.140
die du vielleicht

00:59:14.140 --> 00:59:15.760
brauchst, weil das ein kompliziertes Problem ist,

00:59:15.760 --> 00:59:18.240
aber die Anforderung,

00:59:18.240 --> 00:59:20.020
dass du das jetzt irgendwie besonders

00:59:20.020 --> 00:59:22.080
hübsch oder so auf dich angepasst

00:59:22.080 --> 00:59:24.000
dargestellt hast, also das so aussieht,

00:59:24.000 --> 00:59:25.320
das ist halt nicht so wichtig.

00:59:25.320 --> 00:59:27.780
Selbst wenn ich das so hübsch hinbekomme, weil das so viel Aufwand ist,

00:59:27.780 --> 00:59:30.100
das so hübsch hinzubekommen. Ja, vielleicht wäre das dann schrecklich viel

00:59:30.100 --> 00:59:32.120
Aufwand, aber wenn dir das egal ist, dann musst du das nicht machen.

00:59:32.120 --> 00:59:34.060
Ja, also

00:59:34.060 --> 00:59:35.880
du meintest gerade, entweder ich mache es

00:59:35.880 --> 00:59:38.040
mit CSS oder ich mache es mit Qt.

00:59:38.040 --> 00:59:40.180
Das stimmt nicht so ganz.

00:59:40.180 --> 00:59:41.500
Nein, was ich meinte ist nicht

00:59:41.500 --> 00:59:43.580
mit CSS oder mit Qt, sondern ich meinte

00:59:43.580 --> 00:59:44.980
sowas wie mit den ganzen Frameworks, die ich habe.

00:59:44.980 --> 00:59:47.620
Die ich halt gerne muss, keine Ahnung,

00:59:47.620 --> 00:59:49.240
Tailwind oder sowas, damit ich halt

00:59:49.240 --> 00:59:51.520
schneller produktiv bin, Utility

00:59:51.520 --> 00:59:53.200
oder so, Utility-Klassen einbauen.

00:59:53.200 --> 00:59:54.540
Aha.

00:59:54.540 --> 00:59:57.720
Aber wenn ich das ganze CSS

00:59:57.720 --> 00:59:59.320
dann immer selber schreiben muss und dann muss ich mir erst mal

00:59:59.320 --> 01:00:01.100
überlegen und dann muss ich mir erst mal so ein paar Boxen bauen,

01:00:01.100 --> 01:00:02.020
dass das alles so passt, dann

01:00:02.020 --> 01:00:06.740
naja, kommt drauf an, also

01:00:06.740 --> 01:00:08.760
QT hat auch noch

01:00:08.760 --> 01:00:10.820
einen Designer, ja, wenn du das

01:00:10.820 --> 01:00:12.760
Projekt nicht kommerziell nutzen willst, kannst

01:00:12.760 --> 01:00:13.740
du diesen Designer nutzen.

01:00:13.740 --> 01:00:15.720
Aber wenn ich das nicht kommerziell nutze, okay.

01:00:15.720 --> 01:00:18.640
Genau. Kannst du den

01:00:18.640 --> 01:00:20.260
Designer nutzen, das ist quasi mit

01:00:20.260 --> 01:00:22.940
ziehen und ablegen

01:00:22.940 --> 01:00:24.640
quasi. Jetzt erinnere ich mich, das hatte ich

01:00:24.640 --> 01:00:25.760
genauso. Wie man das früher

01:00:25.760 --> 01:00:28.180
von, ich glaube, Visual Basic

01:00:28.180 --> 01:00:30.480
da

01:00:30.480 --> 01:00:31.780
war das so ähnlich schon.

01:00:32.020 --> 01:00:33.160
Kann man auch, wenn man will.

01:00:33.160 --> 01:00:34.300
Der war auch sehr hübsch.

01:00:34.300 --> 01:00:37.660
Ich hatte tatsächlich, glaube ich, den angefangen auszuprobieren

01:00:37.660 --> 01:00:39.440
und dann bin ich darüber gestolpert, dass man das

01:00:39.440 --> 01:00:41.620
irgendwie mit der Lizenz eben nicht benutzen

01:00:41.620 --> 01:00:42.620
darf, wenn man das machen muss.

01:00:42.620 --> 01:00:45.180
Okay, ja.

01:00:45.180 --> 01:00:47.660
Ja, ja, ich meine, das machen

01:00:47.660 --> 01:00:49.460
ja auch die ganzen, oder

01:00:49.460 --> 01:00:51.360
ich meine, ich kenne jetzt die iOS-Seite besser, aber

01:00:51.360 --> 01:00:53.580
halt da Xcode und so, da gibt es ja auch solche Dinge,

01:00:53.580 --> 01:00:55.240
wo du dann halt dann grafisch dann die ganzen

01:00:55.240 --> 01:00:57.160
Elemente irgendwie sozusagen,

01:00:57.160 --> 01:00:59.380
selbst dann kannst du sogar Linien

01:00:59.380 --> 01:01:01.220
irgendwie dahin ziehen und dann werden dann halt irgendwie

01:01:01.220 --> 01:01:03.360
Event-Listener hinzugefügt oder keine Ahnung.

01:01:03.360 --> 01:01:05.600
Ja, genau.

01:01:05.600 --> 01:01:06.560
Damit geht das wahrscheinlich auch.

01:01:06.730 --> 01:01:07.950
irgendwie. Aber

01:01:07.950 --> 01:01:10.710
naja, ich könnte mir schon

01:01:10.710 --> 01:01:12.670
vorstellen, dass, also du kannst jetzt zum Beispiel

01:01:12.670 --> 01:01:14.710
an der iOS-App, da kann ich es halt, weil ich nehme

01:01:14.710 --> 01:01:16.770
mal an, dass es bei Qt genauso ist.

01:01:16.770 --> 01:01:19.110
Sozusagen

01:01:19.110 --> 01:01:20.650
damit kannst du im Grunde alles machen,

01:01:20.650 --> 01:01:22.630
aber wenn du jetzt eine iOS-App

01:01:22.630 --> 01:01:24.710
so hinkriegen willst, dass die genauso aussieht,

01:01:24.710 --> 01:01:26.690
wie du das haben möchtest, ist das halt eine Menge Arbeit.

01:01:26.690 --> 01:01:28.670
Ja, genau. Und zwar wahrscheinlich

01:01:28.670 --> 01:01:30.770
mehr Arbeit, als wenn du eine Webseite so aussehen

01:01:30.770 --> 01:01:32.770
lassen möchtest, wie du das aussehen lassen möchtest.

01:01:32.770 --> 01:01:34.570
Das ist auch so ein bisschen, also ohne, dass ich jetzt

01:01:34.570 --> 01:01:36.890
angreifen möchte, aber das ist so ein bisschen mein Problem

01:01:36.890 --> 01:01:38.710
mit diesen Beauty-Sachen oder meine

01:01:38.710 --> 01:01:40.970
Kritik daran. Also ich glaube, dass das

01:01:40.970 --> 01:01:42.930
wirklich schwieriger ist, das

01:01:42.930 --> 01:01:44.110
richtig schön hinzubekommen.

01:01:44.110 --> 01:01:46.790
Ja, aber jetzt noch mal, jetzt versuch mal in

01:01:46.790 --> 01:01:48.830
HTML und CSS eine Tabelle so hinzukriegen

01:01:48.830 --> 01:01:50.750
mit all den Widgets und Features, die du vielleicht haben

01:01:50.750 --> 01:01:51.930
möchtest für deinen Newscase.

01:01:51.930 --> 01:01:54.710
Dann hast du an der Stelle ein Riesenproblem. Das geht ja auch

01:01:54.710 --> 01:01:55.030
nicht gut.

01:01:55.030 --> 01:01:58.710
Ja, also

01:01:58.710 --> 01:02:00.070
aus meiner Perspektive

01:02:00.070 --> 01:02:02.570
mein Branding mache ja ich.

01:02:02.570 --> 01:02:03.150
Ja.

01:02:04.570 --> 01:02:23.430
Von daher hatte ich das Problem nicht. Dazu kann ich dann entsprechend auch nicht so viel sagen. Also was ich sagen kann ist, es lässt sich jedes Element mit CSS stylen, wenn man das will. Ja, ich glaube so groß und unterscheiden tut sich das gar nicht versus Django.

01:02:24.150 --> 01:02:36.390
Ah ja, okay. Mit dem Unterschied natürlich, wenn man sein geliebtes Framework nutzen will, Tailwind, was weiß ich, das funktioniert natürlich anders. Aber gut, wenn man sich ein anderes Framework auswählt, dann sind halt Dinge anders.

01:02:36.390 --> 01:02:44.630
Also was ich meine, du kannst halt jetzt, wie wir das bei unserem Podcast gemacht haben, Bootstrap importiert und sonst nichts tun für das Design, weil einem das nicht wichtig ist.

01:02:44.930 --> 01:02:46.310
Ja, ja, genau, also

01:02:46.310 --> 01:02:48.750
ja, da habe ich das ja auch

01:02:48.750 --> 01:02:50.670
im Grunde, ja, ich glaube auch, das ist der Grund, warum halt

01:02:50.670 --> 01:02:52.810
Bootstrap quasi so viel verwendet

01:02:52.810 --> 01:02:54.310
wird in internen Tools,

01:02:54.310 --> 01:02:56.090
weil da ist es halt oft egal,

01:02:56.090 --> 01:02:58.150
ist halt wurscht, ja, also

01:02:58.150 --> 01:03:00.850
wie das jetzt aussieht, es muss halt bloß irgendwie halbwegs bedienbar

01:03:00.850 --> 01:03:01.890
sein und

01:03:01.890 --> 01:03:04.430
das kriegt man mit Bootstrap ja schon hin.

01:03:04.430 --> 01:03:06.630
Es sieht halt nicht so toll aus, aber

01:03:06.630 --> 01:03:08.870
ja, genau.

01:03:08.870 --> 01:03:10.830
Ja, ja,

01:03:10.830 --> 01:03:12.250
ja, ich weiß es nicht so genau.

01:03:12.250 --> 01:03:14.390
Es ist immer, es ist alles eine,

01:03:14.590 --> 01:03:16.310
Das ist da so wirklich...

01:03:16.310 --> 01:03:19.030
Was möchte man am Anfang

01:03:19.030 --> 01:03:20.490
immer machen, wenn man jung ist und

01:03:20.490 --> 01:03:23.010
Software entwickeln will, möchte man Spiele programmieren.

01:03:23.010 --> 01:03:24.910
Das geht mit Qt wahrscheinlich schon

01:03:24.910 --> 01:03:26.130
ein bisschen besser als mit Web.

01:03:26.130 --> 01:03:28.850
Aber auch da bin ich mir nicht sicher, ob das die richtige

01:03:28.850 --> 01:03:30.850
Idee ist, irgendwie das so zu betrachten.

01:03:30.850 --> 01:03:32.630
Nee.

01:03:32.630 --> 01:03:34.270
Ich glaube, da würdest du

01:03:34.270 --> 01:03:36.090
Spiele...

01:03:36.090 --> 01:03:38.830
Ob du eine 3D-Intel

01:03:38.830 --> 01:03:40.290
möchtest oder halt nicht, also ob du halt

01:03:40.290 --> 01:03:41.950
eine zweidimensionale, weiß nicht,

01:03:41.950 --> 01:03:44.170
kann man Fensteransicht sagen zu Qt?

01:03:44.590 --> 01:03:44.830
reicht.

01:03:44.830 --> 01:03:48.210
Also für Spiele wäre jetzt

01:03:48.210 --> 01:03:49.590
QT nicht mal eine erste Idee.

01:03:49.590 --> 01:03:52.630
Aber kommt sicherlich aufs Spiel an.

01:03:52.630 --> 01:03:54.130
Ja, ich glaube auch.

01:03:54.130 --> 01:03:56.490
Nur weil man dann Pfeifen machen wollen würde.

01:03:56.490 --> 01:03:57.530
Büro-Simulator 3.0.

01:03:57.530 --> 01:03:58.310
Ja, genau.

01:03:58.310 --> 01:04:02.510
Das geht

01:04:02.510 --> 01:04:03.090
wahrscheinlich gut.

01:04:03.090 --> 01:04:06.770
Da kam ich

01:04:06.770 --> 01:04:08.070
mit Kiwi schon ein bisschen weiter tatsächlich.

01:04:08.070 --> 01:04:09.530
Also es war auch so eine Art Büro-Simulator.

01:04:09.530 --> 01:04:11.150
Ja.

01:04:11.150 --> 01:04:13.430
Ja.

01:04:14.050 --> 01:04:16.190
Ich habe einen Fantasy-Manager

01:04:16.190 --> 01:04:17.710
für unsere Eishockey-Runde gebaut.

01:04:17.710 --> 01:04:19.310
Ja, gut, sowas.

01:04:19.310 --> 01:04:20.950
Das hat wundervoll funktioniert.

01:04:20.950 --> 01:04:22.170
Ja.

01:04:22.170 --> 01:04:25.470
Das war sogar hübsch in Kiwi.

01:04:25.470 --> 01:04:28.030
Aber ja, ich glaube,

01:04:28.030 --> 01:04:29.890
man will das nicht benutzen, das ist halt befummelig.

01:04:29.890 --> 01:04:31.870
Ja, aber was mich auch nochmal interessieren würde,

01:04:31.870 --> 01:04:33.750
so rein ressourcenverbrauchmäßig, wenn ich jetzt

01:04:33.750 --> 01:04:35.350
für einen User so eine

01:04:35.350 --> 01:04:37.670
Applikation starte mit Qt, dann habe ich schon das

01:04:37.670 --> 01:04:39.630
Gefühl, also wahrscheinlich so ein paar Megabyte wird die dann

01:04:39.630 --> 01:04:41.030
schon einen Hauptspeicher brauchen oder so.

01:04:41.030 --> 01:04:43.730
Die muss ja dann auch die ganze

01:04:43.730 --> 01:04:45.710
Zeit laufen, obwohl die muss eigentlich nur so

01:04:45.710 --> 01:04:47.690
lange laufen, wie ein Benutzer sie tatsächlich

01:04:47.690 --> 01:04:49.530
benutzt. Dann kann man irgendwie den

01:04:49.530 --> 01:04:51.570
State irgendwie so raus serialisieren und erst

01:04:51.570 --> 01:04:53.570
beim nächsten Mal, wenn der Nutzer wieder kommt, dann

01:04:53.570 --> 01:04:55.630
muss man das halt irgendwie wieder sich irgendwo

01:04:55.630 --> 01:04:57.450
herholen. Genau so ist es.

01:04:57.450 --> 01:04:59.630
Aber tatsächlich

01:04:59.630 --> 01:05:01.430
hast du, solange ein Nutzer

01:05:01.430 --> 01:05:03.650
irgendwie quasi da drauf

01:05:03.650 --> 01:05:05.670
guckt, also die Frage eingeloggt ist oder ich weiß nicht,

01:05:05.670 --> 01:05:07.250
wie man das beschreiben kann,

01:05:07.250 --> 01:05:09.590
solange irgendwie eine Session aktiv

01:05:09.590 --> 01:05:10.270
ist, wie auch immer,

01:05:10.270 --> 01:05:12.490
brauchst du halt diesen Hauptspeicher.

01:05:13.570 --> 01:05:14.310
Ja, genau.

01:05:14.310 --> 01:05:15.150
Ja, okay.

01:05:15.150 --> 01:05:19.710
Das ist so, wobei da auch einiges im Shared Memory sich befindet.

01:05:19.710 --> 01:05:22.630
Ja, die ganzen Bibliotheken wahrscheinlich, ja.

01:05:22.630 --> 01:05:24.150
Das macht Python von sich aus schon.

01:05:24.150 --> 01:05:26.610
Das heißt, man hat jetzt nicht komplett den Overhead

01:05:26.610 --> 01:05:27.850
von einem Nutzer auf alle Nutzer,

01:05:27.850 --> 01:05:30.990
sondern da wird noch einiges geteilt.

01:05:30.990 --> 01:05:32.690
Aber ja, prinzipiell schon.

01:05:32.690 --> 01:05:36.950
Ja, weil da bist du natürlich dann wahrscheinlich

01:05:36.950 --> 01:05:39.030
ein bisschen ineffizienter als eine Web-Anwendung,

01:05:39.030 --> 01:05:43.530
die halt nur das, wo es dann halt einen Prozess gibt,

01:05:43.570 --> 01:05:45.410
halt dann viele Quests von unterschiedlichen Benutzern.

01:05:45.410 --> 01:05:47.850
Genau, also speicherintensiver

01:05:47.850 --> 01:05:49.290
ist das schon. Wobei

01:05:49.290 --> 01:05:51.330
es nicht so wichtig ist, dass der

01:05:51.330 --> 01:05:53.530
Sprecher schnell beschrieben

01:05:53.530 --> 01:05:55.470
werden kann. Also mit

01:05:55.470 --> 01:05:57.530
anderen Worten, es muss nicht zwingend RAM sein.

01:05:57.530 --> 01:05:59.030
Ah, okay.

01:05:59.030 --> 01:06:00.850
Was einem die Möglichkeit gibt,

01:06:00.850 --> 01:06:03.690
ein Swap-Laufwerk

01:06:03.690 --> 01:06:05.510
anzulegen, das irgendwo hin

01:06:05.510 --> 01:06:07.690
zu tun, wo es einen relativ zügigen

01:06:07.690 --> 01:06:09.350
Zugriff hat. Und

01:06:09.350 --> 01:06:10.770
ja, da geht es auch.

01:06:10.770 --> 01:06:13.390
Ja, und SSDs sind jetzt auch nicht

01:06:13.390 --> 01:06:14.970
du mir so super langsam? Ja.

01:06:14.970 --> 01:06:17.210
Genau, also eigentlich sind wir

01:06:17.210 --> 01:06:19.270
mit der Swap-Variante

01:06:19.270 --> 01:06:20.590
unbegrenzt im Hauptspeicher.

01:06:20.590 --> 01:06:22.410
Ja. Fast.

01:06:22.410 --> 01:06:24.770
Ja, ja, ja, ja.

01:06:24.770 --> 01:06:26.830
Nee, durchaus interessantes Modell.

01:06:26.830 --> 01:06:29.230
Ja. Und

01:06:29.230 --> 01:06:31.310
ja, ich meine, was

01:06:31.310 --> 01:06:33.330
wenn man jetzt aber, für die

01:06:33.330 --> 01:06:35.330
Benutzer ist das ja auch so ein bisschen, die kommen aber gut

01:06:35.330 --> 01:06:37.190
damit klar und nehmen das so an

01:06:37.190 --> 01:06:39.210
oder hörst du da häufiger das

01:06:39.210 --> 01:06:41.210
so, warum, das ist irgendwie komisch.

01:06:42.650 --> 01:06:43.630
Ich weiß es nicht genau.

01:06:43.630 --> 01:06:46.490
Also bis jetzt habe ich tatsächlich dazu noch gar nichts gehört.

01:06:46.490 --> 01:06:48.310
Ah, okay. Interessant.

01:06:48.310 --> 01:06:52.790
Also es scheint einigermaßen intuitiv zu sein.

01:06:52.790 --> 01:06:55.230
Vor allem, weil man es ja auch vom Desktop schon kennt.

01:06:55.230 --> 01:06:56.250
Ja.

01:06:56.250 --> 01:06:58.650
Also die Art der Bedienung, sage ich mal.

01:06:58.650 --> 01:07:02.690
Gehen denn da wirklich alle, also jetzt stelle ich mir natürlich die Frage,

01:07:02.690 --> 01:07:06.870
wie ist das denn jetzt mit Tastaturkürzeln oder, weiß ich nicht, rechter Mausklick oder so.

01:07:06.870 --> 01:07:08.370
Das muss ja jetzt alles durch den Browser durch.

01:07:08.370 --> 01:07:10.070
Der Browser lässt ja jetzt nicht alles durch.

01:07:10.070 --> 01:07:22.130
Manche Sachen sind ja auch, quasi fängt der Browser ja wahrscheinlich schon ab, wenn man ein anderes Tab auswählt oder das Fenster zumacht oder so. Das geht dann ja gar nicht bis auf die andere Seite. Aber ich weiß jetzt auch nicht genau, was da möglich ist und was nicht.

01:07:22.290 --> 01:07:45.830
Ja, also hätte man das selber entwickeln müssen, den Client in JavaScript, hätte man wahrscheinlich mehrere Jahre gebraucht. Muss ich aber nicht. Der ist schon fertig. Und der kann tatsächlich alles, was man sich unter Desktop so vorstellt. Also Rechtsklick ist kein Problem, Tastatureingaben sind kein Problem, Tastaturkürzel sind kein Problem.

01:07:45.830 --> 01:07:55.830
Also das ist eigentlich alles da und wird von Firefox und von Chrome supported und damit eigentlich von 90 Prozent von allem, was es da gesucht gibt.

01:07:55.830 --> 01:08:05.990
Ja, das heißt, man kriegt auch gar nichts, aber es ist schon in einem Browserfenster, muss es halt sein.

01:08:05.990 --> 01:08:07.590
Richtig.

01:08:07.590 --> 01:08:14.390
Aber ansonsten kriegt man eigentlich gar nicht mit, dass es wirklich ein Browser ist, sondern das ist eigentlich eher, verhält sich wie eine native Applikation.

01:08:14.390 --> 01:08:16.570
Verhält sich so, als ob man die Anwendung

01:08:16.570 --> 01:08:17.910
lokal auf dem Rechner hätte

01:08:17.910 --> 01:08:20.290
Auch Copy und Paste, wahrscheinlich bei Text kein Problem

01:08:20.290 --> 01:08:22.350
Wenn ich jetzt irgendwas da reinziehe oder so

01:08:22.350 --> 01:08:23.430
Okay, dann passieren wahrscheinlich komische Sachen

01:08:23.430 --> 01:08:25.810
Genau, es gibt Dateitransfer

01:08:25.810 --> 01:08:27.390
Es gibt, wenn man will, sogar Audio

01:08:27.390 --> 01:08:33.230
Ja, schick

01:08:33.230 --> 01:08:35.810
Ich glaube, dieses Guacamole

01:08:35.810 --> 01:08:36.970
muss ich mir auch mal angucken

01:08:36.970 --> 01:08:40.410
Scheint ja schon sehr interessant zu sein

01:08:40.410 --> 01:08:46.690
Lass mal überlegen

01:08:46.690 --> 01:08:48.870
was gibt es denn, was kann man sich denn noch so

01:08:48.870 --> 01:08:50.910
vorstellen, was interessant sein könnte

01:08:50.910 --> 01:08:52.530
bei diesem, also gibt es, ist das

01:08:52.530 --> 01:08:54.430
der Client selber, der Python

01:08:54.430 --> 01:08:56.650
Rapper um Qt

01:08:56.650 --> 01:08:58.830
kommt selber auch von, ich weiß nicht

01:08:58.830 --> 01:09:00.450
wie hieß denn diese Firma nochmal

01:09:00.450 --> 01:09:01.770
die Qt baut

01:09:01.770 --> 01:09:04.530
Qt Foundation

01:09:04.530 --> 01:09:05.670
Qt Foundation

01:09:05.670 --> 01:09:08.590
na gut, ich weiß nicht mehr, da war ja auch noch eine lange Zeit

01:09:08.590 --> 01:09:10.250
vielleicht gibt es die Firma auch nicht mehr, keine Ahnung

01:09:10.250 --> 01:09:12.130
Foundation klingt jetzt irgendwie eher nicht mehr nach

01:09:12.130 --> 01:09:13.170
Rundfunk, aber

01:09:13.170 --> 01:09:16.330
genau, von denen kommt halt

01:09:16.330 --> 01:09:18.230
auch, kommen die Python-Bindings, weil ich

01:09:18.230 --> 01:09:20.190
habe irgendwie gehört, PySite gibt es, oder

01:09:20.190 --> 01:09:22.650
das sind

01:09:22.650 --> 01:09:24.110
die dann. Wenn ich Qt

01:09:24.110 --> 01:09:25.330
sage, dann meine ich PySite.

01:09:25.330 --> 01:09:27.670
Also es gibt

01:09:27.670 --> 01:09:29.270
unterschiedliche Ausprägungen,

01:09:29.270 --> 01:09:32.310
wie man Qt nutzen will, kann

01:09:32.310 --> 01:09:33.430
und

01:09:33.430 --> 01:09:35.570
ja, ich habe mich für PySite entschieden.

01:09:35.570 --> 01:09:39.490
The Qt Company.

01:09:40.250 --> 01:09:41.290
Ah, okay.

01:09:41.290 --> 01:09:43.890
Hier gibt es dann noch so ein paar andere Sachen.

01:09:43.890 --> 01:09:45.850
Vielleicht wollen wir die noch kurz erwähnen.

01:09:45.850 --> 01:09:47.190
Also Kiwi haben wir jetzt schon, glaube ich, erwähnt.

01:09:47.190 --> 01:09:48.990
Hier ist noch WX-Python.

01:09:48.990 --> 01:09:52.370
Kennt jemand GTK-Bindings für Python?

01:09:52.370 --> 01:09:55.130
Genau, also GTK würde ich sagen,

01:09:55.130 --> 01:09:58.050
ist so das zweite große Framework, was man da nutzen kann.

01:09:58.050 --> 01:10:02.910
Was nicht ganz, aber so ungefähr auf Augenhöhe.

01:10:02.910 --> 01:10:05.490
Naja, andere würden wahrscheinlich was anderes sagen.

01:10:05.490 --> 01:10:07.370
Also es ist auf Augenhöhe mit Qt.

01:10:08.790 --> 01:10:11.990
Und ja, die Widgets sind ähnlich weit gediehen.

01:10:11.990 --> 01:10:16.070
Kann man sich dann quasi aussuchen.

01:10:16.070 --> 01:10:19.590
Du würdest ja wahrscheinlich alles, dein ganzes User-Interface

01:10:19.590 --> 01:10:23.150
und auch deinen Desktop komplett mit Qt bauen oder mit GTK.

01:10:23.150 --> 01:10:28.770
Dafür habe ich GTK noch nicht zu sehr in die Tiefe getestet,

01:10:28.770 --> 01:10:29.710
um das sagen zu können.

01:10:29.710 --> 01:10:33.850
Aber ja, also es scheint ähnlich weit zu sein.

01:10:33.850 --> 01:10:35.490
Aber dafür habe ich es mir nicht genug angeguckt,

01:10:35.490 --> 01:10:38.510
um jetzt speziell sagen zu können, das geht damit und das geht damit nicht.

01:10:38.790 --> 01:10:41.190
Und dann gibt es noch einen Rapper da irgendwie

01:10:41.190 --> 01:10:43.310
drum, Piesimplegui, der mit dem einfache Sachen

01:10:43.310 --> 01:10:45.250
irgendwie dann auch gehen, schneller oder

01:10:45.250 --> 01:10:46.870
sowas, oder noch mehr High-Level-Interface, oder?

01:10:46.870 --> 01:10:49.490
Kenn ich auch nicht im Detail,

01:10:49.490 --> 01:10:50.270
Piesimplegui.

01:10:50.270 --> 01:10:52.410
Das macht er so beinahe auch über

01:10:52.410 --> 01:10:54.970
Qt, kann man dann lieber WX peisen.

01:10:54.970 --> 01:10:57.390
WX peisen wäre noch so ein Ding.

01:10:57.390 --> 01:11:01.210
Habe ich jetzt auch mal kurz

01:11:01.210 --> 01:11:02.870
ausprobiert, aber war so mittelhübsch.

01:11:02.870 --> 01:11:05.270
Ja, habe ich da schon ganz lange nichts mehr von gehört.

01:11:05.270 --> 01:11:07.270
Ja, genau, aber gegen wohl ein paar

01:11:07.270 --> 01:11:07.490
Sachen.

01:11:08.790 --> 01:11:10.110
Ja, also

01:11:10.110 --> 01:11:12.390
es ist immer noch so, Python und GUI

01:11:12.390 --> 01:11:13.850
ist immer noch so ein bisschen...

01:11:13.850 --> 01:11:16.450
Ja, wobei ich tatsächlich, also ich würde schon

01:11:16.450 --> 01:11:18.450
die Ansicht vertreten, also ich meine auch wenn das

01:11:18.450 --> 01:11:20.370
alles ja schon

01:11:20.370 --> 01:11:21.830
eine interessante Geschichte ist und

01:11:21.830 --> 01:11:24.290
aber ich habe schon so das Gefühl, dass

01:11:24.290 --> 01:11:26.650
so diese Desktop-UI

01:11:26.650 --> 01:11:27.630
Geschichten so ein bisschen

01:11:27.630 --> 01:11:32.690
Also vielleicht riechen sie auch nur komisch

01:11:32.690 --> 01:11:34.450
Das könnte auch, also ich meine

01:11:34.450 --> 01:11:35.890
da könnte es schon so ein bisschen tot sein

01:11:35.890 --> 01:11:37.150
Was ist mit Beware?

01:11:38.310 --> 01:11:38.930
Ja, ja, genau.

01:11:38.930 --> 01:11:41.970
Also das würde ich auch so sehen.

01:11:41.970 --> 01:11:44.030
Also das ist Russell

01:11:44.030 --> 01:11:45.490
Keith-McGee, der hat ja auf der

01:11:45.490 --> 01:11:49.730
auf irgendeiner PyCon

01:11:49.730 --> 01:11:51.970
eine Keynote drüber gehalten, was sind die größten

01:11:51.970 --> 01:11:52.690
Gefahren für Python?

01:11:52.690 --> 01:11:55.950
Oder Black Swan

01:11:55.950 --> 01:11:56.950
irgendwas war im Titel.

01:11:56.950 --> 01:11:59.350
Dem würde ich mich durchaus anschließen. Also was

01:11:59.350 --> 01:12:01.750
für Python richtig gefährlich ist, ist, dass

01:12:01.750 --> 01:12:03.750
das nicht auf Mobile läuft.

01:12:03.750 --> 01:12:05.650
Weil tatsächlich irgendwie Computer werden

01:12:05.650 --> 01:12:07.830
verdrängt. Also die Telefone sind inzwischen

01:12:07.830 --> 01:12:13.370
Also ich würde mal sagen, ein durchschnittliches iPhone ist wahrscheinlich schneller und leistungsfähiger als ein durchschnittlicher Desktop-Rechner.

01:12:13.370 --> 01:12:17.490
Ja, du stellst halt einfach irgendwo so ein Tablet hin und dann gibt es halt ein paar Knöpfchen drauf und dann muss das halt dann funktionieren.

01:12:17.490 --> 01:12:24.110
Ja, und Kinder wachsen damit auf, die kennen das gar nicht mehr, die denken sich so, was ist denn das für komische große Dinger da, seltsam, was ist das?

01:12:24.110 --> 01:12:25.310
Kann man die just swipen?

01:12:25.310 --> 01:12:28.970
Ja, genau, tippen dann auf den Bildschirm, dann passiert nichts, dann ist es kaputt.

01:12:28.970 --> 01:12:36.290
Also das ist ein Problem, weil in 10 Jahren oder 20 Jahren wird das wahrscheinlich keiner mehr benutzen.

01:12:36.790 --> 01:12:38.030
Halte ich für eine steile These.

01:12:38.030 --> 01:12:40.050
Ja, gut, aber ich meine, das ist nur so ein,

01:12:40.050 --> 01:12:42.290
das ist ein Risiko. Also ob das jetzt so eintritt

01:12:42.290 --> 01:12:44.170
oder nicht, ist natürlich klar, wie hoch

01:12:44.170 --> 01:12:46.110
ist das Risiko. Also auch marktanteilende Worte, wenn man das

01:12:46.110 --> 01:12:48.370
benutzt, muss man wahrscheinlich schon relativ viel sich damit auskennen.

01:12:48.370 --> 01:12:50.750
Ja, aber

01:12:50.750 --> 01:12:52.310
also, wie

01:12:52.310 --> 01:12:53.930
auch immer, aber

01:12:53.930 --> 01:12:56.210
dass es da ein Risiko gibt, würde ich schon

01:12:56.210 --> 01:12:58.110
sagen, einfach deswegen, weil Python da halt nicht

01:12:58.110 --> 01:12:59.530
läuft. Das läuft da nicht.

01:12:59.530 --> 01:13:01.970
Und das ist ein Problem.

01:13:01.970 --> 01:13:04.330
Und jetzt muss man entweder irgendeinen Weg finden,

01:13:04.330 --> 01:13:06.230
wie man Python da, wie man

01:13:06.230 --> 01:13:08.210
sozusagen es schaffen kann, dass man Python

01:13:08.210 --> 01:13:10.230
entwickelt und dann halt aber auch eine iOS oder

01:13:10.230 --> 01:13:12.250
Android-App hat. Und das ist halt genau,

01:13:12.250 --> 01:13:13.750
B-Ware macht das halt genau.

01:13:13.750 --> 01:13:15.770
Es sind diverse Komponenten, die dafür nötig sind.

01:13:15.770 --> 01:13:18.290
Ja, letztlich macht es

01:13:18.290 --> 01:13:20.170
sowas ähnliches, was halt React Native oder so

01:13:20.170 --> 01:13:21.630
auch macht, dass es ruft schon die

01:13:21.630 --> 01:13:24.310
echten UI-Funktionen dann auf von den

01:13:24.310 --> 01:13:26.010
Frameworks der entsprechenden...

01:13:26.010 --> 01:13:27.510
Also kompiliert runter quasi auf

01:13:27.510 --> 01:13:30.230
Kotlin oder? Ja, nicht ganz.

01:13:30.230 --> 01:13:32.470
Nee, es kompiliert, es ist nicht...

01:13:32.470 --> 01:13:34.110
Also es gibt unterschiedliche Komponenten und die

01:13:34.110 --> 01:13:35.890
machen unterschiedliche Sachen, aber letztlich

01:13:35.890 --> 01:13:38.050
es gibt auch Wrapper um die

01:13:38.050 --> 01:13:40.150
echten Funktionen sozusagen drumrum und

01:13:40.150 --> 01:13:41.290
die werden dann aufgerufen

01:13:41.290 --> 01:13:43.410
und

01:13:43.410 --> 01:13:44.490
ja.

01:13:44.490 --> 01:13:48.190
Wäre auch interessant zu wissen, wie React das eigentlich macht

01:13:48.190 --> 01:13:50.270
und dann gibt es ja noch irgendwas wie Yonos oder Capacitor

01:13:50.270 --> 01:13:52.050
oder so. Ja, es gibt dann

01:13:52.050 --> 01:13:53.810
Teile, die sind halt komplett nativ und dann

01:13:53.810 --> 01:13:55.850
Teile kann man aus dem Web nachladen,

01:13:55.850 --> 01:13:57.450
man kann JavaScript ausführen und es ist

01:13:57.450 --> 01:13:59.910
ja gut, oder Elektron macht das ja auch so.

01:13:59.910 --> 01:14:01.410
Ja, also

01:14:01.410 --> 01:14:02.970
ich glaube, da sind wir auch noch nicht

01:14:02.970 --> 01:14:05.610
durch. Das war auch ganz interessant,

01:14:05.890 --> 01:14:07.990
ich habe mich jetzt, ich war letzte Woche

01:14:07.990 --> 01:14:09.830
Donnerstag auf dem Treffen der

01:14:09.830 --> 01:14:10.750
Java User Group,

01:14:10.750 --> 01:14:13.050
rein Juk,

01:14:13.050 --> 01:14:15.650
die Java User Group rein.

01:14:15.650 --> 01:14:17.330
Was hat dich denn dahin verschlagen, Juk?

01:14:17.330 --> 01:14:19.730
Ja, ich dachte, ich muss mich mal weiterentwickeln

01:14:19.730 --> 01:14:21.530
und dann dieses Python entwickeln.

01:14:21.530 --> 01:14:24.070
Das hat keine Zukunft, den muss man bei Java angucken.

01:14:24.070 --> 01:14:24.610
Nee.

01:14:24.610 --> 01:14:29.410
Ich bin da hingegangen, weil

01:14:29.410 --> 01:14:31.810
der Vortrag da hat mich

01:14:31.810 --> 01:14:34.210
irgendwie, ist mir aufgefallen,

01:14:34.370 --> 01:14:36.030
Stefan Tilkoff und

01:14:36.030 --> 01:14:37.910
Ebert Wolf, die machen so

01:14:37.910 --> 01:14:40.470
Software minus Architektur,

01:14:40.470 --> 01:14:42.330
TV und die machen auch

01:14:42.330 --> 01:14:44.090
Podcasts und die sind beide bei

01:14:44.090 --> 01:14:45.950
InnoQ und die haben auch schon viele interessante

01:14:45.950 --> 01:14:48.350
Stefan Tilkoff ist

01:14:48.350 --> 01:14:50.010
oft zu Gast in anderen Podcasts, gerade

01:14:50.010 --> 01:14:51.490
letztens war er bei der Programmierbar

01:14:51.490 --> 01:14:54.250
und hat da über Architektur gesprochen,

01:14:54.250 --> 01:14:56.270
die machen viel Software-Architektur, die sind auch

01:14:56.270 --> 01:14:58.270
so, das ist so eine der Firmen, wo man hingeht, wenn man

01:14:58.270 --> 01:15:00.350
jetzt ein großes Problem hat, ein großes Projekt

01:15:00.350 --> 01:15:02.270
und man möchte jetzt irgendwie so,

01:15:02.270 --> 01:15:04.150
dass einem einer mal wirklich erklärt, wie man das denn

01:15:04.150 --> 01:15:06.110
so angeht und wie man das besser machen kann,

01:15:06.110 --> 01:15:08.190
dann ist das so eine der Adressen, zu denen man gehen kann

01:15:08.190 --> 01:15:10.330
und wahrscheinlich eine der renommierteren

01:15:10.330 --> 01:15:11.790
Adressen. Und

01:15:11.790 --> 01:15:14.190
ich höre dem immer gerne, ich höre zum Beispiel

01:15:14.190 --> 01:15:16.110
Stefan Tillkopf immer gerne zu, weil ich

01:15:16.110 --> 01:15:18.050
finde, der kann das immer schön erklären,

01:15:18.050 --> 01:15:19.910
was so die Probleme sind, die man da hat.

01:15:19.910 --> 01:15:22.430
Ja,

01:15:22.430 --> 01:15:23.870
deswegen bin ich da hingegangen und

01:15:23.870 --> 01:15:25.970
sie haben geredet über, wie sah es eigentlich vor

01:15:25.970 --> 01:15:27.870
zehn Jahren aus, wie sieht es heute aus, haben sich die Probleme

01:15:27.870 --> 01:15:28.870
irgendwie verändert in der IT,

01:15:28.870 --> 01:15:31.930
welche Sachen sind besser geworden, welche

01:15:31.930 --> 01:15:33.130
Sachen sind immer noch genauso wie vorher.

01:15:34.150 --> 01:15:39.490
Und genau da, jetzt bin ich auch schon wieder abgeschweift,

01:15:39.490 --> 01:15:42.890
da war auch einer, der machte so ein bisschen Elixier

01:15:42.890 --> 01:15:47.010
und auch kein Java.

01:15:47.010 --> 01:15:51.810
Und der meinte, in letzter Zeit macht er immer mehr Dart,

01:15:51.810 --> 01:15:57.970
weil Dart für, das ist diese Sprache von Google,

01:15:57.970 --> 01:16:01.870
für so, das sollte, glaube ich, auch mal irgendwann Webgeschichte werden,

01:16:01.990 --> 01:16:03.770
aber jetzt hat sich so halt eine Nische

01:16:03.770 --> 01:16:06.070
gefunden. Man kann damit halt

01:16:06.070 --> 01:16:07.890
Mobile Apps irgendwie oder Apps

01:16:07.890 --> 01:16:09.730
für Android-Telefone oder

01:16:09.730 --> 01:16:11.630
iOS-Geräte entwickeln.

01:16:11.630 --> 01:16:13.810
Das ist eine eigene Sprache. Flutter ist

01:16:13.810 --> 01:16:15.470
halt das Ding, was dann UI macht und

01:16:15.470 --> 01:16:17.590
das braucht im Grunde nur irgendwie

01:16:17.590 --> 01:16:19.190
ein Canvas, wo es halt irgendwie

01:16:19.190 --> 01:16:21.850
SVG reinrendern kann oder so, glaube

01:16:21.850 --> 01:16:23.410
ich. Und macht dann

01:16:23.410 --> 01:16:25.430
eine UI komplett selber. Also das ruft nicht

01:16:25.430 --> 01:16:27.810
irgendwelche Funktionen, nativen UI-Funktionen

01:16:27.810 --> 01:16:28.370
auf von

01:16:28.370 --> 01:16:31.570
dem entsprechenden irgendwie

01:16:31.570 --> 01:16:33.090
Gerätehersteller

01:16:33.090 --> 01:16:34.570
sondern

01:16:34.570 --> 01:16:37.350
das zeichnet alles selber

01:16:37.350 --> 01:16:39.330
also alle Buttons und Dinge und so werden halt

01:16:39.330 --> 01:16:41.670
einfach irgendwie tatsächlich in Canvas reingezeichnet

01:16:41.670 --> 01:16:43.210
und da Canvas überall da ist

01:16:43.210 --> 01:16:45.170
und man da irgendwelche Dinge reinzeichnen kann

01:16:45.170 --> 01:16:47.470
kann man halt alle Sachen gleich aussehen

01:16:47.470 --> 01:16:49.310
lassen auf allen Geräten damit

01:16:49.310 --> 01:16:50.750
und halt auch relativ

01:16:50.750 --> 01:16:53.290
und ist es halt einfacher zu entwickeln als wenn man jetzt irgendwie

01:16:53.290 --> 01:16:55.050
das haben ja diese statischen

01:16:55.050 --> 01:16:57.350
Programmiersprachen oder statistikisierten Programmiersprachen

01:16:57.350 --> 01:16:58.050
da ist halt immer so

01:16:58.050 --> 01:17:01.290
ich meine gut mit Kotlin ist es schon ein bisschen besser

01:17:01.290 --> 01:17:03.190
geworden, aber Java ist halt schon

01:17:03.190 --> 01:17:05.310
für Android, das ist halt schon sehr

01:17:05.310 --> 01:17:07.310
sehr verbose und man muss

01:17:07.310 --> 01:17:09.090
ja sehr viel Boilerplate schreiben und auch

01:17:09.090 --> 01:17:11.130
Swift ist da vielleicht ein bisschen besser, aber so

01:17:11.130 --> 01:17:13.150
wahnsinnig viel besser auch nicht, ist auch relativ

01:17:13.150 --> 01:17:14.550
schrecklich und

01:17:14.550 --> 01:17:17.630
ich meine, mein böser

01:17:17.630 --> 01:17:19.210
Scherz an der Stelle wäre ja immer so, naja, Software

01:17:19.210 --> 01:17:21.390
Architektur hat mich auch lange nicht interessiert, weil man schreibt ja in Python

01:17:21.390 --> 01:17:23.250
oft nicht so große Sachen, weil man muss ja nicht so viel

01:17:23.250 --> 01:17:25.530
schreiben und wenn man in Java

01:17:25.530 --> 01:17:27.330
für Hello World halt schon tausend

01:17:27.330 --> 01:17:28.610
Zeilen irgendwie Boilerplate schreiben muss,

01:17:28.950 --> 01:17:31.350
allein davon muss man sich Gedanken um Softwarearchitektur

01:17:31.350 --> 01:17:33.070
machen, einfach, um das

01:17:33.070 --> 01:17:35.030
Spoiler-Play-Zeugs zu organisieren.

01:17:35.030 --> 01:17:36.150
Und

01:17:36.150 --> 01:17:39.330
ja, das muss man mit Dart auch nicht so

01:17:39.330 --> 01:17:41.170
und dann hat man

01:17:41.170 --> 01:17:42.710
eine Alternative, die vielleicht ein bisschen

01:17:42.710 --> 01:17:45.110
einfacher zu verwenden ist. Und das setzt sich gerade

01:17:45.110 --> 01:17:47.010
durch. Also ich glaube, das, was der

01:17:47.010 --> 01:17:48.770
sagte, war, inzwischen sind

01:17:48.770 --> 01:17:50.810
der Marktanteil von Flutter

01:17:50.810 --> 01:17:53.270
ist halt inzwischen größer

01:17:53.270 --> 01:17:55.290
als der von allen anderen

01:17:55.290 --> 01:17:57.250
Sachen, die es da halt auch gibt, mit Elektronen und

01:17:57.250 --> 01:17:58.370
keine Ahnung, die ganzen

01:17:58.370 --> 01:18:00.850
als von allen anderen zusammen.

01:18:00.850 --> 01:18:03.190
Man spart sich halt

01:18:03.190 --> 01:18:06.810
die

01:18:06.810 --> 01:18:08.730
Doppelentwicklung. Also wenn man

01:18:08.730 --> 01:18:10.030
zum Beispiel eine App machen will

01:18:10.030 --> 01:18:12.850
für Android und iOS, dann muss man es halt

01:18:12.850 --> 01:18:14.910
nur einmal schreiben. Das ist der große Vorteil.

01:18:14.910 --> 01:18:16.750
Es bringt aber,

01:18:16.750 --> 01:18:18.530
wenn man es länger verwendet,

01:18:18.530 --> 01:18:20.570
doch auch so das eine oder andere

01:18:20.570 --> 01:18:21.550
Problemchen mit sich,

01:18:21.550 --> 01:18:24.290
wo man am Anfang nicht unbedingt

01:18:24.290 --> 01:18:25.570
von weiß.

01:18:25.570 --> 01:18:27.630
Ja.

01:18:28.370 --> 01:18:30.990
Also ich meine, das ist halt immer schwierig, glaube ich.

01:18:30.990 --> 01:18:44.250
Also ich hatte zum Beispiel, also ich habe eine App oder mehrere in Flutter entwickelt und es gibt dort ein Paketsystem sozusagen.

01:18:44.250 --> 01:18:55.310
Also man kann sich dort Zusatzfunktionalitäten, ähnlich wie in Python mit Libraries kann man sich, oder Packages, kann man sich dort auch reinladen sozusagen.

01:18:56.870 --> 01:19:23.450
Das Problem daran ist so ein bisschen, dass die oftmals halt von externen Entwicklern kommen, so von dir und mir und externen Entwickler dann nach anderthalb Jahren gerne mal die Lust an den Projekten verlieren und dann hat man ja so Unmaintained Dependencies in seinem Projekt drin und muss dann gucken, dass man eine neue Bibliothek halt findet, die das gleiche noch kann.

01:19:25.070 --> 01:19:41.610
Das heißt, wenn man ein Projekt fertig entwickelt hat und man guckt ein halbes Jahr später und versucht es quasi wieder zu kompilieren, dann wird das auf jeden Fall nicht funktionieren. Nach einem halben Jahr ist es ausgeschlossen, dass es funktioniert.

01:19:42.250 --> 01:19:59.410
Zum einen führt Google selber regelmäßig Änderungen im Framework ein, und zwar Breaking Changes. Und zum anderen sind halt Pakete dann nicht mehr aktuell und müssen ersetzt werden, sodass quasi der Wartungsaufwand dafür nach meiner Einschätzung sehr, sehr groß ist.

01:20:01.690 --> 01:20:06.570
Oh, okay, das erinnert mich jetzt noch ein bisschen an die JavaScript-Developer-Experience, hätte ich gesagt.

01:20:06.570 --> 01:20:11.330
Also vielleicht hat sich das inzwischen verbessert, das weiß ich nicht genau.

01:20:11.330 --> 01:20:15.410
Aber das waren auf jeden Fall die Probleme, mit denen ich so zu kämpfen hatte.

01:20:15.410 --> 01:20:20.830
Also ich habe auch gehört, dass Flutter irgendwie so für größere Projekte irgendwann nervig wird.

01:20:20.830 --> 01:20:23.850
Und ja, die Capacitor habe ich sehr empfohlen gekriegt.

01:20:23.850 --> 01:20:25.670
Und das geht halt auch mit Vue.js.

01:20:25.670 --> 01:20:30.610
Ja, ist quasi dann so ähnlich wie React Native, nur halt für Vue, ne?

01:20:30.610 --> 01:20:44.070
Ja genau, es gab irgendwie auch mal View Native, aber das ist auch kaputt gegangen aus denselben Gründen, weil irgendwer ja keine Lust mehr hatte. Und das klingt so ein bisschen, als wäre das so das neueste Ding. Aber ob das gut funktioniert und wie lange das funktioniert, weiß man halt auch alles nicht.

01:20:44.230 --> 01:21:10.830
Also was mir ja ehrlich gesagt am liebsten wäre, wenn es so ausgeht, wäre halt, dass auf allen Plattformen Web gut genug funktioniert, dass man die anderen Sachen nicht machen muss, aber gut. Und mit Safari 16.4 ist ja jetzt natürlich auch, also iOS hat jetzt einen Großteil der Sachen, die gefehlt haben oder die bisher so richtig schmerzhaft waren, bekommen und es sollte jetzt irgendwie dann auch quasi auf iOS halt eigentlich ganz gut funktionieren, aber okay, ja.

01:21:10.830 --> 01:21:12.830
Ja, aber diese PWA ist halt auch immer so

01:21:12.830 --> 01:21:15.230
Ja, ja, es hat schon alles noch so

01:21:15.230 --> 01:21:16.390
seine Ecken und Kanten. Es ist nicht

01:21:16.390 --> 01:21:19.010
ganz das gleiche, als wenn man in Native das macht.

01:21:19.010 --> 01:21:21.010
Kennt ihr PyScript?

01:21:21.010 --> 01:21:22.570
Ja, klar.

01:21:22.570 --> 01:21:27.370
Das ist doch eigentlich die Lösung aller unserer Probleme.

01:21:27.370 --> 01:21:29.230
Ja.

01:21:29.230 --> 01:21:33.210
Ja, also es geht quasi

01:21:33.210 --> 01:21:35.290
darum, dass man halt Python einfach im Browser

01:21:35.290 --> 01:21:37.550
also irgendwie im Browser

01:21:37.550 --> 01:21:37.890
laufen hat.

01:21:39.590 --> 01:21:41.550
ja, das große Problem an der Stelle

01:21:41.550 --> 01:21:43.270
ist halt, dass das, oder

01:21:43.270 --> 01:21:45.110
es ist halt die Frage, ob das ein großes Problem ist oder nicht,

01:21:45.110 --> 01:21:47.510
dass das halt bedeutet, dass man

01:21:47.510 --> 01:21:49.490
halt irgendwie ein paar Megabyte

01:21:49.490 --> 01:21:51.390
Zeug irgendwie runterlädt, weil den Interpreter,

01:21:51.390 --> 01:21:53.470
Python-Interpreter, der ist halt nicht im Browser drin.

01:21:53.470 --> 01:21:55.370
Die JavaScript-Interpreter halt schon.

01:21:55.370 --> 01:21:57.410
Und das bedeutet, man muss

01:21:57.410 --> 01:21:59.230
halt erstmal ein paar Megabyte irgendwie

01:21:59.230 --> 01:22:01.070
runterladen und kann dann erst

01:22:01.070 --> 01:22:02.110
irgendwas machen.

01:22:02.110 --> 01:22:05.510
Wobei, das ließe sich ja leicht lösen,

01:22:05.510 --> 01:22:07.390
wenn sich das so weit durchgesetzt hat, dass die

01:22:07.390 --> 01:22:08.990
Browser-Hersteller sagen, ja gut,

01:22:09.430 --> 01:22:11.250
Dann bundeln wir das halt mit in den Browser rein.

01:22:11.250 --> 01:22:13.710
Ja, das wäre natürlich eine Perspektive.

01:22:13.710 --> 01:22:14.630
Das wäre natürlich schick.

01:22:14.630 --> 01:22:16.670
Dann hätten wir gewonnen, aber naja.

01:22:16.670 --> 01:22:18.990
Ja, aber dann kommen auch noch alle anderen

01:22:18.990 --> 01:22:20.110
und wollen das auch haben.

01:22:20.110 --> 01:22:23.170
Ja, ich weiß es nicht. Aber ja, natürlich.

01:22:23.170 --> 01:22:24.910
Also das ist auf jeden Fall auch ein interessanter Weg.

01:22:24.910 --> 01:22:27.190
Das halt alles irgendwie dann nach

01:22:27.190 --> 01:22:29.450
WebAssembly kompiliert letztendlich.

01:22:29.450 --> 01:22:31.190
Ich habe letztens gehört, das fand ich auch sehr interessant,

01:22:31.190 --> 01:22:33.270
dass tatsächlich,

01:22:33.270 --> 01:22:35.430
ich glaube, Figma war es.

01:22:35.430 --> 01:22:37.330
Ich hoffe, ich erzähle jetzt

01:22:37.330 --> 01:22:38.750
keinen allzu großen Unsinn.

01:22:39.130 --> 01:22:40.590
Aber ich glaube, Figma ist tatsächlich

01:22:40.590 --> 01:22:42.630
eine Applikation,

01:22:42.630 --> 01:22:44.490
die ist geschrieben in C++ oder so

01:22:44.490 --> 01:22:46.550
und dann

01:22:46.550 --> 01:22:48.230
kompiliert das aber zu WebAssembly

01:22:48.230 --> 01:22:50.490
und läuft im Browser. Aber die Leute, die das

01:22:50.490 --> 01:22:52.150
entwickeln, entwickeln tatsächlich in C++.

01:22:52.150 --> 01:22:54.350
Ja. Okay.

01:22:54.350 --> 01:22:56.790
Also Figma ist das Design-Tool

01:22:56.790 --> 01:22:58.670
für alle, die es noch nicht können, mit dem man ohne

01:22:58.670 --> 01:23:00.530
Plan von

01:23:00.530 --> 01:23:02.430
Entwicklung so Screens zusammen

01:23:02.430 --> 01:23:04.350
klicken kann, ein bisschen mit Funktionalität

01:23:04.350 --> 01:23:06.150
versehen, um so Klickstrecken zu verwirklichen.

01:23:06.150 --> 01:23:08.390
Wo es auch tolle Tools gibt, wo man das

01:23:08.390 --> 01:23:10.430
exportieren kann als VJS-Komponenten

01:23:10.430 --> 01:23:12.430
oder direkt mit CSS rausrennen kann

01:23:12.430 --> 01:23:14.450
und so weiter vom Figma. Dann spart

01:23:14.450 --> 01:23:16.410
man sich so den Zwischenschritt, was sehr praktisch ist.

01:23:16.410 --> 01:23:18.330
Was mein Problem wäre, sowas

01:23:18.330 --> 01:23:20.030
wie Qt zu verwenden, weil

01:23:20.030 --> 01:23:22.370
ich glaube, ich möchte jemanden, der von Design

01:23:22.370 --> 01:23:23.970
mehr Ahnung hat als ich, das bauen lassen,

01:23:23.970 --> 01:23:26.190
das dann exportieren und dann in meine

01:23:26.190 --> 01:23:27.270
Anwendung importieren.

01:23:27.270 --> 01:23:30.070
Dann muss ich mich darum nämlich nicht mehr groß kümmern.

01:23:30.070 --> 01:23:32.490
Ja, aber da würde ich eben

01:23:32.490 --> 01:23:33.690
denken, das ist genau diese

01:23:33.690 --> 01:23:36.390
Frage. Du hast

01:23:36.390 --> 01:23:38.430
halt eine Bandbreite von, das Design ist

01:23:38.430 --> 01:23:40.390
super wichtig und du musst, hast

01:23:40.390 --> 01:23:42.330
eigentlich nicht so viel komplizierte Funktionalität

01:23:42.330 --> 01:23:44.470
auf der einen Seite vielleicht und auf der anderen Seite

01:23:44.470 --> 01:23:46.290
hast du halt, du hast viel komplizierte Funktionalität, aber

01:23:46.290 --> 01:23:48.290
Design ist nicht so wichtig. Und je nachdem, wo dein

01:23:48.290 --> 01:23:50.190
Use Case ist, ist halt das ein oder andere halt

01:23:50.190 --> 01:23:52.150
interessanter, weil wenn du halt

01:23:52.150 --> 01:23:53.850
sehr viel komplizierte Funktionalität hast

01:23:53.850 --> 01:23:56.370
und dann versuch das

01:23:56.370 --> 01:23:58.550
mal einem Designer zu erklären. Also ich würde auch der

01:23:58.550 --> 01:24:00.310
Vertriebs- und auch der Marketing-Design sagen, Design ist

01:24:00.310 --> 01:24:02.310
alles. Also ich habe immer das Gefühl,

01:24:02.310 --> 01:24:04.450
die Sachen, die super toll aussehen, aber nichts können,

01:24:04.570 --> 01:24:06.510
verkaufen sich x-mal viel besser

01:24:06.510 --> 01:24:08.470
als die Sachen, die es anders machen.

01:24:08.470 --> 01:24:09.730
Das kommt auf deine Zielgruppe an.

01:24:09.730 --> 01:24:12.430
Ich würde, also

01:24:12.430 --> 01:24:14.090
ja, ich würde sagen,

01:24:14.090 --> 01:24:16.690
die Normalverteilung in der Mitte

01:24:16.690 --> 01:24:18.590
sagt leider was anderes. Also ich wäre

01:24:18.590 --> 01:24:19.470
durchaus auch bei

01:24:19.470 --> 01:24:22.410
gute Funktionalität, würde ich eher bevorzugen.

01:24:22.410 --> 01:24:23.450
Aber naja,

01:24:23.450 --> 01:24:26.290
ich glaube, dass es selten das dem so ist.

01:24:26.290 --> 01:24:27.370
Ich weiß es nicht.

01:24:27.370 --> 01:24:31.250
Ja, ja.

01:24:31.250 --> 01:24:34.230
Ja, aber

01:24:34.230 --> 01:24:35.630
Genau, vielleicht nochmal zu dem

01:24:35.630 --> 01:24:38.270
MIA-Plan. Das ist aber

01:24:38.270 --> 01:24:40.010
quasi

01:24:40.010 --> 01:24:41.530
entstanden

01:24:41.530 --> 01:24:44.110
für einen konkreten Anwendungsfall,

01:24:44.110 --> 01:24:46.210
in dem es dann auch eingesetzt wird,

01:24:46.210 --> 01:24:48.030
aber es verwenden jetzt auch andere Leute schon und

01:24:48.030 --> 01:24:49.590
es funktioniert eigentlich ganz gut quasi.

01:24:49.590 --> 01:24:52.130
Und man kann das, also wenn man irgendwie so ein Problem hat mit

01:24:52.130 --> 01:24:54.190
man möchte irgendwie Personalplanung

01:24:54.190 --> 01:24:56.190
machen, im Grunde kann jeder

01:24:56.190 --> 01:24:57.630
das einfach so dann verwenden.

01:24:57.630 --> 01:25:00.030
Kann jeder das einfach so verwenden, genau.

01:25:00.030 --> 01:25:00.230
Ja.

01:25:00.230 --> 01:25:03.370
Das, ja, genau.

01:25:04.230 --> 01:25:06.610
Ja, klingt ja auf jeden Fall schon mal gut.

01:25:06.610 --> 01:25:08.970
Ich weiß nicht, fällt dir noch was ein?

01:25:08.970 --> 01:25:10.610
Ich überlege gerade, ob ich noch irgendwelche Fragen habe

01:25:10.610 --> 01:25:12.210
oder irgendwelche Dinge, über die man mal reden könnte.

01:25:12.210 --> 01:25:14.590
Wir haben jetzt alles so ein bisschen

01:25:14.590 --> 01:25:16.430
gefreut, was wir so wirklich tief gemacht haben.

01:25:16.430 --> 01:25:18.310
Also was mir,

01:25:18.310 --> 01:25:19.810
ich höre euch ja auch regelmäßig,

01:25:19.810 --> 01:25:22.630
was mir aufgefallen ist,

01:25:22.630 --> 01:25:24.610
es gibt noch einen

01:25:24.610 --> 01:25:26.570
Unterschied, was wir

01:25:26.570 --> 01:25:28.530
sozusagen, was wir anders machen, was ich anders mache,

01:25:28.530 --> 01:25:29.950
als ihr wahrscheinlich.

01:25:29.950 --> 01:25:32.390
Ihr nutzt gerne

01:25:32.390 --> 01:25:34.450
Datenbanken. Ich nicht.

01:25:34.450 --> 01:25:36.330
Ja, das ist auch interessant, ja.

01:25:36.330 --> 01:25:38.730
Und

01:25:38.730 --> 01:25:39.790
was nimmst du? Files?

01:25:39.790 --> 01:25:42.290
Wie bitte? Was nimmst du? Files?

01:25:42.290 --> 01:25:43.970
Dateibasiert, genau.

01:25:43.970 --> 01:25:46.310
Gründe, warum ich,

01:25:46.310 --> 01:25:48.550
also es stimmt natürlich

01:25:48.550 --> 01:25:49.870
nicht, also ich habe auch Datenbanken,

01:25:49.870 --> 01:25:51.770
aber nur da, wo ich sie haben muss.

01:25:51.770 --> 01:25:54.090
Also zum Beispiel das

01:25:54.090 --> 01:25:56.050
Jack and Molly hat

01:25:56.050 --> 01:25:58.290
halt eine Datenbank im Hintergrund.

01:25:58.290 --> 01:25:59.850
Da komme ich nicht drum rum.

01:26:01.170 --> 01:26:06.610
Aber Datenbanken, da habe ich verschiedene Nachteile, die ich da sehe.

01:26:06.610 --> 01:26:11.570
Zum Beispiel brauche ich ein Tool, mit dem ich die angucken kann, muss.

01:26:11.570 --> 01:26:16.430
Das heißt, wenn ich mal schnell was nachschauen will, dann geht das mal nicht so einfach.

01:26:16.430 --> 01:26:23.410
Ich kann mich nicht einfach per SSH auf den Server einloggen, kann mir eine Datei anschauen mit dem Dateieditor meiner Wahl,

01:26:23.410 --> 01:26:30.210
sondern ich muss da irgendwie dann mit einem SQLite, was weiß ich, Viewer oder von außen, gut, da kann ich einen Port aufmachen,

01:26:30.310 --> 01:26:33.770
aber den muss ich auch erst mal aufmachen, dann da drauf.

01:26:33.770 --> 01:26:37.970
Also das ist deutlich einfacher mit einer Datei, würde ich mal sagen.

01:26:37.970 --> 01:26:41.790
Dann habe ich die Wartung der Datenbank.

01:26:41.790 --> 01:26:45.650
Ich möchte ja regelmäßig, möchte ich die reinigen,

01:26:45.650 --> 01:26:50.210
ich möchte die komprimieren vielleicht, alte Sachen rausschmeißen.

01:26:50.210 --> 01:26:53.690
Das habe ich auf Dateiebene zwar auch so ein bisschen,

01:26:53.690 --> 01:26:56.790
aber ich würde sagen, es ist da wesentlich einfacher.

01:26:56.790 --> 01:27:00.190
Also wenn ich da Sachen habe, die ich nicht mehr brauche,

01:27:00.310 --> 01:27:02.270
dann kann ich die mir konkret angucken

01:27:02.270 --> 01:27:04.270
und kann dann zum Beispiel

01:27:04.270 --> 01:27:06.490
in Python dafür sorgen, dass die wieder rausfliegen.

01:27:06.490 --> 01:27:08.330
Wie machst du das? Also pickelst du die Sachen

01:27:08.330 --> 01:27:09.890
dann weg oder schreibst das JSON weg?

01:27:09.890 --> 01:27:12.490
Nee, ich mache alles, was geht,

01:27:12.490 --> 01:27:14.550
mache ich menschenlesbar.

01:27:14.550 --> 01:27:16.310
Also, ja,

01:27:16.310 --> 01:27:17.390
JSON oder

01:27:17.390 --> 01:27:19.450
INI, ja.

01:27:19.450 --> 01:27:22.510
Also JSON mache ich auch, in einigen Applikationen

01:27:22.510 --> 01:27:24.390
schreibe ich einfach tatsächlich so JSON-Files raus.

01:27:24.390 --> 01:27:26.370
Ja, also JSON ist ganz

01:27:26.370 --> 01:27:27.890
nett, das ist vor allem schnell.

01:27:30.310 --> 01:27:45.130
Eigentlich würde ich gerne noch woanders hin. Es gab jetzt ein neues Settings-Format von Python. Das ist eigentlich das, wo ich jetzt hin wollte.

01:27:47.470 --> 01:28:04.390
Also sämtliche Operationen, die ich eigentlich, also ich brauche natürlich auch Operationen auf den Daten, die ich da lese, das ist klar. Aber die mache ich eigentlich alle in NumPy. Also ich lade die Datei in meinen Speicher rein und das geht relativ schnell.

01:28:04.390 --> 01:28:16.890
Ich brauche nur die, also das geht mit der Geschwindigkeit, mit der ich von der Platte lesen kann und kann dann halt die ganzen Aggregationsfunktionen, die ich brauche, was weiß ich, Summe, Maximum und so weiter, die habe ich in NumPy auch. Also mache ich das in NumPy.

01:28:17.470 --> 01:28:20.250
Ja, ansonsten

01:28:20.250 --> 01:28:21.870
Datenbank-Nachteile, ja, ich muss

01:28:21.870 --> 01:28:24.190
natürlich, ich muss die stoppen,

01:28:24.190 --> 01:28:25.430
wenn ich einen Backup mache.

01:28:25.430 --> 01:28:28.230
Ja, das weiß ich nicht, also da

01:28:28.230 --> 01:28:30.550
Ja, okay, gibt es vielleicht so eine Live-Variante?

01:28:30.550 --> 01:28:32.370
Also ich kenne es noch,

01:28:32.370 --> 01:28:33.750
weiß ich nicht, also wäre mir nicht bekannt.

01:28:33.750 --> 01:28:36.230
Also kommt drauf an, was für eine Datenbank man verwendet, aber ich meine

01:28:36.230 --> 01:28:38.010
jetzt bei Postgres, das geht schon, also

01:28:38.010 --> 01:28:39.890
da gibt es so, ja, also muss man

01:28:39.890 --> 01:28:41.470
nicht stoppen.

01:28:41.470 --> 01:28:44.210
Aber ja, das ist natürlich ein Problem.

01:28:44.210 --> 01:28:46.230
Ja, du musst halt irgendwie, du hast einen Tail halt,

01:28:46.290 --> 01:28:48.230
mit dem du irgendwie umgehen musst, von

01:28:48.230 --> 01:28:50.170
Zeugs, das irgendwie in der Luft hängen kann, zwischen dem

01:28:50.170 --> 01:28:52.170
letzten Backup und dem, wo du gerade

01:28:52.170 --> 01:28:54.270
backuppen willst, was da an Transaktionen gerade

01:28:54.270 --> 01:28:56.170
quasi reinkommt, der relativ groß werden kann,

01:28:56.170 --> 01:28:57.890
wenn du viel Traffic drauf hast.

01:28:57.890 --> 01:29:00.390
Ja, gut, aber da gibt es

01:29:00.390 --> 01:29:01.930
schon Wege, damit umzugehen. Ich meine,

01:29:01.930 --> 01:29:04.250
was da empfohlen wird, ist ja dann auch immer

01:29:04.250 --> 01:29:05.930
nicht, das selber zu machen, wenn man das nicht,

01:29:05.930 --> 01:29:08.230
weil das natürlich ein Riesenaufwand ist, sich da

01:29:08.230 --> 01:29:10.130
einzuarbeiten, das ist durchaus

01:29:10.130 --> 01:29:11.990
ein Nachteil, ganz klar.

01:29:11.990 --> 01:29:13.930
Man kann ja auch da Dienstleister

01:29:13.930 --> 01:29:16.270
benutzen, sowas wie Crunchybridge

01:29:16.270 --> 01:29:18.430
Crunchy Data verwenden oder so, oder sonst

01:29:18.430 --> 01:29:20.550
irgendwen, der halt so was Managed Postgres

01:29:20.550 --> 01:29:21.870
anbietet oder so. Okay, interessant.

01:29:21.870 --> 01:29:24.130
Dann muss er bitte noch meine Shownotes packen.

01:29:24.130 --> 01:29:25.890
Packet bitte noch meine Shownotes.

01:29:25.890 --> 01:29:28.750
Aber man kann das auch selber machen, was sie tun.

01:29:28.750 --> 01:29:30.590
Hat aber den Nachteil,

01:29:30.590 --> 01:29:32.050
dass dann meine Daten woanders liegen.

01:29:32.050 --> 01:29:33.290
Ja, ja, gut, okay.

01:29:33.290 --> 01:29:35.950
Das will ich eigentlich nicht, sondern

01:29:35.950 --> 01:29:38.530
also, mein Ansatz

01:29:38.530 --> 01:29:40.450
ist, ich möchte eigentlich gar keine

01:29:40.450 --> 01:29:41.250
Kundendaten haben.

01:29:41.250 --> 01:29:44.190
Und wenn ich sie haben muss,

01:29:44.190 --> 01:29:46.250
dann möchte ich so wenig wie möglich davon haben.

01:29:46.270 --> 01:29:54.910
Ja, also z.B. bei der Anmeldung verlange ich auch nur Nutzername und Passwort, mehr nicht. Noch nicht mal eine E-Mail.

01:29:54.910 --> 01:29:59.450
Ja, gut, aber was ist dann, wenn jemand sein Passwort vergisst?

01:29:59.450 --> 01:30:12.370
Genau, dann kann er mich anschreiben und falls das öfter passiert, das ist tatsächlich noch nie passiert, dann mache ich das in einem automatischen Verfahren draus.

01:30:12.970 --> 01:30:14.470
Aber solange das nicht häufig

01:30:14.470 --> 01:30:16.470
vorkommt, ich antworte

01:30:16.470 --> 01:30:16.910
auch schnell.

01:30:16.910 --> 01:30:20.090
Ich denke auch, das ist halt wieder eine Frage,

01:30:20.090 --> 01:30:22.290
was die Kunden, wer die Kunden sind.

01:30:22.290 --> 01:30:23.870
Also wenn du jetzt ganz viele

01:30:23.870 --> 01:30:26.170
Endkunden hast, an denen du nicht viel verdienst

01:30:26.170 --> 01:30:28.010
und dann

01:30:28.010 --> 01:30:29.790
muss alles automatisiert sein.

01:30:29.790 --> 01:30:31.570
Dann ist schlecht, wenn die Leute alle dich anschreiben.

01:30:31.570 --> 01:30:33.110
Wenn du jetzt nur wenig Kunden hast,

01:30:33.110 --> 01:30:36.050
die sich auskennen, dann ist das halt alles nicht so schlimm.

01:30:36.050 --> 01:30:38.090
Ich werde das auch automatisieren, solange das

01:30:38.090 --> 01:30:39.910
überhand nimmt, wenn das überhand nimmt, aber

01:30:39.910 --> 01:30:40.630
das ist nicht der Fall.

01:30:42.970 --> 01:30:44.690
Ich finde es interessant.

01:30:44.690 --> 01:30:47.570
Ich weiß nicht.

01:30:47.570 --> 01:30:48.910
Ich denke mir so,

01:30:48.910 --> 01:30:50.510
irgendwas könnte man mit den Daten auch anfangen.

01:30:50.510 --> 01:30:56.110
Es gibt ja auch die Verantwortung an die Hand.

01:30:56.110 --> 01:30:57.310
Wenn ich jetzt sage,

01:30:57.310 --> 01:30:59.230
ich habe hier einen Riesenhaufen von Nutzerdaten

01:30:59.230 --> 01:31:03.310
mit E-Mail-Adresse, Passwort, Bankdaten, was weiß ich

01:31:03.310 --> 01:31:05.930
und dann kommt irgendjemand auf meinen Server

01:31:05.930 --> 01:31:08.510
und trägt das ganze Zeug raus,

01:31:08.510 --> 01:31:09.750
dann habe ich auf jeden Fall ein Problem.

01:31:09.750 --> 01:31:12.750
Und das kann ich schon mal insofern vermeiden,

01:31:12.970 --> 01:31:14.210
wenn ich das Zeug gar nicht erst habe.

01:31:14.210 --> 01:31:16.050
Das würde zum Beispiel aber auch für Managed sprechen,

01:31:16.050 --> 01:31:18.730
weil dann hast du die Verantwortung quasi auch abgegeben.

01:31:18.730 --> 01:31:20.110
Naja, nicht ganz.

01:31:20.110 --> 01:31:26.170
Du schließt dann einen Servicevertrag mit dem, der das halt managt,

01:31:26.170 --> 01:31:28.210
aber in der Verantwortung steht trotzdem ich.

01:31:28.210 --> 01:31:30.770
Also ganz so ist das dann nicht.

01:31:30.770 --> 01:31:32.950
Also wenn jemand dann, also nehmen wir an,

01:31:32.950 --> 01:31:35.530
du hast eine Managed-Datenbank irgendwo gekauft zum Beispiel

01:31:35.530 --> 01:31:37.250
mit Crunchy Data und dann irgendwie Crunchy Data,

01:31:37.250 --> 01:31:40.110
da geht irgendjemand rein und trägt alle Daten raus.

01:31:40.110 --> 01:31:42.100
aus, dann hast du natürlich trotzdem ein Problem.

01:31:42.100 --> 01:31:44.060
Auch wenn du das vertraglich dann sagen kannst,

01:31:44.060 --> 01:31:45.980
das bin ich gar nicht jetzt, ich bin jetzt

01:31:45.980 --> 01:31:47.900
vielleicht außer Haftung, aber das ist ja trotzdem

01:31:47.900 --> 01:31:49.540
Kacke für deine Kunden und überhaupt.

01:31:49.540 --> 01:31:51.980
Aber das kommt halt genau da vielleicht auf die detaillierte

01:31:51.980 --> 01:31:53.740
Vertragsbeziehung mit deinen Kunden oder mit den Kunden

01:31:53.740 --> 01:31:55.940
deiner Kunden an und so. Ja, aber vielleicht willst du das auch einfach

01:31:55.940 --> 01:31:57.500
gar nicht. Vielleicht sagst du, ich will nicht, dass das passieren kann.

01:31:57.500 --> 01:31:59.120
Die Frage ist halt tatsächlich, also was jetzt aus der

01:31:59.120 --> 01:32:01.860
Datenraustrageperspektive sicherer

01:32:01.860 --> 01:32:03.460
oder besser ist, wenn man jetzt

01:32:03.460 --> 01:32:05.740
ein kleines Team hat, sich

01:32:05.740 --> 01:32:07.940
noch komplett um so ein Datenbankcluster-Management

01:32:07.940 --> 01:32:09.740
zu kümmern zu müssen oder das halt

01:32:09.740 --> 01:32:11.760
einen Service-Dienstleister auszusourcen, der da vielleicht

01:32:11.760 --> 01:32:13.820
mehr Zeit für hat oder mehr Ressourcen, weil er

01:32:13.820 --> 01:32:15.920
das nur macht und da sich auch besser mit

01:32:15.920 --> 01:32:17.900
auskennt als man selber. Und das geht ja für verschiedene

01:32:17.900 --> 01:32:19.720
andere Services auch so. Ja, also es kann durchaus sein, dass

01:32:19.720 --> 01:32:21.920
das sogar die sichere Alternative ist.

01:32:21.920 --> 01:32:23.860
Würde ich auch sagen. Wenn du das outsourcest,

01:32:23.860 --> 01:32:25.920
wenn du dich selber halt nicht damit auskennst. Genau, oder

01:32:25.920 --> 01:32:27.880
man hat halt nicht so relevante Sachen. Und ich

01:32:27.880 --> 01:32:29.820
sag mal so, ja, okay, klar gibt es so Punkte, wo

01:32:29.820 --> 01:32:31.860
man jetzt gucken muss, dass man jetzt nicht alles so sammelt

01:32:31.860 --> 01:32:33.840
wie jetzt die letzte Krake. Da gibt es

01:32:33.840 --> 01:32:35.780
ja so ein paar Google-Kraken, die das

01:32:35.780 --> 01:32:37.580
so machen. Ja, aber es gibt viele Unternehmen, die erstmal

01:32:37.580 --> 01:32:39.500
mal alles in ihrem Data Lake irgendwo

01:32:39.500 --> 01:32:41.460
hin. Ja, also ich würde jetzt auch nicht

01:32:41.460 --> 01:32:43.420
alles... Vielleicht kann man damit irgendwann mal irgendwas anfangen,

01:32:43.420 --> 01:32:45.500
aber das habe ich auch keinen Freund

01:32:45.500 --> 01:32:47.120
von, von sich. Also...

01:32:47.120 --> 01:32:49.120
Ich kann das so ein bisschen verstehen,

01:32:49.120 --> 01:32:51.280
also jetzt nicht von Kunden, aber wenn ich jetzt so ein

01:32:51.280 --> 01:32:53.120
Request habe oder so, warum soll ich die ganzen Informationen da

01:32:53.120 --> 01:32:55.300
wegschmeißen? Also der neueste

01:32:55.300 --> 01:32:57.340
Trend scheint zu sein, dass jeder Dienst,

01:32:57.340 --> 01:32:59.240
egal wie unwichtig der ist, mal eine Telefonnummer

01:32:59.240 --> 01:33:01.300
haben will. Und das finde

01:33:01.300 --> 01:33:02.460
ich ganz, ganz grausam.

01:33:02.460 --> 01:33:05.220
Ja. Also ich würde jetzt auch

01:33:05.220 --> 01:33:07.400
sagen, also mir geht es gerade nicht um Kundendaten,

01:33:07.520 --> 01:33:09.520
sondern eher so um so Meta-Quatsch.

01:33:09.520 --> 01:33:13.360
Logzeitstempel oder sowas.

01:33:13.360 --> 01:33:15.180
So Telemetrie im weitesten Sinne.

01:33:15.180 --> 01:33:16.040
Ja, im weitesten Sinne, ja.

01:33:16.040 --> 01:33:19.220
Und ohne, dass ich jetzt irgendwie so Nutzer daran identifizieren möchte,

01:33:19.220 --> 01:33:21.600
um irgendwie da noch ein Quäntchen Umsatz rauszuquetschen,

01:33:21.600 --> 01:33:23.960
sondern einfach nur so ein bisschen um den Flow

01:33:23.960 --> 01:33:25.140
so ein bisschen besser im Blick zu haben.

01:33:25.140 --> 01:33:26.640
Ja, technische Daten brauchst du natürlich.

01:33:26.640 --> 01:33:27.980
Das steht ja außer Frage.

01:33:27.980 --> 01:33:30.200
Sonst funktioniert die Software ja nicht.

01:33:30.200 --> 01:33:31.160
Ja.

01:33:31.160 --> 01:33:35.860
Ja, aber auch da, ich meine,

01:33:35.960 --> 01:33:37.900
man macht sich vielleicht nicht immer klar, welche

01:33:37.900 --> 01:33:39.580
Optionen man eigentlich hat. Natürlich kann man irgendwie

01:33:39.580 --> 01:33:41.580
Sachen speichern und so, aber die Frage ist halt,

01:33:41.580 --> 01:33:43.960
wiederum, wenn du nicht so viele Nutzer hast,

01:33:43.960 --> 01:33:44.900
du kannst ja auch einfach fragen.

01:33:44.900 --> 01:33:47.560
Beispielsweise wäre jetzt auch so ein GraphQL-Api.

01:33:47.560 --> 01:33:49.880
Wenn ich jetzt nicht ein Problem mit

01:33:49.880 --> 01:33:51.760
Latenz habe, ich ziehe mir dann Maximum

01:33:51.760 --> 01:33:53.400
und schmeiße alles weg, was ich nicht brauche.

01:33:53.400 --> 01:33:55.760
Man könnte natürlich auch direkt die

01:33:55.760 --> 01:33:57.520
Query so effektiv stellen,

01:33:57.520 --> 01:33:58.780
dass man das Minimum holt.

01:33:58.780 --> 01:34:00.580
Du kannst auch direkt die Datenbank

01:34:00.580 --> 01:34:03.220
quasi in deinen Browser reinpacken.

01:34:03.220 --> 01:34:05.360
Das geht natürlich auch. Es gibt auch bestimmte

01:34:05.360 --> 01:34:06.540
Anwendungswelle nennen, das so toll ist.

01:34:06.540 --> 01:34:09.500
Aber ja, es gibt

01:34:09.500 --> 01:34:11.040
auch gute Gründe, warum Leute das anders machen.

01:34:11.040 --> 01:34:13.040
Ja, man muss halt ein bisschen mehr Format haben.

01:34:13.040 --> 01:34:15.320
Der weitere Vorteil ist, wenn ich

01:34:15.320 --> 01:34:17.560
die Daten nicht sammle, dann ist

01:34:17.560 --> 01:34:18.660
mein Backup deutlich kleiner.

01:34:18.660 --> 01:34:21.440
Ja, also ich würde sagen, einer der wichtigsten Argumente

01:34:21.440 --> 01:34:23.240
ist vielleicht auch das weniger Stromverbrauch, so ein bisschen

01:34:23.240 --> 01:34:24.680
weniger Kosten, auch

01:34:24.680 --> 01:34:25.560
ökologisch.

01:34:25.560 --> 01:34:27.920
Ja.

01:34:27.920 --> 01:34:30.940
Aber ich finde das

01:34:30.940 --> 01:34:32.940
als Grundsatz zu sagen,

01:34:32.940 --> 01:34:34.900
ich schaue mal, ob ich

01:34:34.900 --> 01:34:36.260
jetzt nicht vielleicht irgendwie,

01:34:36.260 --> 01:34:38.500
welche Daten ich wirklich brauche und welche halt nicht.

01:34:38.500 --> 01:34:40.840
Und die, die ich nicht brauche, die speichere

01:34:40.840 --> 01:34:42.820
ich gar nicht erst. Das finde ich eigentlich schon

01:34:42.820 --> 01:34:44.560
recht sinnvoll.

01:34:44.560 --> 01:34:44.960
Ja.

01:34:44.960 --> 01:34:49.360
Ja.

01:34:49.360 --> 01:34:53.240
Was eigentlich für so ein ORM-Ding

01:34:53.240 --> 01:34:54.760
sprechen wir mit Klaren, definierten Modellen

01:34:54.760 --> 01:34:55.540
mit einer Klarenvalidierung?

01:34:55.540 --> 01:34:58.620
Zu dieser grundsätzlichen Frage,

01:34:58.620 --> 01:35:00.800
Datenbank ja oder nein, aus meiner Perspektive

01:35:00.800 --> 01:35:01.660
ist das jetzt eher,

01:35:01.660 --> 01:35:04.520
würde ich ja sagen, ja gut, das Dateisystem ist ja auch

01:35:04.520 --> 01:35:05.940
eine Datenbank. Ja. Es ist halt nur

01:35:05.940 --> 01:35:08.300
eine andere Art von Datenbank. Es ist halt eine

01:35:08.300 --> 01:35:10.400
hierarchische Datenbank, keine relationale.

01:35:10.400 --> 01:35:12.460
Die Buskette steht ja auch in Falsch irgendwo rum.

01:35:12.460 --> 01:35:14.520
Ja, genau.

01:35:14.520 --> 01:35:16.720
Insofern

01:35:16.720 --> 01:35:18.480
ist halt auch da

01:35:18.480 --> 01:35:20.320
die Frage, und es ist ja auch, wenn man

01:35:20.320 --> 01:35:21.540
eine Web-Anwendung hat, die sind die,

01:35:21.540 --> 01:35:23.940
jetzt wenn man ein Django hat oder so,

01:35:23.940 --> 01:35:25.960
oder was auch immer,

01:35:25.960 --> 01:35:27.920
für eine Standard-Web-Anwendung,

01:35:27.920 --> 01:35:30.160
dann üblicherweise hat man ja auch da nicht nur

01:35:30.160 --> 01:35:33.740
Daten in Tabellen, sondern

01:35:33.740 --> 01:35:35.260
da hat man ja auch noch was anderes.

01:35:35.260 --> 01:35:37.780
Da hat man inzwischen eigentlich nicht mehr

01:35:37.780 --> 01:35:39.760
wirklich Filesystem. Früher war es dann Filesystem noch,

01:35:39.760 --> 01:35:42.060
aber inzwischen ist es halt ein Object-Store meistens.

01:35:42.060 --> 01:35:43.320
Irgendwas Cache-Redis oder?

01:35:43.320 --> 01:35:45.760
Cache, gut, aber das ist jetzt nicht unbedingt Teil

01:35:45.760 --> 01:35:47.740
der Datenhaltung. Da liegt ja auch nur

01:35:47.740 --> 01:35:48.700
eine Kopie von dem, was man...

01:35:48.700 --> 01:35:51.060
Du musst ja Redis jetzt auch nicht nur als Cache nehmen,

01:35:51.060 --> 01:35:53.480
sondern kannst halt auch da bestimmte Sachen vorberechnen,

01:35:53.480 --> 01:35:54.760
da ablegen, wenn das irgendwie...

01:35:54.760 --> 01:35:55.920
Gut, das ist nochmal eine andere...

01:35:55.920 --> 01:35:58.340
Redis ist halt so ein Key-Value-Store

01:35:58.340 --> 01:35:59.640
im weitesten Sinne.

01:35:59.640 --> 01:36:03.360
Aber dafür gibt es natürlich auch wieder

01:36:03.360 --> 01:36:05.140
Anwendungsfälle, wo das gut ist,

01:36:05.140 --> 01:36:07.060
aber also diese Kombination

01:36:07.060 --> 01:36:09.220
Relationale Datenbank auf der einen Seite, auf der anderen Seite

01:36:09.220 --> 01:36:11.080
Object Storage für halt

01:36:11.080 --> 01:36:13.240
irgendwie Daten, die jetzt

01:36:13.240 --> 01:36:15.160
irgendwie eine interne Struktur vielleicht haben, aber

01:36:15.160 --> 01:36:16.020
die jetzt nicht irgendwie

01:36:16.020 --> 01:36:19.380
das ist eigentlich schon eine super Kombination.

01:36:19.380 --> 01:36:21.380
Aber ja,

01:36:21.380 --> 01:36:22.900
ich meine gut, Filesystem hat natürlich auch Vorteile.

01:36:22.900 --> 01:36:24.140
Was würdest du denn mit dem Object Storage nehmen?

01:36:24.140 --> 01:36:28.940
Also das habe ich

01:36:28.940 --> 01:36:30.860
leider nochmal, was ich mir gerne angucken würde und

01:36:30.860 --> 01:36:32.780
wovon ich jetzt schon Gutes gehört habe,

01:36:32.840 --> 01:36:33.580
im Zuge von

01:36:33.580 --> 01:36:36.880
Mastodon hat ja dieses Problem auch. Also Leute

01:36:36.880 --> 01:36:38.980
wollen ihre eigenen Instanzen

01:36:38.980 --> 01:36:40.900
hosten und haben dann jetzt auch das Problem,

01:36:40.900 --> 01:36:42.840
dass da ganz viele Bilder und Videos und so Zeugs

01:36:42.840 --> 01:36:44.640
kommen, die sie irgendwo hinlegen müssen.

01:36:44.640 --> 01:36:46.860
Und wenn man das halt nach, ich habe jetzt

01:36:46.860 --> 01:36:48.000
letztens irgendwie,

01:36:48.000 --> 01:36:50.680
wann war das?

01:36:50.680 --> 01:36:52.940
Bis gestern Morgen oder so, keine Ahnung, war

01:36:52.940 --> 01:36:53.180
auch

01:36:53.180 --> 01:36:56.080
Python Podcast, die war weg.

01:36:56.080 --> 01:36:58.740
Hä, warum das denn? Naja, gut, Platte vollgelaufen.

01:36:58.740 --> 01:37:00.440
Und warum? Ja, weil da

01:37:00.440 --> 01:37:02.700
eine Mast oder eine Instanz auf dem

01:37:02.700 --> 01:37:04.760
gleichen Rechner läuft, die halt irgendwie alles vollgemüllt hat.

01:37:04.760 --> 01:37:08.440
genau, dann

01:37:08.440 --> 01:37:10.680
die Standardlösung, oder das erste ist dann halt,

01:37:10.680 --> 01:37:12.140
Leute legen das dann nach S3 oder so

01:37:12.140 --> 01:37:14.360
und stellen dann fest, oh mein Gott, das ist ja voll teuer.

01:37:14.360 --> 01:37:16.580
Ja, das ist...

01:37:16.580 --> 01:37:18.580
Und ja, ich hab jetzt,

01:37:18.580 --> 01:37:20.540
ich weiß nicht, vor den letzten Monaten, und ich hab ja eine super

01:37:20.540 --> 01:37:22.360
kleine Instanz, aber ich hab trotzdem die letzten

01:37:22.360 --> 01:37:24.280
drei, vier Monate hat das Ding irgendwie

01:37:24.280 --> 01:37:26.580
60 GB Daten

01:37:26.580 --> 01:37:28.440
oder so angesammelt, an

01:37:28.440 --> 01:37:30.140
Zeugs. Und

01:37:30.140 --> 01:37:32.660
gut, bei größeren Instanzen wird das noch viel, viel

01:37:32.660 --> 01:37:34.580
mehr sein und dann wird das halt irgendwann teuer, wenn man

01:37:34.580 --> 01:37:36.220
das halt alles nach S3 legt.

01:37:36.220 --> 01:37:38.500
Und dann ist die Frage, okay, kann man das

01:37:38.500 --> 01:37:40.380
irgendwie selber machen? Ja, kann man. Was ich

01:37:40.380 --> 01:37:42.280
dafür schon verwendet habe, ist so

01:37:42.280 --> 01:37:42.740
Minio.

01:37:42.740 --> 01:37:46.560
Ja, das ist aber

01:37:46.560 --> 01:37:48.360
so...

01:37:48.360 --> 01:37:49.700
Das Problem dabei ist,

01:37:49.700 --> 01:37:52.580
das ist quasi

01:37:52.580 --> 01:37:53.780
so ein Bucket-Lokal.

01:37:53.780 --> 01:37:56.580
Gleicher API, gleiches Interface wie S3.

01:37:56.580 --> 01:37:57.580
Gleicher API wie S3,

01:37:58.580 --> 01:38:01.020
aber du kannst halt selber hosten.

01:38:01.020 --> 01:38:02.760
Das ist eigentlich ganz nett.

01:38:02.760 --> 01:38:04.260
Auch GPL, ich glaube auch.

01:38:04.260 --> 01:38:09.200
Ja, das kann man durchaus verwenden,

01:38:09.200 --> 01:38:10.660
auch im kommerziellen Kontext geht das.

01:38:10.660 --> 01:38:13.640
Aber es gibt da eine Firma hinter,

01:38:13.640 --> 01:38:16.400
die ist jetzt auch im Silicon Valley,

01:38:16.400 --> 01:38:17.680
das ist alles irgendwo geschrieben

01:38:17.680 --> 01:38:19.600
und da arbeiten viele Leute,

01:38:19.600 --> 01:38:21.620
die haben wirklich viel, viel Venture-Capital eingesammelt

01:38:21.620 --> 01:38:23.680
und das müssen sie halt irgendwie auch wieder rausholen.

01:38:23.680 --> 01:38:25.300
Das heißt, irgendwann werden sie irgendwie versuchen,

01:38:25.300 --> 01:38:26.740
Methoden zu finden,

01:38:26.820 --> 01:38:28.680
wie sie einem dafür irgendwie

01:38:28.680 --> 01:38:32.100
einen dafür bezahlen lassen können,

01:38:32.100 --> 01:38:33.560
was ja auch irgendwie legitim ist,

01:38:33.560 --> 01:38:35.600
aber das ist halt so ein bisschen...

01:38:35.600 --> 01:38:37.560
Und was halt der große Nachteil von Minio ist,

01:38:37.560 --> 01:38:42.400
dass du da nicht dynamisch irgendwie Dinge hinzustellen

01:38:42.400 --> 01:38:43.080
und wegnehmen kannst,

01:38:43.080 --> 01:38:46.620
sondern das ist halt schon eher so auf den Betrieb ausgelegt.

01:38:46.620 --> 01:38:48.500
Du weißt schon, wie viel Platz du hast

01:38:48.500 --> 01:38:49.700
und das ist alles fertig.

01:38:49.700 --> 01:38:51.640
Wieso kannst du da nicht dynamisch was...

01:38:51.640 --> 01:38:53.280
Du kannst halt nicht einfach eine Maschine dazustellen

01:38:53.280 --> 01:38:54.900
und sagen, so, hier eine Maschine mehr.

01:38:54.900 --> 01:38:55.840
Doch, du kannst auch so einen Cluster,

01:38:55.940 --> 01:38:57.680
dann kannst du irgendwie die in so eine Liste eintragen.

01:38:57.680 --> 01:38:59.960
Das ist dann etwas, wo dann die Leute

01:38:59.960 --> 01:39:02.180
draufgestoßen sind, die dann Minio verwendet

01:39:02.180 --> 01:39:04.260
haben. Das ist ja der große Vorteil

01:39:04.260 --> 01:39:05.880
von AWS und

01:39:05.880 --> 01:39:08.040
der Lambda-Geschichte, dass du das halt

01:39:08.040 --> 01:39:09.540
einfach hochskalieren kannst mit einem Klick.

01:39:09.540 --> 01:39:11.640
Ja, genau. Also wenn du,

01:39:11.640 --> 01:39:13.840
aber Minio ist eher so für jemand,

01:39:13.840 --> 01:39:15.780
der sowas wie S3 betreiben möchte

01:39:15.780 --> 01:39:17.080
und dann halt schon,

01:39:17.080 --> 01:39:19.980
wo du halt schon ein Datastart hast und wo das alles,

01:39:19.980 --> 01:39:21.600
aber wenn du jetzt dynamisch

01:39:21.600 --> 01:39:23.820
irgendwie, du sagst, oh, ich brauche jetzt aber nochmal ein paar

01:39:23.820 --> 01:39:25.920
Terabyte mehr Datenspeicher,

01:39:25.920 --> 01:39:27.760
dann ist Minio flasht.

01:39:27.760 --> 01:39:29.940
Du kannst dein Minio-Cluster, kannst du Sachen auf jeden Fall hinzufügen.

01:39:29.940 --> 01:39:31.160
Das heißt, wenn du dir irgendwie

01:39:31.160 --> 01:39:33.800
dynamisch Kisten spawnst, auf denen

01:39:33.800 --> 01:39:35.860
du Minio aufsetzt und die dann

01:39:35.860 --> 01:39:37.840
kannst du einfach deinem Cluster hinzufügen. Also theoretisch geht das

01:39:37.840 --> 01:39:39.640
halt schon. Ja, also jedenfalls

01:39:39.640 --> 01:39:41.660
ich beziehe mich da jetzt auf die ganzen

01:39:41.660 --> 01:39:43.760
Performance-Tuning und so Dinge, Artikel,

01:39:43.760 --> 01:39:45.660
die Leuten dann aufgefallen sind, die

01:39:45.660 --> 01:39:47.720
größere Mastodon-Inzidenzen betreiben, die meinen so

01:39:47.720 --> 01:39:49.760
Arschhit, das geht nicht, mit Minio geht nicht

01:39:49.760 --> 01:39:51.300
gut, weil du kannst es nicht dynamisch

01:39:51.300 --> 01:39:53.800
kannst du Sachen hinzufügen oder wegnehmen, geht nicht gut.

01:39:53.820 --> 01:39:56.320
und die sind dann alle umgestiegen

01:39:56.320 --> 01:39:57.980
auf etwas, das nennt sich Seaweed FS.

01:39:57.980 --> 01:40:00.280
Okay. Und da geht

01:40:00.280 --> 01:40:02.140
das wohl. Das habe ich aber selber noch nicht

01:40:02.140 --> 01:40:04.300
ausprobiert, also keine Ahnung. Seaweed.

01:40:04.300 --> 01:40:04.700
Ja.

01:40:04.700 --> 01:40:07.080
Ja.

01:40:07.080 --> 01:40:10.280
Genau, das sind halt so die Dinge,

01:40:10.280 --> 01:40:11.860
die man macht. Wieder auf die Enable-To-Do-Liste.

01:40:11.860 --> 01:40:12.980
Ja.

01:40:12.980 --> 01:40:16.280
Naja, genau. Aber ja, also

01:40:16.280 --> 01:40:18.080
die Kombination ist eigentlich schon gut, aber ja klar, ich sehe auch,

01:40:18.080 --> 01:40:19.960
dass man, wenn man ein Fallsystem hat, ist auch nicht

01:40:19.960 --> 01:40:21.920
so schlecht, ja. Also wenn man da tatsächlich reingucken

01:40:21.920 --> 01:40:22.620
kann und so.

01:40:22.620 --> 01:40:23.920
Ja,

01:40:23.920 --> 01:40:27.520
es kommt immer auf den Anwendungsfall an,

01:40:27.520 --> 01:40:29.740
was jetzt da mehr Sinn macht.

01:40:29.740 --> 01:40:31.780
Ja,

01:40:31.780 --> 01:40:33.880
aber ich meine, sozusagen

01:40:33.880 --> 01:40:35.880
aus der Datenbankperspektive, du musst dich ja jetzt dann

01:40:35.880 --> 01:40:37.960
auch tatsächlich um solche Sachen kümmern, wie Backup

01:40:37.960 --> 01:40:39.880
und was

01:40:39.880 --> 01:40:40.820
passiert eigentlich,

01:40:40.820 --> 01:40:43.920
wenn irgendwas weg ist, wie kommt das wieder zurück

01:40:43.920 --> 01:40:45.520
und diese ganzen Prozesse,

01:40:45.520 --> 01:40:47.880
wo du ja, ich meine, klar, bei Datenbanken ist es halt

01:40:47.880 --> 01:40:49.640
vielleicht komplizierter, aber da gibt es ja schon

01:40:49.640 --> 01:40:51.760
dann fertige Lösungen für, das musst du dann ja selber bauen.

01:40:51.920 --> 01:40:53.520
eigentlich? Naja,

01:40:53.520 --> 01:40:56.320
eigentlich nicht. Also wie kommt

01:40:56.320 --> 01:40:58.300
das zurück, war ja deine Frage. Naja, mit

01:40:58.300 --> 01:40:59.660
Ansible und dem Backup.

01:40:59.660 --> 01:41:02.600
Und

01:41:02.600 --> 01:41:04.460
ja, Backups

01:41:04.460 --> 01:41:05.160
mache ich mit Borg.

01:41:05.160 --> 01:41:07.240
Habe noch nichts besseres gefunden.

01:41:07.240 --> 01:41:09.720
Restic ist gut. Kennst du Restic?

01:41:09.720 --> 01:41:12.560
Restic habe ich gelesen.

01:41:12.560 --> 01:41:15.720
Brauche ich da aber eigentlich nicht.

01:41:15.720 --> 01:41:17.820
Also habe noch

01:41:17.820 --> 01:41:19.720
keinen Anwendungsfall, wo ich jetzt

01:41:19.720 --> 01:41:22.000
oberhalb von Borg noch was brauchen würde.

01:41:22.000 --> 01:41:25.460
Was kann RESTIC noch zusätzlich?

01:41:25.460 --> 01:41:28.080
Du kannst halt auch direkt auf ein Bucket

01:41:28.080 --> 01:41:29.700
backupen zum Beispiel oder so.

01:41:29.700 --> 01:41:30.620
Achso.

01:41:30.620 --> 01:41:34.080
Also oder auch irgendwo, wo halt einer läuft,

01:41:34.080 --> 01:41:36.320
also relativ gut ist. Okay, ja, das mache ich sowieso.

01:41:36.320 --> 01:41:38.200
Aber gut, das mache ich dann händisch.

01:41:38.200 --> 01:41:41.720
Also nicht händisch, sondern automatisch.

01:41:41.720 --> 01:41:44.460
Also ich habe es programmiert, sodass es jetzt automatisch läuft.

01:41:44.460 --> 01:41:45.440
Sozusagen.

01:41:45.440 --> 01:41:47.580
Ja.

01:41:49.720 --> 01:42:09.540
Ja, aber, ja, also ich meine, klar, das ist schon eine prächtigte, also muss man sich eigentlich schon überlegen, es ist ja meistens so, dass relationale Daten immer so gesetzt sind, aber ob das für alle Anwendungsfälle immer so der Default sein sollte, das weiß ich auch nicht. Das ist schon, kann man auch nochmal drüber nachdenken, ob das für den eigenen Fall irgendwie Sinn macht.

01:42:10.280 --> 01:42:37.740
Ja, ich meine, aus einer Software-Architektur-Perspektive kann man natürlich auch einfach sagen, das ist halt ein Implementationsdetail, das ich jetzt aus dem Kern meiner Software auch eigentlich raushalten kann. Ich mache an dem halt irgendwie Repository-Pattern oder so und dann habe ich sowieso in meiner Applikation oder in meiner Kernlogik irgendwie nur mit Objekten zu tun und wie die jetzt letztlich gespeichert werden, ob die in einem Filesystem landen, in JSON oder Tommel oder der Datenbank, das ist letztlich egal.

01:42:37.740 --> 01:42:39.740
da kümmert sich irgendwie ein anderer Teil drum und

01:42:39.740 --> 01:42:41.800
das ist gar nicht im Kern meiner Applikation

01:42:41.800 --> 01:42:43.980
drin. Naja, der Vorteil

01:42:43.980 --> 01:42:45.840
der Datenbank, das sehe ich in erster

01:42:45.840 --> 01:42:48.180
Linie in den Aggregationsfunktionen,

01:42:48.180 --> 01:42:49.060
die das halt mitbringt.

01:42:49.060 --> 01:42:51.900
Aber das mache ich halt woanders

01:42:51.900 --> 01:42:52.180
dann.

01:42:52.180 --> 01:42:57.780
Ja, also ich meine, du könntest halt,

01:42:57.780 --> 01:42:59.700
also ich meine, was du in NumPy halt nicht hast, wenn

01:42:59.700 --> 01:43:01.600
du jetzt so große Datenmengen hast, dass

01:43:01.600 --> 01:43:03.840
die gar nicht so wirklich in deinen Hauptspeicher passen

01:43:03.840 --> 01:43:05.620
oder so. Wenn die nicht in den Speicher passen, richtig. Aber auch da

01:43:05.620 --> 01:43:06.600
gibt es Lösungen tatsächlich.

01:43:07.740 --> 01:43:09.640
Da gibt es Abstraktionen

01:43:09.640 --> 01:43:11.480
von NumPy, die das quasi

01:43:11.480 --> 01:43:12.660
so chunk-mäßig

01:43:12.660 --> 01:43:15.560
dann bearbeiten. Also das geht tatsächlich auch.

01:43:15.560 --> 01:43:17.000
Ach cool. Wenn man das will.

01:43:17.000 --> 01:43:21.440
Ja, oder überhaupt so Indizes

01:43:21.440 --> 01:43:23.320
und so hast du wahrscheinlich dann eher nicht.

01:43:23.320 --> 01:43:24.760
Nee, brauche ich nicht.

01:43:24.760 --> 01:43:27.380
Glücklicherweise. Dann können auch keine

01:43:27.380 --> 01:43:29.340
Indizes kollidieren, wenn ich zwei dicke

01:43:29.340 --> 01:43:30.360
Datensätze zusammenfüge.

01:43:30.360 --> 01:43:35.060
Ja, insofern

01:43:35.060 --> 01:43:36.900
auf jeden Fall finde ich

01:43:36.900 --> 01:43:38.460
sehr interessant, weil viele

01:43:38.460 --> 01:43:41.340
irgendwie eher unkonventionelle

01:43:41.340 --> 01:43:42.580
Ansätze oder so, aber

01:43:42.580 --> 01:43:43.580
ja,

01:43:43.580 --> 01:43:46.920
auf jeden Fall sehr interessant.

01:43:46.920 --> 01:43:49.640
Und für den Anwendungsfall

01:43:49.640 --> 01:43:50.820
macht das wahrscheinlich durchaus

01:43:50.820 --> 01:43:51.540
alles Sinn.

01:43:51.540 --> 01:43:54.980
Hat natürlich alles Vor- und Nachteile, aber gut,

01:43:54.980 --> 01:43:57.140
da muss man sich halt dann informieren

01:43:57.140 --> 01:43:57.440
vorher.

01:43:57.440 --> 01:44:03.160
Ja, ich weiß nicht, hast du

01:44:03.160 --> 01:44:04.900
noch irgendein Thema, Martin,

01:44:04.900 --> 01:44:05.900
was du

01:44:05.900 --> 01:44:09.280
wo wir jetzt noch nicht drüber gesprochen

01:44:09.280 --> 01:44:11.240
hatten, oder

01:44:11.240 --> 01:44:12.620
sind wir quasi durch?

01:44:12.620 --> 01:44:14.660
Nö, aktuell

01:44:14.660 --> 01:44:17.280
würde ich sagen, haben wir relativ

01:44:17.280 --> 01:44:18.380
breit alles erschlagen.

01:44:18.380 --> 01:44:19.500
Gut, dann machen wir noch Pics.

01:44:19.500 --> 01:44:22.040
Wer möchte anfangen?

01:44:22.040 --> 01:44:25.340
Okay, dann fange ich mal an.

01:44:25.340 --> 01:44:26.600
Moment.

01:44:26.600 --> 01:44:29.320
Pics.

01:44:29.320 --> 01:44:32.460
Ich würde gerne

01:44:32.460 --> 01:44:33.940
auch eine

01:44:33.940 --> 01:44:36.680
kleine, feine Anwendungen

01:44:36.680 --> 01:44:38.020
picken,

01:44:38.020 --> 01:44:42.640
die jetzt, also auch wieder natürlich

01:44:42.640 --> 01:44:44.840
nicht für so wahnsinnig viele Leute interessant ist,

01:44:44.840 --> 01:44:46.480
gibt es auf iOS und auf dem

01:44:46.480 --> 01:44:48.700
Mac, und zwar

01:44:48.700 --> 01:44:49.180
heißt die

01:44:49.180 --> 01:44:51.200
Paprika.

01:44:51.200 --> 01:44:54.660
Und das ist so eine Rezeptverwaltung.

01:44:54.660 --> 01:44:55.900
Ich weiß nicht, wenn man halt

01:44:55.900 --> 01:44:58.380
gerne kocht und viele Rezepte hat und so,

01:44:58.380 --> 01:45:00.640
dann überlegt man sich ja häufig,

01:45:00.640 --> 01:45:02.520
wo man die dann irgendwie zentral

01:45:02.520 --> 01:45:04.500
lagert oder keine Ahnung, was man damit...

01:45:04.500 --> 01:45:06.320
Obsidian. Ja, Obsidian.

01:45:06.320 --> 01:45:07.720
Ja, gut, aber das dann halt,

01:45:07.720 --> 01:45:10.080
das ist halt sehr

01:45:10.080 --> 01:45:12.540
puristisch irgendwie.

01:45:12.540 --> 01:45:14.280
Kannst ja

01:45:14.280 --> 01:45:16.220
direkt Static Pages, das

01:45:16.220 --> 01:45:18.440
Rezepte eignet sich dafür sehr gut, rinnern lassen, deinen Bock.

01:45:18.440 --> 01:45:19.720
Ja, aber

01:45:19.720 --> 01:45:22.920
klar, kann man

01:45:22.920 --> 01:45:24.260
machen, ist halt aber

01:45:24.260 --> 01:45:26.360
nicht unbedingt auf den Rezeptanwendungsfall

01:45:26.360 --> 01:45:27.840
irgendwie so wahnsinnig gut

01:45:27.840 --> 01:45:29.260
zugeschnitten.

01:45:29.260 --> 01:45:32.260
Und das Ding kann halt so Sachen wie

01:45:32.260 --> 01:45:36.320
wie zum Beispiel, das hat einen eingebauten Browser

01:45:36.320 --> 01:45:38.560
und dann, wenn man irgendwo im Web ist

01:45:38.560 --> 01:45:39.840
und sieht halt irgendwo ein Rezept oder so,

01:45:39.840 --> 01:45:41.240
dann kann man sagen, okay, speichere mir das mal

01:45:41.240 --> 01:45:45.060
und dann kann man halt die unterschiedlichen Teile,

01:45:45.060 --> 01:45:46.700
also man hat sozusagen ein Schema,

01:45:46.700 --> 01:45:48.820
in dem die Rezepte irgendwie gespeichert werden

01:45:48.820 --> 01:45:52.000
und dann kann man halt in dem eingebauten Browser

01:45:52.000 --> 01:45:53.360
kann man dann halt so Rechtecke ziehen und sagen,

01:45:53.360 --> 01:45:54.500
so, das hier sind die Zutaten

01:45:54.500 --> 01:45:55.920
und dann zieht man da einfach ein Rechteck drüber

01:45:55.920 --> 01:45:56.880
und sagt so, da waren die Zutaten

01:45:56.880 --> 01:45:57.640
und dann macht es halt flupp

01:45:57.640 --> 01:45:59.740
und dann sind die Zutaten halt in einem ordentlichen Format drin.

01:45:59.740 --> 01:46:02.060
Oder hier, das ist das Bild, wo man wirklich sehen kann,

01:46:02.160 --> 01:46:04.160
was da drauf, also weil, woher

01:46:04.160 --> 01:46:06.220
soll, will man sonst

01:46:06.220 --> 01:46:08.020
wissen, also oft auf Webseiten gibt es halt viele Bilder,

01:46:08.020 --> 01:46:10.200
wo ist denn, welches Bild ist denn jetzt so das, auf dem

01:46:10.200 --> 01:46:12.280
es wirklich zu sehen ist, was da gekocht

01:46:12.280 --> 01:46:14.240
wurde und dann klickt man halt auf das Richtige

01:46:14.240 --> 01:46:16.140
und dann hat man hinterher, also

01:46:16.140 --> 01:46:18.120
mit relativ wenig, also hat sich jemand wirklich Mühe

01:46:18.120 --> 01:46:20.400
gegeben, dass man mit relativ wenig Aufwand

01:46:20.400 --> 01:46:21.960
und irgendwie auf so einer Seite rumklicken

01:46:21.960 --> 01:46:24.120
quasi ein Rezept in eine sehr

01:46:24.120 --> 01:46:26.080
strukturierte Form bringen kann, wo man dann nachher so

01:46:26.080 --> 01:46:28.200
Abfragen machen kann, wie, gib mir doch mal alles,

01:46:28.200 --> 01:46:29.980
wo irgendwie Zucchini vorkommt

01:46:29.980 --> 01:46:32.160
und irgendwie keine Ahnung, weiß ich nicht,

01:46:32.160 --> 01:46:33.780
und ein Dessert ist oder so und das kommt zu dir dann.

01:46:33.780 --> 01:46:35.920
Was mit dem Obsidian-Ansatz

01:46:35.920 --> 01:46:37.520
natürlich ist dann halt schwieriger.

01:46:37.520 --> 01:46:40.200
Ja, genau. Und das synchronisiert

01:46:40.200 --> 01:46:42.160
halt auch, man kann auch direkt sagen, wenn man ein Rezept hat,

01:46:42.160 --> 01:46:43.900
okay, machen wir mal eine Einkaufsliste draus

01:46:43.900 --> 01:46:44.880
und so und

01:46:44.880 --> 01:46:47.920
ja, dann hat das

01:46:47.920 --> 01:46:49.720
dann halt auf dem Telefon beziehungsweise

01:46:49.720 --> 01:46:51.980
auf der Uhr, wenn man durch den Supermarkt

01:46:51.980 --> 01:46:52.800
läuft, dann kann man die Sachen

01:46:52.800 --> 01:46:54.580
wegklicken.

01:46:54.580 --> 01:46:57.840
Also, sehr angenehmes Ding.

01:46:57.840 --> 01:46:59.760
Ich bin deswegen drauf gekommen, weil

01:46:59.760 --> 01:47:01.200
ich habe halt so eine

01:47:01.200 --> 01:47:03.800
Webseite Captain Cook

01:47:03.800 --> 01:47:04.720
irgendwie.

01:47:04.720 --> 01:47:07.760
Da gibt es immer ganz interessante Vorschläge,

01:47:07.760 --> 01:47:09.600
was Rezepte angeht, so drei pro Tag.

01:47:09.600 --> 01:47:11.460
Und ich hatte früher auch

01:47:11.460 --> 01:47:13.580
eine Kombination aus Paltenbeckend und

01:47:13.580 --> 01:47:15.820
Vue.js Melee verwendet.

01:47:15.820 --> 01:47:17.700
Früher,

01:47:17.700 --> 01:47:18.520
also vor drei Wochen?

01:47:18.520 --> 01:47:20.880
Vor einem Jahr ungefähr, habe ich damit mal angefangen.

01:47:20.880 --> 01:47:23.200
Weil das auch ganz interessant aussah.

01:47:23.200 --> 01:47:25.000
Aber ehrlich gesagt,

01:47:25.000 --> 01:47:27.020
das zu deployen ist schon ganz schön ein Horror.

01:47:27.020 --> 01:47:28.100
Ja, ich mag Melee nicht so gut.

01:47:29.080 --> 01:47:47.040
Ja, aber und dann habe ich irgendwie ein Ding gebaut, was mir sozusagen die Rezeptgeschichten, die es da bei dieser App gibt, in dieser Captain Cook App, halt rüber sinkt in meinen Melee und ich dann halt nur noch Melee verwenden muss und nicht mehr die komische App, weil die App von Captain Cook ist halt, sieht zwar irgendwie nett aus, aber sie ist halt, funktioniert nicht so richtig.

01:47:49.280 --> 01:47:51.580
genau. Und da hat jemand dann ein Pull-Request

01:47:51.580 --> 01:47:55.280
gegengestellt und hat gesagt,

01:47:55.280 --> 01:47:57.400
hier, soll das nicht auch vielleicht mal nach

01:47:57.400 --> 01:47:59.340
Paprika sinken und so? Ich so, Paprika kenne ich gar nicht.

01:47:59.340 --> 01:48:01.320
Da bin ich auch aufmerksam geworden und

01:48:01.320 --> 01:48:03.300
ja, voll super, jetzt sinkt das halt auch dahin und jetzt

01:48:03.300 --> 01:48:05.300
verwende ich Paprika und bin sehr zufrieden.

01:48:05.300 --> 01:48:07.140
Also was echt cool klingt,

01:48:07.140 --> 01:48:08.640
ist halt mit den Bildern und den Zutaten, weil

01:48:08.640 --> 01:48:10.920
ich mache das halt immer alles selber, aber gut.

01:48:10.920 --> 01:48:11.380
Ja.

01:48:11.380 --> 01:48:13.640
Ja, okay.

01:48:13.640 --> 01:48:16.620
Cool. Ich würde

01:48:16.620 --> 01:48:18.600
Copilot Labs picken.

01:48:19.280 --> 01:48:22.620
Also Copilot, haben wir ja schon ein paar Mal

01:48:22.620 --> 01:48:24.680
drüber gesprochen, wunderschöne Extension

01:48:24.680 --> 01:48:26.420
für den Editor deiner Wahl,

01:48:26.420 --> 01:48:27.800
zum Bessermachen.

01:48:27.800 --> 01:48:30.540
Copilot Labs, ich weiß nicht, ob es auch für andere

01:48:30.540 --> 01:48:32.460
IDEs geht, als VS Code, aber

01:48:32.460 --> 01:48:33.740
damit kannst du halt so Sachen machen, wie

01:48:33.740 --> 01:48:36.900
markier dir irgendwie ein paar Funktionen,

01:48:36.900 --> 01:48:38.540
mach doch mal bitte Type-Ins dran, oder

01:48:38.540 --> 01:48:40.200
ein paar Tests hätte ich hier gerne und so.

01:48:40.200 --> 01:48:42.520
Und das funktioniert ganz gut, das ist

01:48:42.520 --> 01:48:44.740
ganz nett. Oder übersetzt

01:48:44.740 --> 01:48:46.440
das mal in eine andere Sprache, also hier habe ich

01:48:46.440 --> 01:48:48.520
einen Python-Code, hier kann ich go, oder andersrum,

01:48:48.700 --> 01:48:50.620
Oder, ja, das...

01:48:50.620 --> 01:48:52.400
Okay, hab ich auch noch nicht. Ich verwende immer nur

01:48:52.400 --> 01:48:54.440
den Standard-Copilot, ja. Ja, und das würde ich sagen,

01:48:54.440 --> 01:48:56.460
das ist eine sehr, sehr geile Extension noch

01:48:56.460 --> 01:48:56.860
dazu.

01:48:56.860 --> 01:48:59.960
Was ich beim Copilot gelesen habe,

01:48:59.960 --> 01:49:02.480
ist das folgende, wenn da ein Fehler

01:49:02.480 --> 01:49:04.480
auftritt, also angenommen, man nutzt

01:49:04.480 --> 01:49:06.120
halt Copilot in VS Code oder so,

01:49:06.120 --> 01:49:08.740
dann schickt der einmal

01:49:08.740 --> 01:49:10.380
komplett alle geöffneten

01:49:10.380 --> 01:49:12.480
Files zu Microsoft drüber.

01:49:12.480 --> 01:49:14.500
Und da bin ich

01:49:14.500 --> 01:49:15.320
ein bisschen stutzig geworden.

01:49:15.320 --> 01:49:17.980
Ob das denn so geht.

01:49:18.700 --> 01:49:24.760
Ja, und Teams-Chat und so und alles, was so im Memory hängt noch irgendwie an.

01:49:24.760 --> 01:49:27.960
Ja, das weiß ich nicht, aber ich habe halt gelesen,

01:49:27.960 --> 01:49:32.280
alle geöffneten Files im VS Code schickt er dann rüber.

01:49:32.280 --> 01:49:34.640
Und das geht ja dann nicht.

01:49:34.640 --> 01:49:38.420
Also wenn da zum Beispiel irgendeine Firma sitzt, glaube ich kaum,

01:49:38.420 --> 01:49:41.640
dass die Company-Richtlinien das dann erlauben.

01:49:41.640 --> 01:49:46.540
Ja, ich meine, das ist natürlich schon ein Problem.

01:49:47.460 --> 01:49:49.480
Es gibt ja den berühmten Spruch, da würde ich jetzt

01:49:49.480 --> 01:49:51.500
sagen an der Stelle, better ask for forgiveness

01:49:51.500 --> 01:49:52.200
than for permission.

01:49:52.200 --> 01:49:55.020
Ja.

01:49:55.020 --> 01:49:57.420
Es kommt ja vielleicht darauf an,

01:49:57.420 --> 01:49:59.340
ob du jetzt tatsächlich patentrelevante Dinge

01:49:59.340 --> 01:50:00.480
machst oder nicht.

01:50:00.480 --> 01:50:02.040
Also,

01:50:02.040 --> 01:50:05.220
ich meine, auch OpenAI hat da ja

01:50:05.220 --> 01:50:07.260
diverse Probleme, die sind ja

01:50:07.260 --> 01:50:08.820
irgendwie, wie heißt das,

01:50:08.820 --> 01:50:11.360
Italien ist komplett gesperrt

01:50:11.360 --> 01:50:11.620
worden.

01:50:11.620 --> 01:50:14.740
Jetzt ist es wieder frei.

01:50:14.740 --> 01:50:15.580
Jetzt ist es wieder frei, aber

01:50:15.580 --> 01:50:18.120
weil sie haben, aber das fand ich schon

01:50:18.120 --> 01:50:20.060
auch ein bisschen dreist von Open Air, dass sie da halt wirklich

01:50:20.060 --> 01:50:22.040
gar nichts zu sagen, ich meine sie können ja

01:50:22.040 --> 01:50:23.920
da, man kann ja, wenn man das sagt, was man da tut

01:50:23.920 --> 01:50:25.740
mit den Taten, das kann man ja durchaus einiges machen, aber

01:50:25.740 --> 01:50:28.080
sie haben halt einfach gar nichts dazu gesagt und das ist halt schon

01:50:28.080 --> 01:50:30.440
Wobei das ist ein bisschen andersrum

01:50:30.440 --> 01:50:31.180
also die haben ja quasi

01:50:31.180 --> 01:50:33.560
Du musst die Story jetzt auch fertig erzählen, man konnte die Story gar nicht verstehen, Entschuldigung

01:50:33.560 --> 01:50:34.480
Welche Story?

01:50:34.480 --> 01:50:37.720
Was sie da einfach gesperrt haben in Italien, ich dachte Italien hat

01:50:37.720 --> 01:50:39.280
sich überlegt, dass sie da keinen Bock drauf haben

01:50:39.280 --> 01:50:41.400
Nee, nee, nee, das ist eine europäische Geschichte

01:50:41.400 --> 01:50:43.320
das hätte auch dann, das droht da auch

01:50:43.320 --> 01:50:44.800
dann in anderen europäischen Ländern zu

01:50:44.800 --> 01:50:47.920
passieren, weil du musst halt, wenn du irgendwie Daten

01:50:47.920 --> 01:50:49.420
von Leuten speicherst oder damit irgendwas machst,

01:50:49.420 --> 01:50:51.720
musst du halt zumindest sagen, was du da tust

01:50:51.720 --> 01:50:53.800
und warum. Und das haben sie

01:50:53.800 --> 01:50:55.740
nicht gemacht. Und daher kann man sagen,

01:50:55.740 --> 01:50:56.120
okay,

01:50:56.120 --> 01:50:59.800
darfst du deine Produkte in der EU nicht anbieten

01:50:59.800 --> 01:51:01.760
und Italien hat das so ausgelegt, das kann jedes Land

01:51:01.760 --> 01:51:03.400
dann so auslegen, wie sie das möchten,

01:51:03.400 --> 01:51:05.200
dass kann das da

01:51:05.200 --> 01:51:07.240
niemand mehr darauf zugreifen. Ja gut, aber Artikel

01:51:07.240 --> 01:51:09.180
6.1 FDSGVO

01:51:09.180 --> 01:51:11.220
zum Beispiel sagt, dass ein Anbieter

01:51:11.220 --> 01:51:12.940
eines Dienstes alle für den

01:51:12.940 --> 01:51:15.040
Vertragserfüllung relevanten Daten durchaus erheben darf.

01:51:15.040 --> 01:51:17.080
Ja, ja, ja, klar. Aber du

01:51:17.080 --> 01:51:18.980
musst trotzdem sagen, was

01:51:18.980 --> 01:51:20.180
du da irgendwie machst und warum.

01:51:20.180 --> 01:51:22.400
Du darfst das schon, aber

01:51:22.400 --> 01:51:24.760
sie haben ja nicht mal was dazu gesagt.

01:51:24.760 --> 01:51:26.500
Und das machen sie jetzt und dann geht's wieder.

01:51:26.500 --> 01:51:28.580
Also insofern. Aber ja,

01:51:28.580 --> 01:51:30.180
ich meine, na, so.

01:51:30.180 --> 01:51:31.800
Nee, ist halt...

01:51:31.800 --> 01:51:34.780
Wobei da ist es ein bisschen andersrum. Also da nimmt sich ja

01:51:34.780 --> 01:51:36.520
OpenAI quasi den

01:51:36.520 --> 01:51:38.080
Datensatz Internet

01:51:38.080 --> 01:51:40.640
und lernt da drauf. Und

01:51:40.640 --> 01:51:42.700
falls sie damit was machen, was sie

01:51:42.700 --> 01:51:44.560
nicht dürfen, haben die ja das Problem. Bei

01:51:44.560 --> 01:51:46.640
Copilot ist es ja so ein bisschen andersrum.

01:51:46.640 --> 01:51:48.500
Da ist ja der Anwender quasi dafür

01:51:48.500 --> 01:51:50.560
verantwortlich. Also wenn der Anwender

01:51:50.560 --> 01:51:52.300
in der Firma sitzt und lädt jetzt Teile

01:51:52.300 --> 01:51:54.580
des Quellcodes der Firma irgendwo

01:51:54.580 --> 01:51:56.540
hoch, darf glaube ich

01:51:56.540 --> 01:51:58.700
der geneigte Mitarbeiter

01:51:58.700 --> 01:51:59.380
eigentlich auch nicht.

01:51:59.380 --> 01:52:02.760
Naja, ich sag mal so, wenn du über GitHub bist, ist das eh wurscht.

01:52:02.760 --> 01:52:06.600
Ja, wenn deine Code da eh liegt, ja, klar.

01:52:06.600 --> 01:52:09.080
Aber ich meine,

01:52:09.080 --> 01:52:10.560
auch was Leute halt so bei

01:52:10.560 --> 01:52:12.600
ChatGPT oder so reinpesten. Also ehrlich

01:52:12.600 --> 01:52:13.920
gesagt, ich paste da ja auch viel Code rein.

01:52:13.920 --> 01:52:16.780
Das ist

01:52:16.780 --> 01:52:18.160
halt auch ein Anwendungsfall

01:52:18.160 --> 01:52:20.040
und da ist wahrscheinlich auch viel

01:52:20.040 --> 01:52:22.240
dabei, wo man als Firma ein Problem

01:52:22.240 --> 01:52:23.500
mit hätte, wenn Leute das halt machen.

01:52:23.500 --> 01:52:24.960
Aber ja.

01:52:24.960 --> 01:52:26.820
Ja, aber als Firma, ganz ehrlich,

01:52:26.820 --> 01:52:30.060
gerade als Firma ist doch wohl

01:52:30.060 --> 01:52:32.060
ein berechtigtes Interesse daran,

01:52:32.060 --> 01:52:34.260
Produktivität und Effektivität

01:52:34.260 --> 01:52:35.980
zu haben und die ganzen Secrets,

01:52:35.980 --> 01:52:37.820
die irgendjemand damit preisgeben könnte,

01:52:37.820 --> 01:52:39.860
die Maschine dahinter,

01:52:39.860 --> 01:52:41.300
die fängt jetzt ja nicht an,

01:52:41.980 --> 01:52:43.740
individuell nach dir zu suchen und deine Sequels

01:52:43.740 --> 01:52:45.260
rauszupaldovern, um

01:52:45.260 --> 01:52:47.580
da selber einen Profit zu machen. Also gerade aus,

01:52:47.580 --> 01:52:49.640
also auch als Firma würde ich das sagen.

01:52:49.640 --> 01:52:50.660
Das ist aber viele Könnte, Sollte dabei.

01:52:50.660 --> 01:52:53.580
Ich weiß jetzt nicht, ob ich meine wirklich

01:52:53.580 --> 01:52:55.420
patentierbaren Sachen da irgendwie

01:52:55.420 --> 01:52:58.020
optimieren lassen würde, aber ansonsten

01:52:58.020 --> 01:52:59.860
würde ich jetzt sagen, hm. Und es gibt halt auch

01:52:59.860 --> 01:53:01.800
zum Beispiel, wenn man das nicht möchte, als

01:53:01.800 --> 01:53:03.860
Firma, ja durchaus, Auftragsdatenverarbeitungs

01:53:03.860 --> 01:53:05.840
Dinge, wenn man jetzt mit dem

01:53:05.840 --> 01:53:07.340
Microsoft Professional Vertrieb spricht,

01:53:07.340 --> 01:53:09.800
wo man dann APIs bekommt, wo

01:53:09.800 --> 01:53:11.700
die Daten halt nicht zurückgeflossen werden,

01:53:11.860 --> 01:53:13.880
sollen und so weiter. Das heißt, dann meint man

01:53:13.880 --> 01:53:15.700
halt sowas, dann hat man halt einen anderen API-Endpunkt

01:53:15.700 --> 01:53:17.160
mit einem anderen API-Key, basta.

01:53:17.160 --> 01:53:19.880
Ja, genau. Also ich weiß von

01:53:19.880 --> 01:53:21.860
einer Firma, da ist in den Firmenrichtlinien

01:53:21.860 --> 01:53:23.320
Copilot direkt verboten worden.

01:53:23.320 --> 01:53:25.780
Ja, das stellen sich auch immer alle ziemlich viel an.

01:53:25.780 --> 01:53:27.900
Also ich

01:53:27.900 --> 01:53:29.820
fand den Punkt auch, ich weiß gar nicht,

01:53:29.820 --> 01:53:31.200
wer das gesagt hatte, ich glaube

01:53:31.200 --> 01:53:33.440
Manuel, das hast du in der letzten Episode gesagt,

01:53:33.440 --> 01:53:35.480
bei Firmen ist ja sowieso an einer gewissen Größe

01:53:35.480 --> 01:53:37.840
so effizient kannst du da gar nicht mehr sein.

01:53:37.840 --> 01:53:39.600
Ja, aber jeder Angst hat dann, dass

01:53:39.600 --> 01:53:41.920
dass du jedes einzelne Software-Paket

01:53:41.920 --> 01:53:44.100
irgendwie verifizieren musst von irgendeinem

01:53:44.100 --> 01:53:45.620
Audit-Team, was meinst du, kannst du besser als die

01:53:45.620 --> 01:53:47.800
Umsatz-Community und so, und dann sitzen da

01:53:47.800 --> 01:53:49.620
zwei Männchen und machen dann ein Audit von

01:53:49.620 --> 01:53:51.620
150.000 Datapaketen oder sowas,

01:53:51.620 --> 01:53:52.020
Entschuldigung.

01:53:52.020 --> 01:53:55.260
Muss ja nicht alles sinnvoll sein, aber

01:53:55.260 --> 01:53:56.740
das...

01:53:56.740 --> 01:53:58.520
Worüber reden wir, ist das eine ABM oder was?

01:53:58.520 --> 01:54:01.680
Also ganz ehrlich, die Kosten und den Nutzen vom Business

01:54:01.680 --> 01:54:02.920
würde ich jetzt sagen, auch von

01:54:02.920 --> 01:54:05.660
von einem anderen Flight-Level

01:54:05.660 --> 01:54:07.580
würde ich sagen, ist das

01:54:07.580 --> 01:54:08.340
vernachlässigbar.

01:54:09.600 --> 01:54:11.400
Naja, muss halt die Firma dann am Ende entscheiden.

01:54:11.400 --> 01:54:11.580
Ja, genau.

01:54:11.580 --> 01:54:13.760
Eher nicht der Mitarbeiter.

01:54:13.760 --> 01:54:17.320
Aber das ist die Frage, ob sich jemand in der Firma damit auskennt,

01:54:17.320 --> 01:54:18.840
um diese Entscheidungsgrundlage zu haben, um das zu verstehen.

01:54:18.840 --> 01:54:20.940
Oft genug wahrscheinlich nicht, aber ja.

01:54:20.940 --> 01:54:22.060
Das ist halt ein Trade-off.

01:54:22.060 --> 01:54:22.800
Ja, genau.

01:54:22.800 --> 01:54:27.320
Ja, okay, aber Copilot Labs,

01:54:27.320 --> 01:54:27.860
okay, interessant.

01:54:27.860 --> 01:54:30.760
Ja, jetzt haben wir,

01:54:30.760 --> 01:54:32.380
du hast noch einen Pick auch, Martin?

01:54:32.380 --> 01:54:35.200
Ja, ihr hattet ja

01:54:35.200 --> 01:54:37.080
eine Episode mal gemacht zu PyPy.

01:54:37.080 --> 01:54:39.340
Ziemlich cooles Tool

01:54:39.340 --> 01:54:58.540
übrigens und ich habe noch so eine Ergänzung dazu quasi, das nennt sich Numba. Das ist von den Entwicklern von Anaconda. Anaconda, das ist die quasi Python-Distribution und das finde ich auch richtig genial.

01:55:00.020 --> 01:55:01.360
Mein großer Wunsch

01:55:01.360 --> 01:55:03.360
war, ich schreibe, oder mein großer Traum

01:55:03.360 --> 01:55:05.320
war, ich schreibe Python-Code, dann drücke

01:55:05.320 --> 01:55:07.320
ich einen Knopf und der übersetzt mir das nach C.

01:55:07.320 --> 01:55:09.320
Aha. Und im

01:55:09.320 --> 01:55:11.080
Prinzip macht es das

01:55:11.080 --> 01:55:13.120
eigentlich

01:55:13.120 --> 01:55:15.680
fast ohne Code-Anpassung.

01:55:15.680 --> 01:55:17.040
Also alles, was ich

01:55:17.040 --> 01:55:18.820
da machen muss, ist

01:55:18.820 --> 01:55:21.280
ich mache einen Decorator

01:55:21.280 --> 01:55:22.640
über meine Funktion drüber

01:55:22.640 --> 01:55:25.040
und muss ein bisschen

01:55:25.040 --> 01:55:26.460
aufpassen mit den Eingaben, also

01:55:26.460 --> 01:55:29.340
über die Funktion drüber, muss ein bisschen

01:55:29.340 --> 01:55:31.940
aufpassen mit den Eingabe- und Ausgabedatentypen

01:55:31.940 --> 01:55:33.580
und dann ist es das.

01:55:33.580 --> 01:55:35.660
Dann erzeugt er

01:55:35.660 --> 01:55:37.380
mir quasi zur Laufzeit

01:55:37.380 --> 01:55:39.580
C-Code, cached die und

01:55:39.580 --> 01:55:41.640
führt die quasi mit C-Geschwindigkeit

01:55:41.640 --> 01:55:43.500
aus die Funktion. Finde ich, habe ich probiert,

01:55:43.500 --> 01:55:44.780
funktioniert genial.

01:55:44.780 --> 01:55:47.740
Ja,

01:55:47.740 --> 01:55:49.440
wo würdest du, hast du auch schon mal

01:55:49.440 --> 01:55:50.320
Saiten ausprobiert?

01:55:50.320 --> 01:55:53.240
Weil das ist immer so das, was so standardmäßig irgendwie auch

01:55:53.240 --> 01:55:55.260
bei Scikit-Learn oder so verwendet wird.

01:55:55.260 --> 01:55:56.940
Das Problem ist,

01:55:57.500 --> 01:55:59.380
wenn das Projekt hinreichend groß wird,

01:55:59.380 --> 01:56:01.600
dann habe ich, also ich habe ja

01:56:01.600 --> 01:56:03.700
bei Saiten und bei PyPy

01:56:03.700 --> 01:56:05.140
nicht so richtig die Wahl,

01:56:05.140 --> 01:56:07.620
dass ich jetzt nur einen bestimmten

01:56:07.620 --> 01:56:09.220
Teil meines Projektes damit ausführe.

01:56:09.220 --> 01:56:11.500
Doch, doch, also Saiten auf jeden Fall, also oder ich weiß nicht.

01:56:11.500 --> 01:56:13.720
Ach, bei Saiten gibt es das? Saiten ist einfach auch eine Art

01:56:13.720 --> 01:56:15.660
Python-Dialekt, wo man aber dann

01:56:15.660 --> 01:56:16.960
zum Beispiel, wenn man es schneller haben will,

01:56:16.960 --> 01:56:18.860
die Typen mit dazu schreibt.

01:56:18.860 --> 01:56:21.040
Ist halt ein bisschen, ist auch älter als die Typ-Annotation.

01:56:21.040 --> 01:56:22.900
Ja, ja, ich erinnere mich, aber da musst du

01:56:22.900 --> 01:56:24.860
einiges für tun. Also da musst du

01:56:24.860 --> 01:56:26.340
eigentlich den ganzen Code umstellen.

01:56:26.740 --> 01:56:28.640
Nee, nee, nee, das kannst du für einzelne Funktionen

01:56:28.640 --> 01:56:30.400
auch machen oder für... Ja, aber

01:56:30.400 --> 01:56:32.660
wenn die Funktion schon da ist, musst du sie umstellen.

01:56:32.660 --> 01:56:34.100
Ja, das ist richtig.

01:56:34.100 --> 01:56:36.200
Stimmt, das musst du bei Nummer nicht unbedingt, okay, ja.

01:56:36.200 --> 01:56:38.560
Und bei Nummer brauchst du das nicht, da kannst du das lassen.

01:56:38.560 --> 01:56:39.880
Eigentlich wie es ist,

01:56:39.880 --> 01:56:42.560
Klammer auf, abgesehen von den Eingabe-

01:56:42.560 --> 01:56:44.240
und Ausgabedatentypen, die müssen

01:56:44.240 --> 01:56:46.340
ein spezielles Format haben, aber da ist

01:56:46.340 --> 01:56:48.420
eigentlich, also wenn du eine NumPy-Matrix zum Beispiel

01:56:48.420 --> 01:56:49.960
hast, die kannst du mehr oder weniger so lassen.

01:56:49.960 --> 01:56:52.640
Und dann, ja, ist es das.

01:56:52.640 --> 01:56:54.600
Dekorator drüber, Funktion ist in C,

01:56:54.600 --> 01:56:56.640
fertig. Und ich kann sie von Python aus genauso

01:56:56.640 --> 01:56:58.620
rufen wie vorher. Und die ist halt einfach tausendmal

01:56:58.620 --> 01:56:58.860
schneller.

01:56:58.860 --> 01:57:01.900
Ja, ja, ja, ja.

01:57:01.900 --> 01:57:03.400
Dann war das auch super.

01:57:03.400 --> 01:57:04.620
Ja.

01:57:04.620 --> 01:57:08.400
Da wir jetzt bei dem Speed waren, hat es eben auch noch

01:57:08.400 --> 01:57:10.060
erwähnt, das wollte ich jetzt nochmal ans Ende packen,

01:57:10.060 --> 01:57:12.520
Polar-IRS. Ich glaube, das ist auch

01:57:12.520 --> 01:57:14.420
cool. In dem Zusammenhang, wenn wir

01:57:14.420 --> 01:57:15.300
schon bei Speed wieder sind.

01:57:15.300 --> 01:57:18.300
So als Data-Frame-Tool

01:57:18.300 --> 01:57:20.280
für Rust und Python irgendwie noch

01:57:20.280 --> 01:57:20.660
kombiniert.

01:57:20.660 --> 01:57:23.960
Jojo. Ja.

01:57:23.960 --> 01:57:26.080
Genau. Ja, vielleicht

01:57:26.080 --> 01:57:28.420
ja, ich höre immer, Python ist langsam.

01:57:28.420 --> 01:57:30.420
Ja.

01:57:30.420 --> 01:57:32.560
Also bis jetzt lag es immer an mir

01:57:32.560 --> 01:57:34.100
und nicht an Python.

01:57:34.100 --> 01:57:36.560
Ja. Und wenn es an mir

01:57:36.560 --> 01:57:38.560
lag, dann hatte ich

01:57:38.560 --> 01:57:40.540
auch eine Chance, das zu beheben. Also da gibt

01:57:40.540 --> 01:57:42.160
es zum Beispiel den

01:57:42.160 --> 01:57:44.480
Line-Profiler für

01:57:44.480 --> 01:57:46.500
Python. Weiß nicht, ob

01:57:46.500 --> 01:57:46.880
ihr das kennt.

01:57:46.880 --> 01:57:50.400
Ist das nicht der eingebaute, ne?

01:57:50.400 --> 01:57:52.460
Nee, ist nicht der

01:57:52.460 --> 01:57:54.500
eingebaute. Also Line-Profiler macht im Prinzip

01:57:54.500 --> 01:57:56.480
folgendes, das ist auch wieder ein Dekorator,

01:57:56.480 --> 01:57:58.600
den schreibst du über deine Funktion drüber und der

01:57:58.600 --> 01:58:00.860
annotiert dir an jede Quellcode-Zeile

01:58:00.860 --> 01:58:02.680
wie schnell oder langsam die war.

01:58:02.680 --> 01:58:04.620
Und dann kannst du quasi,

01:58:04.620 --> 01:58:07.020
also üblicherweise

01:58:07.020 --> 01:58:08.660
würde man das so verwenden, du findest

01:58:08.660 --> 01:58:10.540
erstmal die Funktion, die langsam ist, das kannst du mit den

01:58:10.540 --> 01:58:12.360
klassischen Tools machen.

01:58:12.360 --> 01:58:14.660
Ja, also was man

01:58:14.660 --> 01:58:16.560
halt üblicherweise so nimmt, da springen ja

01:58:16.560 --> 01:58:18.400
hinten quasi die Funktionen raus, die langsam sind,

01:58:18.400 --> 01:58:19.960
wenn man es richtig bedient.

01:58:19.960 --> 01:58:22.420
Und dann gehst du quasi mit dem

01:58:22.420 --> 01:58:24.420
Line-Profiler in die Funktion rein und

01:58:24.420 --> 01:58:26.540
schaust dir an, was genau ist denn da langsam.

01:58:26.540 --> 01:58:28.320
Und so kommt man echt

01:58:28.320 --> 01:58:29.060
richtig schnell

01:58:29.060 --> 01:58:32.060
zu einer Performance-Analyse.

01:58:32.060 --> 01:58:34.320
Man kann das dann beheben

01:58:34.320 --> 01:58:36.500
oder dann irgendwie auch doch ein C oder ein Mid-Number-Deprogrammter

01:58:36.500 --> 01:58:38.840
versehen und so. Hast du irgendeinen Lieblingsprofiler

01:58:38.840 --> 01:58:40.100
so für die globale Sicht?

01:58:40.100 --> 01:58:42.300
Ich habe in letzter Zeit häufiger mal das Galin verwendet,

01:58:42.300 --> 01:58:42.800
aber

01:58:42.800 --> 01:58:45.980
Nö, da nehme ich den

01:58:45.980 --> 01:58:48.400
Python-Standard. C-Profile.

01:58:48.400 --> 01:58:49.360
Genau.

01:58:49.360 --> 01:58:52.040
Funktioniert, ist nicht schön, bedienbar,

01:58:52.040 --> 01:58:52.820
aber funktioniert.

01:58:53.880 --> 01:58:55.720
So oft braucht man es ja auch zum Glück auch nicht.

01:58:55.720 --> 01:58:59.840
Also ich bin auch kein Freund von Pre-Major Optimization.

01:58:59.840 --> 01:59:03.740
Also ich optimiere dann, wenn ich wirklich feststelle, es ist langsam.

01:59:03.740 --> 01:59:07.360
Und für meinen Geschmack ist Python oft nicht langsam.

01:59:07.360 --> 01:59:14.820
Aber wenn es eben doch mal langsam ist, dann fange ich an zu profilen und dann kriege ich das, bis jetzt habe ich es immer weggekriegt, das Problem.

01:59:16.480 --> 01:59:18.800
Klingt gut. Das verlinke ich

01:59:18.800 --> 01:59:20.760
vielleicht auch nochmal. Letztens

01:59:20.760 --> 01:59:22.940
einen ganz interessanten Artikel gelesen

01:59:22.940 --> 01:59:24.000
zum Thema

01:59:24.000 --> 01:59:26.420
Müten, von

01:59:26.420 --> 01:59:28.680
Performance-Mythen. Und das ist halt ein

01:59:28.680 --> 01:59:30.140
jetzt habe ich den Namen nicht parat,

01:59:30.140 --> 01:59:32.640
ein Spieleentwickler, der da halt auch schon

01:59:32.640 --> 01:59:34.620
seit langer Zeit, der hat auch so einen YouTube-Channel, der

01:59:34.620 --> 01:59:35.900
irgendwie relativ beliebt ist.

01:59:35.900 --> 01:59:38.420
Und

01:59:38.420 --> 01:59:40.640
der hat

01:59:40.640 --> 01:59:41.880
dann so einen Artikel geschrieben, wo er

01:59:41.880 --> 01:59:44.480
irgendwie so darüber renntet, was halt

01:59:44.480 --> 01:59:46.300
aus seiner Sicht die Leute immer sagen über Performance,

01:59:46.400 --> 01:59:48.080
was alles nicht stimmt. Und da

01:59:48.080 --> 01:59:50.100
sind so ein paar interessante Sachen dabei, wo ich

01:59:50.100 --> 01:59:52.120
dachte so, oh, das höre ich sehr oft, solche Sachen

01:59:52.120 --> 01:59:54.100
und das ist wahrscheinlich Quatsch. Also wo er zum Beispiel

01:59:54.100 --> 01:59:55.840
sowas schreibt wie, naja, die Leute sagen immer,

01:59:55.840 --> 01:59:57.720
man muss eigentlich nur die Hotspots

01:59:57.720 --> 02:00:00.140
irgendwie optimieren. Also du machst

02:00:00.140 --> 02:00:01.780
halt erstmal keine Performance-Geschichten,

02:00:01.780 --> 02:00:03.600
entwickelst ohne Performance

02:00:03.600 --> 02:00:05.640
im Hinterkopf zu haben,

02:00:05.640 --> 02:00:07.520
eben keine premature optimization

02:00:07.520 --> 02:00:10.460
dein Code

02:00:10.460 --> 02:00:12.400
und dann, wenn es langsam ist, dann guckst du halt, wo es langsam

02:00:12.400 --> 02:00:14.300
ist und dann optimierst du das weg und dann meint er so, ja,

02:00:14.300 --> 02:00:16.320
also das funktioniert ja auch manchmal, aber

02:00:16.320 --> 02:00:18.220
manchmal halt auch nicht. Und gerade wenn du jetzt wirklich

02:00:18.220 --> 02:00:20.360
performance-kritische Sachen machst, dann kann es gut

02:00:20.360 --> 02:00:22.160
sein, dass dieser Ansatz überhaupt nicht

02:00:22.160 --> 02:00:24.360
funktioniert, weil du

02:00:24.360 --> 02:00:26.640
halt sozusagen

02:00:26.640 --> 02:00:28.340
dann rauskriegst, wenn du anguckst,

02:00:28.340 --> 02:00:30.260
was sind die Teile deines Codes,

02:00:30.260 --> 02:00:32.260
die langsam sind. Naja, dann ist da halt irgendwie

02:00:32.260 --> 02:00:34.080
Memcpy oder keine Ahnung, da wird halt Hauptspeicher

02:00:34.080 --> 02:00:36.260
durch den Prozessor geschoben. Das ist was, das willst du

02:00:36.260 --> 02:00:38.140
da optimieren. Das ist halt, da kannst du nichts mehr machen.

02:00:38.140 --> 02:00:40.440
Und da musst du eigentlich wieder ans Design

02:00:40.440 --> 02:00:41.800
deiner Applikation. Ja, umstrukturieren.

02:00:41.800 --> 02:00:44.360
Aber wenn ich von vornherein weiß, dass

02:00:44.360 --> 02:00:46.360
dass das performancekritisch ist, dann schreibe

02:00:46.360 --> 02:00:48.180
ich ganz anderen Code. Dann ist der Code

02:00:48.180 --> 02:00:49.860
komplett anders eigentlich.

02:00:49.860 --> 02:00:52.040
Ja, also da kannst du vergessen,

02:00:52.040 --> 02:00:54.340
da musst du komplett das Design ändern.

02:00:54.340 --> 02:00:56.160
Genau, und er meinte dann halt auch,

02:00:56.160 --> 02:00:57.880
dann kann es sein... Wie meintest du, John Carmack?

02:00:57.880 --> 02:01:00.100
Nee, nee, der hat irgendwie so einen

02:01:00.100 --> 02:01:02.200
italienisch klingenden Namen. Ich hab's

02:01:02.200 --> 02:01:03.980
nicht mehr ganz... Okay, I don't know.

02:01:03.980 --> 02:01:06.320
Ja, der...

02:01:06.320 --> 02:01:08.400
Genau, es hängt halt davon ab,

02:01:08.400 --> 02:01:10.000
ob man performancekritisch einen Kram macht oder nicht.

02:01:10.000 --> 02:01:12.400
Wenn man es nicht macht, dann muss man das nicht machen. Aber wenn man

02:01:12.400 --> 02:01:14.320
das hat und hat aber auf die

02:01:14.320 --> 02:01:16.060
falsche Art entwickelt und glaubt dann mit

02:01:16.060 --> 02:01:18.040
irgendwie Hotspots zu optimieren, da rauszukommen

02:01:18.040 --> 02:01:20.120
zu können, dann meint er, so hat er

02:01:20.120 --> 02:01:22.140
schlechte Nachrichten, das kann gut sein, dass das nicht geht und

02:01:22.140 --> 02:01:24.100
das, auch wenn man rausfinden

02:01:24.100 --> 02:01:26.100
möchte jetzt, okay, was ist denn, wie muss

02:01:26.100 --> 02:01:28.060
ich denn die Architektur ändern oder

02:01:28.060 --> 02:01:30.000
das Design, dann kann es sein, dass

02:01:30.000 --> 02:01:32.040
wenn das ein größeres Projekt ist, das

02:01:32.040 --> 02:01:33.980
wird schlimmer als ein Rewrite, der

02:01:33.980 --> 02:01:35.980
dann, wo man im Hinterkopf hat, dass

02:01:35.980 --> 02:01:38.040
das performancekritisch ist und deswegen

02:01:38.040 --> 02:01:40.140
wird das in der Spieleindustrie auch häufiger gemacht und es ist tatsächlich

02:01:40.140 --> 02:01:41.940
auch ab und zu erfolgreich. In anderen Bereichen

02:01:41.940 --> 02:01:43.380
sollte man das vielleicht nicht machen, also

02:01:43.380 --> 02:01:45.640
aber da ist das halt wohl

02:01:45.640 --> 02:01:47.540
ab und zu irgendwie dann halt der beste

02:01:47.540 --> 02:01:48.880
Weg. Und ja,

02:01:48.880 --> 02:01:51.300
tja, ja, das ist alles nicht so einfach.

02:01:51.300 --> 02:01:53.680
Das ist vielleicht dein Schlusswort.

02:01:53.680 --> 02:01:55.280
Ja, kann man immer sagen.

02:01:55.280 --> 02:01:56.940
Hängt davon ab, kommt drauf an.

02:01:56.940 --> 02:01:58.000
Das ist alles nicht so einfach.

02:01:58.000 --> 02:02:02.120
Schönen Dank, dass wir hier zugehört haben.

02:02:02.120 --> 02:02:03.280
Vielen Dank, Martin, dass du da warst.

02:02:03.280 --> 02:02:04.620
Ja, gerne, danke.

02:02:04.620 --> 02:02:05.060
Das war sehr interessant.

02:02:05.060 --> 02:02:07.960
Dann schaltet uns doch bald wieder rein.

02:02:07.960 --> 02:02:10.080
Hallo at peisenpodcast.de

02:02:10.080 --> 02:02:11.700
Bis zum nächsten Mal. Bis dann.

02:02:11.700 --> 02:02:12.320
Ciao.
