Die Arbeit an der Anwendung Premiere Remote, mit der Adobe Premiere über eine offene Schnittstelle ferngesteuert werden kann, wurde fortgesetzt. Die Demo des aktuellen Standes zeigte die Funktionen. Anschließend wurden mehrere Verbesserungen vorgenommen: Die Konfiguration der Überwachung wurde korrigiert, die Synchronisation zwischen WSL- und Windows-Umgebung eingerichtet und ein Problem beim Neustart der Verbindung gelöst. Darüber hinaus wurden gesellschaftliche Auswirkungen von Social Media und künstlicher Intelligenz diskutiert. Die Entwicklung wurde als gemeinsame Arbeit mit einer KI wahrgenommen.

Software and Game Development
00:00:00

Software and Game Development

00:02:55 Niemals sehen im Fitti, denn ich bin zu schwach. Bevor ich Gewichte hochheben tue, trink ich liebe Schnaps. Du trinkst ein Pinot Grigio im Hipsterkies. Ich geb mir Bier und kippe nachm Fliesentisch. Baby, Baby, wenn du willst, dann ficken wir. Und wenn nicht, dann trink ich halt ne Kiste Bier.

00:04:04 Untertitelung des ZDF für funk, 2017

Einstieg und Diskussion über Social Media

00:11:47

00:11:47 Ist da jemand da? Funktioniert das? Hallo? Test? Check, check, check? Ja, es ist schon wieder Sonntag. Habt ihr die Sonntagmorgensmusik nicht gehört?

00:12:12 Ich muss es wirklich mal oder vielleicht sollte ich nicht ich bin mir das ich bin auch ich bin so ein bisschen ungeschlossen ob ich einfach das mal einrichten soll dass ich so vernünftig Musik wiedergeben kann die dann nicht in der Aufnahme landet weil das muss es wird dann in der Aufnahme halt einfach stumm geschalten also es funktioniert nicht für wenn man nebenher auch noch redet jedenfalls nicht über den Audi track verhalten möchte aber

00:12:41 Ich weiß nicht, ich würde dann halt nur noch so Musik laufen lassen. Oder halt Metal. Also es wäre halt schon sehr, sehr amüsant. Ich versuche mal irgendwie die Hände. Okay, also wir kriegen wohl vernünftige Belichtung in diesem Stream hier nicht mehr hin. Ich müsste mal die Kamera zurücksetzen, aber ich denke da jedes Mal so kurz vorm Stream drüber nach.

00:13:13 Ja, auch noch sein Großvater, Alter. War doch irgendwie das Beste, was wir hatten, ne? Ah.

00:13:26 Damals als es neu war, war es easy. Okay, let's see. Erstmal vielen Dank an Kampfzwerg für die 10er Bombe. Ich muss ja sagen, ich bin wirklich so super selten hier online. Das gibt es ja wirklich gar nicht mehr. Also Livestreaming und ich sind getrennte Wege gegangen, könnte man sagen. Und manchmal findet man sich halt noch zu einem awkward Gespräch, wo man sich schon länger nicht mehr gesehen hat, wieder zusammen. Hallo, hier bin ich.

00:13:50 Oder man hat so acht gemeinsame Kinder und die gucken dann halt den Stream und denken an bessere, frühere Zeiten zurück oder so. Okay. Also auf jeden Fall, Kampfzwerg, danke, dass du TheHellseaDragonStrikerGLP Whitestone9, Flohkri, PorscheKatze24, Skalierungsbiologe, geiler Name, Dawn Winters, NuoCo, Sebastian und...

00:14:19 Mutti Momet, einen Sub geschenkt hast. Was habe ich sonst noch so im Chat verpasst? Melanx hat 110 Monate. Herzlichen Glückwunsch. Daniel, ich wollte gerade auch ein X hinten dran packen, aber ist kein X. Er hat 102. Lacktechnik 81. Finjar hat 93. Und Jonas Wuppi hat 75. Vielen Dank. Ja, ihr wart sehr verwirrt im Intro. Das habe ich schon erwartet. Ja, vielleicht wird es der Twitch-Kanal gebannt oder so.

00:14:48 Also schon von dem neuen Gesetzesentwurf gehört, nachdem ihr das fünfte Video im Algorithmus von ausgewählten Medienpronzenten... Ja, ich find's total lustig. Das ist genau mein Humor. Und tatsächlich bin ich so halb zwiegespalten, weil auf der einen Seite jedliche Form von so statischer Kontrolle richtig scheiße, auf der anderen Seite die Gegenseite ist halt genauso scheiße. Also...

00:15:16 Also das ist ungefähr, also für mich ist diese ganze Diskussion auf dem Level von so einer Schlammschlacht, wo man außen beisteht und eigentlich nur genüsslich einen Tee trinkt und reinschaut und sich denkt, trinkt euch halt alle um. Das ist so mein Blick auf die Dinge. Denn für mich ist scheißegal, ob ich 20% weniger Aufrufe habe oder auch nicht oder was auch immer. Also sollen sie sich doch alle kloppen. Ich finde es beeindruckend eher, dass es mal wieder möglich war.

00:15:45 wie weit so ein Entwurf gekommen ist und dass jemand davon mitbekommen hat. Das finde ich eher bedenklich, weil das ist nicht das Zeichen einer guten Demokratie. Aber der Inhalt davon, der ist mir tatsächlich scheißegal. I don't care. Let's see. Das kommt doch sowieso nicht so. Also das ist so wieder, ich meine, Artikel 13 hat uns ja damals auch nicht umgebracht. Wir leben irgendwie immer noch.

00:16:07 Und als ob das, wenn das auch nur einen Hauch von Ungerechtigkeit hat, nicht danach weggebombt wird, äh, weggeklagt wird. Also das ist so, let's see. Also ich bin, glaube ich, ein bisschen zu gechillt, um mir so eine Frage zu stellen. So, jetzt muss ich mal ganz kurz gucken. Also erstmal muss ich hier dieses Stream Elements irgendwie hier hinbekommen. Das ist Stream Awesome. Das ist nicht das, was ich will. Gucken, ob ich da jetzt einfach so reinkomme.

00:16:38 get started, dankeschön damit ich mal wieder hier ja, boah alter also ich muss wirklich sagen, ich habe ja so ein bisschen diese ganze internetgeschichte hinter mir gelassen das kann man glaube ich schon irgendwie so sagen und ich muss sagen, jedes mal wenn ich wieder ein bisschen so zurückblicke aus diesem sehr sehr kleinen, aus dieser sehr sehr kleinen Bubble heraus, die ich mir so jetzt geschaffen habe

00:17:01 Dann vermisse ich wirklich gar nichts, Alter. Ich war vor kurzem dann wieder auf Twitter. Holy fuck, das ist ja, also du kannst ja Twitter gar nicht mehr verwenden. Das ist ja... Also ich meine, ich hatte eigentlich ein ziemlich kuratiertes Following. Follower? Following? Also Leuten, denen ich halt gefollowt bin. Und das kannst ja, das kannst ja komplett in die Tonne treten. Das ist ja... Das ist ja Möll. Also for real. Ähm...

Kritik an Kurzvideos und KI-generierten Inhalten

00:17:29

00:17:29 Nur Scheiße angezeigt. TikTok sowieso. Also TikTok fasse ich nur mit der Kneifzange an. Ich mache TikTok nur auf, wenn ich da die Inhalte, die ich schon auf den Social Media Plattformen, die ich mag, gepostet habe, auch noch posten will. Weil, warum nicht? Vielleicht sehen es ein paar Leute. Im Allgemeinen finde ich total lustig. Das Argument, was gerade mit Shorts passiert. Ich weiß nicht, ob ihr das Video von Niklas Steenfatt gesehen habt.

00:17:55 zu dem Thema, wie einfach man mittlerweile Shorts mit AI machen kann. Und ich fand vor allem seinen sassy Kommentar relativ geil. Mit dem Kommentar so, ah ja, das war's jetzt. AI kann jetzt wirklich herausragend auch Shorts einfach generieren. Das war's dann mit diesem Medium. Kein Verlust, sehe ich genauso. Kein Verlust. Scheiß Shortform Content. Manchmal ganz, also Shortform Content wie damals. So, wie hieß denn diese andere Plattform? Diese...

00:18:22 Diese ganz alte Plattform, wo man nur so 7 Sekunden Videos machen konnte. Das war geil. Das war kreativ. Auch so die Early Days, nicht musical.ly. Wein. Hieß das Wein? Ich glaube, es hieß... Ja, Wein. Ich hatte auch irgendwas mit V im Kopf. Ich wollte erst Viet sagen, aber Viet ist was anderes. Also so die Weinzeiten. So da, das, das, ja. Also wenn Shortform-Content irgendwie anders wäre und also 99% dieses Mülls einfach weg und das ist irgendwie so ein kreatives Medium.

00:18:51 Weil ich finde eigentlich die Idee eines hochkant gefilmten kurzen Videos nicht schlecht. Insbesondere, weil da Thumbnail und Titel keine Rolle spielen und quasi der Algorithmus das einfach mal einspult und dann vielleicht will man das ja angucken, aber...

00:19:08 Die Gegenseite davon ist halt, dass du halt null Kontrolle darüber hast und alles so ganz arg algorithm-based und null eigene Entscheidungen mit drin ist und halt auch die Konsumform. Also ich habe mich nie damit angefreundet, dass mein Shortform-Content einfach nur so mindless gescrollt wird und man dann so drei Sekunden der Aufmerksamkeit hat und dann ist man eine Minute später, könnte niemand der Leute, die das konsumiert haben, mehr sagen.

00:19:36 was sie gerade eben angeguckt haben. Das ist, ja, das ist halt das Problem an Short-Term-Content. Deswegen gehe ich da schon auch mit dieser Argumentation mit. Cool, long-form, bisschen mehr Bindung, bisschen mehr bewusste Entscheidung, aber sagt ja auch wirklich niemand, dass wir nicht in ein paar Jahren da halt auch durch sind. Und dann auch YouTube und Co. Also, dass dann hier jemand stehen kann und mit einer deutlich besseren Belichtung, ich weiß...

00:20:04 Ich weiß nicht, was bei der Kamera falsch ist. Ich habe mich aber noch nicht durchgerunden, die einfach mal auf manuell zu stellen und rauszufüllen, was ich drücken muss. Wahrscheinlich eine Sache von zehn Minuten, das einfach mal zu resetten, aber trotzdem. Ja, also deswegen.

00:20:20 Sagt niemand, dass nicht YouTube als nächstes auf der Abschlussliste dann steht. Und dass dann irgendwann demnächst auch komplette, also ich meine, es ist ja jetzt schon AI-Streams oder auch Streams von Menschen mit Avatar und so weiter. Also Pudu sagt niemand, dass das nicht demnächst auch noch vor die Runde geht.

Zukunftsgedanken über KI und menschliche Interaktion

00:20:43

00:20:43 Aber man muss ja sagen, ne, hier so, ähm, der hat Internet Theory, bin ich sowieso mittlerweile, also vor ein paar Jahren fand ich das noch für einen Major Joke mittlerweile, halte ich das für irgendwie ziemlich realistisch. Also, es wäre total lustig und das finde ich das Tolle an KI, dass es so ein Brandbeschleuniger ist, wenn das die...

00:21:05 So schwer im Internet nachvollziehende Menschlichkeit, die es jetzt schon gibt, wenn es das so hart ad absurdum führt, dass wir am Schluss uns wieder mehr im Real Life unterhalten, weil man da noch weiß, mit wem man spricht.

00:21:22 Geil. Finde ich mega. Also wenn das quasi der Outcome von dieser AI-Geschichte ist, dann hatten wir 20 lustige Jahre mit diesem Web 2.0, 3.0. Hab den Überblick verloren. Aber ja, also ich bin mittlerweile nur noch auf YouTube und Instagram unterwegs und sogar das auch immer weniger. Also mir gibt es Social Media immer weniger und weniger tatsächlich.

00:21:50 Und das finde ich eine total spannende Entwicklung. Insbesondere so als Influencer. Und dann muss man natürlich diesen Gedanken weiterspinnen. Und da hat jetzt Melan absolut recht. Vielleicht nicht unbedingt Roboter. Aber dann fangen wir irgendwann an, gut genug zu sein als Menschheit, dass wir so hier Neuralink-Stuff-Impläntate und was weiß ich was reinbringen. Und auf einmal hast du immer den Informationsraum und die Empfehlung eines Sprachmodells. Nur halt in deinem Kopf.

00:22:17 Und dann können wir irgendwann uns nicht mehr trauen, mit anderen Menschen zu reden, wenn wir nicht wissen, ob das quasi wirklich menschlich ist, diese Antwort daraus. Dann werden solche Dinge entstehen, wie sie zum Beispiel jetzt schon in manchen Clubs entstehen, dass da so ein Handyverbot ist am Eingang. Da wird es geschützte Räume geben, wo man tatsächlich nur menschliche Konversationen hat, ohne Beeinflussung von jeglichem Implantat oder technischer Erweiterung des Menschen oder so weiter.

