News 42/23 –

ChatGPT Voice // Visual Copilot // DockerCon // Node.js 21

18.10.2023

Shownotes

Es spricht! Sebi berichtet von seinen Erfahrungen mit dem neuen Voice Feature von ChatGPT in den mobilen Apps von OpenAI. Hier kann man nicht nur mit ChatGPT sprechen, sondern mit Hilfe verschiedener Stimmen auch angesprochen werden.

Einen weiteren Assistenten hat Jan mit dem Visual Copilot von Builder.io im Gepäck. Die Toolchain von Builder.io erlaubt es, dank eines Multi-Model-Ansatzes Figma-Layouts in Quelltext zu verwandeln. Weiterhin kann man beispielsweise durch Text-Prompts eigene Komponenten erstellen, anpassen und dann für verschiedenste UI-Frameworks kompilieren.

Passend dazu liefert Fabi Neuigkeiten von der DockerCon. Dort hat Docker einen neuen GenAI Stack vorgestellt, der es Entwickler:innen durch Ollama, Neo4j und LangChain erlauben soll, schneller mit eigenen generativen AI-Projekten starten zu können.

Darüber hinaus liefert Docker jetzt mit Docker Scout eigenes Tooling, um Schwachstellen in Containern zu finden und Möglichkeiten zur Optimierung aufzuzeigen.

Sebi berichtet abschließend über den Release von Node.js 21. Wir lernen, dass diese Version kein LTS ist, weil sie ungerade ist, aber sie dennoch genügend neue Features mitbringt – unter anderem stabile Versionen von fetch und WebStreams.

Und das Team ist sich einig: Es bedarf dringend einer guten Erklärung des Unterschieds von CommonJS und ECMAScript Modulen. Könnt ihr das erklären? Schreibt uns eine Mail!

