Durch die Kombination menschlicher Programmierung mit KI-Unterstützung wurde die Architektur von Premiere Remote grundlegend überarbeitet. Die neue Version implementiert statische Code-Analyse mit TS Morph und ermöglicht die automatische Generierung von Schnittstellenbeschreibungen. Die effiziente Nutzung von KI-Ressourcen durch die Reduzierung von Token-Verbrauch steht dabei im Mittelpunkt der Entwicklung. Diese hybride Methode verspricht sowohl bessere Performance als auch eine verbesserte Benutzerfreundlichkeit.

Software and Game Development
00:00:00

Software and Game Development

Streamstart und persönliche Einordnung

00:04:15

00:04:15 So, mal ehrlich, damit hat wirklich niemand gerechnet. So, erstmal alle so einen Kopfscherpingen, dass das Intro durch ist. Jetzt wird hier gestreamt. So nämlich. Hallo Extremtechniker. Danke für den Sub. Und auch Ground Crafter und Melan und Roboti. Danke für eure Subs. Und SaschaLP hat vorhin auch noch subscribed, während ich gar nicht live war. Das ist diese Dedication, von der alle immer reden.

00:04:42 Ja krass, oder? Ich bin mal wieder live. Das gibt's ja gar nicht. Und ich hab sogar Geschichten zu erzählen. Das gibt's auch gar nicht. Also ich hab eigentlich immer Geschichten zu erzählen. Aber also ich habe offline echt einiges vorbereitet für diesen Stream schon wieder.

00:04:58 Das ist total verrückt. Vielleicht komme ich irgendwann an einen Punkt, an dem ich schon vor vielen Jahren war und dann eine Zeit lang wieder nicht mehr und jetzt möchte ich da wieder hin zurückkommen. Und zwar, dass ich eigentlich die ganze Zeit coolen Shit mache und das dann halt hier so...

00:05:14 streamen oder in YouTube Videos verpacke oder so. So zum Beispiel auch mal ein neues Video, was ich heute fertig geschnitten habe und was ich auch heute hochgeladen habe und was nächsten Sonntag rauskommt, wo ich auch wirklich das ganze Video über einfach nur Dinge mache und das halt dokumentiere. Und ich bin sehr gespannt, wie da das Feedback sein wird, weil ich versuche auch immer weiter zu lernen und uns besser zu machen und mal gucken. Aktuell bin ich immer noch...

00:05:41 Nicht vom Aufwand her da, wo ich hin möchte. Das muss noch leichtgewichtiger werden.

00:05:45 Aber ich werde auf jeden Fall schneller und diese ganze Optimierung, die ich mir über alle Jahre gebaut habe, auch für den Videoschnitt, die zahlt sich so langsam aus und das ist ganz schön cool. Und es ist auch wirklich ein schöner Bereich hier. Ich habe ja mittlerweile auch eine kleine Studiotour mal hochgeladen, da könnt ihr euch angucken, wie es sich eigentlich so aussieht. Was ich jetzt gerade eben sehe, diese Kamera, übrigens ein Ding, was ich gar nicht abkann, ganz im Gegensatz zu Kegesneid, den kann ich nämlich ab, der muss nämlich jetzt aufstehen und sich einen Schnaps holen.

00:06:14 Und melde dich erst wieder, wenn du den Schnaps getrunken hast. Denn es sind 111 Monate. Und das ist sicherlich die krasseste Schnapstahl, die Kegelsnight hier in diesem Stream erreichen wird. Weil ich möchte mich jetzt nicht aus dem Fenster lehnen, aber ob ich weitere 111 Monate live bin, sodass Kegelsnight irgendwann die 222 Monate erreichen kann, das weiß ich nicht. Weil 111 Monate, das sind ja bald 10 Jahre. Jetzt fühle ich mich alt. Danke.

00:06:47 Jetzt fühle ich mich wirklich alt. Scheiße, ey. Fuck. Ob wir so lange noch leben, ja. Auch eine sehr gute Frage. Aber hey, alle Umgebungsfaktoren versuchen uns ja umzubringen. Krieg, Klimakatastrophe, wir werden immer älter. Ja, ja, ja, du weiß ich nicht, vielleicht. Aber gucken wir mal, ob man in 10 Jahren überhaupt noch streamen kann. Vielleicht aus dem Bunker.

00:07:20 weil wir die Welt kaputtgebombt haben. Also wir nicht, aber Amerika. Amerika und X. Aber garantiert Amerika. Vielleicht werde ich auch morgen angefahren. Hey, ja. Vielleicht sogar heute noch. Also ich gebe mir Mühe, also nicht angefahren zu werden. Aber vielleicht ist das mein letzter Stream. Vielleicht war das einfach Claude platt. Obwohl mir Claude bei der Vorbereitung dieses Streams tatsächlich geholfen hat.

Technische Herausforderungen und Kameraexperimente

00:07:50

00:07:50 Ich habe ich habe viele dinge getan ich habe auch meinungen Und ich meine erste meinung ist dass ich diese kamera perspektive nicht mehr sehen kann Seit anbeginn der zeit und ich meine wirklich anbeginn der zeit auch bevor ich twitch partner war oh hallo Hey das soll ich fang ich fang an mit anbeginn der zeit

00:08:15 Und darauf habe ich mich zum Beispiel so auf eine Zeit bezogen von 2017. Von einer Dreamhack in Leipzig. Und drei Sekunden später hat Lori vorbei. Hallo. Herzlich willkommen. Ich bin ein alter Streamer. Geek-Site hatte gerade 111 Monate Subscribes und jetzt fühle ich mich sehr alt, weil das sind ja fast 10 Jahre. Scheiße.

00:08:43 Sehr geil. Ich habe gerade angefangen. Seitdem streame ich mit so einer frontalen Kamera, die direkt so auf mich drauf zeigt. Und war ja früher so der Way to go, weil deine Webcam war ja auch oben auf deinem Monitor drauf. Aber mittlerweile, muss ich sagen, nervt mich diese Perspektive sehr. Ich habe schon rumexperimentiert, vielleicht die Kamera hier so neben den Monitor zu machen. Dann würde sie, das ist schwierig zu zeigen, also dann würde sie mich quasi so leicht von der Seite sehen. Oder...

00:09:11 Genau auf der anderen Seite das zu machen, dann würde ich mich so, aber also, man sieht das lustigerweise auch immer mehr auf Twitch. Leute, lasst uns mal diese Plattform aufmachen, auf der ich gerade eben streame. Achtung, Autoplay in 3, 2, 1. Boah, ey, hab ich langsam das Internet. So, ähm, lass uns mal hier einmal kurz ein bisschen Marktanalyse betreiben. So, äh, ja, unten seht ihr schon die Aufgaben, was ich gleich noch alles programmieren werde. Ähm, das ist eine Frontalkamera.

00:09:45 Das ist eine Frontalkamera. Er fährt Fahrrad, das zählt nicht. Er fährt auch Fahrrad, das zählt auch nicht. Frontalkamera. Frontalkamera. Frontalkamera. Frontalkamera. Ah, hier ein bisschen von der Seite. Hier war die Kerl ein bisschen von der Seite.

00:10:09 Übrigens seht ihr, wenn ihr mich auf Twitch anguckt, seht ihr, was für ein absoluter Nerd ich bin. Die Kategorien, denen ich folge, sind Overwatch, Coding, aus irgendeinem Grund Counter-Strike, da habe ich nie auf Folgen geklickt. Ach so, empfohlene Kategorien. Ich wollte gerade sagen, IRL und Schach.

00:10:26 Das ist also wenn ich auf Twitch gehe, was wirklich sehr selten ist, also ich streame ungefähr so oft wie ich selber auf Twitch bin, also nie, dann schaue ich entweder Schach-Streams an oder schaue mir Wissenschafts- und Technik an oder Software- und Creative. Gehen wir mal in die Software-Kategorie, weil ich finde da sieht man es vor allem.

00:10:47 Was für ein krasser Stau an, wie kann ich mein UI vom Stream irgendwie schöner gestalten. Also die IRL-Streamer, die haben es meiner Meinung nach am meisten drauf, also so Just Chatting. Eine angenehme Atmosphäre zu schaffen, die Kamera nicht so direkt von vorn. Ich finde es leider wirklich furchtbar. Ich muss das dringend umstellen. Mein Problem ist halt, dass der Hintergrund, also Alis Arbeitsplatz, immer noch nicht fertig ist. Und eigentlich der Schrank da hinten auch nochmal ausgetauscht werden soll.

00:11:16 Ja egal, also auf jeden Fall die Chatting Streamer haben das deutlich mehr drauf, was ja auch absolut Sinn ergibt, dass die das als allerbestes können, weil es ja mach es ja endlich fertig. Ja das Problem ist der Schrank der da hin soll, den besitze ich bereits, aber der ist zwei Stunden entfernt von hier eingelagert und ich komme nicht dazu den mal wieder auszulagern und hierher zu bringen und alles abzureißen und dann wieder neu aufzubauen, dann muss ich auch wieder...

00:11:41 Das kostet alles so viel Geld, das hin und her zu schleppen und ich habe so viele andere Sachen zu tun. Ah, du weißt ja, man... Ich höre nur Mimimi. Es ist wahr, man zieht so lange um, bis man nicht mehr umzieht. Also bis man dann woanders hinzieht. Okay, ach guck mal, hier bin ja ich. Cool, ich bin der drittgrößte deutsch- und englischsprachige Software- und Spieleentwicklungs-Streamer gerade. Der hat escalated quickly.

00:12:11 Obwohl das ist ja gar nicht nach Zuschauern sortiert. Warum ist er sonst hier ganz vorne? Egal. Also, man sieht hier, dass wir in unserer Kategorie uns wirklich noch, also bei uns ist noch Platz nach oben, sag ich mal. Dieses UI hier ist sicherlich nicht das Schönste. Also ich möchte hier gar nicht sagen, dass ich das irgendwie mehr drauf hätte, sondern das ist auch eher so, aber okay. Aber so dieses typische Facecam irgendwo ins Eck und dann Fullscreen-Code.

00:12:38 Da geht mehr. Wenn es jemand können sollte, dann wir, weil wir können uns einfach diese Sache selbst programmieren oder Vibe-Coden lassen, sind wir ehrlich. Was ich in letzter Zeit immer geiler finde, sind so, was man hier rechts sieht, also wo du wirklich so hochkant drauf bist, nicht nur so dieses typische 16 zu 9. Ich will gerade echt alles machen, was bloß nicht normal ist, so, weißt du?

00:13:00 Also bloß nicht diese langweilige Kamera hier im Eck. Ich habe sogar schon überlegt, das ist auch so eine wilde Idee, die Kamera fullscreen zu machen, aber so zu stellen, dass so voll viel Platz rum ist.

00:13:13 Und dann die Fenster auf diesem Platz zu move'n, sodass quasi die Kamera der Hintergrund ist des Videos anstatt der Vordergrund. Ja, weiß ich nicht. Dann gibt's Potenzial, wenn man weggeht. Zum Beispiel das hier ist so ein Beispiel. Guck mal kurz hier rein. Bitte keine Werbung, bitte keine Werbung. Das hier ist eher so ein 16 zu 9 Fenster jetzt hier, was man sieht.