00:22:49 Coole Zukunft, oder? Coole Zukunft. Ganz aktuell, freue ich mich. Wenn wir das Schlechte aus dem Social Media, was wir jetzt aktuell haben, schaffen, immer zu haben, 24-7, auch wenn wir gerade gar nicht am PC sind, sondern gerade einfach nur mit anderen Menschen im echten Leben kommunizieren. Ich denke, dann haben wir es wirklich geschafft, jeglichen zwischenmenschlichen Austausch kaputt zu machen. Aber ich hoffe, dass Facebook und Facebook

00:23:18 Google und wie sie alle heißen, daran sehr viel Geld verdient. So, jetzt wo ich die Stimmung komplett ruiniert habe, wollen wir ein bisschen was mit AI-Code.

00:23:42 Nee, ich meine nicht Metaclass, die sind ja alle noch harmlos. Ich rede von Technologien, die wir aktuell noch nicht mal haben. Aber nur um noch mal in Erinnerung zu rufen, vor ein paar Jahren haben wir uns auch noch nicht über Sprachmodelle unterhalten und jetzt sind sie wirklich überall. Also das kann alles ganz, ganz schnell gehen.

00:24:01 Beim Handyverbot von Konzertenfestivals wäre ich direkt dabei. Habe ich auch schon gesehen. Konzerte mit Handyverbot. Wo du beim Reingehen die Handykamera zum Beispiel abgeklebt wurde und sowas. Cool, aber ja, ich mache mir ein bisschen Sorgen. Ja, man muss ja dazu sagen, so arg macht das jetzt den Kuchen auch nicht mehr fett oder wie das heißt, weil...

00:24:26 Und fairerweise muss man ja auch sagen, unser Gehirn ist ja auch, wir sind ja immer noch Steinzeitmenschen. Steinzeitmenschen mit Technik, die wir gar nicht verstehen. Mit Implikationen, deren wir uns weder bewusst sind, noch mit denen wir umgehen können. Also so viel schlimmer wird es jetzt auch nicht mehr. Vielleicht. Oder es wird sehr viel schlimmer. Aber also in den beiden Fällen sind wir nicht darauf vorbereitet. Also kann man auch ein bisschen chillen, sich zurücklehnen und sagen. Shit happens. Darauf erstmal einen Schluck Kaffee.

00:24:57 Wenn du jemandem vor 20 Jahren erzählt hättest, wie wahnsinnig weit wir jetzt sind mit.

00:25:02 Sprachmodellen und so weiter, dann hätte der auch gesagt, klingt richtig dystopisch, also der Kommentar von Kegelsneid. Das weiß ich zufälligerweise, weil ich, bevor diese ganze Sprachmodellgeschichte so angefangen hat, mich mal eine Zeit lang mit so NLP beschäftigt habe, Natural Language Processing, damals noch im Studium. Und da gab es Jahrzehnte an Forschung zu Dingen, die man unbedingt umsetzen wollte.

00:25:30 Wo du heute drüber lachst. Weil das natürlich mit KI total easy und einfach möglich ist. Also hättest du das vor, wie gesagt, vor 10 Jahren, die hätte dich auch ausgelacht. Aber das macht den Braten nicht fett. Von mir aus macht es auch den Braten nicht fett. Aber den Kuchen auch nicht.

Ankündigung des Codestreams und Einführung in Premiere Remote

00:25:53

00:25:53 Okay, Leute, lasst uns mal ein bisschen ins Coden reingehen. Ich möchte mit euch heute tatsächlich nicht zocken. Solapunk kann ich euch schon mal spoilern, habe ich privat weitergespielt. Ihr würdet nichts wiedererkennen. Ich konnte mich nicht zurückhalten. Ich habe ein bisschen Erholung gebraucht in den letzten Wochen.

00:26:15 Und habe wirklich sehr, sehr viel gemacht. Es kommt nächstes Wochenende ein neues Video online. Habe sehr viel an anderen Projekten und Sachen gearbeitet. Und deswegen...

00:26:27 Wenn ich dann mal Zeit hatte zu zocken, musste ich das auch wirklich machen. Deswegen habe ich mir Solapunk geschnappt und das einfach selber durchgespielt. Aber das heißt nicht, dass wir im Stream nicht mal noch weiterspielen können. Ansonsten, heute Premiere Remote Coding. Das steht auch im Titel. Da möchte ich heute weiterkommen. Wir sind da ziemlich weit auch. Also da habe ich auch offline ein bisschen Sachen vorbereitet. Und dann war ja auch noch eine Woche krank, was auch alles verzögert hat und so weiter. Es ist wirklich also...

00:26:56 Die letzten Wochen waren nicht die einfachsten. Und die nächsten zwei Wochen werden auch nochmal richtig stressig. Also Spaß, sag ich. Spaß. Cool. Ich möchte euch kurz zeigen, wie weit wir sind. Boah, Alter, ich weiß nicht mehr, welche Taste die sind. Fuck mir die raus, Alter. Okay, cool. Das ist eine Konsole. Das ist so schlecht nicht. Also Premiere Remote.

00:27:23 Erinnert euch zurück, das ist diese tolle Software, mit der man Premiere fernsteuern kann, die wir gerade eben komplett neu schreiben für die neue UXP-Umgebung von Premiere. Und wie man hier am Procress sieht.

00:27:38 Ich bin ganz schön weit. Es tut einfach alles. Also jetzt ist wirklich die letzten Schritte und da habe ich mir viel für heute rausgenommen, die wir professionell von einem Sprachmodell implementieren lassen werden. Also ich werde wahrscheinlich wirklich drei davon nicht selber machen, weil sind wir ehrlich, das sind Sachen, das habe ich gar keinen Bock mehr überhaupt anzugucken.

00:27:57 Wir sind ansonsten so weit, dass wir wirklich quasi am finalen menschlichen Review der Tests und bei der Finalisierung und dem Klattpolieren und dann tatsächlich dem ersten Release einer neuen Version davon sind. Kar, hallo, herzlich willkommen. Ich habe hier lokal was und ich bin der Meinung, ich habe auf einem anderen Laptop auch woanders weiterentwickelt. Deswegen, also das hier. Ach du, ne?

00:28:27 Ich zwölfe einfach mal pullen. So. Ist hier der Dev-Container? Ja. Okay, starten wir den mal. Wahrscheinlich muss ich erstmal was? Jetzt muss ich keine Version von Visual Studio Code aktualisieren. Das ist ja der Wahnsinn. Aber ich muss wahrscheinlich den Container neu bauen. Ja, sowas hatte ich schon erwartet. Tetris Gamer. Hallo.

00:28:59 In zwei Monaten einfach vier Jahre. Ja, ich bin ein bisschen raus aus diesem Twitch-Ding. Ich muss auch ganz ehrlich sagen, also nachdem ich dann jetzt so den Sprung von der Uni in die Industrie gemacht habe und mir so ein bisschen überlegt habe, wie möchte ich mein Leben leben und so, habe ich auch einfach ein bisschen aufgeräumt von den Dingen, die ich im Internet mache. Also da ist dieses Jahr tatsächlich...

00:29:25 Ein großes Experiment gewesen, ich habe viele Dinge rausgefunden und ich muss ganz ehrlich sagen, Streaming jedes Wochenende hat mich auch bissle fällig gemacht. Das ist lustig, weil andere irgendwie den ganzen Tag streamen, aber die machen dafür nicht noch 30 andere Dinge nebenher. Dann geht das schon. Also deswegen gefällt mir das sehr viel besser, dass ich so random einfach mal hin und wieder Hallo sage wie jetzt. Hallo!

00:29:56 So, schön, während der hier den Container baut, können wir schon mal die Developer Tools zücken. Und ein schönes Premiere Projekt starten. Oh, da muss ich jetzt aufpassen, wenn ich euch nämlich, sonst würde ich ja das nächste Video spoilern, wenn ich jetzt die Premiere öffne, müssen wir vorsichtig sein.

Demonstration des Tools und Entwicklungsablaufs

00:30:00

00:30:25 muss ich mal hier in, keine Ahnung wo der Scheiß liegt, Coding Stream.

00:31:02 Ich habe keine Ahnung, was ich hier alles rumliegen habe. Aber es ist, glaube ich, auch egal. Also ich habe hier offenbar mal irgendwelche Dinge drin gemacht. Und was noch online ist, sind Aufnahmen von irgendwas, was ich mit dem Bestware-Laptop gemacht habe. Okay. Aber das ist okay. Wir nehmen einfach das hier her, weil ich brauche einfach auch nur ein Back, wo ich Dinge drin ausführen kann und so.

00:31:30 For real, ich habe absolut keine Ahnung, was das ist. Was ist der ungestellte Anstieg zwischen JavaScript und TypeScript? TypeScript kompiliert meistens zu JavaScript. Das ist einfach nur ein Subset oder ein Superset, wo noch Typen reingeballert wurden, weil die Art, wie JavaScript mit Typen umgeht und ganz vielen anderen Dingen dafür sorgt, dass es sehr schnell zu Laufzeitproblemen kommen kann. Das ist überhaupt nicht skalierbar und deswegen hat jemand TypeScript erfunden.

00:32:03 Jetzt willst du mir sagen, mein Sound ist kaputt gegangen. Hört man mich nicht mehr. Hallo? Also ich sehe hier einen Ausschlag, wenn ich spreche. Was ist denn mit meinem Sound kaputt gegangen? Also ich höre lustigerweise selber die Musik gerade nicht mehr.

00:32:31 Ich habe seit gestern schon solche Probleme. Also Hintergrundmusik hört ihr aber nicht mehr, ne? Ja, ja, warte mal. So, check, check, check, bin ich wieder da.

00:33:06 Im Stehen gab es keine Fehler, du solltest dich wieder hinstellen. Jetzt höre ich zumindest auch wieder Hintergrundmusik.

00:33:17 Okay, also hier unten lebt schon die alte Version von Premiere Remote drin und ich müsste jetzt theoretisch in meinem Dev Container, der mittlerweile gestartet hat, ja ganz viele Fehlermeldungen, dann ist ja wohl alles gut gegangen, wenn ich in den Client gehe, dann kann ich hier den Bild ausführen und wir machen gleich mal den Dev Mode.

00:33:44 So, der läuft jetzt, genau, der hört auf Änderungen. Und dann müsste ich hier auch eine Playground TS haben mit einer Playground Funktion drin. Sehr gut. Und jetzt kann ich hier noch ein neues, kann ich mal den hier wegwerfen und den hier wegwerfen. So, jetzt müsste ich hier noch ein neues Fenster aufmachen können und da gehe ich in den Server und auch den starte ich im Dev.

00:34:11 So, und jetzt sollte ich hier perfekt auch meine Playground Play Funktion haben. Sehr gut. Jetzt kann ich hier auf Load klicken und habe jetzt hier mein Overlay. Ist jetzt alles sehr, sehr sauber. Und wenn ich jetzt hier drin den Debugger öffne, sehen wir hier Output. Und wenn ich jetzt von woanders

00:34:41 Die Playground-Funktion execute. Dann habe ich hier Output. So weit, so easy. Wenn ich jetzt eine Änderung mache in meiner Playground-Funktion, zum Beispiel hier mal die Capitalization, wer kennt sie nicht, die Capitalization ändere und speichere, dann wird hier automatisch neu gebaut.

Bugfix für Notemon und Watch-Konfiguration

00:35:00

00:35:10 Der Server hat davon nichts mitbekommen, weil die OpenAPI-Spezifikation sich nicht geändert hat. So weit, so richtig. Und wenn ich jetzt... Was habe ich gemacht? Ich habe den Client neu gebaut. Das heißt, ich muss... Warum denn das hier? Achso, ja. Ich muss hier einmal auf Reload klicken. Und wenn ich jetzt hier reingehe und nochmal die Funktion ausführe...

00:35:37 Jetzt habe ich die neue Capitalisation. Geil! Okay, cool. Das läuft ja wirklich wie am Schnürchen. Was war eigentlich mein letzter Newsletter? Ich glaube, ich habe schon wieder meinen Newsletter vergessen.

00:36:01 Ihr habt das gerade im Chat gelesen und mir ist wieder aufgefallen, dass ich ein Newsletter habe. Wieso passiert mir das immer wieder? Naja, wenigstens bin ich meinem Prinzip enttreu und es ist wirklich kein Spam. Ach du Scheiße, Mann. Okay, cool.

00:36:25 Das ist die Funktion des Tools. Ich kann damit Premiere fernsteuern. Bis jetzt war das einfach nur so eine einfache Demo, wo ich eine Funktion ausführe, die hier meinen Sequenznamen ausliest. Aber 20.09, das geht ja sogar noch voll, die hier diesen Namen ausliest. Aber ich könnte zum Beispiel auch neue Clips einfügen und Sachen umherschieben, Einstellungen ändern und so weiter.

00:36:52 Bis hin zu komplett automatisierter Videoschnitt, wo das irgendwann tatsächlich auch mal hingehen soll. Okay, cool. Also, das tut's schon mal. Das ist erfreulich, dass das tut. Machst du bei Varu5 mit? Ich hab noch nie von Varu5 gehört, aber wenn, dann im Zweifel nein.