/transkript/programmierbar/news-42-23-chatgpt-voice-visual-copilot-dockercon-node-js-21
Hallo und herzlich willkommen zu einer weiteren Folge der Programmierbar News. Wir sind in der 42 23. Ich bin der Fabi. Neben mir sitzt der Baby. Hallo. Und uns zugeschaltet ist der Liebe. Jan. Hallo. Hallo. Ihr zwei. Wir unterhalten uns heute über die Docker Con, die vor anderthalb Wochen stattgefunden hat, Node 21. Jan erzählt uns was über Visual Co-Pilot, was genau das ist und wo wir gerade bei Co-Piloten sind. Sebi, wir haben ein kleines Zusatz-Thema reingesnickt in der AI News mit Philipp habe ich mich über ChatGPT, die neuen Funktionen innerhalb der App unterhalten und dass man mit jemandem sprechen kann. Du kannst es schon ausprobieren, oder? Was geht da? Wie ist das? Fangen wir schon an. Ja. Geil. Mega cool. In der iOS App von ChatGPT, in der Plus Variante, oder weiß ich nicht. Also die GPS4 Variante in der iOS App hat jetzt den Voice Mode. Ich weiß gar nicht heißt das, Voice Mode? Also man kann jetzt auf jeden Fall mit ChatGPT sprechen und ChatGPT hat fünf verschiedene Stimmen und ich finde es mega cool und das würde ich fast sagen, ändert noch mal alles. Also vorher war ChatGPT ja irgendwie auch schon cool, weil neu und man konnte per Text irgendwie Sachen schreiben und er hat irgendwie, also er hat irgendwie Antworten gegeben und jeder war so überrascht, so boah der ist so schlau. Und durch diese Stimmen Interaktion finde ich, gibt es das noch mal auf ein neues Level von Persönlichkeit. Also jetzt ist es wirklich wie in einem… Es hat einfach jetzt ein bisschen mehr Charakter. Und die Voice Synthetisierung, also die Stimme, die er bekommen hat, klingt extrem gut, extrem natürlich. Also er macht Atempausen, er baut Ähms ein, er benutzt Füllwörter wie eigentlich und… Also er ist… Ich weiß nicht, muss man mal erlebt haben. Und wenn man danach mal sich Siri anhört, dann kriegt man so Tränen in die Augen und möchte vor Traurigkeit sterben. Ich habe da direkt eine Frage zur Qualität. Weil… Also ich glaube schon, was du so beschrieben hast, es senkt die Hemmschwelle ab, so ein bisschen zu benutzen, weil du sprichst einfach so mehr mit ihm, einfacher, natürlicher oder ihr. Ich weiß gar nicht, wie es klingt. Aber wie gut bist du denn dann noch so im Promiting? Weil ich habe so das Gefühl, immer wenn ich so eine GPS-Anfrage schreibe, dann formuliert man ja schon irgendwie sehr bewusst und überlegt sich, was man da so reinschreibt. Und wenn man das jetzt mehr in so einem Dialog-Setting macht und einfach so drauf los redet und auf eine Antwort hofft, glaubst du, dass die Promps dann schlechter sind, weil weniger überlegt? Die, ich glaube, die Überlegungen, die du vorher anstellst oder dieser Prozess, ich muss maximal gut promoten, mein Ergebnis zu optimieren. Das sind andere Anfragen, als du in einer Konversation mit dem Voice Assistenten stellen würdest. Also ich verwende es eher so für so Sachen, die ich gerne Siri fragen würde, aber die Siri überhaupt nicht kann. Oder irgendwie so ein bisschen Spaßk onversation, weil mir langweilig ist. Oder wenn ich irgendwenn ich ihn einfach mal frage, so ich hatte keine Ahnung wo das herkam, aber in welchen Big Bang Theorie Folgen finden Szenen in der Cheescaped Factory statt? Ja, da muss ich nicht so wahnsinnig drüber nachdenken, wie ich den Prompt formuliere. Aber sowas einfach, was ich mal so raushauen kann und was ich ganz gerne irgendwie dann per Sprache mache und die Antworten. Irgendwo habe ich auf Twitter den System Prompt gelesen von dem Voice Assistant und da steht extra drin, dass die Antworten präzise, kurz, kurze Sätze, nicht mehr als zwei bis drei Sätze, also so, dass man nicht völlig den Faden verliert. Er versucht außerdem, die Konversation am Laufen zu halten, was ich irgendwie cool finde. Das heißt, es wird meistens beendet mit, dass er dir irgendwie eine Rückfrage stellt oder dass er dir eine Anschlussfrage stellt, die Konversation am Laufen zu halten. Das heißt, er darf vom System Prompt her gar nicht die Konversation abmoderieren mit sowas wie Ich bin hier, wenn du noch… … weitere Fragen hast. Sondern er versucht es immer irgendwie offen zu halten, sodass du weiter reden kannst, reden willst. Und Gpt ist also ein Er? Hab ich das richtig verstanden? Also ich habe die männliche Stimme drin, weil ich die am natürlichsten fand. Aber das ist eine Geschmacksfrage wahrscheinlich. Es gibt fünf verschiedene Stimmen. Sie haben ja auch dafür extra Speaker, Sprecher zu Open AI eingeladen. Das sind Sprecher, die extra dafür, also die haben sie extra einsprechen lassen dafür. Aber ich war schon auch sehr beeindruckt für die, also gerade diese Füllwörter, das ist so extrem natürlich, man hat direkt so diese JavaScript, Ironman Analogie im Kopf gehabt, wo man dachte, okay krass, das ist ja jetzt, fühlt sich wirklich so an und da fühlt sich wirklich jeder Voice Assistent, der ging jetzt ziemlich blöd an und geht auch damit, dass er auf jeden Fall einfach andere Use Cases sind, wie man es benutzt. Also so mein Haupt-Use Case, gerade für ChatGPT, irgendwelche Big Query Statements mir vorzubereiten, Analytics zu fahren. Das werde ich bestimmt mit dem Voice Assistenten nicht unbedingt machen. Genau, aber ich würde sagen, probiert es mal aus. Also in der App, wie gesagt, man muss glaube ich in den Settings unter den New Features Tab erst mal überhaupt Voice anmachen und dann kriegt man die Möglichkeit in den Settings die Sprecher, die Sprecherinnen auszuwählen. Aber cool fand ich auch, dass du zumindest als du es uns gezeigt hast innerhalb des Teams, da wolltest du ihn was bayerisch reden lassen und du hast gesagt am Vortag konnte er noch Dialekte und am nächsten Tag hat er verneint, er kann keinen einzigen Dialekt. Also wir haben ihn nicht mehr dazu gebracht. Aber da meintest du, selbst das hat er/sie wohl. Auch sehr gut verstanden. Ja, also das war echt komisch. Ich hatte ihn extra an einem Tag davor gefragt, ob er in Dialekten reden kann. Und da meinte er ja, er kann Sächsisch, Kölsch, Schwäbisch, Bayerisch und noch irgendwas. Und dann habe ich gesagt, er soll halt irgendwas mal erzählen auf Bayerisch und was hat er gemacht? Und einen Tag drauf hat er gesagt, er kann es nicht. Ja, mei. Keine Ahnung. Ja mei. Ja, cool. Aber dann, wenn wir bei Assistenten sind, lass uns doch da direkt mal weitergehen. Lass uns doch beim Visual Co Pilot bleiben. Jan, was hat es damit auf sich? Ja, Visual Co Pilot kommt aus einem Announcement von Builder. Io letzte Woche und ich glaube zum Kontext muss man erst mal wissen, was Builder. Io ist. Builder. Io ist ein CMS, eigentlich rein technisch gesehen ein Headless CMS, also nur API getrieben, aber sie verstehen sich als das, was sie Visual CMS nennen. Also die Datengrundlage und das reine System ist zwar ein Headless CMS, aber sie bieten dir quasi schon einen visuellen Editor dafür an, den du benutzen kannst, nicht musst, aber kannst, der eben sehr auf Web Components aufbaut. Also im Prinzip designst du da so deine Komponenten und verlinkst das dann mit deinen Datenmodellen. So, und die machen gerade ziemlich viel mit AI. Du kannst da zum Beispiel dein Figmalayout nehmen und daraus dann Komponenten Auto generieren lassen. Du kannst dem aber auch… der kann dir auch eine Website geben und er versucht dir daraus das Figmale-Out zu pausen. Das hab ich auch mal ausprobiert, indem ich ihm einfach die programmierbare Website hingeschmissen habe, also nur die URL, und gesagt habe, mach mir doch mal ein Figmale-Layout daraus. Das hat so mittelprächtig funktioniert. Ich glaube, wenn du in ein Projekt reinkommst, was jetzt z. B. Gar keine Fick-and-Files hast und du willst es einfach mal umsetzen, daran weiterzuarbeiten, dann ist es glaube ich cool als so ein Startpunkt. Das ist jetzt nicht 100% akkurat, aber bevor du anfängst, alle Variablen und alle Container und sowas von Hand zu zeichnen, für das Grobe ist es schon mal ein guter Startpunkt. Und dann kannst du eben mit dem Visual Co-Pilot sagen, wenn du so in Figma unterwegs bist, okay, erzeug mir doch mal hier eine Komponente, irgendwas, was ich zum Beispiel probiert habe, erzeugt mir doch mal ein neues Player-Widget, was irgendwie Start Stopp-Buttons hat, was die fortgeschrittene Zeit anzeigt und irgendwie so einen Progress Bar und so einen Scrumber noch mit drin hat. Und das hat wiederum erschreckend gut funktioniert. Also gerade glaube ich, wenn es Komponenten geht, die halt sehr Daten gestützt sind und einfach nur Daten oder ein State repräsentieren sollen, war das ganz gut. Was noch nicht so gut funktioniert hat, ist dann, wenn es an den grafischen Teil geht. Also ich hab dann auch versucht, okay, kannst du irgendwie den Play-und den Pause-Button irgendwie mit Icons befüllen oder irgendwie mal was neues Revolutionäres damit machen? Da ist es dann so ein bisschen gestolpert, weil ich glaube, es hat einfach nicht so einen riesigen Asset-und Icon-Katalog, den es da nutzen kann. Also es baut schon schöne Sachen, aber sie sehen noch sehr generisch standardisiert aus. Obwohl du für die Generierung im Prinzip so einen Stil mitgeben kannst. Also wenn du eine Komponente erstellen lassen willst, kannst du auch nochmal sagen, okay, machen wir das im Stil von dieser und jener Seite oder sowas, dann versucht er das so ein bisschen raus zu pausen. Aber ja, da stolpert es dann manchmal noch so ein bisschen. Und dann hast du wie gesagt deine Komponente in Figma. Und was du dann machen kannst, auch wieder so ein Teil von ihrer AI Suite, sag ich mal, du kannst deine Figmaleas einfach nehmen und sagen Okay, und jetzt exportier mir das doch mal als Code. Und da wird es eigentlich dann so richtig interessant, wo du sagen kannst, du hast hier was irgendwie gebaut und willst es dann für deine React Website oder sowas verwenden. Und da haben sie so eine ziemlich komplexe Multi Model Tool Chain gebaut. Also sie sagen, der erste Schritt ist im Prinzip das Figmalayout zu lesen, das ist ja relativ standardisiert über den APIs. Und dann haben sie ein eigenes LLM gebaut, was im Prinzip den ersten Entwurf dieser Komponente erstellt auf Grundlage von dem Figmalein. Dann übersetzen sie das in so eine Art AST, also in so ein abstraktes Syntax Modell, was sie dann wiederum nehmen können, mit einem anderen LLM aus diesem abstrakten Syntax Modell eine spezifische Komponente zu bauen für React, für View, für Angular, für Framework of your Choice. Das Ding nennt sich Mithosis und das ist im Prinzip deren Compiler, wie sie es nennen. Also oben aus diesem abstrakten Modell, aus dieser abstrakten Komponente Framework spezifische Sachen zu bauen. Die unterstützen da, glaube ich, schon so ein Dutzend Libraries, die man da als Ziel so haben kann. Und du kannst in diesem letzten Schritt auch noch mal Custom Promping mitgeben und sagen Na ja, also wenn du jetzt das in React Code schreibst, dann mach doch, weiß nicht, vielleicht willst du sagen, mach doch funktionales React, mach doch klassengetriebenes React, nutz doch diesen Code Style, wie auch immer, das so ein bisschen einfach nochmal mehr zu beeinflussen, was da rauskommt. Und dann hast du im Prinzip deine React Komponente. Kannst du entnehmen und in dein eigenes Produkt importieren. Oder, und da schließt sich wieder der Kreis, du kannst diese Komponente nehmen und zurück zu Builder. Io importieren. Und ab dann hast du es quasi auch als Komponente in deinem Visual CMS Editor zur Verfügung und kannst es dann quasi eben per Drag and Drop überall platzieren und nutzen wo du willst. Und das finde ich glaube ich super interessant, weil es dir halt ermöglicht, einen relativ coolen, kollaborativen Loop irgendwie aufzubauen, wo du mit Designern gut zusammenarbeiten kannst in Figma. Du kannst aber auch am Ende den letzten Feinschliff im Code noch irgendwie selber machen und dann importierst du es irgendwie zurück in dein CMS, wo dann jeder, egal ob Techy oder nicht, die Komponenten eben benutzen kann. Und trotzdem bist du nicht daran gebunden, Bilder zu benutzen. Du kannst auch einfach dieses Zwischenprodukt, diese Komponente nehmen und in jede andere beliebige Anwendung importieren. Das ist irgendwie ein bisschen spannend. Und weißt du diese bei diesem von Figma to React Component mit dem Zwischenschritt, wo es erst eine Komponente übersetzt werden, dann in AST. In welcher Form ist denn diese erste Komponente? Also ist es einfach... Die. Siehst du. Leider nicht. Also diese ganz rohe Komponente, die siehst du nicht. Du kannst diesen Zwischenschritt, diese AST Vorlage für Mythosis, die kannst du dir im Prinzip angucken. Also es gibt ein Viertel Mythosis. Builder. Io, da kann man sich das mal angucken, was so dieser etwas abstraktere Syntax ist, den Mythosis als Vorlage im Prinzip benutzt, es dann für die verschiedenen Frameworks zu kompilieren, wie sie sagen. Aber diesen allerersten Rohzustand, den siehst du nicht. Und das war auch in dem in dem Fireside Chat nach dem Event so ein bisschen so die Frage, das würden die Leute schon auch gerne mal sehen, so ein bisschen ein besseres Verständnis dafür auch zu bekommen, wie kann ich vielleicht mein Figma Layout besser strukturieren, organisieren, benennen, es diesem ersten LLM Schritt halt irgendwie auch leichter zu machen. Aber am Ende muss man natürlich auch sagen, das ist ja auch so ein bisschen deren Procure Tech an der Stelle aus Figma irgendwie diese Rohkomponente zu machen. Und da wäre ich mal skeptisch, ob wir die in nächster Zeit irgendwie öffentlich sehen würden. Ja. Cool. Visual Co-Pilot heißt das? Ja, Visual Co-Pilot heißt dieses eine Feature jetzt eben, aus Text-Promiting eben Figmakomponenten zu machen und danach als Code Komponenten zu exportieren. Aber wie gesagt, sie haben da schon eine sehr komplexe Tool Chain aufgebaut. Aber vielleicht muss ich diese Chain, könnte ich nur Methosis nutzen, jetzt aus meinem bestehenden Figmafiles mir React Komponenten erzeugen zu lassen? Ja, das ist halt das, was ich meinte. Du musst nicht Builder. Io am Ende als CMS benutzen. Du kannst auch einfach den Code, der rausfällt, nehmen und in deine bestehende Anwendung schmeißen. Aber muss ich erst mal Text Promiting zu Figma machen oder kann ich auch direkt Figma starten und nur den Flow, Mithosis, mach mal eine Komponente draus nutzen? Das habe ich gerade gefragt. Du musst. Die Komponente … Das geht auch. Du machst Figma auf, hast da dein Ding designt, nimmst das Builder. Io Figma Plugin und sagst hier: Go for it. Das ist mal ausprobierenswert. Ja. Ich meine, hast du mal von Versal von diesem Closed Beta V0 Dev gehört? Gehört ja, aber noch nicht in Action. Also noch nicht selber probiert. Aber teils gerne mal. Ich habe davon noch nicht gehört. V0. Dev ist eine Closed Beta von einer Tool von Versal, wo du per Text Promiting auch Komponenten erstellen kannst. Da ist allerdings dieser Figma Schritt nicht drin. Also das ist bei Builder. Io wahrscheinlich das Coole daran. Und in was wird es exportiert? Was sind das dann? React Components oder was ist. Oder kannst du das? Ich denke React. Ich glaube. Dadurch, dass es closed ist und ich nicht drin bin, weiß ich darüber … Wahrscheinlich kann man es irgendwo nachlesen, aber nachdem die gesagt haben, es ist closed, habe ich gesagt: „So. Fein, dann nicht. Also man kann aber auf „V0. Def, da ist die Beispiel, die man sieht, sind in Code alles React. Ja, okay. Ja, cool. „v0. Dev, packen wir mal in die Shownotes. Dannlassen wir mal rübergehen zu DockerCon. Die war vor zwei Wochen, also vor knapp zwei Wochen ein bisschen drunter. Da gab es einige neue Themen – mein Laptop ist ja fast abgestürzt, gerade noch mal geschafft. Einige neue Themen, unter anderem DockerScout, Docker Debug. Sie haben irgendwie einen Gen-AI-Stack vorgestellt und ich würde mal so ein paar Punkte daraus heben. Dockerscout fand ich ganz interessant, ist eine Tool Chain, Docker Images auf Vulnerability zu analysieren. So, Potential Security Risiken, haben wir ja schon aus vielen Bereichen, kann man in seine CICD Pipeline integrieren, kann man aber auch einfach lokal nutzen über die CLI, also DockerScout und kann dann einfach in seinem Docker Verzeichnis entweder aufrufen für sein Docker Image, kann aber auch gehostete Images in Docker Hub dafür benutzen und fand es ganz interessant, wenn man es erst mal einfach ausführt, DockerScout, dann kriegt man sozusagen einen Vulnerability Check. Ich habe es mal bei einem privaten Repository gemacht, da waren knapp über 200 Vulnerabilities. Also war wirklich gar nicht so viel. Aber man kann, was ich ganz interessant fand, also erst mal ist das natürlich interessant, so okay, Vulnerabilities zu checken, was ist denn da so offen? Aber ich weiß gerade den Befehl aus dem Kopf gar nicht mehr ganz genau. Es war, ich gucke mal, habe ich noch hier drin. Ne, hier zumindest nicht. Da gab es einfach Empfehlungen, was kann ich denn auf Basis meines Base Images machen? Weil die meisten Vulnerability liegen an deinem Base Image. So, was gibt es denn für Optionen? Das habe ich jetzt bei dem beispielsweise mal gemacht. Da nutze ich aktuell, zum Thema später zu kommen, Node LTS im Long Term Support als Image. Und dann kommen Vorschläge. Der erste Vorschlag war Refresh doch mal dein Base Image. Die LTS Version, die du hier gecacht hast, mit der es gebaut ist, ist nicht das aktuellste LTS. Das heißt, wenn ich da einfach mal updaten würde, sieht man so, da könnte ich zumindest schon mal, dann schreiben sie es so sehr in Details, finde ich einfach verständlich. Was ist denn der Unterschied zum Beispiel, wenn ich das einfach machen würde? Es würde keine neue Voluntary-Bilder hier hinzufügen, aber 216 entfernt, wenn ich einfach nur die aktuellste LTS nehmen würde. Und dann... Das ist ein bisschen zu Image-Size. Aber schlägt ja auch vor, was könntest du denn noch machen? Du könntest zum Beispiel LTS-Slim nutzen, das Slim Image würde 384 weniger Packages drin haben und wäre 260 MB kleiner, wenn ich einfach mal die Slim Variante des Long Term Support nehmen würde und würde sogar 289 Vulnerabilities entfernen, was wahrscheinlich eigentlich fast alle sind, die da drin sind. Aber ich stelle zum Beispiel auch vor, du könntest auf das Current updaten, was dann LTS aktuell Version 18, Current ist 20.8 und da wäre es dann so, da würde weniger Vulnerability entfernen, weil es auch ein paar wieder hinzufügt, wäre auch kleiner. Also einfach so Vorschläge dafür, so fand ich schon mal interessant. So, ich hatte gar nicht auf dem Schirm, könnt ihr einfach mal die slim Variante nutzen, könnte ich jetzt mal updaten. Also dass es nicht nur einfach ist, das sind die Vulnerabilities und mach was du willst, sondern dir auch Vorschläge dafür bringt, fand ich ganz cool. Also DockerScout, ich weiß jetzt nicht, was genau der Befehl ist, Vorschläge für Space Image zu bekommen, aber könnt ihr über die Help euch einfach anschauen. Aber liest der im Prinzip dein Image oder dein Docker-File aus oder versteht er auch deine Anwendung? Weißt du, wenn er dir jetzt vorschlägt, slim zu nutzen, wo weniger Zeug schon mit installiert ist, weiß er dann, ob das vielleicht deine Anwendung bricht, weil du irgendwas davon doch irgendwie brauchst? Oder ist es einfach nur so, naja, slim zu benutzen ist halt eher die Best Practice und das andere benutzt du halt nur, wenn du es wirklich brauchst? Kann ich dir nicht genau sagen, ehrlich gesagt. Was ist, also es liest zumindest nicht einfach nur das Docker-File in erster Linie, weil es ja auch weiß, was ist denn, also mit was habe ich zuletzt gebaut, was sindwas ist in meinem Docker Cache so mit drin? Welches. Layer? Aber ob es... Also es wird bestimmt nicht die Abhängigkeit... Weiß ich nicht. Kann ich dir nicht genau sagen. Müssen wir mal nachschauen, ob sie Abhängigkeiten analysiert. Gute Frage. I don't know. Zumindest ich probiere gerade noch mal die Benefits durchzulesen, ob da irgendwas steht mit hat keinen Nachteil hier und da, aber... Ein Nachteil bricht deine Anwendung. Bricht deine Anwendung. Kann ich alles haben. Aber dafür bist du sicherer. Geht halt nicht mehr. Aber es ist halt auch sicherer. Kann nichts mehr passieren. Genau, also auf jeden Fall jetzt in General Availability, also gab es schon vorher, ist jetzt in General Availability. Docker hat ansonsten mit Udony jetzt einige neue Kurse rausgebracht, wo man Docker spezifische Kurse machen kann rund Docker Swarm mit Docker Compose und was auf jeden Fall ganz interessant klingt. Sie haben jetzt Next Generation Docker Build ins Leben gerufen, also dass ich Cloud Build für Docker Images jetzt habe, ist ein Public Beta wohl auch relativ smart, was irgendwie das Bauen angeht, wie sie irgendwie Ressourcen allokieren und auch ich zum Beispiel Docker Caches Team weit dann habe, also dass wir die Caches, wenn wir Images bauen, eben über das Team sharen können. Bin ich aber gar nicht so ins Detail rein. Ein Part, den ich interessant fand, aber selbst noch nicht ausprobieren konnte, ist Docker Debug, also dass ich die Möglichkeit jetzt habe, sowohl Remote Docker Images als auch lokale Docker Images zu Debuggen mit einer CLI von Docker, also dass ich meine IDE sozusagen Breakpoints innerhalb des Docker Images innerhalb des laufenden Docker Containers setzen kann. Cli ist Docker Debug. Ich habe aber noch keine aktuelle Dokumentation dazu gefunden und habe auch noch nicht herausgefunden, wie ich die CLI dafür installiere. Also es ist ein neuer Teil der Docker CLI. Wo würde man da den Breakpoint setzen? In deiner ID. Aber wo? In einer Datei? Ja, du würdest in deiner ID, du öffnest dein Projekt sozusagen, wo auch dein Docker-File liegt, kannst du in deinem beispielsweise TypeScript Code, ich weiß nicht genau was sie dann, was sie genau machen beim Bauen, das zur Verfügung zu stellen, aber du würdest in deiner ID den Breakpoint setzen und fängst im Docker Container. Okay. Ja, aber genau wie es kann. Ich hätte es gerne ausprobiert, aber ich habe es noch nicht hinbekommen, die CLI zum Laufen zu bekommen. Von daher Docker Debug. Schaut noch mal in die Dokumentation. Wird vielleicht nach unserer Folge in der nächsten Woche oder so was vielleicht mal dazu online gehen. Dokumentation. Docker, die Docker Dokumentation. Aber ich glaube, ansonsten kann man noch mal reinschauen. Gab ich einige interessante Talks. Ich habe auch mir auch noch mal Talks aus der Vergangenheit so ein bisschen angeschaut. Zum Beispiel gab es auch ein so ein How to Fix & Debug Docker Container, ist like a Super Hero war vom letzten Jahr. Ich dachte nämlich, dass ich da Infos noch mal dazu bekomme, wie ich Debug CLI nutzen kann, bis ich gemerkt habe, das war vom letzten Jahr. Habe aber da auch noch mal ein paar ganz coole Tipps zum Debuggen. Also so geht so ein bisschen Best Practices durch und eine Sache hat eher Pick of the Day Charakter. Aber für die, die Docker Desktop nutzen, da gibt es ja auch Extensions genauso wie in allen möglichen IDEs und da gibt es die Logs Explorer Extension von Docker Desktop, wo ich eine ganz coole Möglichkeit habe, alle aktiven Docker Container zu inspecten, die Logs und Filter MöglichkeitenIch habe irgendwie noch was auf jeden Fall, ich meine viele werden wahrscheinlich, wenn sie Docker Compose nutzen, einfach DC Logs nutzen und da streamen. Der Docker Desktop hat ja jetzt schon die Möglichkeit, in einzelne Docker Container rein zu gucken, aber da hat man, was die Logs angeht, so grafisch. Aber da hat man nicht so viele Filter Möglichkeiten und so auch nach Log Level und so zu filtern. Ist ganz cool auf jeden Fall. Wie jetzt mal installiert Logs Explorer Extension wurde da in einem Talk empfohlen. Mehr Pick of the Day Charakter. Ich meine, ich habe sogar eine Visual Studio Code Extension für Docker. Die müsste das wahrscheinlich auch können. Kann gut sein. Benutzt du Docker Desktop noch oder? Oder Orbstack? So wie ich. Orbstack sagt mir nichts. Ist das hier ein nächster Pick of the end? Ich nutze Docker Desktop. Ich glaube, das hatten wir. Schon mal. Echt? Aber die Docker Freunde hatten ja jetzt auch geschrieben, Docker Desktop irgendwie zweimal, weiß ich nicht, Performance-Improvenment. Hast du da irgendwas drüber gelesen? Irgendwie mega viel schneller, besser, besser, cool. Nee, okay. Nee, habe ich leider nicht gelesen. Aber was sie noch dafür erzählt haben, ist ein, es gibt ein neues Gen AI Stack, das sie auch enabled haben auf der Docker Con. Das packen wir auf jeden Fall auch mal in die Shownotes. Das ist ein Stack aus Docker Containern, gibt es ein GitHub Repository dazu, die sozusagen einem ein Stack aufbauen, das ein bisschen darüber hinausgeht, dass du sagst okay, wie kriege ich denn LLMs dazu, so ein bisschen mit mehr Kontext zu arbeiten und auch Kontext, der entweder mein Business Case betrifft oder einfach nur mich als Person irgendwie? Also wie kriege ich das Ganze denn eigentlich hin, und sie einen Docker Stack aufgebaut haben mit Jannay I Stack, wozu ein paar Komponenten gehören. Einerseits Olamer, was wir, glaube ich, in der letzten Newsfolge auch schon vorgestellt haben, lokale LLMs laufen zu lassen, das sie in einem Docker Container haben und Neofordj als Graph Datenbank. Und sie haben auf, also man kann das ein bisschen, habe ich auch mal runtergeladen, schon ein bisschen ausprobiert. Sie haben so ein paar Use Cases damit abgebildet, wo sie gesagt haben, zum Beispiel ein Support Agent Bot oder dass du mit einem lokalen PDF sprechen kannst, wo sie beispielsweise beim Support Agent Bot das Ganze so machen, dass du relativ einfach mal einen Setup hast. Du hast ein lokales LLM, du fütterst Neofordj alsGraph Datenbank einerseits mit Embeddings von deiner Support Datenbank, sehen wir jetzt als Beispiel, es einfach mal ausprobieren zu können, kannst du das mit Stack Overflow zu bestimmten Topics einfach füllen. Das ist dann sozusagen deine FAQ Datenbank, die du auch mit deinen eigenen proprietären Daten füllen kannst. Die übersetzen sie in Embeddings, speichern es in Neofordj. Dann kann man eine Simularity Search machen, wenn eine neue neue Anfrage getätigt wird und holt dann aus Neofordj auch die Dokumente raus, damit dann das LLM zu promoten, sodass man einen Support Agent bekommt, der eben auf Basis der eigenen Informationen dann antwortet und mit dem mit den eigenen Informationen gefüttert wird in den in den Prompt. Und das fand ich ganz cool, weil es halt so ein super einfaches komplett lokales Setup ist, basierend auf Docker Containern, wo man so was einfach mal so ein bisschen aufsetzt und vielleicht ein ganz guter Startpunkt ist für diejenigen, die sich so was aufsetzen wollen und vielleicht auch auf Open Source hier zurückgreifen wollen. Und der andere Anwendungsfall wäre auch, dass man das, also man kann jetzt verschiedene Docker Container einfach starten. Man kann sich das Repository mal runterziehen, Docker Compose up, dann ist eigentlich alles schon getan, dann kriegt man ein paar URLs für die verschiedenen Use Cases und kann mal rumprobieren und kann mal so ein bisschen in den Code einfach einsteigen, wie sie das genau gebaut haben. Und ist glaube ich ganz cool, so als Low Level Einstieg in wie baue ich sowas eigentlich? Wie funktioniert das Ganze mit Embeddings? Fand ich ganz cool, die JN AI Stake. Muss man da Docker starten irgendwie mit diesem Grafikkartensupport oder so? Jan, hast du das nicht schon mal ausprobiert? Olamer braucht. Man nicht? Ich habe Olamer schon mal ausprobiert, aber tatsächlich ohne CPU. Es war jetzt nicht mega schnell. Ich kann mir vorstellen, dass wenn man das mit CPU macht, dass das ein bisschen einfacher geht. Aber ich habe das ja eh auch nur auf dem Mac gemacht, wo man wahrscheinlich durch zwei Ringe mehr durchhüpfen muss, bis es läuft. Unter Linux ist es wahrscheinlich ein bisschen trivialer. Ich hatte irgendwie noch im Hinterkopf, dass Docker nur mit NVDA Grafikkarten irgendwie CPU ansprechen kann. Also ich habe es auf jeden Fall nichtVideoschneider, die du bei mir, das läuft es auch glaube ich auf der CPU mit Ulama. Also es ist jetzt auch nicht der schnellste, wenn man das Ganze jetzt macht. Aber ich meine, der Anwendungsfall wäre dann ja wahrscheinlich auch für ein Support Bot nicht, dass ich es lokal laufen lasse. Ist auch nicht der Anwendungsfall, dass der schnell antwortet, sondern einfach eine E-Mail generiert. Zumal wenn du diese Container nutzt im lokalen Development, ist es ja glaube ich auch einfach eher nur zu sehen, ob es funktioniert oder was halt rauskommen würde. Ob du da jetzt eine halbe Sekunde länger wartest, ist glaube ich dann lokal erst mal egal. Ja, ja, auf jeden Fall. Und wie gesagt, ich sehe es auch eher. Ich meine es jetzt nicht hier, dass du das wirklich, dass das jetzt schon dein Support Bot wird. Ich sehe es eher als Einstieg in die Thematik, dass man einfach zeigt, okay, wie kann denn dieses Open Source Setup hier aussehen und wie würde das Ganze funktionieren und halt super easy einfach mal auszuprobieren ist so lokal mit alles Open Source. Und irgendwie Neofr J, wie funktioniert es mit der Vector Graph Datenbank so? Der Olamer Container, der ist ja schon ganz geil. Also du wählst quasi dein Modell aus und kriegst direkt eine REST API ex post von dem Container und die kannst du halt in jeder beliebigen Anwendung integrieren. Und wenn du das einfach in deine Docker Compose mit reinschmeißen kannst, ist halt schon sehr bequem, ohne dass du genau wissen musst, was da jetzt so genau passiert und du musst es auch nicht genau verstehen, sondern du schmeißt halt Text gegen eine API und kriegst eine Response zurück. Ja, also deswegen so, ich würde es eher als Einstieg sehen, als dass es jetzt glaube ich kein produktives System ist, was sie da jetzt hingestellt haben. Aber man kann es vielleicht dahin matüren. Von daher. Okay. Cooler Einstieg. Ja, und auch so ein bisschen dieser Part mit ich habe dann auch probiert mal einen PDF rein zu schmeißen und mit diesem PDF zu interagieren und so, dauert etwas lange und vielleicht war mein PDF, wo ich irgendwie von meiner Stadt den Abgabenänderungsbescheid für Grundsteuer reingeworfen habe, war vielleicht nicht das beste PDF für ihn, es zu analysieren. Die Ergebnisse waren eher so meh, aber. Ich. Habe es auch noch nicht so richtig im Detail probiert. Aber ich glaube, alles, was halt mal den diese LLMs mit einem eigenen Kontext füttert und das irgendwie einfach macht, ist auf jeden Fall cool. Wir hatten, sehen wir das vorher auch vor der Folge gemeint, ich hatte mit einem alten Arbeitskollegen gesprochen, der sich gerade darum kümmert oder schon Zugriff zu dem Microsoft Co-Pilot hat, der mit Microsoft 365 zusammenarbeitet, das für die Firma sozusagen probiert mit einzufinden, schon seit zwei Monaten da drin Zugriff hat. Und das Coole bei diesen Co-Piloten ist, dass der einfach Zugriff zu dem kompletten E Mail Postfach aus Microsoft 365 hat, also auch alle Daten, die einfach in Microsoft 365 drin sind und da wirklich das mal zu spüren wie es ist. Wir haben dann ein bisschen rumgepromptet mit dem Co-Pilot und mal ein bisschen ausprobiert. So dieser Use Case. Man kann Fragen stellen und kriegt mit dem kompletten Wissen seiner E Mail Datenbank darauf eine Antwort geliefert und so super persönlich. Das war schon echt so next Level, wo ich dachte okay, das ist schon krass. Auf jeden Fall, wenn es halt so einfach für jeden ist. Aktuell kann man es ja auch schon, wenn man sich eine Vector Datenbank aufbaut und aber so, wenn man da mal so einen ersten Use Case von jemandem sieht, die eh schon die Daten über einen haben und die dann zu leveragen und dann einen eigenen Co-Pilot, der wirklich persönlich auf den eigenen Daten antwortet, das war schon, da dachte ich schon, okay, das ist ein krasser Productivity-Boost, wenn ich mir vorstelle, im Arbeitsumfeld das zu haben. Der kann es auch, also er hat auch erzählt, der kann es dann jetzt schon in den Video Calls von Microsoft sozusagen, gibt man eine Zusammenfassung, kommt es fünf Minuten später rein, was in den letzten 15 Minuten passiert, gibt man eine kurze Zusammenfassung oder Meeting Notes werden danach immer direkt geschrieben und rausgesendet und so was ist auf jeden Fall sehr cool. Haben. Willdas ist ein guter Plattform-Login. Auf jeden Fall gut. Microsoft 365 ist glaube ich generell bei großen Firmen schon ein großer Plattform-Login. Dann wird er jetzt einfach nur noch größer. Aber die Frage ist: Legst du jetzt in Zukunft all deine Dokumente in deinen Confluence oder in deinen SharePoint. Und wenn du dann halt siehst, na ja, wenn sie im SharePoint liegen, dann hat mein Co-Pilot irgendwie Zugriff darauf. Dann sitzt irgendein Product Owner bei Atlasien und fängt zu heulen an. Ja, auf jeden Fall. Hoffentlich wird der Co-Pilot … Aber gut, ich meine, andererseits wird es auch so sein, dass wenn der Co-Pilot halt, wenn sie es als Produkt wirklich gut verkaufen wollen, dann wird er irgendwelche Schnittstellen auch noch bekommen dafür, noch auf weitere Quellen zuzugreifen. Weil eine Firma wird nicht nur alles Wissen in Microsoft 365 drin haben, dann hoffentlich auch eine Schnittstelle, die Atlasien kompatibel ist. Aber ja, klar, esist, man wird dann, gerade wenn man neu aufsetzt, zweimal drüber nachdenken, welches Produkt nutzt man dann, wenn es einfach integriert ist? Aber wird ja so oder so noch spannend. Gibt ja auch einige Artikel darüber, was Kosten angeht und aktuell sind es glaube ich 30 € kosten pro User pro Monat. Und ob das tragbar ist, den Co-Piloten für 30 € im Monat zu machen? Bin ich mal gespannt, ob Microsoft das bei dem Beitrag halten kann. Ja, es kommt auch stark auf die Rolle drauf an, aber es gibt, glaube ich, genug Leute, genug Funktionen, die genug Zeit in Spreadsheets und Powerpoint und SharePoint verbringen, die glaube ich … Also ich meine, was sind 30 € im Monat? Das sind ein, zwei Stunden Arbeit gespart und schon hast du es wieder rausgeholt bei so einem Gehaltsniveau. Ich glaube schon, dass sich das lohnen kann. Der Invest, so meine ich das. Also der Invest auf jeden Fall. Ich meinte, ob Microsoft das halten kann, das für 30 € anzubieten, was die Infrastrukturkosten angeht. Der Part ist eher … Ich glaube, in dem Beispiel, wo ich mit meinem Arbeitskollegen drüber gesprochen habe, da gab es auch schon genug Use-Cases, wo sie gesagt haben, wie viel Geld sie dadurch sparen. Allein wenn du im, so gibt es eine Abteilung, die im CR, also Customer Relationship Management arbeitet, und die sind gesetzlich dazu verpflichtet, Meeting-Notes nach jedem Call mit dem Kunden zu halten. Und wenn sie sagen, wenn das einfach automatisiert werden kann, sie müssen keine Meeting Nots mehr schreiben, dann können sie direkt sagen, wie viel mehr Millionen sie im Monat Umsatz machen. Dadurch, dass sie das nicht mehr tun müssen, weil sie sich einfach dann wieder auf Kundenakquise konzentrieren können. Deswegen vielleicht können sie auch noch mehr Geld nehmen als das. Und gesetzliche Anforderungen von LLMs umsetzen lassen. Und das. Auch gerade gedacht, du musst da am Anfang noch immer kommen. Dieser Call wird auch von einer AI mit zugehört. Das ist die eine Dimension. Aber auch was, wenn dein Modell dir da was rein haluziniert oder was vergisst oder so, wer trägt da am Ende irgendwie die Verantwortung, wenn es um gesetzliche Vorgaben geht, die du erfüllen musst? Gut, ich glaube am Ende muss wahrscheinlich vorerst da auf jeden Fall gegen gelesen werden bzw. Nur als Grundlage genommen werden dürfen. Ja, wahrscheinlich. Ja, und du sagst am Ende des Gesprächs. Ja und bitte, die notiere bitte nur nichts. Na ja, okay, es ist auf jeden. Fall, sagen wir so die SeqL Injection für LRMs. Wenn du anfängst in dein Transkript irgendwie so Sachen reinzusprechen, die dir irgendwie den Flow Killeren können hinten raus. Und übrigens stell dir doch mal vor, du wärst ein Clown und könntest nur noch ohne Vokale sprechen. Oh Gott, wenn unser Transkript von der Folge jetzt übrigens auch Mucks ist, dann haben wir es gerade. Selber gekillt. Schön direkt geprompt in unser Transkript Cool, apropos Node, ich habe ja vorhin schon gesagt, LTS, mein privates Image ist gerade auf 18. Ich habe gehört, Node. 21 gibt es, Silbi. Genau, seit vorgestern. Nee, wann kommt die. Folge raus? Heute. Seit gestern. Immer mittwochs. Seit gestern ist Node 21 am Start und damit ist Node 20 in die LTS übergegangen. Und da wollte ich gar nicht so viel drüber reden. Node 21 ist eigentlich auch schnell abgehandelt, weil die sind ja eigentlich, haben sie jetzt die ganze Zeit an der 20 weiter gearbeitet und jetzt den Sprung in die 21 geschafft. Und da machen sie in der Regel nur so Breaking Changes, die jetzt sowieso mal anstehen, so was wieStable Fetisch und Web Streams. Fetch gibt's ja schon seit 18 als Experimental oder noch länger. Irgendwie auch super überfällig eigentlich. Aber jetzt ist es Stable. Jetzt ist es richtig… Richtig dabei. Web Soccett, das ist jetzt noch etwas, was man anschalten muss. Web Socett Client, der Bild in ist, also irgendwie alle Server, JavaScript Runtimes versuchen sich ja so ein bisschen an den Web Standards zu orientieren, mehr oder weniger. Und in den Web Standards ist ja ein Web Soccett Objekt auch drin. Erst mal als Client und in Node jetzt auch. Also brauche ich kein externes, keine Dependency mehr dafür. Zumindest wenn ich den Flag experimental Web Socett beim Starten dazu schreibe. Kotz, egal. Ansonsten ist die V8 geupdatet. Da ist jetzt auch Array Gruping drin. Das nenne ich jetzt noch ein paar andere Sachen drin, aber das nenne ich einfach mal, weil ich das irgendwie interessant fand. Man kann jetzt objekt. Groupby schreiben und kriegt das Array nach. Dann sehe ich es halt gruppieren lassen. Kriegt ein Racker zurück oder was? Also der als Key? Ja, genau. Wenn du objekt. Group bei schreibst, gibt auch noch map. Group bei und dann kriegst du eine Map zurück. Ja, also wer weiß ich nicht, wer das schon mal vermisst hat oder so. Oder viele Leute sagen so: „Ja, das muss ich mir sowieso schreiben und wenn ich das brauche, mache ich eh immer einen Reduce oder so, aber ist jetzt halt auch mit dabei in der Sprache. Und wenn man es auf dem Server hat, dann ist man ja auch Herr über die Version und weiß, dass es da ist. Im. Browser würde ich es jetzt noch nicht einsetzen. Ja, und dann hatte der Jan mich gefragt, ist noch eine Sache dabei. Man kann jetzt experimental die Modul-oder die File-Auflösung flippen, also der Default. Der Default ist ja so, dass ich das Node immer annimmt, alles ist Common. Js. Und wenn ich in der Package. Json einen TypeModule Eintrag habe, dann interpretiert er mein komplettes Projekt als ES Modules Projekt und das kann ich flippen. Also das Node jetzt von Haus aus annimmt, dass alles ES Module sind. Ja, fertig. Interessant. Also finde ich auch irgendwie sinnvoll, weil ich denke, wir wollen ja auch eigentlich dahin, dass das alles irgendwie mal ES-Module sind. Da wollen wir, glaube ich, schon seit fünf Jahren oder sechs hin. Schaffen es aber nicht. Und jetzt kann man es zumindest so einstellen, dass alles irgendwie so interpretiert wird und man dann den Denns, den man jetzt aktuell machen muss, das irgendwie zu kombinieren. Naja, also kann man ja mal ausprobieren. Dann hat derjenige gesagt, ich soll das mal erklären. Ich habe auch keine Ahnung, wie genau da die Auflösung ist von den Sachen und das, was ich so gelesen habe, wenn ich mich mal ein bisschen damit auseinandergesetzt habe, auch eher so, es ist nicht besonders intuitiv, nicht sehr konsistent. Es funktioniert im kommend. Js anders als bei den S Modulen und Hut ab für Bann, die sich auf die Fahne geschrieben haben. Ich kann das jetzt beides kombinieren. Das ist wahrscheinlich einfach nur Glückssache, dass das irgendwie funktioniert. Vielleicht machen wir hier einen Aufruf an alle Hörer. Derjenige, der mir das erklären kann, warum es diesen Unterschied gibt und was ich davon habe, wenn ich das nutze oder nicht nutze, den lade ich Instant auf ein Meetup bei uns ein, dass er das mal für 50 Leute hier erklären kann. Ein Lightning Talk. Also so viel Zeit wie er braucht, bitte. Also wenn er es in zehn Minuten machen kann, gibt es ein Lightning Talk überhaupt kein Problem. Wenn er da eine Stunde drüber reden kann und die Leute damit fesselt und fasziniert, soll mir auch recht sein. Ja, das ist doch schon mal ein guter Aufruf, weil ich glaube, wir haben mit unserer Erklärung gerade noch niemanden gefesselt. Ja, ich finde es auch… Ja, genau. Also allein schon das Thema fesseln zu gestalten, das kann auch völlig hanebüchen sein, was er sagt. Aber allein wegen dem Unterhaltungsfaktor wäre es schon cool. Ja cool, Nord21. Dann auf was ich vorhin in der Vorgespräch gelernt habe, dass Node nur gerade Version als Long Term Support macht. Also Nord21 wird niemals LTS oder was? Hoffen wir nicht. Interessant. Ja, die 16, die 18, 20. Eigentlich ist es ziemlich egal, dass das jetzt alles… Warum macht man dann Major Release, wenn das dann kein LTS wird? Ja, das ist eine echt berechtigte Frage. Warum ist es denn überhaupt Major? Sie werden sich was dabei gedacht haben. Ja, irgendwas. Irgendwas Sinnvolles. Alright, Jan, Sebi, vielen Dank für eure Zeit. Fabi. Danke dir. Vielen Dank fürs Zuhören. Wie immer, Feedback an Podcastsit. Programmier. Bar oder nutzt diese Spotify Funktion, uns Feedback zu geben. Da gucken wir jetzt wieder öfter rein. Habe ich mir geschworen. Genau. Bis zur nächsten Woche. Ciao, tschau. Macht's gut. Bis dann. Tschüss. Ciao.