00:13:38 21 zu 9 Fenster, also eher so Breitbild. Und unten sind die ganzen Infos angeordnet. Ich bin ja super oldschool. Ich habe hier aus meinem 16 zu 9 Frame, den ich streame quasi, habe ich 4 zu 3 rausgeschnitten. Das ist das, was ihr hier auf der Seite seht, wo eigentlich das Bild ist. Und ähm...

00:13:56 Dann bin ich halt habe ich mir quasi so den Seiten seit bar Gestohlen aber vielleicht kann man das auch umdrehen dass man quasi hier breites bild hat und dann hier unten so I don't know Einfach die kamera dauerhaft rotieren lassen wie das dvd-logo durch das bild wandern lassen Ich sag mal so es gibt easy schnittstellen für OBS wo du von externen positionen und rotationen von solchen sachen machen kannst das wäre sogar sehr sehr einfach zu entwickeln Oh no

00:14:27 Das wäre sowas, was man sich für Bits kaufen lassen kann. Ah, cool. Dankeschön für das Subscribe. Aber nicht sicher, ob ihr das hier wirklich bei jedem Hype-Crain die Kamera so blü

00:14:45 Oh Gott, ich mach jetzt gleich... Oh ne, das ist gelockt. Möchte ich das wirklich anfassen? Ist wenigstens an das andere gelockt. Ich lock mal kurz jede einzelne Szene hier drin, damit ich bloß nichts kaputt mache. Und dann versuche ich das mal kurz hier zu... Oh nein, ey. Not so sure, ob ich das hier... Okay. Also irgendwie so... So. So, oder?

00:15:33 Und dann, wenn es perfekt ins Eck geht, dann rasten alle aus. Kriege ich das jetzt wieder rückgängig gemacht oder habe ich es jetzt für immer kaputt gemacht? Ich glaube, ich habe es für immer kaputt gemacht. Scheiße. Okay, ungefähr so war ich. Ich denke, das lassen wir durchgehen, oder? Das ist so ungefähr an der Stelle, wo ich davor auch war. Okay, so. Das ist also so ein bisschen das. Wie gesagt, Klatschätting hat es irgendwie mehr drauf, aber du warst weiter links. Krass. Kommunismus jetzt, oder was?

00:16:15 Weißt du, wie es da geht? Danke für den Sub.

00:16:20 Achja, also das sind so Ideen oder? Hier so Pullscreen Cam finde ich irgendwie auch ein geiles Konzept. Alles bloß nicht so dieses ganz klassische Coding Stream, das kann ich einfach nicht mehr sehen. Also meine Coding Streams sind ja in letzter Zeit auch vor allem so Architektur- und Experiment Streams irgendwie auch geil, muss ich ehrlicherweise sagen. Achja, egal. Speaking of the Experiment, das letzte Mal haben wir das hier aufgehabt. Wo ist mein AI? Ich brauche meine AI, sonst weiß ich nicht.

Einführung in Premiere Remote und AI-Basics

00:16:48

00:16:48 Ich brauche meine Talking Points. Ich kann es auch noch ohne. Also gerade so. Weißt du schon circa, wie lange du heute Zeit hast? Ich werde maximal zwei Stunden heute streamen, weil ich habe noch andere Sachen heute vor. Ich kann es nicht mehr ohne AI. Total spannende Frage, werden wir uns gleich ein bisschen mehr widmen. Davor möchte ich euch kurz alle auf einen Stand holen. Das ist das, was wir das letzte Mal diskutiert haben. Kurzer Einstieg. Ich starte mal kurz die Premiere im Hintergrund, worum es eigentlich geht.

00:17:28 Was nehmen wir denn schönes? Irgendwas, was ich vor kurzem geschnitten habe. Nehmen wir mal das ZKM Short. Falls ihr das noch nicht gesehen habt, schaut auf Instagram, TikTok oder YouTube Shorts vorbei. Das ist nämlich wirklich mal ein geiles Kurzvideo geworden. Eins, wo ich auch sehr happy bin, dass ich das gemacht habe. Da wurde ich vom ZKM, also unserem richtig krassen Museum in Karlsruhe eingeladen.

00:17:50 um mal mir eine Ausstellung anzugucken, die inhaltlich sehr gut zu mir passt. Und da hatte ich sogar die Möglichkeit, mit den Künstlern zu reden und so. Und am Schluss haben wir irgendwie zwei Stunden lang über ein und was weiß ich was diskutiert. Das war unendlich spannend. Ich hatte genug Inhalt und genug Sachen ausgetauscht, um irgendwie, weiß ich nicht, drei Stunden Dokumentationsfilm zu machen. Deswegen habe ich ein 1 Minuten 38 Sekunden Hochkantvideo dazu gemacht. Das hier ist übrigens das Video. Und da sieht man mal, dass übrigens Shorts, ne?

00:18:18 auch manchmal voll krass viel Aufwand sein können. Guck mal die Schnittfrequenz der A-Roll hier an. Also erstmal das hier oben, das ist einfach nur generierter Text. So funktioniert das. Aber hier, guck mal die Schnittfrequenz von dem A-Roll an. Das ist einfach nur insane, wie viele Schnitte da kommen, damit das irgendwie spannend bleibt. Dann hier Overlay und Sachen und mehrere Tonspuren und was weiß ich was.

00:18:44 Das machst du echt nicht mal eben. Also da habe ich schon einen Moment dran gesessen. Aber ja, lass das mal als Beispiel nehmen und hier oben ist ja Premiere Remote. Darum geht's. Premiere Remote, seinerseits ein Tool, ist der Text komplett automatisch? Ja. Das mittlerweile, also muss ich sagen, Premiere, wird echt immer besser und besser. Also wir haben das ja schon letztes Mal gesehen, man kommt auch an diesen Text tatsächlich alles ran, aber das hier ist generiert aus dem, was ich gesprochen habe.

00:19:11 Nicht mal 10% muss ich anpassen. Vielleicht so 10 Worte oder so von 1,5 Minuten. Das ist komplett automatisch transkribiert und generiert. Und tatsächlich ein geiles Feature. Klar können das mittlerweile jede App so, das ist kein Selling Point. Aber Premiere ist echt, macht immer mehr Laune, muss ich sagen. Da kommen immer mehr Funktionen dazu, die mir das Leben erleichtern. Also ich weiß, es ist immer leicht, Adobe zu haten, aber I'm sorry. Für mich funktioniert die Software.

00:19:42 So viel besser als noch von vor zehn Jahren. Aber nicht desto trotz, wenn wir natürlich trotzdem auch meine eigenen Funktionen drin haben. Deswegen Premiere Remote. Premiere Remote, um das vielleicht noch einmal kurz zu zeigen. Das ist Jim Austin Premiere Remote. Ist ein Tool mit dieser Architektur. Du hast irgendwelche Calls, zum Beispiel vom Stream Deck. Das geht auf einen lokalen Server, der von Adobe in Premiere aus gestartet wird von mir. Und dann callt es so einen nativen Plug-in-Code. Und dieser native Plug-in-Code,

00:20:14 Die Schnittstelle namens CEP, die ist deprecated, die wird demnächst abgeschafft. Der Nachfolger ist UXP, viel moderner, viel schöner, viel angenehmer, viel mächtiger. Wir haben schon Sachen damit gebaut, das letzte Mal im letzten Stream, die wir mit CEP nicht konnten. Insbesondere Zugriff auf genau dieses Transkript, was für mich halt ein Gamechanger ist, weil damit ist Tür und Tor offen für AI-basierter Videoschnitt. Was für mich ja ein großes Thema ist. Nicht, dass ich meine Videos, also dieses Video zeigt das relativ gut.

00:20:41 Ich möchte nicht diese ganzen Overlays und sowas wegautomatisieren. Das mache ich gerne von Hand. Das ist ja der kreative Teil des Videoschnitts. Ich möchte dieses hässliche L-Roll-Geschneider. Also insbesondere, wenn ich so einen Talking-Headshot habe, wo ich so in die Kamera spreche, so wie jetzt. Das möchte ich bitte wegautomatisieren. Weil das ist einfach nur ein ewig langes Durchskippen, wie ich es etwas sage, wie ich mich verspro... wie ich mich verspro...

00:21:04 Ein ewig langes Durchskippen, bis ich endlich mal einen Satz am Stück rausgebracht habe, wie ich es mir eigentlich vorgestellt habe. Also das war übrigens gerade authentisch. Was glaubt ihr, wie meine Videos entstehen? Dass ich mich da hinsetze und am Stück das durchrede? Also ja, manchmal. Und ich wurde auch viel, viel besser in den letzten Jahren, muss man da fairerweise sagen.

00:21:28 Die Schnittfrequenz in meinen Videos ist sehr viel geringer geworden, was gut ist. Ich bin in der Lage, Dinge am Stück durchzubringen, Gedanken von A bis B auszusprechen, ohne Haspler. Aber manchmal willst du halt trotzdem den perfekten Shot haben und dann, also wenn du einmal angefangen hast, wenn du es jetzt nochmal einmal neu machen musst, kannst du es auch fünfmal neu machen und naja, dann landet man eben dort. Deine Freisprache ist nicht so toll. Findest du?

00:21:57 Ich finde meine Spreisprache ist schon überdurchschnittlich toll. Ich bin das schon überzeugt. Aber das möchte ich halt nicht selber schneiden müssen. Und deswegen brauche ich da irgendwie eine Hilfestellung. Und das geht auch mit dem Neuen. So. Wir haben dann sehr viele Gedanken uns über Architektur gemacht. Architektur ist das Ding, das der große Bruder von Algorithmus. Algorithmus ist, wenn man im Kleinen nicht erklären will, wie Software implementiert ist. Und Architektur ist, wenn man im Großen nicht erklären will, wie Software zusammengesteckt ist.

00:22:27 So habe ich das noch nie gesehen, aber das macht tatsächlich Architektur sehr viel lustiger. Wir haben uns dann sehr viel Gedanken über die Architektur gemacht und was man bei Architektur ja auch immer macht, schöne Bildchen malen.

00:22:38 Und das war das Ergebnis vom letzten Stream, weil wir hatten letztlich eigentlich zwei Möglichkeiten. Möglichkeit Nummer eins. Entwickler entwickeln Plugin-Logik und packen da in der Plugin-Entwicklungssprache, was mittlerweile TypeScript ist, die ganze Logik rein. Und die Bridge, die jetzt mittlerweile außerhalb von Adobe laufen muss, die steuert das alles an und der Caller, der ist stamm. So, das war Option A und Option B und man sieht hier schon Chosen drüber.

00:23:08 die macht es genau andersrum. Die sagt, ey, was wäre, weil wir haben nämlich so eine Types-Datei, wo letztlich jede Schnittstelle von UXP drinsteht, was wäre, wenn wir das als Single Source of Truth nehmen und daraus einfach HTTP, Web Service und MCP-Schnittstellen generieren, so die ganze Logik außerhalb von Premiere stattfindet, was natürlich viel besser skaliert. Und, ähm...

00:23:35 Ja, also, was wir im letzten Stream dachten, was viel besser skaliert. Ja, ja, außerdem wäre das halt dann möglich, dass über den MCP-Server AI das automatisch ansprechen kann.

Implementierung und technische Herausforderungen

00:23:50

00:23:50 Daraufhin habe ich Dinge getan und diese Dinge möchte ich euch nicht vorenthalten. Ich habe nämlich tatsächlich mir daraus und deswegen habe ich tatsächlich gerade im Hintergrund hier Gemini auf, mir Architekturspezifikationen generieren lassen beziehungsweise in sehr viel, sehr viel mich mit Gemini quasi unterhalten über Sprachnachrichten. Ich wollte es einfach mal ausprobieren. Ich habe Sprachnachrichten nach Sprachnachrichten reingegeben.