00:37:14 Weil, also ich bin ja sowas raus aus dieser Welt. Waro damals, ich erinnere mich noch an Waro 3, das war ja wirklich so ein No-Life-Ding, das schon damals man wirklich den ganzen Tag über gecampt hat. Das ist mit jemandem, der...

00:37:37 einen Job hat, nicht vereinbar. Du musst jederzeit ready sein, auf dem Server zu connecten. Vergiss es.

00:37:47 Winnie und Bastian zwei Monate das Haus nicht verlassen. Ja, ganz genau, das ist so. Ich meine, wir haben damals in Waro 2, wollten wir ja Stegi snipen. Und haben es auch tatsächlich geschafft, sie auf dem Server quasi abzupassen und zu verfolgen. Blöderweise wurde ich dann getötet und blöd gelaufen. Aber grundsätzlich war das so ein richtig, richtig heftiges Campen.

00:38:13 Okay, gut, der Kollege hier funktioniert, aber es gibt hier einen Bug, den ich irgendwann mal gefunden habe und hier dokumentiert habe, also in einem einzigen Satz. Server, Notemone should restart server when function inregistered, when new function is registered in OpenAPI. Okay, ich zeige euch nämlich, wo das eigentliche Problem ist. Diese Funktion heißt jetzt play. Jetzt nenne ich sie play123. So, was passiert im Client?

00:38:44 Hallo, habe ich... Ah, jetzt muss ich STRG-S drücken. Der Client sollte erkennen, dass ich eine neue Funktion gemacht habe. Läuft der Kollege überhaupt noch? Okay, also offenbar nicht mal der Client erkennt, dass ich hier gerade eine neue Funktion gemacht habe oder was? Cool, das fängt ja sogar noch schlechter an als gedacht. Vor elf Jahren war Minecraft Mark. Ach du Scheiße.

00:39:17 Skate & Klim haben zusammen ein Haus gebaut. Titan meinst du? Also weder noch hat mitbekommen, dass ich die Funktion umbenannt habe. Das ist ja richtig geil.

00:39:36 Jetzt hat es funktioniert. Also könnte es auch einfach sein, dass da gerade was sich aufgehängt hat. Ja, okay, da hat irgendwas anderes nicht funktioniert. Also hier heißt die Funktion jetzt Play 1, okay. Der Server wurde aber nicht neu gestartet. Und wenn ich jetzt hier den Client neu starte.

00:39:58 Was wir übrigens im nächsten Schritt automatisieren werden. Dann habe ich hier im Server, wenn ich den jetzt reloade, sehe ich immer noch play statt play 1 und jetzt execute ich das und kriege einen Error zurück. Action play not found. Warum? Weil play nicht existiert, das heißt nämlich play 1. Und das müssten wir sogar nachvollziehen können.

00:40:29 Das müssten wir in den Logs nachvollziehen können, was da gerade eben passiert ist. Hier kam nämlich Play rein und im Gegensatz zu davor, wo dann ein OK mit Null als Result zurückkam, kommt jetzt vom Client, das müssten wir hier, ah ne das ist das Bilderskript.

00:40:48 Der Client, der lebt ja so gar nicht. Der Client hat das, bevor überhaupt irgendwas in Premiere ausgegeben wurde, als Not Found mit Action, Play, Ground Play, Not Found. Warum? Weil die OpenAPI-JSON, wenn ich die mal hier öffne, die ja generiert wird als Artefakt.

00:41:07 Die hat schon Play 1 drin, also der Teil funktioniert, aber der Server wurde nicht neu geladen. Der Server hat ein Notemon hinten dran und wenn wir jetzt das Package-Tasten im Server anschauen würden, dann würden wir auch sehen, dass hier Notemon, Watch, SRC, blablabla ausgeführt wird, wenn man Dev ausführt, aber das reicht eben nicht. Wenn wir zum Beispiel in die Notemon von Client reingehen,

00:41:36 dann sehen wir, dass hier mehr Logik dahinter ist. Und jetzt kommt wieder dieses schöne, so weit weiß ich das. Das ist mein Verständnis von dieser ganzen Geschichte. Was ich allerdings nicht weiß, ist, ob man die Pfade hier hinten dran Komma separiert macht oder ob man...

00:42:05 weiß ich nicht, einfach nur Leerzeichen rein macht oder sowas. Das habe ich überhaupt keine Ahnung. Aber Tatsache ist, dass hier WatchSRC im Server liegt, würde ich mal wetten, die OpenAPI.json nämlich im Root. Und das ist das Problem. OpenAPI.json. Ist das eine Komma-separierte Liste?

00:42:34 Googlen wir es eben kurz. Notemon Watch. Ich bin ein Mensch tatsächlich. Danke. Da kann man einfach ein Array reinstopfen. Ja, in Notemon JSON. Aber wenn man das über...

00:43:08 Man kann einfach mehrere Watches hinterher, hinten dran packen.

Synchronisation zwischen WSL und Windows

00:43:20

00:43:32 Also eins von beidem. Entweder einfach so, wie er mir das jetzt gerade vorschlägt, oder halt einfach nur hinten dran gepackt. Wir werden das herausfinden. So, schieße ich mal den Server ab. Was hältst du von Videocraft, von Artcraft, die Rust-Adventive zur Premiere, der Klon davon?

00:44:01 Du wolltest auch so eine CP, wäre das interessant dafür. Ich halte ziemlich wenig davon tatsächlich, weil es auch wieder so richtig krass überhyped ist. Also das ist halt so eine 80% Implementierung. Und cool, dass es mit Reverse Engineering und sowas. Ja, okay, cool. Aber...

00:44:24 Also das wäre jetzt nicht auf einem Level, wo ich mich trauen würde, deswegen nicht mehr Premiere zu verwenden. Und ich nehme an, für alle außer Hobbyisten gilt das Gleiche. Auf der anderen Seite muss man natürlich aber auch sagen, cool, wenn es mehr Konkurrenz gibt, cool, wenn es mehr Alternativen gibt. Also grundsätzlich finde ich es nicht schlecht, aber es hat mich noch nicht überzeugt.

00:44:51 Okay, der Kollege läuft hier. Der hat jetzt in den Docs, müssten wir jetzt sehen, dass die Funktion wieder Play 1 heißt. Das hat also funktioniert. Es ist doch offiziell CREATM Room, also kein Reverse Engineering. Ich finde, das ist so ein Ding in der Informatik, was...

00:45:12 also so eine Berufskrankheit ist. Wir sind so stolz auf unsere Definition von unseren imaginären Freunden, dass wir ganz schnell immer sagen, das ist doch nicht das und das, das ist doch das und das, wenn es unterm Strich aufs Gleiche hinaus kommt. Rechtlich gesehen vielleicht nicht, aber Tatsache ist, ich habe hier einen Klon von einem Produkt und mir ist relativ egal, wie er entstanden ist, wenn er zuverlässig genug ist, was er nicht ist. Also ist mir egal, wie er entstanden ist.

00:45:41 Ich finde auch gerade die AI-Buddle ist unglaublich gut darin, einfach alte Informatikkonzepte unter neuem Namen neu zu erfinden und sich dann dafür zu feiern. Die Jura-Antwort ist viel wichtiger. Ist das so? Also ich habe bis heute noch keine Jura-Antwort auf dieses Problem gesehen, dass die ganzen Sprachmodelle das Weltwissen abgezogen haben, ohne irgendjemanden dafür zu entlohnen. Also scheinbar kann man ja da machen, was man will.

00:46:09 Also weiß ich nicht, ob die Jura-Antwort am Schluss die entscheidendste ist. Wenn sich daraus eine Bewegung entwickelt. Let's see. Okay, so. Wir haben das Ding am Start und jetzt gucken wir nochmal.

00:46:30 Playgrounds. Nehmen wir das Ding wieder um zu Play. Und jetzt erwarte ich, dass ich hier Bewegung sehe. Genau. Und hier sehe ich auch Bewegung. Cool.

00:46:43 Ich musste so hart lachen, als die AI-Pros Ordnern etwas später Schleifen erfunden hatten. Ganz genau. Oder sie haben Markdown neu erfunden. Jetzt, wo die Modelle ein bisschen später sind, haben sie entdeckt. Und das ist auch wieder so eine Groundbreaking-Geschichte. Und Entrophic feiert sich da auch hart für. Das ist übrigens kein Witz. Es gibt wirklich einen Entrophic-Blog-Beitrag, wo sie literally beschreiben, dass man in HTML, haltet ihr euch fest, krassere Seiten bauen kann als in Markdown.

00:47:13 Groundbreaking. Das ist eine Billionenwert, meine Damen und Herren. Das ist eine Billionenwert. Ich habe vor kurzem den Begriff des stochastischen Papageis gelesen. Ah, jetzt funktioniert das. Geil, einfach mal so easy mit einer Zeile einen Bug gefixt. Damn, boy. Also einfach zwei Watches hintereinander packen, ist die Antwort.

00:47:43 Das können wir wieder resetten. Fix notemont not restarting server unchanged. Der war einfach.

00:48:02 Der hat mich auch echt genervt, weil das folgt für so... Was ist denn hier? Oh Gott. Haha, ich bin so nicht mehr auf GitHub zu Hause. So. Hätte ich da auch reinklicken können? Ich weiß es nicht. Kann man hier reinklicken? Ah ja, man kann hier sogar reinklicken. Okay, wahrscheinlich hätte ich auch einfach reinklicken können. Dankeschön. Ich kann immer noch singen. Guter Komet.

00:48:36 Wieso, was war denn der Commit denn falsch? Das ist doch genau die Änderung, atomar in einem Commit. Das ist doch wunderschön.

00:48:44 So, nächstes Ding ist ein bisschen größer und da müssen wir jetzt echt ein bisschen, ja. Was natürlich total cool wäre, wenn es gibt ja hier diese Taste, also ich mache gerade die ganze Zeit so die Developer Experience besser, nachdem wir schon das letzte Mal rausgefunden haben, dass es viel geiler ist, in meinem Playground hier zu schreiben, als in diesem sehr, kann man mal das Fenster zumachen, das triggert mich, danke. In diesem sehr, sehr, ja, komm, bla bla bla.

00:49:12 komischen User Application Premiere, okay, und dann so ganz hässlich und ohne irgendwie Vervollständigung und was sind doch mal die Funktionen von Project, wir wissen es nicht. I'm sorry.

00:49:27 Jetzt, wo ich seit eineinhalb Jahren bei einem Unternehmen arbeite, was literally Tools für Entwickler entwickelt, habe ich so ein bisschen starke Meinungen, wenn Tools für Entwickler scheiße sind. Also das hier ist kein guter Playground, meiner ist besser. Auf jeden Fall gibt es hier einen Button, der heißt Watch. Und Watch ist ziemlich cool. Was Watch nämlich eigentlich macht, ist, wenn du da...

00:49:51 auf Load & Watch klickst, dann geht der Käse hier wieder auf. Und wenn ich jetzt hier irgendwas ändere, zum Beispiel, wir machen nochmal das S groß in Active Sequence Name, stellen sicher, dass der Client Generator auch läuft, das tut er. Steuerung S, es wurde ausgetauscht, okay? So war einfach so, oh, die Luft hier drin ist schlecht, mein Vogel ist gestorben.

00:50:22 Moment, jetzt erst. Dafür müsste ich nicht bei so einem Unternehmen arbeiten, um das zu wissen. Wissen ist eine Sache, getriggert sein ist die andere. Du bist jetzt normal? Bist du totes getriggert, wenn Tooling scheiße ist? Ui, wenn das normal ist, würde ich gerne wieder nicht normal sein, bitte.

00:50:50 Weil der Vogel gestorben ist. Ich habe so einen Vogel. Das war ein Kickstarter-Projekt. Das ist eigentlich ein CO2-Sensor. Und wenn der CO2-Wert in diesem Zimmer hier zu hoch ist, dann stirbt der Vogel. Und das ist halt total lustig, weil wie lange stream ich jetzt irgendwie? 20 Minuten, zack, Vogel tot.

00:51:10 Und ich wundere mich warum in den Coding Streams so viel Schwachsinn rausgekommen ist, wenn nach 20 Minuten schon über 1000 ppm hier Partikel gemessen werden, was ja so der Punkt ist, wo man dann lüften sollte. So, das Ding wurde neu geladen, also es müsste jetzt groß sein. Ich mache nochmal das Debugging hier an.

00:51:38 Und Trigger Play. Zack. 0 kam zurück. Und wir gucken hier rein. Aber das S ist klein. Das hat mich vor einer kleinen Sinneskrise gestellt. Weil es ist nicht geil, wenn man einem Entwickler sagen muss, ja, ja, hier, Node-Mon und so weiter, alles. Du machst eine Änderung und sie ist sofort live Hot Reloading so unglaublich viel wert.