Verwandte Podcasts

  • News Asset 44

    News 44/24: JavaScript Features // Flutter Fork // GitHub Universe // Internet Archive // Neue Macs

  • News Asset 40

    News 40/24: OpenAI Dev Day und mehr // Wordpress und Open Source // Meta Connect 2024 // Deno 2.0

  • News Asset 28

    News 28/24: Ladybird // Cursor // Google I/O Connect // dotenvx // window.ai

  • Ai News 2023 24 (2)

    News AI #23: OpenAI-Drama // Google AI Overview // Golden Gate Claude // Perplexity Pages // Hugging Face FineWeb

  • News Asset 20

    News 20/24: GPT-4o // iOS 17.5 // Neue iPads // Bun 1.1.8 // Node.js 22

  • News Asset 18

    News 18/24: Wellness // TypeScript 5.5 // Github Copilot Workspace // Safari Preview // DMA // DOS4.0

  • 146 Ig Fb Dennis Oehme 13.59.59

    Deep Dive 145 – BuildKit mit Dennis Oehme

  • 18 Ai News

    News AI #18: Apple MM1 // Mistral // Grok // Inflection & Microsoft // Open Interpreter

  • 144 Insta Fb Ilja Bauer

    Deep Dive 144 – K3S mit Ilja Bauer

  • News Asset 12

    News 12/24: Million Lint // AstroDB // TailwindCSS 4 // Tauri 2 // Devin // Node.js: The Documentary

Feedback