00:24:14 Immer weiter Änderungsvorschläge, Gedanken, also mein eigenes Architekturwissen quasi reingegeben, weil ich muss euch vielleicht ein professionelles Foto kurz malen, um zu erklären, wie Sprachmodelle funktionieren. Dafür nutze ich sogar Paint, weil das ist wichtig, dass die Message rüberkommt.

00:24:37 So, Augen ausbrennen ist explizit Teil der Anforderung. So, guck mal hier. Emoji-Picker. Scheiße. Code. Ah ja, danke. So, bisschen größer machen vielleicht. Ist ja eine große Scheiße. Aha, sehr gut, ja. Also, ein LLM funktioniert nach dem folgenden Muster. Wenn du Scheiße hast, ja.

00:25:10 Und dann gibst du diese Scheiße in das Sprachmodell rein. Dann macht das Sprachmodell daraus was total krasses und zwar mehr Scheiße. Das ist sehr, sehr stark jetzt vereinfacht. Ich mache hier sehr viel, sage ich mal, wissenschaftskommunikationsmäßige Shortcuts.

00:25:37 Aber ungefähr so ist die Funktionsweise von Sprachmodellen. Und ich lasse da jetzt mal diese krassen Sachen außen vor. Das ist ungefähr die Kurzzusammenfassung. Du bist ja auch nicht mehr in der Wissenschaft. Genau, das ist auch sehr pragmatisch. Also Scheiße rein, sehr viel mehr Scheiße zurück. Aber eine wichtige Sache fehlt und deswegen fallen da auch viele Leute rein. Eloquente Scheiße.

00:26:18 Ich weiß nicht, wie man eloquent schreibt. Schreibt man so eloquent? Eloquent? Ah ja, so schreibt man eloquent. Klar, ich bin ja auch klug. Okay. Ich sag nicht, dass... Also, ne, hier Korrelation und Kausalität. Ich sag nicht, dass das bei anderen Entitäten wie Projektmanagern oder Menschen im Allgemeinen nicht auch so ist. Aber im Sprachmodell ist es auf jeden Fall so.

00:26:51 Also habe ich sehr viele Gedanken reingegeben, sehr viel iteriert. Und dann, als ich eine fertige Architektur hatte, habe ich einfach mal gesagt, okay, weißt du was? Lass das mal eben implementieren. Und dann habe ich folgendes getan. Wo ist meine Konsole, Mann? Wo ist meine Konsole? Gibt mir eine WSL, Mann. So. Nämlich. Boah.

00:27:21 Genau, ich habe das einfach mal implementieren lassen. Und zwar wirklich komplett die gesamte Architektur und die gesamte Implementierung. Was wir hier sehen, ist fertiger Rewrite von Premiere Remote. Ich weiß nicht, wie viele Zahlen Code das sind. Das sollte man sich eigentlich mal kurz angucken. Ist hier Clock.

00:27:53 Ja, habe ich. Also erstmal Old. Also Old waren irgendwie mal, sagen wir mal großzügig, so 3000 Zeilen Code. Okay. Und jetzt bin ich mal gespannt, was...

00:28:23 Ja, da ist jetzt so viel generiert drin, aber ist egal. Also das sind nicht wirklich 6500 Zeilen. Zack viel davon ist generiert. Vielleicht können wir das irgendwie... Okay, das ist auch nicht aussagekräftig. Ja, Zack viel ist halt generiert, man. Wie messe ich das jetzt am besten? Egal, wir ignorieren mal, dass voll viel generiert ist, okay. Und was ist mein Sample Client?

00:29:01 Ja, 12.000 Zeilen generierter Code. Und der Server. Ja, nö. Das ist halt leider nicht aussagekräftig. Ich sage euch, warum das nicht aussagekräftig ist. Weil was ich nämlich eigentlich habe, also hier wieder verschiedene Level. Also ich möchte nochmal dieses eine Foto zeigen, weil das passt ganz gut zusammen. Was man hätte machen können, um diese Architektur hier umzusetzen. Also diese Menge an Schnittstellen aus dieser Typdatei rauszuziehen.

00:29:29 Man hätte einfach das in einem Sprachmodell geben können und sagen, mach mal. Was dann rausgekommen wäre, das möchte ich nochmal kurz hier hervorheben, wäre etwas in diese Richtung. Was ich stattdessen gemacht habe, ist, dass ich das Sprachmodell, habe einen Generator vibecoden lassen und dieser Generator generiert mir die ganzen Schnittstellen und deswegen ist diese Anzahl an Code eigentlich nicht repräsentativ. Weil was du eigentlich hast, ähm, ähm, ähm, ähm, ähm.

00:29:57 Muss man den richtigen... Lebt das den Plugin? Offenbar. Also das hier ist eigentlich nur ein WebSocket-Listener. Das ist alles. Also der ist einfach ein Listener und der kriegt dann Nachrichten und dann handelt der die. Und wie er sie handelt, das ist hier drin. Weil das hier ist eine von einem statischen Generator generierte...

00:30:28 Datei, die einfach nur jede einzelne Schnittstelle aus dieser Types-Datei... Wo ist denn das, ey? Server... Ah, hier ist es. Hier, das ist die Types-Datei. Das ist die Single Source of Truth. Das ist die gesamte Schnittstelle, die Premiere anbietet, okay?

00:30:50 Und Johannes Losch, danke, dass du 5 Subs verschenkt hast. Du hast Yatoite und Yuffpeng und Not Spam Alarm, Gamepad und Maxomixon getroffen. Dankeschön. Ja, also ungefähr ein Sack viel Code. Hatte gute Abend übrig.

00:31:09 Gut investiertes Guthaben. Mich investieren lohnt sich immer, weil bei mir kriegt man nichts zurück. Das ist ein gutes Investment, würde ich sagen. Ne, stimmt gar nicht. Also insbesondere auf meinem Discord habe ich vor kurzem einfach das nächste Video, was erst nächsten Sonntag rauskommt, die ersten 20 Sekunden schon vorveröffentlicht. Also wann wäre man da? Also weiß ich nicht. Lohnt sich. Also, das ist die Typendatei. Vielen Dank für die Sonntag. Das ist die eigentliche Logik. Gucken wir, wie viele tausend Zeilen das sind. 500?

00:31:39 Nochmal 500. 1000 Zeilen Code, die diese Typdatei hier ausliest und dann das hier rausgeneriert. Also einfach eine fette, riesige Receiver-Datei, die jeden einzelnen Endpunkt annimmt. Suchen wir mal irgendwie einen, den wir verstehen. Sequence, Get Caption Track Count. Wie viele Caption Tracks gibt es? Also Caption Track sind das hier. Das hier oben. Würde ich das auf diese Funktion, auf dieses Ding hier drauf loswerfen, wäre die Anzahl.

00:32:07 15, genau. Ne, 1. So. Ist dann ein Endpunkt und der gibt das Ding dann stringified raus. Andi Bridge, das muss man an der Stelle dazu sagen, wenn wir mal eine professionelle Zeichnung hier öffnen. Andi Bridge. Und das gibt es dann per MCP, Websocket oder HTTP. Und natürlich, dieser Server ist auch generiert, aber jetzt nicht von der AI, sondern auch von dem Skript hier. Denn das generiert auch die Serverlogik.

00:32:36 Und auch hier gibt es einen Ordner, Routen, und der ist 10.000 Zeilen, 12.000, 15.000 Zeilen lang. Das ist alles aus einem statischen Skript rausgeneriert, weil ein statisches Skript macht deutlich weniger Fehler als eine AI, die bei jeder einzelnen Endpunkt eventuell auf die Idee gucken könnte, dass man das ja ganz anders machen kann. Ja.

00:33:00 Also, auch das hier alles rausgeneriert. Wie gesagt, also generieren ist hier überbeladen. Also nicht gevibe-coded, sondern tatsächlich statisch generiert, aber mit einem gevibe-codeden Skript. Swagger-Dokumentation, auch alles raus. Also OpenAPI kriegst du auch geschenkt. Und das ist eigentlich nur ein Message Broker. Message Broker ist eigentlich schon zu weit. Ein Dispatcher, eine Bridge. Also ein sehr, sehr dummes Ding, was Nachrichten angibt und annimmt und an Premiere weiterschickt.

00:33:31 Und das hast du also hier auch rausgeneriert. Und dann noch ein Sample Client. Hier habe ich Qub verwendet, um aus der Swagger JSON dann wiederum einen Endpunkt zu generieren, der den ganzen Kram aufrufen kann. Und hier sind also die ganzen Clients. Das sind alles generierte, statisch generierte Implementierungen von diesen Endpunkten. Und dann kannst du halt da tatsächlich...

00:33:59 so ganz einfache Integrations-Testchen dran klatschen, wo zum Beispiel so ein Schnittendpunkt, so was wie zum Beispiel Sequence Operations, Projects, Static Objects, Get Active Project. Warum ist der Name so komisch, ist halt von der Statischen Skript so generiert. Und die Art, wie der Name aussieht, das ist wiederum gevibe-coddet aus der Architekturspezifikation, die ich davor über Sprachnachrichten mit Gemini so ausgeklügelt habe. Also...

00:34:26 Architektur, also die grundlegende Idee ist die von einem Menschen, die aus dem letzten Stream. Also das war, ist das hier gewesen, was wir uns im letzten Stream so überlegt haben. Dann Architekturdefinition und Konzept für die Implementierung mit Gemini Pro. Ich habe durch dieses wunderschöne neue Smartphone hier halt ein Jahr Gemini Pro geschenkt bekommen.

00:34:50 Okay, habe ich mir nicht ausgesucht, nutze ich aber. Weil ein geschenkte Gaul schaut man nicht ins Maul. So ist es nämlich. Und habe ich dann so ein dreiseitiges Konzeptdokument. Und das wiederum ist in Claude reingewandert. Not sure if Opus oder Sonnet. Aber das habe ich halt dann wiederum über meinen...

00:35:14 Co-Pilot-Abonnement hab implementieren lassen. So. Und da ist das hier bei rumgekommen. Das hier ist eine vollwertige Implementierung. Ah, nee, das Bild wollte ich erst gleich zeigen. Wir sind nämlich noch nicht fertig. Eine vollwertige Implementierung von dem hier. Und das ist unsere Re-Implementierung von Premiere Remote. Die tut. Also...

00:35:49 zigtausend schnittstellen in dem was natürlich auch noch mit generiert wurde auf meine anweisung hin wir haben hier docker falls da wird der kram drin geladen und läuft so so einfach gar nicht viel abhängigkeiten das allermeiste wird statisch generiert es tut das aus dieser single source of truth video track count

00:36:21 Die brauchen wir nämlich gleich, um den nächsten Schritt zu erklären. Genau, also das ist Architektur V3 und das ist die Reimplementierung von Premiere Remote.

00:36:34 Keine einzige Zeile von diesen, sagen wir mal, relevanten Codes. Und vielleicht lass es weniger als 2000 Zeilen Code sein. Der Rest ist halt, also 2000 Zeilen Code Generator Script und bisschen Boilerplate drumherum. Der Rest kann einfach neu generiert werden. Und das wird er übrigens auch. Gucken wir hier mal rein. Da gibt es Generate API, Generate Dispatches, Generate Client. Ey, das ist ja ein geiles Overlay. Wer macht das?