00:52:05 Aber man muss hier, obwohl man auf Watch gedrückt hat, trotzdem nochmal manuell auf Reload klicken. Und dann habe ich ein wenig recherchiert und habe herausgefunden, und das haben wir ja im letzten Stream schon herausgefunden, dass es nicht zuverlässig funktioniert, wenn du in einem, wir sind ja hier leider,

00:52:28 äh äh äh äh äh pwd wir sind ja leider in einem wsl unterwegs wenn du in einem gemounten vsdx verzeichnis i guess dass das ist ich kenne mich doch mit den details nicht aus wenn du da

00:52:50 den Code rumliegen hast. Um genau zu sein, worum geht es präziser? Hallo? Auf diesem PC habe ich das nicht in der PS Code Setting drin. Es geht präziser um den Bildordner. Der Bildordner ist das, was hier eingebunden ist. Das kann man auch sehr schön sehen, wenn ich hier auf Options gehe. Dachte ich. Sind da nicht die Settings drin, Alter?

00:53:20 Wo zeigt er mir an, welches Verzeichnis ich eingebunden habe? Nirgendwo? Oh boy. Zeigt er mir wirklich nicht an. Also das ist eigentlich ein Verzeichnis auf der WSL, was ich eingebunden habe. Um genau zu sein, das Bildverzeichnis dachte ich...

00:53:45 Und da müsste dann doch eigentlich auch... Das ist nicht das Bildverzeichnis, das ist das normale Verzeichnis. Ich weiß es nicht mehr. Irgendwo müsste ich doch auch so eine Teil rumliegen haben. Static? Ne, das ist es nicht. Manifest Jason.

00:54:02 Ah ja, ich habe die ManifestJSON eingebunden. So, und in der ManifestJSON steht die IndexHTML. Und wenn man Watch macht, dann wird eigentlich das, was in der IndexHTML sich ändert, gewatched. Und wenn wir jetzt hier mal hingehen und... Oh, ich bin so schlecht in diesen Linux-Befehlen, Alter. CD, Client, Build...

00:54:28 Sehen wir das direkt hier, wann sich zum letzten Mal was geändert hat? Ja. 12.36 Uhr. Das kann nicht sein. Ich habe die doch gerade neu geschrieben. Was? Das wundert mich jetzt.

00:54:56 Wie kann das sein, dass die 12.36 anzeigt? Obwohl da literally der gesamte

00:55:06 Ah, die Index-Datei nicht, die JS-Datei. Okay, ja, nee, my bad, alles richtig. Ja, vor vier Minuten habe ich die zum letzten Mal, da habe ich Play das letzte Mal ausgetauscht, das kommt hin. Okay, und die Index-JS-Datei ist in der Index-HTML-Datei verlegt, deswegen müsste er sie eigentlich finden. So, okay, puh, Welt noch in Ordnung. Also, so funktioniert das, so funktioniert der Watch-Befehl. Jetzt ist nur das Problem, dass Premiere das nicht zuverlässig rausbekommt. Das ist wirklich, das ist, ähm...

00:55:33 Murös, nennen wir es lustig, dass es nicht vernünftig möglich ist, aus dem Linux File System rauszufinden, dass diese JS-Datei sich geändert hat und die Konsequenzen davon, dass man jedes Mal hier auf Reload klicken muss. Das ist scheiße. Muss man einfach mal so sagen, wie es ist. Das ist scheiße.

00:56:00 Die einfache Lösung ist den Bild Ordner, wenn er geändert wurde, woanders hin zu kopieren. Auf ein Windows Verzeichnis. Weil dort wird es dann nämlich richtig eingelesen.

00:56:28 Und da funktioniert auch Watch. Und das einzige was es dafür eigentlich braucht, ist irgendwie eine Möglichkeit im Dev. Vielleicht braucht es dann nochmal einen neuen Watch Befehl oder was auch immer. Eine Möglichkeit, dass er sich ein Windows Verzeichnis zieht.

00:56:50 und dann hier hinten dran einmal also bei Bundle wird ja hier alles zusammen gepackt, ES Bild gemacht und das dann dahin gelegt

00:57:06 Mal wieder nicht gut gearbeitet. Ja, also WSL mit dem Ding funktioniert. Es gibt ja auch dieses Skript hier, prepare Packaging, was ich irgendwann mal abschreiben lassen, wo Links umgebogen werden, weil ansonsten Package fehlschlägt, weil es nicht mit Unix Links klarkommt.

00:57:30 Der Punkt ist, ich komme natürlich aus WSL. Also das, was Veniak im Chat gerade auch schreibt, ich komme natürlich von WSL über Mount auf all meine anderen. Ihr seht, ich habe ein paar Verzeichnisse. Komme ich einfach so drauf. Also das ist nicht das Problem. Das nächste Problem ist eher, das ist jetzt etwas, was wirklich vom Entwickler definiert werden muss. Also da muss irgendwie eine, zum Beispiel eine Variable gesetzt werden.

00:58:00 Und das ist dann etwas, was ich nicht mehr aus dem Dev-Container ausführen kann. Und das ist das, wo ich momentan mental so ein bisschen dran hänge, weil diese Premiere-Instanz läuft auf Windows. Aber dieser Code hier, der liegt auf einem Linux-Verzeichnis. Und mehr noch, ich bin ja hier gerade eben in einem Docker-Container.

Implementierung der env-Variablen und erste Hürden

00:58:20

00:58:26 In diesem Docker-Container habe ich sehr wenig. Also zum Beispiel kann ich hier explizit nichts einfach nach Mount und mir dann angucken, was ich da habe. Also da existiert nichts drin. Hier sind keine Sachen reingemountet. Was definitiv keine Option ist, ist, dass ich hier einen Ordner aus... Oder ist das keine Option?

00:58:53 Also, was eventuell eine Option ist, die ich aber eigentlich bis jetzt als Schwachsinn abgetan habe, aber vielleicht nochmal überdenken muss, ist, dass ich hier in der Docker-File kann ich ja wirklich alles reinmountain, was ich will. Oder auch im Dev-Container kann ich sagen, hier, guck mal, also das ist ja momentan schon der Fall, der wird SSH, GitConfig, Cloud, Cloud Chasen.

00:59:13 Er wird hier reingemountet. Und in dem Moment kann ich es auch aus dem DevContainer anschauen. Also man könnte auch sagen, dass ein Verzeichnis, was man in einer Umgebungsvariable beschreibt, dass das gemountet wird und dann dahin kopiert.

00:59:39 Also ihr seht, der Kopierenteil ist hier der harmlose. Der viel spannendere Teil ist, wie man an dieses Verzeichnis da rankommt. Okay, es ist an der Zeit.

01:00:10 Connecte erstmal. Oder weißt du was? Ich mach das mal nicht im Dev-Container. Ich muss mal kurz im Hintergrund Cloud updaten lassen. Deswegen seht ihr gerade nichts. Ich glaube, ich muss das jetzt mal so ein bisschen hin und her spielen. Ja genau, ich bin nicht eingeloggt. Das wollte ich euch jetzt gerade mal nicht zumuten. Ich finde, für solche Sachen hin und her zu spielen, ist AI leider...

01:00:40 Gut. Die Challenge hier ist nicht, dass es bei mir funktioniert, sondern dass es immer funktioniert und dass es nicht kaputt geht, wenn es nicht funktioniert. War das irgendwie ein Satz? Ihr wisst, was ich meine. Das ist definitiv etwas Optionales.

01:01:08 Login, succeeded. Kurz meinen Browser wieder aufräumen, damit ihr nicht seht, was ihr nicht sehen dürft. Sieht Gucci aus. So, Update verfügbar. Zack, Neustart. Perfekt. Jetzt können wir reden. Okay. Hahaha.

01:01:54 So. Build. The Windows UXP tooling. I want Windows. Windows Bill.

01:02:25 Best target to copy to after each build with pnpm run dev. Das Schöne ist ja, die Art wie Sprachmodelle funktionieren kann es dir so scheißegal sein, ob das grammatikalisch auch nur ansatzweise richtig ist. Das wird hier alles aufgelöst. Attention is all you need und so. Challenge.

01:02:52 to work on other developers systems too so target has to be configurable and even optional if not specified second challenge

01:03:20 Work is usually done in a dev container, but has to work in native WSL and even if so.

01:03:39 Windows-Puff zu Beginn mit. Denn das ist tatsächlich, also ich will ja am Schluss anbieten, dass man dieses Tooling einfach nur, also auf den einzig gesunden Weg nutzt, dass man ein WSL entwickelt. Aber es gibt sicherlich auch so ein paar Sebastians von vor zwei Jahren da draußen, die das alles unter Windows machen wollen. Und dann gibt es Leute, die den Dev-Container-Weg gehen wollen, aber vielleicht auch Leute, die wahnsinnig genug sind, NPM-Tooling auf einem Dev-Container laufen zu lassen. So, und die möchte ich ja halt alle unterstützen.

01:04:14 Maybe something... Mounted folders and variables... ...me different solutions. Krass. Ich bin echt gespannt ey, ich hab so keine Ahnung.

01:04:34 Also ich hätte wahrscheinlich irgendwie so was eine Environment Variable gibt an welcher Ordner gemounted wird Ding gemacht mit einem Skript was halt zu ganz viel Fehlerfälle abhängt und dann immer noch funktioniert. Weil ich meine das Traurige ist also unter der Hood wollen wir wirklich einfach nur einen Ordner woanders hin kopieren. Es geht hier wirklich einfach nur um diesen kleinen Bildordner der halt irgendwo anders hin gemoved werden muss. Aber

01:04:59 Es ist halt so total unklar, wo dieser Ordner am Schluss ist und wie die Rechte sind und so. Also wieder mal ist so schusichere Authentifizierung oder so der Endgegner.

01:05:28 Ja, let's see. Okay, yo. Danke für den Roman, Alter. Bin ich jetzt, soll ich das jetzt alles lesen oder was? Current setup run dev bundle through node mon copy step of the bundle would run f. Okay, das ist exakt das, was ich mir gedacht habe. So, also Möglichkeit A. Eine environment variable und ein gefixter mount.

01:05:56 Gefällt mir nicht. Aber lass mal weiter reden. Also ein weiteres Script, was danach ausgeführt wird. Read from Premiere Remote sync dir. If unset, das Script exits quietly. Okay, ja, das ist schon mal gut, wenn man es nicht gemacht hat. Native VWSL macht das. DevContainer mount a DevContainer.

01:06:20 Guck mal hier. Ich darf auf diese Variable zugreifen. Das ist natürlich ein Game Changer. Das wusste ich nicht. Ich kann im Dev-Container einfach eine Environment-Variable auslesen und da reinmauchen. Okay, das fühlt sich an, als könnte man da viel Schmur mitmachen. Aber um ehrlich zu sein, finde ich das tatsächlich gar nicht so schlecht. Build already says so no sync. Leaving the Variable unset does nothing. Caveats.

01:06:48 Changing the target means rebuilding the container. True. Aber da kann man drum herumingenieren, indem man dem Nutzer wenigstens sagen lassen, wenn man nicht darauf zugreifen konnte. Okay, Enf comes from VymanVersetting only in FISH. Config may not reach VS Code. Ach so, ich nutze ja immer noch FISH. Ist ja furchtbar.

01:07:14 Ja, das lustige ist, Terry On, da haben wir ja noch vor zwei Jahren Witze drüber gemacht, dass der eine einen Einliner schreibt, das in KI reingibt, KI da eine fette Mail draus macht, das woanders hinschickt, KI das wieder in einen One-Liner übersetzt und dem anderen Menschen zurückgibt. Aber mittlerweile ist es ja also... Hey, ich würde lügen, wenn ich nicht eine TLDR-Taste auf meinem Stream Deck hätte. Und das ist, by the way, kein Witz. Das ist die...

01:07:39 100% ernst gemeinte Wahrheit. Ich habe eine TLDR-Taste auf meinem Stream Deck, also auf meinem Unternehmens-PC. Und wenn ich da drauf drücke, dann wird automatisch das aus meiner Zwischenablage gelesen und mit der Anweisung, das in einen Satz zusammenzufassen, an ein Claude-Geschicht. Und dann kriege ich einen One-Liner zurück von dem, was ich da gerade reingepostet habe. Und es ist so lustig, dass das halt echt ist.

01:08:06 Weißt du, und da ist jetzt wieder der Punkt. Dazu würde ich jetzt voll gern mal einen Short machen, weil ich finde, das wäre tatsächlich etwas, was sinnvoll wäre, der Welt zu zeigen, wie einfach das geht. Aber das würde halt wieder im Noise von AI generierter Scheiße und minderwertigen Inhalten einfach untergehen. Also machst du ein volles Video zu? Ist das die Lösung? Ich weiß es nicht, Mann.

01:08:29 Container mount with... Okay. Mounted windows directly as not copying. Das werde ich niemals machen. Das ist die schlechtmöglichste Lösung. Da kommst du ja nur in Probleme rein. Gigdecor not local config file. Vergiss es. Windows side pull. Damn, Digga. Das ist sogar noch schlechter.