00:37:03 Das ist ja fancy, dass das geht. Wahrscheinlich irgendein fancy Plugin von VS Code. Das ruft einfach den Kram auf. Das ist NPM Workspace, das was hier drinnen dran steckt. Das sieht man. Minus Minus Workspace. Joa. Sind wir jetzt fertig. War das jetzt die Reimplementierung von Premiere Remote? Kann ich jetzt hier ganz einfach mit UXP heftigen Shit Vibe cutten lassen?

00:37:33 Vielleicht merkt ihr es an meinem leicht aufgesetzten, bisschen zynisch-ironischen, sarkastischen Unterton. Oder an meinen Tanzbewegungen, den Fingerbewegungen. Und der Tatsache, dass ich kurz mal Fullscreen gehe und das Ganze noch ein bisschen dramatisch zu unterlegen. Sind wir jetzt schon fertig? Was glaubt ihr? Die Antwort ist ja. Das war's. Wir sind fertig. Dankeschön fürs Zusehen.

00:38:10 Okay, ja, wir sind natürlich nicht fertig. Ich habe nämlich eine Sache euch vergessen zu zeigen. Das ist das hier.

00:38:33 Man muss wirklich sagen, also AI ist einen weiten Weg gekommen, ne? Also das hat, weiß ich nicht, das hat vielleicht zwei Stunden Arbeit gekostet, sich dieses komplette Ding so runter zu generieren. Und ich finde, das ist ein insane guter Anwendungsfall für AI. Also das ganze Gehate, die ganzen Zynismus mal beiseite. Also für Privatprojekte sowieso geil. Ich werde nie wieder in meinem Leben irgendeine Oberfläche programmieren. In HTML oder sowas. Vergiss es. Ich lass mir das alles jetzt schreiben. I don't give a fuck für so kleine Privatprojekte.

00:39:03 Ey, also, weißt du, ich habe all die Jahre in CSS gestruggelt. Endlich muss ich nicht mehr strugglen. Weg mit dem Scheiß. Und für Experimente finde ich es extrem geil. Also für Produktivsysteme mit viel menschlicher Übersicht, okay. Ohne menschliches Review, weiß ich nicht. Würde ich mich persönlich nicht trauen. Und ich muss das wissen, weil, naja, also ich, ich entwickle jetzt professionell Produktivsysteme.

00:39:31 Ich mach das jetzt beruflich. Ich hab da Verantwortung sogar. Also ich trau mich da nicht, einfach nur AI-generierten Code abzugeben. Also...

00:39:41 Verrückt, wer sich sowas trau... Also ich hab da nicht genug Eier für, I'm sorry. Aber für so Experimente? Alles klar. Let's fucking go. Einfach mal rausgenerieren. Einfach mal gucken, wie es sich anfühlt. Ey, hätte ich das alles von Hand schreiben müssen oder von Hand ausprobieren? Das hätte mich Tage gekostet. So lag ich literally, und das ist nicht so dahingesagt, ich lag auf dem Sofa. Das sieht man nicht, aber da, wo meine Hand ist, ist ungefähr das Sofa. Also paar Meter weiter halt. Und, ähm...

00:40:08 Dann lag ich da mit meinem Handy in der Hand und habe gesagt, yo Gemini, hast du den Swag heute schon aufgedreht? Und Gemini natürlich direkt, yo, hast mich beim Gunen unterbrochen.

00:40:26 Sorry, ich probiere es gar nicht erst mit Jugendsprache. Ich bin der Typ mit dem Skateboard. Ich habe ein neues Skateboard mir gekauft. Okay, andere Frage. Auf jeden Fall, ich habe das auf dem Sofa geschrieben, die Software. Dafür ist es halt schon geil. Aber eine Sache ist halt trotzdem wahr. Und das habe ich hier nochmal festgehalten.

00:40:52 Das, was da jetzt entwickelt wurde, kann ich eins zu eins so komplett wegschmeißen. Es funktioniert, aber es wird nicht funktionieren. Und zwar ist das nicht die Schuld von den paar Sprachmodellen und dem halb ausgetrockneten See, den ich zu verantworten habe, sondern meine Schuld. Denn auch wenn es funktioniert, es ist fucking painful, damit zu arbeiten. Es macht wirklich absolut keinen Spaß und ich zeige euch jetzt warum.

00:41:22 Diese Integrationstestlogik hier, das ist das, was der Mensch tatsächlich zu Gesicht bekommen würde. Das wäre das, was dann der Plug-In-Schreibe, der Mainframework nutzt, einsetzt. Jemand, der einen MCP-Server nutzt, der sieht das natürlich alles nicht. Da unterhält sich einer einfach nur ein Sprachmodell mit einem anderen Sprachmodell. Aber das ist das, was der Nutzer selbst sehen würde. Der kriegt dann hier so einen...

00:41:44 Project static object get active project. Okay, gibt es hier so eine UID rein. Sequence UID, Project UID. Okay. Und dann kriegt er irgendwas zurück. Hä? Woher? Aber woher kriegt er diese UID? Und warum muss er überhaupt eine UID bekommen? Ja, turns out. Das ist gar keine so kluge Idee, so eine Types-Datei als Single Source of Truth zu nehmen und daraus sich Schindstellen generieren zu lassen.

00:42:15 Weil, also Objektorientierung, die hängt ja so an Objekten.

00:42:22 Und die geht davon aus, dass man auf diese Objekten Funktionen aufruft. Das ist die zentrale Idee von Objektorientierung. Sonst hättest du nämlich auch einfach sagen können, du gehst weiter mit dem proceduralen Paradigma, was davor war. Weil du einfach Daten hast, so Structs und dann Funktionen, die auf diesen Structs irgendwelche Dinge machen. Aber die Structs und Funktionen, die kennen sich nicht. Das ist das erst, was durch Objektorientierung reingekommen ist. Also wenn ihr im ersten Semester Informatikstudium beigebracht bekommt, ja, ein Tisch hat die Funktion.

00:42:51 Er kann umfallen oder so, weil sich der Tutor kein besseres Beispiel einfallen lassen hat, als dass Tisch und Stuhl Objekte sind. Dann ist das Objektorientierung. Fair. Aber wenn du irgendwie nur den Tisch als Datum modellierst und dann von draußen Funktionen draufsteckst, ist das nicht mehr Objektorientierung.

00:43:09 Und dieses Verhalten, dass man auf Objekten Funktionen aufrufen kann, das ist total intuitiv. Und deswegen hat sich die Objektorientierung auch durchgesetzt. Weil du bekommst eine Sequenz irgendwoher zurück, zum Beispiel Get Active Sequence, die Funktion, die wir gerade eben hier gesehen haben. Und dann rufst du da drauf zum Beispiel Get Video Track Count auf.

00:43:33 Aber wie machst du das jetzt, wenn du eine zustandslose Schnittstelle hast? Also genau das, was wir hier gerade eben gebaut haben, weil, naja, also du kannst es dir nicht leisten, hier drin Zustand zu verwalten, dann wirst du ja dämlich. Außerdem ist eine Reststelle per Definition, naja, zustandslos. Du gibst alle Informationen, die für die Bearbeitung der Anfrage notwendig sind, in die Schnittstelle rein. Und deswegen skaliert der Scheiße überhaupt.

00:43:58 Wie machst du denn das, wenn du dann aber ein Objektmodell auf der anderen Seite hast? Du gibst immer das Objekt dazu an. Genau, ja, sehr gut. Deswegen muss hier immer eine UID mitgegeben werden. Und dann, was macht die Gegenseite?

00:44:18 Genau. Die Gegenseite hat keine Funktionalität, um diese UID in Premiere reinzugehen und zu sagen, gib mir mal. Hier ist UID, gib mir mal. Weil Premiere gibt dir diese Types-Datei und erwartet, dass du gefälligst darauf operierst. Da ist nichts mit, gib mir mal hier eine UID rein, sondern das ist alles nur oben draufgeklebt und zwar mit Panzertake. Das ist hässlich. Was musste also die Gegenseite implementieren? Eine Registry.

00:44:52 Ein Zustand behaftetes Objekt, was diese ganzen UIDs auf im Cache gehaltene Objekte mappt. Das ist nicht so schön. Und damit entwickeln ist auch nicht so wahnsinnig schön, weil ich sag mal so, es gibt ziemlich viel von diesen Objekten, die in dieser Registry dann rumgammeln und alle müssen über diese UID aufgelöst werden.

00:45:24 uns alle erzwingen dass du die uid halt mit gibt es weil noch mal rest es gibt kein es gibt keinen zustand aller zustand hängt bei dir in deinem

00:45:36 Ne, das ist die scheiße Formel. In deinem sehr, sehr weit weg Pseudoklugen, ah ne, hier, Human Caller, da hängt dein Zustand drin. Ist nicht so wahnsinnig geil. Muss alles irgendwie repliziert werden. Macht alles so überhaupt keinen Spaß. Und den Code, um das zu implementieren übrigens, der ist auch wirklich genau das Gegenteil als angenehm.

00:46:00 Das dachte ich, dass das ein Problem werden könnte, aber nicht, dass das so ein großes Problem werden könnte. Also muss ich wirklich das L nehmen und sagen, auch wenn ich mitgedacht habe und viele dieser Entscheidungen gar nicht mehr so schlecht sind.

00:46:19 Das funktioniert nicht. Ich war sogar so weit, diese Registry und alles zu akzeptieren. Was Light Technik schreibt. Also es ist jetzt kein so Major Pain. Das würde schon gehen, weil du musst ja immer überhaupt immer die UIDs. Speichert das ja nicht zwischen. Du sagst nicht hier, das ist die Sequenz, die hat immer diese UID. Das ist ja auch nur eine Referenz, die zur Laufzeit immer eindeutig sein muss. Das bedeutet, es hätte funktioniert. Ich hänge mich auch tatsächlich auch nicht an diesem Registry-Thema so auf.

Neuarchitekturierung und hybrider Ansatz

00:46:39

00:46:48 Wäre okay gewesen. Also wenn das das einzige Problem gewesen wäre, da hätte ich kein Problem mit gehabt. Das eigentliche Problem ist, dass das, was der Entwickler zu Gesicht bekommt, weil Premiere Remote ist ja ein Framework, das ist kein auslieferbarer Code, sondern das ist ein Framework, was dir überhaupt erst ermöglicht, Code zu schreiben. Wenn das, was die Person, die damit arbeitet, zu Gesicht bekommt, das hier ist, dann hat diese Person keinen Spaß mehr. Klar soweit? Also, back to the drawing board.

00:47:25 Das war dann meine Ausgangssituation. Und dann habe ich ein bisschen abandoned. Dann habe ich ein bisschen weiter überlegt. Was ist denn jetzt die eigentliche Lösung? Weil ich will ja auch immer noch ein bisschen AI hier rein haben. Nach wie vor. Also wir haben auf jeden Fall Premiere. Da landen die Calls am Schluss. Aber AI sagt dir sicher, was Option C ist. Im Extern habe ich das nicht mal versucht. Ich habe einfach selber gedacht.

00:48:09 Vielleicht kennt ihr das Meme. Hier, den hier habe ich gemacht. Ich habe aber mein Gehirn eingesetzt. Was wäre das folgende? Es gibt Plugin von handdefinierte Standardschnittstellen und es gibt Plugin.

00:48:50 Custom Logik direkt in UXP definiert. Weil so macht es nämlich Spaß, das zu schreiben. Ist voll geil, wenn man direkt am Premiere Objektmodell dran ist und super prägnant schönen Code schreiben kann. Das hier.

00:49:13 läuft in ein generator uiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiuiui

00:49:38 Also hier sind halt die Schnittstelle davon und eigentlich ist der Generator ja außerhalb. So degeneriert das halt. Wir haben trotzdem noch den Server hier dran. Und dann haben wir hier das hier. Also was ist, wenn du gar nicht sagst, die eine oder die andere Welt, sondern also einfach beides. Darf ich mal kurz Pfeile ziehen?

00:50:12 Jo, das ist genau der Pfeil, den ich ziehen wollte. Gibt es nicht eine Funktion, dass wenn ich den angeklickt habe, dass ab sofort meine Pfeile alle so sind? Offenbar nein. Cool. So. Also Generator. Muss ich doppelklicken, dass das lockt? Kommt doch mal. Wenn man Miro gewöhnt ist, ist Excalibur auf einmal irgendwie mega umständlich. So, I'm sorry. So.

00:50:58 Wir haben hier raus gelernt und meine alte Implementierung von Premiere Remote, die war ja gar nicht so anders. Die hat das nur alles zur Laufzeit gemacht. Also früher war Premiere Remote ja so.

00:51:09 Das hier drin lebt ein Laufzeitmapper, der nimmt Strings an und das ist noch nicht mal irgendwie dahin gesagt, wenn wir hier ins Streamback reingehen, in das hier und dann auch meine Cutting, so, zum Beispiel der hier, das ist ein String. Der String heißt Warp Stabilizer. Diesen String, den schicke ich zu meinem Dispatcher, der ja innerhalb von Premiere hier läuft, das wird dann irgendwann außerhalb von Premiere laufen, aber ja. Und der nimmt das an und

00:51:40 mappt dann diesen String auf Funktionsaufruf, der dann mittels E-Ball-Skript innerhalb von Premiere aufgerufen wird. Also das ist auch das, was wir hier sehen. Hier kommt der String Warp Stabilizer rein, der wird gemappt und dann auf die Custom-Funktionalität ausgeführt. Den Teil, den würde ich gerne in Bildlogik umfassen, weil, wenn wir nämlich mal ganz genau hier reingucken, CD-UXP Premiere Pro, sieht man es hier schon.

00:52:15 Ich glaube so, oder? Genau, hier, das hier ist der Punkt. Weil es muss ja sowieso aus dem TypeScript-Code am Schluss... Was ist falsch bei dir, so ein Kopfstein? Strings bekommt man in Japan sogar aus dem Automaten, ja sogar getragene. Bin der, not done that, aber bin der. In diesem berühmten sechsstöckigen Gebäude in Akihabara.

00:52:44 Untergeschoss rechts übrigens. Das werde ich niemals vergessen, Alter. Das war einfach zu traumatisieren. Hier muss sowieso was draus gerendert werden. Das heißt, es tut gar nicht weh, in diesem Build-Step, der sowieso ausgeführt werden muss, deine Custom-Generator-Logik zu injecten. Ungefähr lustigerweise so, wie das hier auch schon gemacht wird.

00:53:09 Es ist gar nicht so anders der Ansatz. Also einfach nur eine Stufe weiter gedacht.

00:53:16 Da wird dann dynamisch der Code die Dispatch-Logik generiert, aber halt nicht von jeder einzelnen Schnittstelle mit irgendeiner hässlichen Registry, sondern basierend auf dem, was der Nutzer selbst festgelegt hat, plus ein paar ausgewählte Standardschnittstellen, sodass man da auch eine AI drauf loslassen kann. Zum Beispiel sowas wie ein umfassender Befehl, der dir, wenn wir jetzt nochmal in Premiere reingucken, zum Beispiel alle Spuren, alle Elemente...

00:53:44 gibt mit Namen, Start, Stopp oder sowas. Das wäre jetzt hier sicherlich ein JSON-Anbord mit, ich weiß nicht, wie viele Elemente, zeigt dir das irgendwo, wie viele du ausgewählt hast? 10 Elemente ausgewählt. 228 Elemente haben wir hier unten links stets. Das wären jetzt 228 Elemente in dieser Anbord drin, aber sind wir ehrlich, das geht in Instant geht es. Und dann kann auch ein Sprachmodell vielleicht ganz einfache Sachen drauf machen, weil solche Metainformationen kann man ja einfach rausgeben. So, diese Menge aus diesen beiden Sachen.

00:54:16 Und das sind meine Samples, die liefere ich dann einfach mit, die zufälligerweise genau die Sachen sind, die ich wiederum auf meinem Stream Deck verwende. Das fließt alles in einen Generator rein. Und dieser Generator definiert die Schnittstelle. Und auch gleichzeitig, und jetzt kommen wir nämlich zum spannenden Teil, muss ich nämlich kurz mal hier meinen Gemini aufmachen. Damit wir den Code sehen, den ich hier mal rausgeballert habe.

00:54:54 ist es denn ich finde es gerade selber nicht hier der geht quasi über alle teils die dateien raus und generiert das openl pi dokument daraus das heißt da kommt am schluss eine rest schnittstellen beschreibung raus die genau diese funktion die wir hier gerade eben gesehen haben einfach nur maps

00:55:23 Und das ist ziemlich OpenAI-Dokument. OpenAPI-Dokument. Und das ist meiner Meinung nach ziemlich elegant, weil das nämlich dafür sorgt, dass wir nichts mehr dynamisch zur Laufzeit irgendwie auslesen müssen, sondern dass in dem Moment, wo das Plugin ausgeführt wird, bereits alle Mappings da sind. Inklusive auch Rückgabetypen. Also ich möchte eigentlich zum Beispiel auch mit dem neuen Stream Deck, falls ihr das noch nicht gesehen habt,

00:55:53 Ich wette, es kommt gleich als allererstes, oder? Ja, dieser riesen Oschi, da möchte ich gerne in Zukunft mein Color Grading mitmachen und solche Späße. Das heißt, ich brauche auch Antwortwerte, die ich hier anzeigen lassen kann und sowas. All das kommt sauber gekapselt in eine Open API JSON, die man zum Beispiel auch über Swagger UI direkt anzeigen kann.

00:56:15 Und dieser Buildstep, by the way, ist nicht mit AI. Der ist statisch mit TS Morph. Deswegen seht ihr das nämlich da unten. Also eigentlich können wir mal das hier abhaken. Zack, TS Morph. Können wir mal... Es gibt doch hier so einen Online Viewer. Das ist der hier. Ah, okay, also der zeigt es eigentlich ganz gut. TSS Viewer. Haben wir da irgendwie gerade ein bisschen Beispielcode? Brauchen wir da kurz ein bisschen chasen.

00:57:00 Komm schon. Irgendwas wird doch hier übertragen worden sein. Was du bist denn? Jason. Geil, danke Melan. Ah, bisschen Jason. Was auch immer das hier ist. Perfekt. Nicht hinterfragen, sondern einfach reinpasten. So, hier eine ganze Menge Jason. Und das hier ist der Ast. Ast, Abstract Syntax Tree. Die Möglichkeit, quasi über Code drüber zu gehen. Euer Compiler macht nichts anderes.

00:57:36 Und das ist das, was ich von TS Morph zurückbekomme. Und so kann ich dann so coole Sachen machen wie sehr einfachen snippetartigen Code schreiben und der wird dann einfach ausgelesen und in diese OpenAPI Dokumentation gegeben. Und das lustigerweise ist nicht viel anders, wie das, was ich davor mit Premiere Remote schon gemacht habe. Nur, dass das alles zur Laufzeit passiert ist.

TS Morph und die Lösung der Dokumentationsprobleme

00:58:05

00:58:05 Und ich finde das hässlich zur Laufzeit, wenn man das in Bildlogie verpacken kann. Weil statisch ist immer besser. Gibt immer ein bisschen mehr Sicherheit.

00:58:15 Man hat die Möglichkeit, das Zeug im Zweifel auch mal anzugucken, die Artefakte, die da rausspringen und so weiter. Das heißt, im Bildschritt, wenn aus dem TypeScript JavaScript wird, was dann in Premiere rausgeführt wird, wird auch die OpenAPI-Dokumentation extrahiert und ist dann wiederum die Grundlage für die Schnittstelle hier. Und da dran klebe ich dann den eigentlichen HTTP, WebCircuit und MCP-Server, weil die Dokumentation, die man einfach so über den Code schreiben kann,

00:58:44 Auch dafür gebe ich euch kurz ein Beispiel, gib mir eine Sekunde. Diesen gigantischen Haufen hier drin. So sieht das dann aus.

00:59:02 Da ist dann einfach eine Funktion, das ist menschengeschriebener Code. Das ist das, was der Entwickler hinschreibt, also der Entwickler hier drüben. Der schreibt einfach nur solchen Code. Und das hier ist die Dokumentation, die wiederum in das OpenAPI-Dokument reinfließt und die auch vom MCP-Server gelesen wird. Denn es gibt zum Glück total einfache Tools, die so OpenAPI, weil das halt so der Standard ist.

00:59:30 Swag Adjacens einliest und daraus auch einen MCP-Server bereitstellt. Das heißt, da muss ich rein gar nichts mehr selber implementieren. Und der HTTP-Server ist ja eh geschenkt. Das ist einfach mit Express, nimmt sich das Ding, bietet das an. Und der Internet-Dispatcher, der das dann an WebCircuit weitergeht, ist wiederum im selben Generatorschritt geschrieben, in dem auch meine anderen Schnittstellen hier definiert werden.

01:00:02 Und dann kann der Entwickler oder auch die AI diese Menge an Schnittstellen, die hier drüben sind, einfach verwenden.

Abschluss und Ausblick

01:00:10

01:00:10 Und das ist unterm Strich gar nicht so anders von meiner ersten Architektur, also von meiner zweiten Architektur, die wir tatsächlich mal dann umgesetzt haben. Oder die ich AI habe umsetzen lassen, um eben all diese Sachen zu lernen. Und ist eine Lösung, die es schafft, um diese zwei Probleme rumzuschiffen. Das ist geil zu schreiben, der macht Spaß. Und ich habe halt auch ganz klaren Zustand, weil ich auf Objekten...

01:00:37 arbeiten kann, die ich mir halt intern in dem Moment hole. Ich kann ja auch Hilfsfunktionen schreiben und so weiter. Aber in dem Moment würde ich anfangen, die zu parametrieren. Das ist übrigens auch vernünftig und nicht mit diesem unglaublich anwendigen, also furchtbaren JS-Stock Swagger-Json-Dinger da, was Premiere Remote nutzt. Also das ist, ne, also auch da, man darf ja dazu lernen. Wenn ich hier in den Host reingehe und in SRC und in die Index-TSX, so musste man das früher schreiben.

01:01:07 So hat man die Funktion früher geschrieben.

01:01:10 Das ist quasi so eine, was ist das? Jammelartige Repräsentation von der Swagger Jason. Das ist also, boah ey, das ist Krebs. Das habe ich immer gehasst. Und das ist immer so ein Ding, ne? Also auch bei 42 Donut Panic, danke für den Sub, ist das so ein Ding. Wenn es keinen Spaß macht, macht man es nicht. Ich habe mich ertappt, wie ich weniger öffentliche Schnittstellen in Premiere und Mord geschrieben habe, weil es so ein Pain war, diesen Müll zu schreiben.