01:08:55 Also wir haben eigentlich Lösung A und alle anderen Lösungen sind so graduell einen Schritt weiter in die Kreissäge rein. Uiuiuiuiuiuiuiui. Go with solution A. The script should be able to.

01:09:24 es gibt es bei laber wander user to rebuild

01:09:35 Container. Wir arbeiten hier gerade außerhalb vom Container. So weit, so gut. Ich nutze hier auch noch eine alte WSL von mir. Ich bin mittlerweile komplett von Fisch abgewandert, weil mich die fehlende Pro-Sex-Kompatibilität so abgefuckt hat. Deswegen nutze ich mittlerweile C-Shell, aber noch nicht auf diesem Gerät hier. Liegt auf meiner ewig langensten von Dingen, die ich immer machen möchte. Hier ist Fisch im Hintergrund tatsächlich.

01:10:01 Und ich fand es auch lehrreich mit Fisch zu arbeiten, weil ich dadurch gesehen habe, wie einfach manche Dinge sind, die ich jetzt in Seashell haben möchte. Aber nichtsdestotrotz bin ich froh, wenn ich keinen Fisch mehr habe. Want to use it to rebuild the container?

01:10:51 Let's see. Also das ist ziemlich genau, das ist irgendwo auch eine Bestätigung von dem, was wir uns gedacht haben, weil das ziemlich nah an dem ist, was ich mir sowieso überlegt hatte. Und es ist jetzt auch kein so heftiger Laut, ich meine, von was reden wir?

01:11:10 Gehen wir mal kurz hier in mein E rein. CD, Client, Bild. Du minus Hurensohn, Bild. Also wir reden hier von 28 Kilobyte. Also da gibt es größere Probleme als hin und her zu kopieren. Und falls ihr euch jemals gefragt habt, wie man sich Du HS merkt, mit welcher Asusbrücke gern geschehen. Ich weiß, es gibt noch andere Flex und man kann...

01:11:36 Viele schreiben auch SH statt HS, aber sind wir ehrlich. Ich will rausfinden, wie groß jemand ist und sagt, du Huren. Es ist schon, es ist eingänglich. Sind wir ehrlich. Okay, zurück zu unserem AI-Kollegen. Okay.

01:12:09 Er redet mal wieder viel. Ich werde mir das eh außerhalb nochmal genauer angucken. Aha, dieses Verzeichnis wird erstellt, wenn es noch nicht existiert. Container and...

01:12:31 Sync Mount und das hier Primärmode Sync Hostier Sync Mount. Okay, ja passt. Hier wird ein neues Skript ausgeführt. Das Skript wurde wahrscheinlich auch neu geschrieben.

01:12:54 A.I. ist einfach so weit. Just saying. Das ist so... Das ist angenehm, dass das einfach... Also weiß ich nicht. Das ist so... Diese Kleinigkeiten sind so das, was für mich sorgt, dass ich mittlerweile in meiner täglichen Arbeit auch einfach mit Sprachmodellen arbeiten kann, ohne mich komplett abzufacken. So mit einer Selbstverständlichkeit rausgefunden, ob gerade das Modell in ein... Oder das Modell ist ja falsch.

01:13:23 ob das Harness um das Modell drumherum der Agent gerade in einem Container läuft oder nicht. Anstatt, dass es einfach 20 Mal ausprobiert und in den Selbstschleife... Gehen wir mal zwei Jahre zurück, das Modell wäre einfach in der Endschleife gefangen gewesen, weil es gedacht hätte, das läuft im Container oder sowas. Schon angenehm. So, bla bla bla. Devcontainer, Docker-Env.

01:13:51 Das kommt hier einfach rein, ja. Was ich mich noch frage, was ist denn, wenn es nicht spezifiziert ist? Also, dass der hier unten damit klarkommt, ist klar. Aber was ist mit ihm hier? Ich meine, hier wird Premiere Remote Sync Dia genommen.

01:14:18 Was ist, wenn es nicht spezifiziert ist? Fällt dann einfach make dir minus p? Default, achso, da ist irgendwo eine Default drin.

01:14:40 Wo ist hier der TMP? Okay, wir müssen gleich nochmal richtig reingucken, bevor ich hier irgendwas ausführe. Fish-only config-main-outreached. Ja, ja, ja. No cleanup in Targets. Copy-only ads. Files renamed oder deleted.

01:15:10 Find for us aktuell würde ich sagen. Müssen wir in der Zukunft nochmal angucken, ob das ein Problem werden könnte. Is the variable after the container is built a container? Can't see and skips quietly. Okay, okay, okay. Ja, wir gucken mal in den generierten Code rein. So falsch sieht das jetzt nicht aus. Make the minus, die ist nicht gesetzt.

01:15:34 Ach hier, da ist es ja, wenn nicht TMP. Also das Lustige ist, das Target Directory, wenn es einfach nicht gesetzt wird, wird halt synchronisiert, aber heimlich in einen Temporary Directory. Okay, alles klar, das ist sane. Und hier unten, das ist einfach das Geilste überhaupt, dass das geht, dass man einfach sagt, hier aus dem Local Environment zieh dir diese Variable und schreib es dahin. I'm sorry, davon bin ich halt einfach ganz großer Fan.

01:16:03 Okay, der Teil ist cool. Hier ist einfach nur ein weiteres Skript. Das war ich. Und hier haben wir das Skript. Okay, FileOverV copies the build Windows Visible Directory because the tooling does not pick up changes made inside VSL oder DevContainer. Richtig. Weißt du, was wir hier machen?

01:16:33 Ich bin hier mal ein sneaky Kollege und wir nehmen als Beispiel Verzeichnis mein eigenes. Dann habe es sich nämlich leichter, wenn ich Sachen hin und her kopiere. Also Mount D.

01:17:01 slash code ist natürlich wieder mal komplett eigennützig hier. Warum nicht eine .envrlment-File? Die müsste ja auch eingelesen werden.

01:17:26 Und ich meine, du kannst es ja, wenn du möchtest, eine .environment-File dir reinlegen und dir ein verwenden. Gibt keinen Grund, es nicht zu machen. Das ist dann aber deine eigene Entscheidung.

01:17:55 Ich mach keine eigenen Entscheidungen treffen. Hmm. I see the problem. Okay, lass uns in den Code reinlegen. Also blablabla. Das Problem ist, dass dieses Skript halt auch im Kontext von der WSL, äh, vom DevContainer ausgeführt werden kann. Ich mein, wir könnten theoretisch das schon als Environmental den Weg hinzufügen, oder?

01:18:25 Und dann halt eine ignorierte Enf-Example oder sowas. Ich meine, es ist ja möglich, hier Environment-Dateien mit anzugeben. Dann müsste man es halt nicht selbst setzen. Ja, doch. Fair, fair, fair, fair.

01:18:51 Optional getignored.nfile in the... Jetzt muss ich mal gucken, in welcher Verzeichnis wir das gerne hätten. Ja, eigentlich hier im Root, ne? Oder in devcontainer, ne, schon im Root.

01:19:20 .envExample with ExampleValues that is then used in... Das müsste ja dann hier im DevContainer verwendet werden.

01:19:47 Er ist ein guter PO und nimmt Feedback und Anforderungen mit. Es kann ja sein, dass ich irgendwas übersehen habe, deswegen will ich das gerade nicht selber machen. Bevor ich das aber abschicke, gucken wir die hier mal noch schnell fertig an. Weil dann kann ich nämlich alles schon mal stagen und habe immerhin einen wahrscheinlich funktionierenden Stand. Hier zieht er sich Premiere Remote Sync Tier, Sync Host Tier und

01:20:17 Was ist Sync-Deer? Sync-Mount-Host-Deer. Das ist beides da, wo es hinkommt. Wo zur Hölle kommt Sync-Deer her? Also das kann man auch spezifizieren, wenn man eine Meinung ist. Okay.

01:20:55 Ja, also das lustige ist, das hier ist die ganze Magic und alles andere, was wir hier drin sehen, ist nur, um die Magic vielleicht möglich zu machen. Ah, ich verstehe, das ist wegen dem Mount. Ah, das ist quasi die Indirektion. Hostier Sync Mount. Das ist cool.

01:21:26 dass das so einfach möglich ist. Wir stageen mal und dann schicke ich den Kollegen her.

01:21:42 Was man alles tut, damit ich hier in Premiere einfach am Schluss auf den Kollegen hier einmal klicken muss und die Geschichte funktioniert. Und das würde ich ja übrigens auch alles nicht tun, wenn das Ding hier eine vernünftige CLI hätte. Das muss man an der Stelle ja auch nochmal dazu sagen. Das ist ja alles nur, weil das hier eine GUI-Anwendung ist, um die ich nicht drum rumkomme. Sonst würde ich mir diesen Abfuck gar nicht geben.

01:22:07 Ja, das hatte ich irgendwie befürchtet. Das...

01:22:36 dieses die Variable, die wir da so, da wo ich die ganze Zeit sage, dass es sich so krass anfühlt, dass es überhaupt möglich ist, dass das halt aus dem Local End kommt, nicht aus der Datei. Die Alternative wäre Docker Compose zu verwenden.

01:23:01 Ich muss aber ehrlicherweise sagen, ich habe keine Lust, nur deswegen jetzt zu Docker Compose zu wechseln. Überzeugt mich leider nicht.

Fehlersuche bei Umgebungsvariablen und Container-Mount

01:23:20

01:23:20 Nee, nee, nee, nee, nee, nee. Mach mal nicht, mach mal nicht. Okay. Das heißt aber, der Kollege könnte eventuell funktionieren. Das heißt aber für mich, ich bin jetzt hier gerade eben in einem Docker-Container. In einem Docker-Container, ein richtiger Verzeichnis. Und das Coole ist, wenn ich jetzt hier drin...

01:23:48 NLDevAufrufe sollte es bereits fehlschlagen. DevContainer has no building configured. Rebuild the container to enable it. Geil. Perfekt. Den ersten Fehlerfall haben wir damit schon mal abgedeckt. Und jetzt rebilde ich den Container. Und dadurch, nice, finden wir dann gleich das nächste Problem. Ist das cool?

01:24:31 Bis zum nächsten Mal.

01:26:18 So, so, so, so, so. Da bin ich wieder. So, sorry, musste. Ich sehe schon wieder Fehler. Aber ihr hört schon Musik und mich, ne? Okay, also, er hat den Container nicht gestartet bekommen. Danke. Ist das alles, was ich jetzt gerade, Informationen bekomme, dass das nicht funktioniert hat?

01:27:01 Vor allem, warum hat er es jetzt geschafft? Also hä? Ich habe nichts gemacht, außer irgendwie sagt, jetzt start halt nochmal neu. Weird.

01:27:28 Okay, so, jetzt habe ich den Kollegen neu gestartet und jetzt müsste ich ja theoretisch Umgebungsvariablen, also weiß ich nicht, habe ich Umgebungsvariablen? Jetzt ist er ready. Hier drin werden ja Container Umgebungsvariablen gesetzt. Gucken wir mal, ob davon irgendwas da ist.

01:27:50 Ja, das ist auf UXP Sync gesetzt. So weit, so gut. Und jetzt bin ich gespannt, auf was das hier gesetzt ist. Auf nichts. Genau. Und das Skript, das hier oben, das müsste jetzt wahrscheinlich als Fallback in TMP was gesetzt haben. Und er hier.

01:28:18 Kriegt jetzt Undefined zurück. Uiuiuiui. Du, also ich bin total gespannt, was da jetzt passiert. Also ich habe ja absichtlich nichts gemacht. Theoretisch müssten wir aber... Wurde der Ordner jetzt schon angelegt? Theoretisch schon mit make dir minus p. Sollte ich jetzt tatsächlich im Host-System TMP Premiere Remote UX Pacing. Tatsächlich. Habe ich hier ein Verzeichnis rumliegen. Okay. Wir gehen in den Client.

01:28:47 Wir machen mal hier NRDef. Keine Fehlermeldung. Hier wurde aber auch nichts hinkopiert. Also ich meine, das ist okay. Das ist ja auch transparentes Verhalten, I guess.

01:29:17 dass dann nichts passieren soll. Ja, ja, fair. Also das wurde einfach quasi nur als Dummy erzeugt. Das heißt aber lustigerweise auch, dass ich das aber auch als ähm

01:29:43 Verzeichnis einfach nehmen könnte, um das mal auszuprobieren. So jetzt kommt der eigentlich spannende Teil. Wie kriege ich diese Variable da rein? Weil er bedient sich ja am Local Environment. Aber an welchem Local Environment? Das ist ja das, wo auch Claude gerade eben nicht eindeutig sagen konnte, woher das aufgelöst wird. Also komme ich einfach damit durch, dass ich das jetzt hier abschieße.

01:30:12 Zack, dass ich in Premiere Remote reingehe, dass ich hier sage Export ist gleich das hier. Weil jetzt habe ich diese Variable ja da.

01:30:36 Und dass ich jetzt hier raus den Dev-Container starte, wird die dann reingemounted. Wir werden das herausfinden. Oh ja, also nachdem sich, nachdem sich Visual Studio Code geupflegt hat, ey. Ja, der Kollege ist auch sehr traurig, ey.