01:01:39 Und ja, AI kann degenerieren, aber trotzdem, wenn du das hier schreiben musst, warum schreibst du nicht das hier? Das ist echtes JS-Doc. Und daraus werden die Sachen extrahiert über TS-Morph. Sehr viel geiler, meiner Meinung nach. Weil man kommt ja an die Sachen dran. So, genau. Und so haben wir also dann, das ist jetzt quasi die nächste Iteration davon. Problem mit dem einfach schreibbaren Code ist gelöst. Und auch die Abbildungs-Abbildungsprobleme ist gelöst.

Neue Architektur von Premiere Remote

01:02:10

01:02:10 Und das hier ist die neue Architektur von Premiere Remote. Das habe ich eine Stunde lang erklärt. Ist der Wahnsinn. Ich meine, am Schluss ist dieses Bild hier wahr. Aber, und da muss ich jetzt an der Stelle auch wirklich meine Lanze brechen, hätte ich das alles selber erfolgen. Dann hätte ich da Ewigkeiten gebraucht. Und ich meine...

01:02:43 Premiere Remote ist ja auch schon eine, also das ist ja von 2018, also das ist auch schon eine gewisse Iteration durchgelaufen. Ich weiß, dass früher unsere Sachen bei weitem nicht so advanced waren. Premiere Remote hat ja jetzt auch schon Release Nummer, das müsste ich mal nachgucken. Ich habe dem Ding irgendwann keine Versionsnummern mehr gegeben. Version 2.2.0 ist das jetzt, weil wir es nämlich schon einmal komplett neu geschrieben haben.

01:03:11 Ja, und also ich finde es total geil, die neue Architektur. Ich habe wirklich Bock, da neue Schnittstellen mitzubauen. Und mit dem neuen Stream Deck, das muss ich ja mal sagen, das pusht mich gerade schon ganz hart. Also, weil ich einfach so Bock habe. Also, das ist das hier, ist das Gerät, auf das ich seit... Du, ich weiß gar nicht, wie lange ich da schon drauf warte. Wirklich sehr, sehr lange warte ich auf dieses Gerät. Das hat endlich mal genug Tasten und Regler. Was soll ich denn sagen? Das fühlt sich an wie so ein richtig krasses, großes Mischpult.

Integration des Stream Deck Plus

01:03:55

01:03:55 Also seit dem Release vom Stream Deck Plus eigentlich will ich das da haben. Jetzt ist es endlich da und das motiviert mich auch nochmal zusätzlich, dass ich da so eine richtig coole Indikation rausschreibe. Dadurch, dass das statisch ist, kannst du auch Endpunkte anbieten. Wurde zum Beispiel, wir haben ja aktuell schon ein Premiere Remote Plugin. Also zack. Cutting, zack. Das hier ist ja Premiere Remote. Das mappt auf, also über Websocket, auf den Websocket Server.

01:04:24 der Innenpremiere selbst läuft. Und by the way, das funktioniert bis heute. Ich mache jetzt einfach mal das Ding hier kaputt, damit ihr das seht. Also, ich drehe jetzt am Rad. Das dauert einen kurzen Moment, bis ich eingekriegt habe. Seht ihr das? Das hier, hört ihr das? Das bin ich, der gerade an diesem Rad hier dreht und damit das Ding hier bewegt. Es geht wirklich so einfach. Und ich sage mal so,

01:04:56 Mehr ist besser. Da freue ich mich einfach drauf, das Ding hier liegen zu haben und jedes Rad fünfmal zu belegen. Und dann werde ich tatsächlich auch anfangen, dadurch, dass ich an die neue Schnittstelle all meine Learnings aus den letzten acht Jahren reinballern kann. Dass ich auch Feedback-Kanäle vernünftig umsetzen kann. Dass dann das Plugin wiederum abfragt, wie ist denn jetzt gerade die Farbtemperatur usw. Und dann haben wir sie endlich.

AI-Integration und MCP-Server

01:05:23

01:05:23 Die native Integration in Premiere mit einem komplett neuen Framework, was UXP nutzt, was AI-ready ist. Denn, und jetzt kommt der letzte Aspekt von diesem ganzen Kram, warum haben wir überhaupt diesen ganzen Schwachsinn gemacht mit dem MCP-Server? Weil ich ja wollte, dass das Zeug irgendwann auch von der AI gesteuert werden kann.

01:05:44 Option B hat die naive Annahme, dass die Schnittstelle jetzt schon ausdefiniert und gut genug ist, dass man einfach wirklich den MCP-Server daraus generieren kann. Und kann man auch, und ich fände es auch wirklich mal ganz spannend, so einen Agent-Watt drauf loszulassen, mal gucken, was der so schneidet, I guess. Aber ein bisschen ist mir auch mal eine Zeit zu schade. Das ist ziemlich so eine Scheiße. Also, hm, ja.

01:06:08 Sollen gerne andere Leute NCP-Server einsetzen. Ich biete den nur an. Was ich viel spannender finde, ist, wenn die AI anfängt, dann nicht hier so pseudo-klug das hier nur zu nutzen. Also das haben wir ja immer noch, AI pseudo-klug, sondern hier fehlt noch was. Ich werde einfach einen Skill bereitstellen, weil, falls ihr es noch nicht wussten, Skills.

01:06:37 Also ich, die, wirklich, es fällt mir immer wieder so schwer, diese ganze AI-Nummer nicht zu verachten, aber Skills sind Markdown-Dateien, falls ihr das noch nicht wusstet, mit Beschreibungen drin, wie sich ein Agent verhalten soll. Und ein Agent übrigens ist auch einfach nur ein Sprachmodell mit ein bisschen mehr lokalen Berechtigungen. Es ist, es ist wirklich, die Wahrheit ist hart. Also man muss wirklich sagen, ne? Sprachmodelle!

01:07:01 Ein Prozent davon ist insane krasse Wissenschaft. Die Wissenschaft um Embedding und drumherum, also wie das gemacht ist, das Sprachmodell überhaupt, das ist, das blows your mind. Da kann ich als promovierter Informatiker in diese Paper reingucken und verstehe.

01:07:17 Genauso wenig, wie wenn ich im ersten Semester mir Matheübungsblätter angeguckt habe. Zero. Ich kann dem nicht folgen. Es ist insane, wie heftige Wissenschaft, wie mathematisch das ist. Hands down, das ist heftig.

01:07:36 Und die anderen 99% sind Leute, die erkannt haben, dass wenn man da Text reinkommt, dass da der Text zurückkommt. Und, und jetzt kommt das wichtigste Bild des Tages, dass wenn man da Scheiße reinsteckt, dass da viel Scheiße zurückkommt. Das heißt, man nimmt einfach nur Techniken, um diese Scheiße zu formen, in schöne Formen, die man da reingeben kann. Was alles Text ist, weil das Ding halt Text nutzt.

01:08:05 Und dann gibt man ihm fancy Namen wie Agenten, Skills, Memory. Und dann gibt man ihm ein bisschen mehr Systemberechtigung und nennt das Ding Open Claw und alle scheißen sich ein, weil es so krass ist. Leute, es ist eine krasse Wissenschaft, dieses Sprachmodell. Und du gibst da Text rein und du bekommst Text zurück. Und dass sowas wie ChatGBT funktioniert, ist einfach nur, weil du den Text, den du gerade eben schon geschrieben hast, immer und immer wieder da reingibst und dann ein neues Wort und mehr passiert da nicht.

01:08:34 Aber ja, ich kann dann einen coolen Skill-Coden prompten. Ich werde das nicht von Hand schreiben, ich werde das natürlich generieren. Der dafür sorgt, dass aber ein Sprachmodell auch diese Plagents hier schreiben kann. Und dann stelle ich mir das tatsächlich sogar auch für den AI-Entwickler. Entwickler?

01:08:55 Ich streame das aber nur noch. Ein einziger Hate gegen State of the Art, sind wir ehrlich. Aber ja, also dann ist das auch für den ganz geil, weil der kann dann sagen, hey, ich hätte gerne folgende Funktionalität. Ich würde gerne aus meinem Transkript gerne dafür sorgen, dass ich bei jedem fünften Bild, bei jedem fünften Wort auf mein Gesicht gezogen würde, weil ansonsten meine Zuschauerschaft...

01:09:15 die von Audio-Serve oder wie das Subway-Server und Minecraft-Jub-Run abgelenkt ist, weil die ansonsten nicht mehr aufpassen. Also bei jedem fünften Wort bitte einmal auf mein Gesicht. Und dann kann bisher mit Option B hätte die AI dann erstmal irgendwie 1000 MCP-Schnittstellen. Und sind wir ehrlich, es sind wirklich nicht wenige. Also das Ding hier, kriegen wir das easy raus? Ja, muss ja eigentlich. Wir können einfach in die Wahrheit reingehen.

01:09:46 Wo ist meine, wo ist meine, wo ist der, der Schieß? Wo ist meine Endpunktdefinition? SRC, Server, blind oder so? Das ist doch ein Generat. Generated. Ach, hier ist die Swagger Chasen. So, was ist, nach was muss ich hier suchen, damit es eindeutig ist, wie viele Endpunkte es gibt? Hat jedes Ding so eine Operation ID? Ja. Oder? Ja, okay. Also ich kann einfach gucken, wie oft das, also 458 Endpunkte.

01:10:28 Gibt es? Ha! Wild. 458 Endpunkte. Erstmal, das frisst eine Menge an Tokens. Don't get me started. Und das ist so geil. Also man muss auch wirklich... Komme ich gleich.

01:10:46 Das frisst unendlich viel Tokens, das überhaupt zu parsen und dann da die richtige Entscheidung zu treffen, dann Feedback zu kommen und 20 mal in die falsche Richtung zu laufen. Das ist sogar für eine pseudo kluge AI einfach nur eine Verschwendung von Ressourcen. Wie klüger ist es, dieser AI die Types-Datei zu geben? Ein paar Beispiel-Plugins, die hier definiert sind. Ach, das muss übrigens hier hin. Sehe ich gerade. Das spricht das hier an.

01:11:13 Und dann zu sagen, ey, weißt du was, schreib mir mal eben kurz zwei Plugin-Funktionen. Premiere Remote kümmert sich um den Rest, dass die verfügbar sind. Und dann sind die über den MCP-Server, die ja dieselbe Agent auch ansprechen kann, direkt verfügbar und er kann sie steuern. Und so ist es dann sehr, sehr einfach möglich, mit so viel weniger Token eigene Funktionen Täter reinzubekommen, um sie direkt zu callen. Die AI nutzt das Framework, was ich hier aufgezeichnet habe, um ressourcensparend...

Effiziente Nutzung von AI-Tools

01:11:43

01:11:43 die Funktionalität an die eigenen Bedürfnisse anzupassen, anstatt aus 500 Endpunkten den richtigen rauszubekommen und dann auf die Schnauze zu fliegen. Also sogar, wenn du den Entwickler, der sowas schreiben möchte, außen vor lässt, ist das hier der bessere Weg. Und wie wir jetzt in den letzten Wochen gelernt haben, und wirklich, also gerade ist die allerspannendste Zeit für mich, seitdem ChatGBT rauskam, wie wir in den letzten Wochen gelernt haben, und das ist eine heftige Erkenntnis, Token.

01:12:15 sind gar nicht umsonst. Das was diese ganzen Abos einem weismachen möchte, dass man unendlich viel nutzen kann bis zu so einer gewissen sehr großartigen Grenze, turns out, das ist gar nicht wirtschaftlich. Und alle nur so surprised Pikachu-Face. Ich weiß, harter Tobak. Und jetzt wird's nämlich spannend.

01:12:54 Was wird passieren, wenn man fehlende Kompetenz nicht mehr durch mehr Token ausgleichen kann?

01:13:05 wird dann vielleicht sich irgendwann mal ein vernünftiger Einsatz von AI-Tools einstellen. Das wäre ja geil, weil ich fände das nämlich persönlich klasse, dass ich hier die ganze Zeit so zynisch unterwegs bin. Das ist keinesfalls gegen die Fortschritte der Technik. Ich finde das alles total geil. Ich muss ehrlich sagen, ich habe mittlerweile auch gerne ein, zwei Agenten nebenbei laufen, die Dinge tun. Das finde ich toll.

01:13:27 Die unterstützen mich, glaube ich, mehr als sie mich bremsen. Und wenn ich das Gefühl habe, dass ich gebremst werde, mache ich sofort alles aus und mache es auch die herkömmliche Art und Weise. Und das gibt es auch voll oft. Also ich schreibe ja die meisten Zeit zum Beispiel professionell Rust. Und wenn ich da mal keinen Bock habe auf Autovervollständigung, ich habe mir das aufs Stream Deck gelegt. Das ist eine Taste und dann schreibe ich wieder so, wie man es 2020 noch gemacht hat. Also deswegen finde ich schon nicht schlecht. Aber...

01:13:58 Es war alles ein bisschen zu einfach. So jetzt merkt man so langsam, okay, man kann nicht unendlich viele Token auf ein Problem werfen. Sondern man muss sich da voraus ein bisschen Gedanken machen. Und auf einmal entstehen solche Sachen wie zum Beispiel RTK. Das ist der Rust-Token-Killer. Heißt das, glaube ich, oder? Steht das irgendwo?

01:14:37 Ich glaube, es heißt Rust the Token Killer. Was ein in Rust, klar, weil Rust ist toll, geschriebener Proxy ist, der ganz viele von den Befehlen, die halt Sprachmodelle brauchen, um sich umschauen zu können, vereinfacht, sodass sie einfach nicht so viel Token kosten. Und ich habe das ausprobiert und das ist total geil. Zum Beispiel RTK Git Status ist besser als das normale Git Status, weil sind wir ehrlich, Git Status? Also, I'm very sorry, aber Git Status.

01:15:08 Ist einfach nur der verboseste Juan auf dem Planeten, ey. Also, weißt du, ich will wissen, ich bin auf Main. Main ist up to date with Origin Main. Das kann man mit einem einfachen Symbol übrigens darstellen. Und dann will ich diese drei Pfade hier wissen. Das hier vielleicht. Und der ganze Gelaber hier interessiert mich wirklich gar nicht. Irgendwann schreibe ich meinen eigenen Skitch-Status, ey. Habe ich RTK installiert? Ne, habe ich leider nicht. Schade, auf diesem BSL nicht.

Der Übergang zu überlegener Effizienz

01:15:40

01:15:40 Also es ist besser. Woran merkst du ein Rust-Programm? Ich finde es wirklich, also ich finde alles, diese ganzen Memes und Rust, ich finde es so insane, witzig. Also Rust ist das Apple der Programmiersprachen. Woran entkennst du ein Apple-Nutzer? Er sagt es dir. Woran entkennst du ein Rust-Programm? Er sagt es dir. I'm so sorry.

01:15:58 Der Rust-Type ist bei mir halt leider auch real Rust hat sich in der kürzesten Zeit, jetzt innerhalb von einem dreiviertel Jahr wo ich Rust schreibe, zu einer meiner absoluten Lieblingssprachen entwickelt. Git-Status-Short. Uuh! Nicht schlecht! Reicht mir nicht ganz aus, aber nicht schlecht! Fun-Fact, Git-Status-Long gibt es auch, aber das ist der Default-Wert, deswegen kann man es weglassen.

01:16:40 Aber so ungefähr ist das, was dein RTK ausspucken würde. Gibt es auch noch Skate minus Branch, echt? Also das hier. Oh, den Boy. Hä? Das ist ja mal richtig gut. Das wusste ich nicht. Short und Long, die Diskussion kannte ich schon, aber minus Branch kenne ich nicht. Uh, hä? Das ist ja exakt das, was ich will. Mann, Gitt. Ich weiß schon, was du meinst.

01:17:20 Das ist ja mal mega geil. Das ist wirklich krass praktisch. Zeige ich da irgendwas, was ich nicht... Also ich meine, ich habe S. S ist bei mir auf Status gemappt, aber ich glaube, ich werde das einfach mal ummappen auf das hier. Ich meine, ich nutze hier Starship als Prompt und da... Ich habe keine Nerdfot installiert. Da sehe ich ja auch schon die relevanten Informationen dran.

01:17:54 Starship übrigens ist in Rust geschrieben. Deswegen ist es ja auch schnell.

01:18:02 Das ist geil. Okay, cool. So viel dazu. Also ich finde, jetzt gerade macht mir AI so viel Spaß wie noch nie zuvor. Aber nicht, weil halt gerade alles immer mächtiger und besser und heftiger wird. Sondern weil es mehr down to earth wird und man merkt, oh Dinge sind gar nicht kostenlos. Oh, wenn ich Open Cloud Zugriff auf alle meine Sachen gebe, dann passieren schlimme Dinge. Das ist so...

01:18:28 Diese ganze AI-Bubble und AI-Community erinnert mich so arg an die Bitcoin-Community, als mir jeder erzählen wollte, dass wir in der Zukunft alles nur noch auf Blockchains speichern werden. Und was? Das kostet unglaublich viele Ressourcen? Nee. Guck mal, Bitcoin-Price goes up. Alle Argumente wurden auf den Tisch gelegt. I don't know. Damals haben sie uns die Grafikkarten geklaut. Jetzt klauen sie uns den Rahmen. Es ist ähnlich. Mit dem Unterschied.

01:18:59 dass Blockchains halt wirklich fast keine Anwendungsfälle haben. Nicht keine, aber deutlich weniger als Sprachmodelle und generative AI im allgemeinen. Denn es ist ein mächtiges Werkzeug, aber halt bissel, bissel überhypt.

01:19:15 Deswegen finde ich das super spannend, wo sich das gerade hin entwickelt und finde es persönlich auch geil. Ich finde das toll, dass ich diese Sachen hier einfach mal ausprobieren lassen konnte. Und was auch die tatsächlichen NFTs, ey, don't get me started, ey. Wollte ich immer unglaublich viele Ressourcen dafür verbrennen, dass irgendwie ein statisches String irgendwo reingespeichert wird, wo er nicht mehr rauszubekommen ist. Und dieser statische String ist dann eine URL.

01:19:41 irgendein webspace wollen das was da steht einfach wieder löschen kann man weiß wo sind wir eigentlich in zehn jahren frage ich mich wenn ich jetzt schon so zynisch unterwegs bin über hypes in der informatik du

01:20:06 Wo geht das noch hin? I'm so sorry. Ich krieg mich einfach nicht gecatcht. Ich find das toll, die Werkzeuge einzusetzen, aber ich find's nicht toll, sie zu überhalten. I'm so sorry. Nichtsdestotrotz, cool, dass ich das ausprobieren konnte. Noch cooler, dass ich das hier umsetzen kann. Nicht komplett von Hand. Ich möchte ehrlich sein, ich werd das nicht alles von Hand implementieren.

01:20:33 Das wird ein bisschen AI generiert. Ich werde das mit Spektriven-Development machen. Das habe ich vor kurzem gelernt. Finde ich ganz cool. Und ja, dann gucken wir doch einfach mal, wie weit ich damit komme. Das ist auf jeden Fall das Architekturdokument und ich bin der Meinung, dass das so funktionieren kann. Coolio!

Experimente mit der Streaming-Oberfläche

01:20:59

01:20:59 Jetzt habe ich irgendwie über eine Stunde hier gebabbelt und wir sind nicht mal ins Implementieren gekommen. Das finde ich aber eigentlich auch gar nicht schlimm. Weil nochmal, also mir jetzt einfach nur beim Korn zu kauen, ja genau, zu gucken, finde ich jetzt gar nicht so ästhetisch, muss ich ehrlich sagen. Da sehe ich nicht so wahnsinnig viel drin. Ich würde lieber mal noch schnell hier ein Experiment starten mit so ein paar Fenstern, wobei das kann ich auch oft machen. Nö du, oh ist im Stream oder ist lustiger im Stream. Und ja, aber das ist quasi die ganze Story.

01:21:32 Und ich kann mir total gut vorstellen, dass das funktioniert. Also meine Premiere Remote ist long and standing und ich kann so viel coolere Sachen machen. Weißt du, ich kann jetzt Sachen machen, weißt du, dadurch, dass ich jetzt einen Server zwischendrin habe, das fehlt, also das habe ich noch gar nicht erzählt, hier läuft halt trotzdem ein Docker-Container, der das hier in einem eigenen Container laufen hat und das dann weitergibt. Und das heißt, dass ich...

01:22:00 einfach so die gesamte connection so intercepten kann. Das ist ja ein man in der Mitte. Das ist ja nichts anderes. Nichts davon ist verschlüsselt. Aber ich kann dann so coole Sachen machen, wie irgendwie Kommunikation aufbauen, Sachen durchbrüht. Es geht so schnell, es geht alles. Boah, das ist so geil. Ich bin schon Fan. Ich bin schon Fan. Das wird gut werden. Und das Coole ist, dass die Magie jetzt eigentlich hier stattfindet, aber hier implementiert ist.

Zukünftige Pläne und Roadmap

01:22:30

01:22:30 Ich glaube, das wird. Ich habe großen Glauben daran. Mit AI-Unterstützung, damit ich so Sachen wie solche UIs hier nicht selber machen muss. Weißt du, theoretisch kann dieser Server auch einen Endpunkt anbieten, wo man sich irgendwie einen Log anschauen kann. Oder ein Histogramm der letzten Aufrufe oder sowas.

01:22:51 Und das geht alles, weil dieser Server separat deployed ist und nicht innerhalb von Premiere. Ich muss wirklich nochmal sagen, UXP ist so ein gigantischer Schritt nach vorne für Premiere. Richtig Bock, ey. Richtig Bock. Jetzt muss ich nur noch irgendwie die Zeit dazu finden, das umzusetzen. Das ist natürlich wie immer das Schwierige. So, jetzt probieren wir noch eine Sache. Und zwar...

01:23:22 Ich will mal kurz meine Idee hier mit euch testen. Also nehmen wir mal an, die Kamera filmt hier so rein. Und die ist noch ein bisschen weiter rausgezumt, dass ich nicht so viel Platz einnehme. So, und das Overlay ist das hier, ist nicht da. Und das hier ist nicht da. Jetzt seht ihr ja, ah, das ist nicht das Arbeitsplatz. Und jetzt machen wir aber dafür hier Plus Fensteraufnahme. Zack.