01:31:09 Hey, aber das sind diese Kleinigkeiten, die am Schluss dafür sorgen werden, dass es ein geiles Tool ist zum Arbeiten. Jetzt musst du ja natürlich auch den Server installieren, das dauert nochmal so lange. Aber was ich schon mal... Ne, kann ich nicht. Ich komme ja nicht mal auf das Terminal drauf. Aber warte, der... Ne, komme ich auch nicht. Wobei... Theoretisch müsste ich jetzt... Der Container läuft ja schon.

01:31:42 Nicht Export, außerdem Echo. Oh, hoffentlich wird das vielleicht wird das nicht einfach so übernommen. Post Attach Failed. Ja, ist auch richtig, existiert ja auch nicht. Was zur Hölle?

01:32:12 Es gibt ein Post Attach. Wo ist der Post Attach? Ich sehe hier kein Post Attach. Wo kommst du überhaupt her? Blame. Vor einem Monat habe ich eine Post Attach offenbar mal gemacht. Aber es gibt keine Post Attach. Was zur Hölle, Alter?

01:32:45 Na gut, aber Tatsache ist, leider, ich habe hier drin... Ja, ich habe hier drin leider mein Verzeichnis nicht. Also könnte ich natürlich auch einfach sagen...

01:33:10 Kann ich das? Dafür müsste ich ja. Wie wird denn das gemountet? Local Enf Premiere Remote Sync Deer. Kann ich das jetzt einfach hier drin setzen? Weil ich meine, der Mount ist da oder der Mount ist nicht da. Ich müsste hier TMP Premiere...

01:33:41 Nichts gut alter nicht gut Also, er hat die variable schlichtweg nicht gelesen demnach hat er auch Aber eigentlich das hätte er trotzdem target usb. Ah, warte mal, warte mal CD uxp sync, aha Warte, warte, warte touch x txt Okay

01:34:12 Geil! Hier ist es. Also, tatsächlich wurde mein Temporary Directory gemounted. Das ist gut. Okay, okay, okay. Das ist ein Schritt vorwärts. Das heißt, er hat zwar das richtig...

01:34:36 Oder hat es nicht, weil es ja zufälligerweise auch mein Fallback wert. Also eins von Badem. Was passiert trotzdem, wenn ich jetzt Client... Wenn ich jetzt baue. So, Dinge sind passiert und jetzt... Hat er es nicht synchronisiert. Wahrscheinlich, weil der Wert noch nicht gesetzt ist.

01:35:03 Aber ich kann durchaus ihn jetzt hier einfach setzen. Wie wird das verwenden? Remote sync dir? So. Weil ich meine, so hätte ich es jetzt auch im Target gesetzt. Copied, built to OI.

01:35:30 Look at this one. Habe ich jetzt... Ich habe mein Bild hier drin. Okay, die Umgebungsvariablen haben ihren Weg nicht vernünftig reingefunden. Das ist sad, aber ich habe hier das Ding hier drin. Das ist geil. Also zufälligerweise hat es halt funktioniert, weil das der Fallback war.

01:35:58 so weit so traurig also das hat uns tatsächlich wenig geholfen wie sage ich dem devcontainer dass er ich habe ja nur eine kleinigkeit geändert also wie sorge ich dafür dass der devcontainer beim bauen die variable auch wirklich sieht

01:36:33 Ich meine, ich kann theoretisch das in Fisch setzen. Hallo Matze, vielen Dank für deinen Sub. Übrigens ist auch noch ein Lars vom Mars. Genauso, mal wieder schlechter drin, wenn man so fokussiert im Coden ist, das zu sagen. Ah, ah, ah, ah, ah, ah, ah. Ah.

01:37:02 Das hier ist eigentlich die ganze Magie. Hier müssen wir... Also ich frage mich einfach. Kann ich nicht einfach hier in meinem UXP verzeichnen es? Set Premiere und dann...

01:37:27 Das müsste doch jetzt eigentlich Fischsprache sein für ich habe dieses Verzeichnis gesetzt, oder? Wenn ich jetzt Premiere Remote Sync Diag mache, dann ist es da drin, ja.

01:37:49 Und wenn ich jetzt hier raus... Also das ist quasi das, was der Endnutzer machen müsste. Oder halt seine Bash-RC anpassen oder was auch immer. So wie man halt mit Umgebungsvariablen... Weißt du, das ist ja... Das darf der Entwickler entscheiden. Das ist nicht mein Bier. Dann macht man den Dev-Container auf. Jetzt muss ich wahrscheinlich neu bauen, würde ich schätzen.

01:38:17 Ja genau, Post Attached failed. Also, es existiert ja auch nicht. Aber das habe ich jetzt rausgefunden. Der Fehler sollte jetzt weg sein. So, wenn das mit dem Mountain funktioniert hat.

01:39:06 Dann kann ich jetzt in UXP Sync gehen. Da sollte jetzt... Es hat nicht funktioniert. Woran sehe ich das? Weil das nämlich der Inhalt von dem Temporary-Verzeichnis ist. Er hat also wieder die Umgebungsvariable nicht vernünftig gelesen. So, und jetzt... Jetzt sind wir mal langsam mit unserem...

01:39:36 Also ich meine, die einfachste Form wäre, das mal in die Bash-RC einzubauen. Oder...

01:39:58 Wie heißt diese Variable, die ich gerade hier die ganze Zeit mit mir rumschmeiße? Sync dir. Das ist blöd.

01:40:24 Also nützigerweise Copy-Mechanismus und alles funktioniert genauso wie es soll, also soweit so gut. Das einzige Problem, was wir jetzt noch haben, ist, dass der Container, wenn er gestartet wird, diese Variable nicht sieht in der Umgebung.

01:40:49 Ja, genau. Variable isn't set anywhere via code can see. Dankeschön. Das hat meine menschliche Intelligenz auch schon rausgefunden. Via code doesn't have it here. Und deswegen ist es empty. My guess. Via code. Alter, was zur Hölle. Das werde ich definitiv nicht machen.

01:41:16 WS Code, WSL Server, Source, Startup, Independent of Fish.

01:41:46 Also der Teil hier, das ist das, was ich erwartet hatte. Ich muss es in meine manuelle Fisch-Config einfügen, damit es Fisch sieht, wenn ich es dort ausführe. Aber dass man einen Export in hier reinpacken muss, damit bin ich nicht zufrieden.

01:42:29 Ups, naja, egal. Hm. Geht ich nur ein Endpfeil. Ach, da sind wir wieder.

01:43:06 Jetzt auf einmal geht das doch mit dem ENV oder was? Das liebe ich auch an aktuellen Sprachmodellen. Ich habe nicht gesagt, dass irgendwas geändert werden soll, aber danke, dass Dinge geändert wurden. Ich fand diese Punkt-ENV-Lösung schon sympathisch. Ich hätte nur nicht gedacht, dass sie funktioniert. Ach, jetzt ist auf einmal doch eine ENV-Lösung, ha?

01:43:42 It now mounts Bruder, was? Das ist doch keine Lösung! Dinger, wir arbeiten in Dev Containern für Replizierbarkeit und Isolierung. Und deine Scheiß-Lösung hier ist gerade, einfach mein gesamtes Verzeichnis da rein zu mounten. Bist du eigentlich noch sane, Alter?

01:44:33 Ich habe jetzt hier eine N für Example. Soweit so cool. Ich habe jetzt hier eine N4 drin. Hier wurden nochmal Dinge angepasst. Hier wird jetzt nicht mehr beim Startup Sachen geschrieben. Hier ebenfalls nicht mehr. Weil sich das jetzt hier, also das ist alles.

01:44:55 Das ist alles soweit okay und auch vorgesehen, das einzige woran es jetzt wieder mangelt ist am Mount selbst. Und darum geht er hier, indem er einfach mal, ach nicht mal mehr nur D, einfach mein gesamtes Windows, Digga. Das ist keine Lösung.

01:45:23 Nearly there, Bats.

01:45:46 Das ist wieder so geil. Das ist wieder dieses, warum es gefährlich ist, einfach nur blind dem Output von AI zu vertrauen. Das ist Opus 5.5. Das ist so neben Fable 5.2 das Fortgeschrittlichste, was sie haben. Und sie haben gerade einfach gegen eine der zwei Grundbedingungen, warum man DevContainer überhaupt verwendet, verstoßen. Das ist halt so keinerlei Vernunft.

01:46:13 Needs a host side step because can't read my plan runs before it reads and from poise sim and points sim link in the repo to the Monster züngling First test the docker follows okay, das ist so dumm nicht

01:46:42 Das finde ich jetzt nicht die schlechteste Idee, weil so magic mit initialize command, das ist jetzt auch nichts komplett neues. It reads env. Wenn env da ist, wird das...

01:47:02 Deine Env darf aber nicht noch Example heißen. Achso, das ist Absicht. Weil Env-Dateien ja nicht committed werden, nutze ich hier die Konvention .env.example, wo sich dann jemand anderes seine .env-Datei rausbauen kann. Also das ist soweit nichts Besonderes. Weil ansonsten müsste man ja sich aus dem Code rauslesen, was man in seine Env-Datei reinpackt. Das wäre totaler Pain. Deswegen, das ist insofern normal.

01:47:29 Ja, das, was da gerade eben aber er macht, das weiß ich. Ich vertraue mal blind. Und hoffe, dass er einfach gerade nicht alles kaputt macht.

01:48:07 Joe Digger

Erfolgreiche Einrichtung mit Symlink und funktionierender Watch

01:48:20

01:48:22 Ich finde das so geil, wie wir mittlerweile hier einfach so richtig viel Setup-Scheiße bauen. Und wir machen das hier alles gerade eben übrigens nur, damit dieser Watch-Button auch tatsächlich watcht, ne? Das ist hier, wir haben heute noch keine Zeile Produktivcode geschrieben. Geschreiben. Deutsch auch bei gelernt AI. Sondern wir sorgen einfach gerade nur mit unnötig viel AI-Power dafür, dass Matze02 subscribt. Danke übrigens. Hallo, Tedavito.

01:48:52 Wir sorgen einfach nur dafür, dass vernünftig Premiere unsere Änderungen auch mitbekommt, damit man dann irgendwann mal vernünftig arbeiten kann. Weil, by the way, ich mache das gar nicht für den Menschen gerade. Ich mache das gerade dafür, damit AI dann irgendwann meine Funktionen entwickeln kann. Aber AI guckt blöd, wenn Änderungen keine Auswirkungen haben. Und deswegen bastle ich hier gerade, dass Watch auch tatsächlich Watcht, weil dann kann man nämlich einen Agenten diese ganzen Funktionen implementieren lassen. Und dann sind wir in Nullkommanichts am Ende.

01:49:19 Und das ist total lustig, weil das irgendwie, also das ist prototypisch, weil so wird gerade irgendwie so der Job vom Software Engineer. Du arbeitest gar nicht für Menschen, du arbeitest dafür, dass die AI dann eigentlich deine Arbeit machen kann.

01:49:40 Ja, also das ist so ein Pattern, was ich sehr viel momentan sehe. Now, mounts only target from Env. All five cases pack. Blablabla. Initialize command. Zieht sich einfach einen Simlink. Geil. Mounts. Dockerfollow Simlink. Ist das genial. EnvSynth. Blablabla. Quote paths. Spaces.

01:50:12 Restart, if we use code reuse, running container, changed and restart. Okay, das ist auch kein. Okay, aber also das ist jetzt, das ist soweit okay. So, wir lassen das, machen jetzt absichtlich, also erstmal gucke ich natürlich hier rein. Sync build, das ist einfach nur die geänderte Datei, die jetzt, okay, soweit so harmlos.

01:50:42 Das hier ist die eigentliche neue Magie. Hier wird es aus einer env-Datei rausgelesen und dann ln-s gemacht, also ein symlink erzeugt auf uxpsync. Geil! Dadurch haben wir jetzt hier den initialize-Command wieder ein bisschen aufgeblasen, aber der ist sowieso schon ein bisschen aufgeblasen. Das hier ist dafür deutlich vereinfacht.

01:51:11 Hier gibt es jetzt im Workspace ein UXP-Sync-Ding. Das ist auch cool. Auf der Gitignore erwarte ich genau diesen Sym-Link, weil ansonsten würdest du ja quasi Bild zweimal einchecken und die neue Env-Datei, die wir noch nicht erzeugt haben. Und es gibt die Env-Example.

01:51:31 Target for syncing after each pnprem run build. Okay, klar. Was ich mich gerade noch frage ist, ist ja schön, dass wir hier dev aktualisiert haben, aber eigentlich müssen wir ja auch... Eigentlich müssen wir ja hier auch build anpassen, oder? Setup run bundle.

01:52:05 Das sehen wir dann gleich im Anschluss. Okay, ich ändere jetzt mal nicht die Datei, aber ich rebuild den Container, dann sollte ich eigentlich eine Fehlermeldung sehen. Hier erzeugt er jetzt gerade den symlink, beziehungsweise er dürfte eigentlich keinen erzeugen, aber wir gucken mal, was wir haben.

01:52:36 So. Hier haben wir UXP Sync und das zeigt irgendwo hin. Ja, wo zeigt denn das eigentlich hin? Was sagt nochmal unser Skript dazu? Achso, das liegt hier drin. Ähm.

01:53:07 Syncdia aus Enf Wo zeigt das hin?

01:53:35 Ist das jetzt doch einfach nur ein Verzeichnis oder was? Ah ja, okay. Mountsource must exist. Also es ist wirklich gerade einfach nur ein leeres Verzeichnis. Okay, okay, okay, okay. Das heißt jetzt aber, wenn ich in den Client gehe und hier wieder Dev ausführe, dann hat der jetzt gerade eben hier den Schmuh.

01:54:06 Weil es nicht gesetzt wurde, hat er es auch gar nicht kopiert. Das ist cool. Okay, okay. Wir nennen jetzt die Enf-Example, beziehungsweise wir kopieren die Enf-Example. Copy Enf-Example nach Enf.

01:54:30 Jetzt ist hier eine unbekannte, gitignorerte Datei mit meinem Verzeichnis und ich rebuild den Container. Jetzt wird es spannend, weil jetzt fange ich wirklich an Windows und Linux über einen Dev-Container hinaus zu verlinken, Alter. Ist das wild, Mann! Habe ich den Ordner schon da? Ich habe den Ordner schon hier. Das hier ist der Ordner.

01:55:00 Ich ziehe den mal hier unten so hin, damit ihr hier unten links seht ihr jetzt, dass das was hier rauskommt. Es müsste eigentlich bereits funktionieren, weil bevor er das hier ausführt, hat er bereits den Link gesetzt. Das heißt aber, wenn ich jetzt in UX, wie heißt das? Wie heißt das Ding?

01:55:30 UXP Sync. Jo! Das hier ist wirklich der Link. Okay. UX... Bin ich dumm? No such file directly with this?

01:56:00 Warum ist das jetzt ein Fehler? Ich meine, wir werden das herausfinden. Das heißt aber, ich müsste theoretisch jetzt hier auch eine Umgebungsvariable haben. Die müsste er ja hier gerade reingezogen haben. Hat er nicht.

01:56:32 Das ist nicht unbedingt das, was ich... Okay, aber wir gucken mal. Copyed Build to... Okay, hier ist es. Das hier ist der Bild. Ich verstehe nicht genau, warum ich nicht da einfach rein-CD'en konnte. Ich verstehe auch nicht genau, warum ich hier in dem... Vielleicht war das Terminal noch nicht frisch genug.

01:56:57 Achso, es existiert ja auch gar nicht als Umgebungsvariable. Ich dulli. Weil es ja in Client Scripts auch nicht aus der Umgebung geladen wird, sondern aus einer Endfile gelesen wird. Okay, also es ist nie sichtbar als Umgebungsvariable im Container. Fair. Hier sind jetzt die Bildvariablen. Okay.

01:57:25 Was es jetzt noch braucht, ist die Manifest-Json. Auf die ich dann linken kann. Dann würde ich behaupten, haben wir alles? Ne, Icons wird auch rüberkopiert. Woher kommt Icons?

01:57:49 Icons muss auch kopiert werden? Nicht nur Build? Was ist denn noch wichtig für so einen Plugin? Icons und Manifest-Json müssen wahrscheinlich auch kopiert werden.

01:58:18 target slash festjson target slash build target slash icons

01:58:32 Das sind jetzt die Kleinigkeiten. Also die Tatsache, wir können das jetzt hier auch löschen. Die Tatsache, dass jetzt hier einfach so ein paar Kleinigkeiten, das sind einfach nur, weil das ist ja die eigentliche Logi, so wie wir es vorhin auch schon gesagt haben. Das ist das eigentliche Herz von dem Ding und alles andere ist nur dafür da, um Dinge sichtbar zu machen. Heißt für mich, wenn ich jetzt nochmal nrcdclientnrdev mache,

01:59:02 Jetzt haben wir hier unten links auf einmal den Bildordner, Icons und die Manifest-Json. Und jetzt sollte ich in der Lage sein, den Kollegen hier umzubiegen. Und das ist so viel angenehmer. Also Kegelsneider hat ja schon recht mit seiner Enf-Datei. Das ist so viel angenehmer, als den Nutzer zu sagen, hier, du musst irgendwas und irgendwas. Nee, du kopierst einfach Enf-Example nach Enf und setzt dir ein Verzeichnis. Und dann, it just works. Das ist schon...

01:59:33 Schon nice. Not gonna lie. Unload. Nicht nur unload, sondern sogar remove. Das ist jetzt creepy. Add plugin. Manifest chasen. Das hier ist jetzt technisch gesehen derselbe Code, aber auf einmal binde ich etwas von einem Windows-Verzeichnis ein. Load and watch.

01:59:59 Das Kollege hier initialisiert sich jetzt. Der würde gleich sagen, ich finde keinen Server. Ich bin so arm. Das ist okay. Denn der Server, der läuft hier auch noch nicht. Tatsache ist aber, der Kollege hier läuft. Und zwar gleich doppelt. Also einen davon können wir mal abschießen. Der Kollege hier läuft. Oder weißt du was? Ich lasse ihn nochmal neu starten. So, zack. Er läuft. Hier gehen wir in den Server rein.

02:00:29 Auch der Server läuft jetzt. Jetzt müsste ich hier drin gleich sehen, dass er sich connected hat. Wobei, er hängt an Initializing. Das ist neu. Das kann eigentlich gar nicht sein. Ich reloade nochmal. Jetzt ist er connected.

02:00:49 Okay, wild. Was sagt meine Debug-Utilities? Er ist connected, ja. Gut. Das hier lassen wir gleich mal offen. Und jetzt kann ich wieder den alten Flow gehen und hier auf Play drücken.

02:01:05 Try it out. Zack. Und hier sehe ich 00Main mit SequenceName mit großem S. Und jetzt kommt die Magie. Wenn das jetzt alles funktioniert hat, kann ich jetzt zwei Dinge tun. Erstens kann ich jetzt in Playground die Funktion zu Play 1 umbenennen. Und zweitens kann ich hier ein kleines S schreiben.

02:01:27 STRG S. Mehrere Dinge sind jetzt passiert. Erstmal hat er hier im Client das erkannt, neu generiert, dann hat er auch den Server neu gestartet und ich sollte jetzt in Premiere, das ist noch ein Bug, hier hängt er an Initializing.

02:01:47 Okay, also einen Bug haben wir noch übrig, weil abgesehen davon soll, also er hat ja neu geladen, also er hat ja kapiert, dass das Ding neu gestartet werden muss. Das sieht man auch in den Logs. Hier ist noch irgendwie ein manueller Reload nötig, weil er noch an Indisch-Schlosser hängt. Das ist also wirklich noch ein Fehler, aber er hat den Reload selbst erkannt. Er hat nicht einfach nur weiter ausgeführt. Bedeutet aber für mich, dass wenn ich jetzt hier F5 drücke, habe ich hier Play 1 und Play 1 hat

02:02:16 Ein kleines S in Sequence Name. Es tut. Letztes Problem, was wir noch haben. Wenn ich hier das jetzt wieder zurückfixe. Ist er jetzt gelaufen? Ja, er sieht das UXP Plugin Starting, aber es hängt in Starting. Und ich weiß nicht warum.

02:02:40 Warum kann es, warum, wenn ich den Scheiß nach Windows kopiere, hängt er dann hier in Initializing drin? Da muss irgendwas nicht richtig runtergefahren werden beim Watchen. Ha. Das ist das letzte Detail. Wenn wir das gefixt haben, ich meine, ich kann ja jetzt hier auch reingehen und in, ähm, ah, jetzt hat er connected. Guck mal, es hat einfach nur, es hat Ewigkeiten gedauert.

02:03:13 Digga, was? Das ist... ...wild. Warum hat das so lange gedauert? Machen wir nochmal eine Änderung. Strg S.

02:03:35 Hier, er hängt ewig an diesem Wartner, so sicher 10 Sekunden oder irgendwas. Weil ich meine, also der Server ist da. Am Server habe ich ja nichts verändert. Ja, der ist da und antwortet auch. Kann es sein, dass dieses Watch irgendwie mein...

02:04:09 Ja, ja, guck mal hier. Hier sieht man es. Kann ich irgendwie Zeitstempel hinzufügen? Gibt es das hier? Also hier hat man schon lange gesehen, dass er sehr lange in Plugin Starting war, bis er dann die Warnung endlich ausgegeben hat. Das bedeutet, da passiert irgendetwas und das dauert halt irgendwie, weiß ich nicht, 10 Sekunden oder sowas.

02:04:38 Also hier erzeugt er den WS Client. Dann geht er hier in Connect rein. Und das breezt dann ewig. Das ist aber das letzte Detail, was uns aktuell noch fehlt. Also technisch gesehen funktioniert es bereits. Das ist cool, weil ich hätte nämlich gerne mal einen Stand, den ich mal committen kann.

Letztes Problem mit Reload und dessen Lösung

02:05:00

02:05:08 Also das hier tut. Das hier tut. Das hier tut. Das hier tut. Das hier tut. Das hier ist auch gut. Die hier macht genau, was sie soll. Und hier können wir... Du scheiß drauf. Da machen wir wieder ein kleines S draus.

02:05:39 Zack, zack, zack. Add sync to the tools to copy the targets, the client builds to a Windows directory fixing XP tools watching.

02:06:07 Okay, so. Noch zwei Challenges sind offen, bis wir das hier abhaken können. Challenge Nummer eins. Interesting new problem. Watch.

02:06:25 The watching of Premiere UXP Tools instantly restarts the client app as expected. But then it resists after. Müssen wir mal kurz in die logs reingucken, die wir hier haben.

02:06:53 Wie lang freest das? Vielleicht 10 Sekunden oder sowas? Or maybe 10 seconds before is locked.

02:07:14 Dann ist es schnell und funktioniert. Der Verlangen ist sehr öffne. Das passiert nur mit dem Verlangen.

02:07:40 Ich als menschlicher Entwickler würde mich jetzt damit erstmal nicht beschäftigen. Ich würde sagen, scheiß drauf, gut genug, es funktioniert. So funktioniert der Reload, auch wenn er keinen Spaß macht, es tut. Aber dokumentieren wir als Issue, schieben es weiter nach hinten.

02:08:05 Mit AI? Muss ich sagen, lass da doch mal kurz reingehen. Ich meine, wir können ja immer noch nichts finden, aber da ich nicht manuell da drin rumsuchen muss und mich mit den Details von einem Websocket rumschlagen muss, let's try. Close is a new connection. While the previous only. Close is the madejustice card.

02:08:33 After check whether the server locks. Kann ich einfach mal den gesamten Lock hier irgendwie exportieren.

02:09:52 Achso, das Plugin. Ja, man muss auch richtig lesen. Spricht denn der Server irgendwas Spannendes? Gar nicht, tatsächlich.

02:10:51 Da ist halt echt nichts drin. Das coole ist, da wir aber diesen ganzen Copy Kram und so weiter drin haben. Lässt sich ja total easy debuggen, also sogar für AI. Das ist total lustig. Ich habe das eigentlich, dieses Instant Restart, Hot Reloading, blablabla, habe ich ja eigentlich hinzugefügt, damit es einfacher ist, später für AI Produktivcode zu schreiben. Aber es ist jetzt schon besser, um rauszufinden, was der Fehler ist, weil Hypothesen einfach ausprobiert werden können.

02:11:57 Ich halte das gerade für eine Luftnummer, weil der Server wurde glaube ich in diesem Beispiel von mir gerade gar nicht restartet, aber wir werden das sehen, indem ich mal kurz in Playground gehe und hier was ändere. Jetzt gucken wir mal, ob der Server neu startet. Jetzt ist zum Beispiel Instant neu gestartet. Spannend.

02:12:28 Plugin disconnected, Plugin connected. Am Schluss hatte AI doch recht und ich lag falsch. Oh oh. Ha.

02:12:58 Scheiße. Aber bei YouTube ist raus. Bitte mal in Ruhe anschauen. Danke dir. Ich weiß nicht, ob ich sympathisch bin, aber ich hoffe, ich mache immerhin halbwegs interessante Inhalte. Also wenn ich nicht gerade an Premiere... Guck mal, jetzt Instant Disconnected Connected. Okay, okay, okay. Wenn ich nicht gerade an Premiere verzweifle. Ja, okay. I'm not sure whether the server... Yes, it does only happen if server restart is involved.

02:13:30 Only changing client actions to change the open API JSON is instantaneous. Ach, scheißegal. Was schön an Sprachmodellen ist, dass Rechtschreibung halt auch nichts wert ist.

02:14:13 Wer ist sympathisch noch unterhaltsam? Ich bin fürs Mobbing hier. Danke, danke, danke Männer. Du, ich habe auch gar kein Problem, das Reconnect-Time auf eine Sekunde zu setzen, wenn das dafür ein bisschen oder auf zwei Sekunden.