01:23:55 Nehmen wir mal hier Adobe Premiere zum Beispiel. Zack. So, und jetzt nehmen wir mal an, das ist hier irgendwie so drin. So. Also da müsste jetzt eigentlich noch so, weiß ich nicht, gibt's hier Filter? Fettfilter? Schärfung? Puh, ist eigentlich nicht das, was ich will. Ich wollte eigentlich so ein Blur hinzufügen oder sowas.

01:24:33 Naja, gibt's garantiert über irgendeinem Lagin oder sowas. Aber nehmen wir mal an, das wäre jetzt irgendwie so der... Versteht ihr, was ich meine? Also, dass quasi hier sehr viel vom Fenster, dass ihr seht, von einem Fenster quasi gefüllt ist, wo ich dann hier so drin rumarbeite. Aber ich selbst bin quasi der Hintergrund davon. Könnt ihr euch das vorstellen? Ist das cool? Also, wahrscheinlich muss ich da schon mit Belichtung so arbeiten, das bisschen moodier machen.

01:25:05 So. Ich finde, das wäre mal was anderes. Also, verstehe mich nicht falsch. Ich kann mir nichts vorstellen. Schade. Aber ich kann es mir vorstellen. Ich bin dann hier so drin und mache meine Sachen. Und so. Aber in Wirklichkeit ist da so ein Fenster hier vor. Also das hier, was ihr jetzt gerade eben seht, im Vergleich zu... Sekunde. Zu dem.

01:25:42 Weil ich so Stream UI einfach krass langweilig finde. Ich bin hier irgendwo in einer Facecam. Hallo, hallo, hier bin ich. Und hier ist halt mein Fenster und alles andere koexistiert hier irgendwie. Das ist mal was Frisches, mal was anderes. Weil ich quasi die ganze Zeit Fullscreen bin, aber halt nur in einem Eck vom Bild. Und dann kann man ja trotzdem hier, guck mal, hier ist noch so viel Platz, da kann man trotzdem ein paar Fensterchen rein streuseln.

01:26:13 So eine kleine To-Do-Liste zum Beispiel, weißt du? Dann macht man hier, ich mach das mal eben kurz, dann macht man hier ein neues Fenster, Do-Overlay, zack. Ich weiß, ich hab das ja bei mir schon alles ziemlich smart und Fensterchen aufgeteilt. Dann packt man das hier zum Beispiel so hin. So, und jetzt habt ihr halt diesen coolen Effekt, dass ich so was bin wie der Bildschirmhintergrund, weißt du? Und ich sitze dann hier und mache Dinge.

01:26:49 Und ich kann ja coole Sachen machen, so wie zum Beispiel, dass wenn ich jetzt hier das Fenster wechsle, ich kann ja einfach rausfinden, was mein Hauptfenster ist, dass ich dann das Fenster ändere, was hier angezeigt wird. Und so kann ich mehrere Großfenster nutzen, wie zum Beispiel eine große Konsole noch. Das machen wir auch kurz. Fensteraufnahme. Zack. Hier ist sie. Ah ja, das war wieder das Problem.

01:27:26 anderen Modus wählen muss. Zack. So, hier ist die Konsole. Die ist ein bisschen transparent, nicht wundern. Und dann, wenn ich da hin wechsle, dann wird halt Premiere unsichtbar. Uh, Transparenz-Effekte auch nicht schlecht. Und jetzt gehe ich wieder zurück in Premiere. Also ich habe jetzt aktiv quasi ein anderes Fenster ausgewählt und das Fenster ändert sich auch hier. Und so entkoppelt man.

01:27:56 Das, was ich sehe auf dem Bildschirm und das, was ihr seht, weil ein klassisches Problem von allen Streams, die nicht Gaming sind, ist, dass man halt einen Ausschnitt seines Monitors streamt. Das habe ich schon vor Jahren angefangen aufzubrechen, indem ich hier, das ist ja eigentlich auch nur mein Bildschirm, aber es ist halt ein anderer Ausschnitt von meinem Bildschirm, dieses Bildchen hier unten. Und das ist am Schluss nur ein Fenster. Ich habe das gerade als Fensterquelle hier eingefügt.

01:28:22 Und dann gehe ich wieder zurück zur Konsole. Ja, die ist vielleicht ein bisschen zu transparent. Aber ich finde, das ist ein anderer Look. Man interagiert nochmal anders mit dem Stream, weil ich jetzt der Wallpaper bin. Und es ist nicht mehr so, dass irgendwie, also ich finde, das ist viel connecteter. Wenn ich jetzt hier irgendwelche Dinge hier drin ausführe, ist es irgendwie, man fühlt sich mehr, als wäre man...

01:28:55 Teil davon habe ich das Gefühl, weil ich eigentlich eigentlich just Chatting streame so, aber man Fenster sieht so. Ich bin nur noch im Hintergrund meines eigenen Streams. Also feine nicht.

01:29:15 Und das Coole ist halt, dieses Fenster kann jedes Format haben, kann überall sein, wo es gerade sein möchte. Ich kann das sonst wo hinschieben und ihr seht es einfach nicht. Bei euch bewegt sich gerade ein bisschen der Mauszeiger und wirklich bewege ich gerade mein Fenster hier sonst wo hin. Und es braucht ja wirklich nicht viel, außer ein bisschen Code, der guckt, welches Fenster gerade aktiv ist aus einer Menge von Fenstern. Ja, war ein rundes Fenster anstelle von kantig. Aber das ist eine sehr gute Frage, ne? Das ist natürlich auch eckig gewesen. Fensteraufnahme ist wirklich eckig.

01:30:02 Das ist spannend. Ich kann ja trotzdem vorgefertigte Fenstergrößen und solche Späße haben, aber ich weiß halt, wie ich in echt entwickle und da habe ich natürlich einen viel größeren Bildschirm und springen die ganze Zeit zwischen Terminal und VS Code und was weiß ich was hin und her. Und das kriegt man nicht repliziert, weil so viel Platz kannst du gar nicht nehmen im Stream, sonst kann man nichts mehr lesen, sonst ist alles so klein. Aber niemand sagt, dass ich nicht quasi die Existenz der Fenster und das, was ich zeige...

01:30:29 entkoppeln kann und das ist quasi so ein erster Versuch davon. Und klar, ich kann einfach Späße machen, wie zum Beispiel hier, zack, äh, Filter. Irgendwo kann man Transparenz hinzufügen. Ich weiß gerade selber nicht wo. Eigenschaften?

01:31:00 Ja, aber das würde sich über eine Extra-Indirektion easy machen lassen. Also ich kann zum Beispiel jetzt schauen, wenn ich hier drinnen bin. Das, was ihr jetzt gerade seht, ist das hier. Jetzt kann ich hier drin sagen Filter plus... Irgendwo kann man da Transparenz reinwerfen. Bild, Mask und Vermischung. Ah, nee, das ist es nicht. Ich weiß es gar nicht, wo das geht.

01:31:42 Irgendwo gibt es so einen Effekt. Weil es nicht fällt. Es ist nur... Z. Geil, was mittlerweile alles geht, ey. Der wollte schon nicht mal einen absolut überzogenen... Geil, ey. Da sehe ich mich, du. Da sehe ich mich. Geht gar nicht, ihr Dirk.

01:32:12 Ja, das ist echt cool. Also ich glaube, sobald wir Premiere Remote die nächste Version fertig haben, was das so 2 bis 8 Monate jetzt ziehen wird, dann denke ich da nochmal weiter und überlege nochmal. Also ich meine, auch sowas wäre ja irgendwie denkbar, mit irgendwie coolen Hintergrund oder so. Die Roadman muss ich auch noch töten. Die kommt auch auf den Graveyard. Die hat mir wirklich gar nichts gekauft.

01:32:43 Jetzt würde ich den ganzen Kram gerne wieder einblenden. Oh boy, das wird jetzt lustig. Also erstmal das hier, zack. Und jetzt? Ah, eh hier. Perfekt! Ja, geil on du! Also, das wird dann die Zukunft von meinem UI. Ist auch viel irgendwie embedded. Ich habe auch nachher eine coole Idee, was ich mit dem Schrank hier mache. Ich bin gespannt, ob das aufgeht. Was dann? Aber ich weiß, ich bin so hin und her gezogen, weißt du? Also auf der einen Seite finde ich den Look in diese Richtung hier voll geil.

01:33:18 Aber hier auf dem Schrank könnte man halt noch coole Nanoleaf-Sachen machen. Ich habe das Gefühl, in diesem Stream hier ist viel Platz für coole Nanoleaf-Sachen.

01:33:28 Ja, okay. Nach vor, keine Ahnung, wie ich das so weitermache mit Calling Streams. Also ihr kennt die Geschichte. Man weiß nie, wo sich so Dinge weiterentwickeln. Ich kann mir aber vorstellen, dass ich heute schon mal anfange, die ersten Schritte Richtung neue Premiere Remote Version zu gehen. Ich habe außerdem ein Video fertig geschnitten. Kein Joke. Ein Video ist fertig. Im Upload. Also ist schon hochgeladen. Muss nur von Helfen machen.

01:33:52 Und das kommt dann auch nächste Woche online. Und ja, ich plane weitere Kurzvideos noch draus zu ziehen. Ich mache bald mein nächstes Newsletter. Ich denke dann, nachdem das Video nächstes Wochenende raus ist. Vielleicht auch schon vorher. Ey, woher weiß ich das schon? Und ja, wir sehen uns dann im nächsten Stream wieder. Ich hoffe, das war für euch jetzt auch ein spannender Ein. Also für mich war dieses ganze Experiment bis hierhin.

01:34:21 extrem spannend also ich habe noch nie wirklich so hart eingesetzt es war also ich habe auch viel learnings gehabt also diese scheiße in scheiße out war davor schon bekannt aber jetzt kann ich noch viel besser dieses auf auf der couch liegen und über architektur nachzudenken und das einfach

01:34:42 in der Sprache nach rechts in Gemini rein zu pipen und dann kommen Diskussionen zurück. Das war tatsächlich voll hilfreich, muss ich ehrlicherweise sagen. Also ja, let's see, wo diese Entwicklung weiterhin geht. Ich bin nicht mehr so negativ eingestellt, wie ich es davor war. Jetzt mache ich mich nur noch drüber lustig, wenn man...

01:35:05 mega darauf angewiesen ist und das in den Himmel hypt und so. Also das wird sich aber auch nie ändern. I'm sorry. Habe ich schon bei Bitcoin mich mega lustig drüber gemacht. Das ist halt einfach. Aber ich bin schon bereit zu sagen, dass so diese ganze AI-Geschichte schon das next big thing ist nach dem Internet. Also DED, das trage ich mittlerweile sogar meiner Meinung nach mit. Aber Tokens sind nicht kostenlos.

01:35:34 Ja, okay, also hoffentlich war das spannend, wie gesagt, neue Architektur und so. Ich habe Bock, wir sehen uns im nächsten Stream wieder. Ihr könnt natürlich gerne Premiere Remote folgen, dann habt ihr mir den aktuellsten Stand, da werden hoffentlich bald Änderungen kommen. Und ja, in dem Sinne, vielen Dank fürs Zusehen. Das war ein einhalbstündiger.

01:36:02 Technik-Stream? Vielleicht jetzt nicht unbedingt Coding, aber wir haben uns ja trotzdem viel mit Informatik beschäftigt. Cool, jo! Macht's gut! Vielen Dank fürs Zusehen! Ciao!