02:14:47 Ich meine, der Server-Shotdown war auch Instant. Also wenn ich hier so einen auf Play mache, ist zack, Instant der Server wieder da.

02:15:28 Stop the server then reload the plugin manually. The error takes about 10 seconds. Also ich bin ja da so weit, ich weiß selber nicht mehr, was hier das Problem ist, aber okay. Okay, ich stoppe den Server. Und jetzt sehen wir gleich den Fehler. Ich mache hier schon mal die Geschichte hier auf.

02:15:58 Jetzt sagt er gleich, dass er disconnected ist. Hallo? How the hell? Wie kann es sein, dass du immer noch connected bist? Der Server ist offline, Alter. So, reload.

02:16:29 Ja, nicht gut. Hab den Server gestoppt, manuell auf Reload gedrückt und guck mal, wir können wirklich live zusehen, wie einfach nichts kommt. Also er sagt auch nicht disconnected oder sowas.

02:16:54 Jetzt ungefähr sollte er mal maulen, dass er kein Websocket... Jetzt ist es auf... Okay. Hypothese also richtig.

02:17:10 Das heißt der Server war nie schuld?

02:17:40 Alter, ist das bescheuert, Mann. Ist das bescheuert.

02:18:03 Ist schon okay, dass das Reconnect Layer Time, das könnten wir theoretisch sogar auf eine Sekunde warten lassen oder sowas, aber kann man sich halt auch wirklich dann sparen, weil die Plugin UI, das ist mit den drei Sekunden, wenn ich das einmal pro Sekunde... Ja, also damit haben wir eigentlich zwei Sachen auf einmal dann abgehakt, wenn das jetzt funktioniert.

02:18:29 Den hier muss ich dann gleich nochmal manuell anschauen. Oh boy, alter, oh boy. Also, nr-dev im Client. Zack. nr-dev im Server. Zack.

02:18:47 In Premiere einmal manuell reloaden. Zack, Instant Connected. Oh oh, oh oh, oh oh. Ich ziehe mir mal hier meine Konsole auf die Seite, wo ich die Sachen sehe. Jetzt machen wir wieder einen Miner Change im Playground. Voll geil übrigens, dass ich einen Playground habe. Just saying. Instant Plugin Disconnected Connected. Und jetzt mache ich eine größere Änderung.

02:19:17 Meine größere Änderung. Zack, instant wieder da. Jetzt mache ich eine Änderung, die nicht alles kaputt macht. Instant wieder da. Da ist er. Und die Änderung wurde auch gefrühstückt. Machen wir mal hier kurz den Execute Test.

02:19:42 Instant funktioniert. Wir haben hier das große S. Und jetzt gehe ich mal zwei Stufen zurück. Mach hier wieder das kleine S hin. Und Instant wieder da. Und zack. Und jetzt können wir hier zugucken. Disconnected. Instant wieder da. Das war's. Connect hat tatsächlich einfach zehn Sekunden gehangen und für Probleme gesorgt. Wenn ich jetzt hier Execute mache.

02:20:12 Ah, wenn ich das hier neu lade, habe ich das Ding Play 0 genannt, bin ich eigentlich komplett Banane. Wenn ich jetzt das hier auf Play ändere, Premiere, zack, Instant wieder da. Browser, neu laden, zack, zack, Execute, 0 als Antwort, hier kein Output, hier Sequence mit kleinem S.

02:20:40 Seufztet, meine Damen und Herren. Das war's. Das war das Problem. Ist das bescheuert. So, jetzt müssen wir natürlich den Bloat verändern. Dass das das Problem ist, Mann, ey. Ist das genial. Wow.

02:21:07 Also das können wir schon mal stagen. Jetzt haben wir hier noch ein bisschen was zu testen. Ja ja ja, das ist das Firing Close. If you see the error only once, nothing more. It works perfect. What about the generate PHS changes? Are they still relevant?

02:21:33 Weil ich meine, das war ja nur so eine Luftnummer, um rauszufinden. Yes. Every client build will still restart a server. Warum? Das ist doch Schwachsinn.

Fazit zur AI-Zusammenarbeit und Ausblick

02:21:40

02:22:10 Das ist doch Schwachsinn!

02:22:51 Aha. Spannend. Das würde ich mal gerne hier ausprobieren. Also die... Er sagt jetzt hier, Note 1 reacts to the file being written, not to its content being changed. Das ist aber nicht das, was ich bis jetzt beobachtet habe. Aber ey, du, das ist überhaupt kein Problem. Wir...

02:23:21 Wir staschen mal eben diese Enderung... Oh, das wollte ich nicht. Stash. Hopp. Wir staschen mal eben... Boah, wie funktioniert das Dash von nur einer Detail? Ich hätte vermutet staschen, denn der Pfad... Generate API.js... Minus, Minus Pfad, danke.

02:23:57 Muss ich push davor, weil das dann... Okay, was? Diese Sachen sind ja sane. Fix a bug where the client hangs after a restart.

02:24:27 Jetzt können wir das ganz normal wegstaschen. Ich kann kein Git mehr. Passiert mir auch ständig. So, jetzt gehen wir in den Playground. Läuft der ganze Käse hier noch? Server und Client laufen noch. Jetzt mache ich eine Client-only-Änderung. Ein großes S hier zum Beispiel und beobachte den Server. Oh.

02:24:56 Fuck Ach komm, fickt euch doch. Ja, ey, I hatte leider recht. Das ist scheiße, man.

02:25:20 Also heute den Stream kannst du zusammenfassen, als AI hatte 5... AI Sebastian 5 zu 0. Wobei, nee, also ich meine, also dieser eine, wir mounten alle Windows-Verzeichnisse Fehler, der war ja dermaßen in Huren. Also dafür kriege ich alle Punkte, egal wie AI gut performt hat heute. Das war ja wirklich etwas, was niemals hätte geschippt werden dürfen. Also deswegen, ja, ist okay.

02:25:48 Make minor changes, not rebuild the server. Cool. Das war's. Damit können wir die zwei abhaken. Einmal kurz pushy pushy.

02:26:05 Jetzt ist natürlich wieder der... Ach, das wird mir mein End-to-End-Test sagen, ob das jetzt irgendwie problematisch ist. Richtig nice, Alter. Jaja. Heul später, mein Freund. Hier haben wir eine Inf-Datei. Hier speichert man einfach sein Ding rein. Das, was wir jetzt hier drin haben, ist ein Windows-Verzeichnis. Kein Linux-Verzeichnis mehr. Rewatch, Reload und Watch funktioniert. Der Kollege ist da. Und wir haben damit...

02:26:35 Den kannst du einfach rausschmeißen. Haben damit eine Sache weiter abgehakt, die echt richtig wichtig war. Und das mit der Plug-in-UI. Sorry, wenn der jede Sekunde neu lädt, braucht man da keine UI für. Nice! Du, das waren zwei echt nervige, notwendige Dinger, die wir jetzt hier gemacht haben.

02:26:58 Alter, wie viele Komets hier schon drin hängen. Das macht mich jedes Mal fertig, wenn ich sehe. 9.000, fast 10.000 Zeilen hinzugefügt, 12.500 Zeilen entfernt, ey.

02:27:09 Aber es tut. Wir sind wieder zwei große Schritte näher. Es ist wirklich nicht mehr wahnsinnig viel. Das ist noch ein bisschen weiter ballern. Vielleicht schaffen wir es sogar noch. Das wäre ein absoluter Traum, dieses Jahr zu releasen, auch wenn ich es kaum glaube. Aber wenn wir es anfangen, nächstes Jahr schaffen zu releasen, dann habe ich ja ungefähr nur ein Jahr an den Rewrite gearbeitet, oder? Aber gut, das ist ja auch ein Hobbyprojekt. Immer nur so ein bisschen nebenher. Also, naja. Nicht so kritisch, aber auf jeden Fall krass.

02:27:38 Nice. Okay, wow. Produktiver Sonntag, meine Damen und Herren. Wir sehen uns auf jeden Fall dieses Jahr nochmal wieder. Also das, da gebe ich euch Prüfungssiegel drauf. Also hoffe ich jedenfalls. Ich kriege demnächst Glas für Asso.

02:27:55 Ich hoffe, dass ich danach noch Internets habe. Aber vielleicht habe ich danach sogar viel besseres und stabileres Internets. Das wäre natürlich cool. Sehen wir dann. Wir sehen uns auf jeden Fall nochmal wieder mit Premiere Remote, weil dieses minimale Action-Set, das, was jetzt als nächstes kommt, das ist der Teil, der richtig Bock macht. Das ist nämlich jetzt endlich mal wieder dann kein Premiere... Weißt du? Das sind ja hier alles so in Premiere rumgehacki, hacki-schmecki. Aber was man ja eigentlich schreiben möchte...

02:28:24 ist ja hier wie der Playground, also die Actions, das ist das, was man eigentlich schreiben möchte. Weil das macht Spaß. Das ist wirklich Coden in Premiere mit Premiere. Und der ganze andere Kram hier drumherum ist nur dafür zu sorgen, dass da auch der Entwickler, die Entwickler-Experience geil ist. Aber was man eigentlich machen möchte, ist das hier. Da brauchen wir das nächste Mal so ein minimales Action-Set. Deswegen, das wird ein sehr, sehr spannender Stream. Die restlichen Bürokratie und andere Sachen kann ich ja wieder mitmachen.

02:28:52 Meine Damen und Herren, ich würde an dieser Stelle sagen, danke schön fürs Zusehen. Das war grundsolide. AI hat mal wieder gut performt und auch wieder scheiße performt. Und übrigens, was man in diesem Stream ja auch wirklich gesehen hat, was ich vielleicht an der Stelle noch mal kurz ein bisschen Realtalk. Ich hatte ja am Anfang dieses Jahres dieses Video gemacht, das Problem mit Coding-Videos. Kurz danach wurde dann Coding gefühlt irrelevant. Da kam ja auch mein Video.

02:29:18 Zum Thema AI, was, by the way, mittlerweile mein bekanntestes Informatik-Video of all time ist. Upsi. Kam ja dann raus, wo ich so erzählt habe, ja, ich weiß nicht, insbesondere im Stream mit AI und sowieso. Aber ich muss sagen, und bitte widersprecht mir, wenn ich falsch liegen sollte oder gebt mir recht, wenn ich richtig liegen sollte, damit ich das kurz noch im Chat sehe, bevor ich den Stream ausmache. Ich muss sagen, obwohl wir heute mit AI viel gemacht haben, viel gequält, war das Feeling dieses...

02:29:46 Nach vorne stolpern in einer Technologie, die man nicht kennt. Und auch dieses Zusammenlachen über Dinge, die funktionieren und auch nicht funktionieren, war ähnlich wie bei einem normalen Calling-Stream. Außer, dass wir halt zusammen über AI gelacht haben oder mal wieder über mich, weil AI klüger war. Also es ist so ein Wettstreit und egal, wer gewinnt, es ist dann trotzdem unterhaltsam und ein bisschen lehrreich. I hope. Ich meine, wir wurden ja auch zum Beispiel bestätigt, so unsere Wege mit Sachen rein mounten und so weiter, Environment-Variablen, Environment-Detail und so weiter. Also wir sind trotzdem...

02:30:13 Wir sind trotzdem eigentlich vernünftig vorangeschritten mit oder ohne AI. Und es war auch keiner, und das ist nämlich das, was ich nicht haben wollen würde, es war kein Stream, wo wir einfach nur einen Prompt eingeben und uns dann zurücklehnen und aufhören nachzudenken und dann das Ergebnis einfach unreflektiert committen. Weil das wäre wirklich gar kein Coding-Stream mehr. Heißt nämlich übrigens auch für mich, für Coding-Videos und so weiter, dass ich mich viel mehr auf das Spannende konzentrieren kann. Und zwar nicht auf den Code, sondern auf den Produktbild. Also auf...

02:30:42 Alles, was kein Code ist, auf die Project-Owner- oder Product-Owner-Sicht quasi, die ich persönlich sowieso viel spannender finde, als langweilige Zahlen Code zu schreiben. Also insofern würde ich sagen, wir sind auf einem guten Pfad und auch auf einem trotz oder sogar wegen AI spannenden Pfad.

02:31:05 Ja, ist das, würdet ihr das so kaufen, dieses Fazit? Weil ich muss sagen, ich bin happy eigentlich. Doch, ich kann nicht klagen. Metal, Leute. Okay, dieser Stream war auf jeden Fall mehr als lang genug. Vielen Dank fürs Zusehen. Ich versuche mal ein bisschen frische Luft zu schnappen, weil mein Vogel ist tot.

02:31:29 Gucken wir, was beim Poll rausgekommen ist. Nichts. Danke. Ähnlich zu sonst hat eine Stimme. Danke für eure aktive Teilnahme. Hat keiner mehr Bock, ne? Sehe ich ein. Macht's gut. Bis zum nächsten Mal. Ciao.