Navigated to Code Migration mit AI, Docker Compose in Spring Boot, Primeagen - Transcript

Code Migration mit AI, Docker Compose in Spring Boot, Primeagen

Episode Transcript

Thomas Einwaller

Guten Abend.

Heute ist der Sonntag, der 27.

April 2025.

An den Mikrofonen wie gewohnt der André und der Tom.

Ah ja, und wir haben die Episode Nummer 287 vom Donautechradio.

Genau, wenn ich richtig klicke.

Ja, wir haben gerade, habe ich gerade noch gesehen, ein bisschen ein Follow-up zum letzten Mal gekriegt.

eigentlich haben wir das schon verlängert gekriegt.

Aber jetzt habe ich es bereits entdeckt.

Andre Steingreß

Mehr oder weniger nach der letzten Sendung oder so.

Thomas Einwaller

Genau.

Andre Steingreß

Ich muss sagen, ich schaue da auch nicht immer in den Slack, also ich habe ja den Slack Channel oder das Slack Fenster oder den Tab jetzt auch nicht offen.

Normalerweise wollen wir jetzt gerade nicht podcasten.

Thomas Einwaller

Genau, ist ein eigener Workspace, ein eigener Slack Workspace.

Andre Steingreß

Genau, so heißt es.

Thomas Einwaller

Und da schaue ich auch nicht Also gerade wenn man keine Notification kriegt, weil man mit Ad-Menschen oder sowas, dann kriegt man das natürlich direkt mit.

Aber untergeht es halt nicht, gell?

Genau.

Da können wir dann gleich noch drauf eingehen.

Es war in Britten, also, ich weiß nicht, habe ich mir den Foden verloren?

Eigentlich wollte ich noch gerade was anderes sagen.

Nein, gehen wir vielleicht gleich drauf ein.

Nochmal das gleiche, vom Thomas.

Thomas, langjähriger Hörer.

Ah nein, genau, jetzt weiß ich wieder, was ich sagen will.

Letztes Mal haben wir auch wieder in Wien, ich war die Woche in Wien zwei Tage, bei den Kollegen in Wien im Büro auch und dann ist mir auch einfach, der Michi ist vorbeigegangen und hat gesagt, ah, jetzt habe ich gerade die letzte Episode gehört von euch, und jetzt sehe ich die gerade schon, triefe die zufällig.

Und dann ist das oft witzig, weil du gesagt hast, ja, der Kommentar ist gleich einmal, damals nach der Episode die kommen auf den Thomas da.

Die einen haben halt quasi eine längere Podcast-Cue quasi und da bist du halt irgendwo, kommst du halt weiter hinten dran und bei den anderen geht der gleich direkt sofort am nächsten Tag dran und so.

Das ist immer witzig, weil dann immer wieder in die Wochen und nach der Folge so das Feedback ein bisschen halt eintrudelt, mal dort und mal da.

Es ist halt nicht alles sozusagen sofort immer natürlich.

Andre Steingreß

Ja, genau.

Jeder hocht halt dann, wenn er Zeit hat oder so.

Thomas Einwaller

Genau, genau.

Bei manchen ist das, also bei mir ist das sehr stark vom Autofahren abhängig, weil ich hauptsächlich vom Autofahren hohe.

Jetzt habe ich daheim ein bisschen Garten-Frühlingsarbeit und so gemacht.

Dann habe ich da auch wieder, oder Kärcher, da habe ich mir die ganze Terrassen und so.

Dann habe ich da auch Airports reingehaut, weil das hat gleichzeitig ein bisschen, wie soll ich sagen, dämmenden Effekt für den Lärm vom Kärcher.

Und gleich kann man halt ganz gut Podcast machen.

Genau, also da geht dann ein bisschen was weiter, sonst wenn ich nicht so viel unterwegs bin, dann komme ich nicht zum Podcast machen.

Ja, der Thomas hat eigentlich auf das Thema von dir einen Kommentar hinterlassen, was du geredet hast über die Motivationsschreiben bei den Bewerbungen.

Andre Steingreß

Genau, und KI.

Genau, was wir da so ein bisschen erzählt haben.

Und er hat halt geschrieben, ja, bei Erne ist es halt so, sie haben halt in seiner Firma, ich glaube, kann man ja sagen, er ist bei Mimo, habe ich gesehen, Frontend Lead und sie haben halt da quasi auf, kriegen halt da auf so Positionen dann halt teilweise bis zu 500 Bewerbungen.

Thomas Einwaller

Ja, und er sagt.

Andre Steingreß

Ist halt so ein bisschen anders als bei uns, sagen wir vom Scale her.

Und da meint er halt, dass im Grunde das Motivationsschreiben dann natürlich nur ein zusätzliches Filtermerkmal darstellt.

Also, dass du da vielleicht sogar eher dann in so Fälle das Motivationsschreiben einmal so durchliest, als wie es dann, dass du vorher einmal den Lebenslauf dann von den Bewerbern analysierst.

Weiß ich nicht.

Stell mir halt auch schwierig vor.

Also beim Motivationsschreiben jetzt einfach nur auf irgendwelche Stichwörter, die halt drinnen sein müssen.

So, ja, ich weiß es auch nicht.

Das ist halt da, keine Ahnung.

Kannst halt natürlich auch bei, kannst halt da natürlich bei guten Leuten jetzt irgendwie vorbeischauen.

Thomas Einwaller

Wahrscheinlich.

Andre Steingreß

Die halt da nicht wissen, welche Stichwörter man da jetzt gerade halt, die halt da gerade aktuell sind, die man da reingeben muss.

Also, ja, ist halt schwierig.

Also bei dem Scale stellen wir es generell schwierig vor.

Thomas Einwaller

Was sage ich genau, warum das so krass ist?

Ich meine, wie das Stöhe natürlich auch ausgeschrieben, ist wahrscheinlich international und remote.

Andre Steingreß

Ja.

Thomas Einwaller

Ja, da hast du natürlich dann, wo siehst du dann auch überall Post, was die Stöhe, weil natürlich, wenn du dann irgendwo sehr prominent irgendwo in irgendein Job-Developer-Dings drinnen bist, dann kann es schon sein, dass da natürlich sehr viel hochautomatisiert dann daherkommt, das stöhe ich mir vor, ja.

Andre Steingreß

Also bei uns als Teil war es so, wir haben ja jetzt bei MyFlexbox haben wir ja auch immer wieder Entwicklerstellen ausgeschrieben und wir haben halt die Erfahrung gemacht, wenn du halt gleich, also wir haben ja auch Entwickler, die nicht deutschsprachig sind, das heißt im Entwicklerteam reden wir ja prinzipiell einmal Englisch, obwohl wir ja ein Großteil eigentlich, ja eigentlich sogar Österreicher sind.

Thomas Einwaller

Mhm.

Aber nicht alle, weil das sind Englischsprachige.

Andre Steingreß

Nicht alle, es sind ein paar dabei, halt nicht.

Egal, um das geht es ja nicht, aber die Jobs haben wir halt auch lange Zeit quasi einfach Englischer ausgeschrieben gehabt und du merkst halt dann, schau, bei englischen Jobausschreibungen, du kriegst halt da extremst viel Bewerbungen, aus Ländern so, wie Indien und so.

Also, gerade die kommen halt auch oft dann über LinkedIn zum Beispiel daher, wenn du die Jobs halt dann auch da drinnen hast, weil im Grunde klicken die halt dann einfach auf, was die bewerben bei LinkedIn und dann bumm, zack, sind die halt schon da.

Thomas Einwaller

Okay, ja.

Andre Steingreß

Und wir haben es jetzt auch deswegen so gemacht, jetzt bei der aktuellen Stelle zum Beispiel, dass wir gesagt haben, wir schreiben es einmal primär in Deutsch aus und machen auch quasi Deutschkenntnis zumindest einmal zu einem Vorkriterium.

Thomas Einwaller

Du hast natürlich da schon gewisse Filter einfach einmal.

Andre Steingreß

Ja, genau, weil sonst wirklich kriegst du ja da wirklich viel daher, wo es, ja klar, du kannst dir dann über jeden Lebenslauf auch wieder von denen ausschauen und so, aber wir sind jetzt, es mag auch Firmen geben, für die passt das, wenn es da jetzt indische Programmierer oder so irgendwo sitzen haben, aber bei uns ist das Team jetzt einfach glaube ich, ich sage jetzt einmal zu klar dass du jetzt da, auffangst und von so weit weg dann Programmieren nur dazu holst wo es dann vielleicht sogar alles Englisch können, dann trotzdem ich sage einmal ein spezielles Englisch ist was auch eine Schwachbarriere sein kann etc.

Aber ja klar, also wenn du alles aufmachst die Schleusen da kommt dann viel daher Wenn du wirklich jeden ernst nimmst und so und puh.

Thomas Einwaller

Ja, an der Stelle, vielleicht kann ich das auch noch, und dann plagen wir es da gleich einmal, wenn wir jetzt die Mimo schon erwähnt haben.

Der Thomas hat jetzt vor kurzem da was postet.

Ich weiß nicht, das ist jetzt nur ein LinkedIn-Post.

Oder schauen wir, ob es das so irgendwo schon im Netz gibt.

Instance.

Ah, okay, da vor Vortagen hat, das postet ja auch mal in einem Artikel, das Wiener Startup Mimo fordert Loveable und Cursor und Co.

heraus.

Also die Mimo sind ja eigentlich eine Lernsoftware, sozusagen zum Programmieren lernen.

Ja, Lern-App.

Und was jetzt so, aber schon längerem dran feilen, das ist jetzt eben kein Geheimnis mehr, was jetzt dann auch rauszubringen bald, ist so eine AI-Tool zum entwickeln auch.

Und das releasen sie jetzt dann demnächst sozusagen.

Also der Thomas hat es jetzt so danach mal auf seinem LinkedIn angekündigt, da so gepostet.

Und da vor vier Tagen gibt es ja mal diesen Training Topics Artikel dazu.

Genau.

Und ja, Lovable zum Beispiel, haben wir das schon mal geteasert oder angesprochen bei uns im Podcast?

hast.

Kennst du das?

Hast du das schon mal?

Nein.

Bei uns ist das eher noch so, wie soll ich sagen, im PM-Team, die lieben das Lovable, laufen das Lovable sehr.

Also das ist ein ziemlich cooles Tool, um mit einem AI-Prompt halt schnell einmal einen Prototypen, würde ich es jetzt einmal nennen, eine App zu bauen.

In diversen modernen Web-Technologien halt so ziemlich instant.

Hast du relativ schnell mal ein cooles Web-UI.

Ist halt sehr geil, wenn du dir vorher mit einer halbwegs einer Analyse und so weiter ein schönes Prompt überlegst und vielleicht auch Mockups zeichnest grob und da reinballerst, dann kann dir das recht schnell einmal zu einem richtig gut aussehenden, modernen Web-UI führen, was dann auch eben nicht nur Mockup ist, sondern auch bedienbar, klickbar und so weiter ist.

Andre Steingreß

Also da kannst du zum Beispiel Figma.

Thomas Einwaller

Ja, genau.

Andre Steingreß

Das versteht es quasi auch importieren und so.

Aber das geht dann eher so in Richtung Web, oder?

Thomas Einwaller

Sehr stark in Web-Anwendungen einfach.

In modernen JavaScript-Framework gesprochen sozusagen.

Und ich weiß gar nicht genau, haben wir jetzt nie in der Tiefe noch bis jetzt angeschaut, wie du die, also so wie es ich verstehe, ist einfach das Ding dann auch auf lovable zu hosten und zu laufen zu lassen, wenn es fertig ist.

Gar nicht so gedacht, dass du den Source-Code dir dann herunterladenst und selber irgendwo betreibst.

so, dass du weitermachst quasi.

Genau, genau.

Andre Steingreß

Sondern wirklich nur so, Okay, so ein klickbarer Prototyp.

Thomas Einwaller

Ja, sie reden natürlich schon bei Love Apple von fertigen, kompletten Anlehnungen, die du baust damit.

Aber bis jetzt haben sie wir halt nur im Team bei uns in der Firma eingesetzt, um einmal zum Beispiel ein neues Feature, was wir dann selber bauen, uns vorher mal zu brainstormen und vorschlagen lassen, wie es ausschauen könnte.

Und auch, dass man schon mal durchklicken kann und sagen kann, ah ja, so fühlt sich das, so könnte man das machen, so und so.

Andre Steingreß

Ja, manche, manchmal braucht man das oder manche Positionen, Rollen brauchen das teilweise, dass das quasi wirklich sehen.

Thomas Einwaller

Genau.

Andre Steingreß

Da reicht es nicht, wenn du es so abstrakt oder auch nicht einmal skizzierst irgendwo oder so.

Ich meine, Figma ist ja meistens schon mal eine super Sache, muss man sagen.

Thomas Einwaller

Aber Figma ist halt auch wieder, also wir haben sehr viel ja immer schon mit Paper-Prototypes quasi und so Mockups und so hin und her verschiedene Tools früher schon gemacht auch.

Das wird auch eben im Product-Team und so weiter gerne noch gemacht auch und eben für das Design und die Überlegung von, was brauche ich denn alles, wie sollten diese Screens ausschauen für dieses neue Feature und so.

Aber das Laufend ist halt genau für diese Arbeit dann nochmal einen Schritt, erleichtert, weil weil du halt wirklich dann schon ein interaktives Ergebnis am Ende hast.

Und ein Figma, weil Figma hat auch eine gewisse Einstiegshürde, muss man auch kennen, ob da was Vernünftiges aussieht zu bringen.

Andre Steingreß

Ja, klar.

Das ist ja dann schon im Grunde eher irgendein Designer oder so, der dann da sitzt oder der da schon seine Komponenten-Library oder so hat, für die bestehenden Komponenten und das dann zusammengelegt.

Thomas Einwaller

Ja, genau.

Ja, und sowas in der Art hat jetzt die Mimo auch gebaut und wird es demnächst einmal releasen, dann bin ich schon gespannt.

Andre Steingreß

Ah, okay.

Ja, sehr cool.

Ja, danke fürs Feedback auf jeden Fall.

Interessantes Thema.

Und unser Thema war ja dann auch, ob das AI-generierte Motivationsschreiben dann eigentlich schon ein Red Flag ist, oder nicht?

Und so wie ich ihn jetzt verstanden habe, so beim Feedback, ist es dann irgendwie auch ein Red Flag bei einer, weil sie dem eben mehr Bedeutung dann zuweisen, als wie es halt nur ein Text, der halt da irgendwie beigeliegt wird.

Thomas Einwaller

Ja, das ist jetzt nicht so ganz klar, außer zuhören aus dem, also er sagt ja, bei einem sind leider fast 80 Leute, also okay, nein, schon, bezieht es auf die Bewerbung, auf das Bewerbmotive zu schreiben, genau, ja.

Andre Steingreß

Ist das halt viel eher generiert?

Thomas Einwaller

Ja, genau.

Andre Steingreß

Also, ich weiß nicht, ich würde da, glaube ich, jedem nur den Tipp, oder ich würde es, wenn ich mich irgendwo bewerbe, würde es halt so machen, dass ich mir halt schaue, das überlege.

Aber, ja, genau.

Kommt halt dann immer darauf, ob die, also, wie gesagt, wir haben ja voriges Mal auch drüber geredet, ob es dann auch die Gegenseiten überhaupt interessiert ist und ob sich die das überhaupt auch aufmerksam halt dann durchlesen.

Ich habe halt oft das Gefühl, dass das halt auch, ja, weiß ich nicht, gerade wo so die Schandgänge halt eher wirklich auf den Lebenslauf so in die Richtung Motivation schreiben, kann ja jeder schreiben, was er will.

Also ja, es gibt es so hin und her irgendwie.

Genau.

Thomas Einwaller

Ja.

So weit.

Gut, da sind wir jetzt schon wieder voll mit ein Thema drinnen.

Aber was haben wir?

Ich meine, Ich kann da schon auch nochmal, vielleicht wäre es mich gerade auch sehr beschäftigt, das Thema in den letzten Wochen habe ich auch wieder wohl gerade, weil wir haben heute glaube ich eine relativ starke developmentlastige Episode von den Themen her, was wir auf der Listen haben.

Andre Steingreß

Schauen wir mal.

Thomas Einwaller

Insofern kann ich da gleich ein bisschen anschließen, was ich jetzt, wo ich einfach extrem gute Fragen in den letzten Wochen wieder gemacht habe, ist einfach jetzt bei der Benutzung von AI-Tools eben mit Cursor.

Beim quasi wir sind ja gerade schon im längeren, haben wir den Schluss gefasst bei uns, den, Fehler auszumerzen, den wir vor ein paar Jahren gemacht haben, dass wir quasi groovy bei uns in die Backend-Codebase eingehört haben, den loszuwerden sozusagen und den durch Java ersetzen sozusagen.

Genau, den durch Java ersetzen und rein, weil es einfach mit der Zeit jetzt echt sich auserkristallisiert hat einfach, dass gerade wenn es jetzt am Anfangs dann Refactoring und Maintenance und so weiter zu machen immer wieder dann in irgendwelche Sachen endelaufst, das du erst dann zu Runtime indexst in Groovy und das ist einfach sehr mühsam, waren es mittlerweile halt.

Und das haben wir eigentlich auch schon vor längeren dem Schluss gefasst, keine Groovy mehr und jetzt sind wir da wirklich gerade dabei.

Wir haben noch sehr viele Tests in Spock geschrieben mit Groovy auch und diese auch alle jetzt dann irgendwann einmal nach Java zu bringen.

Und da sind wir jetzt, sage ich mal, 95% durch und da ist sehr viel in den letzten Wochen auch noch passiert.

Einfach wieder, und da muss man sagen, ist ja so ein klassisches Ding, wo man merkt, okay, da ist die AI halt jetzt super gut auch eben gerade auf bestehenden Code den zu verstehen und in eine andere Code-Art umzuwandeln.

Weil es ist eh ganz klar, weil Imprompt kann ich das gar nicht so gut beschreiben, quasi wie es einfach schon dasteht im Code.

Den Code kann man lesen und verstehen, Groovy, und dann sage ich halt, okay, hätte ich das jetzt gerne ohne Groovy, ohne Spock mit JUnit 5 und Assert J und modernen Java 21 Language Features, mach.

Ja, und da kann ich auch noch so einen Tipp jetzt geben, das hat jetzt sehr gut funktioniert bei so kleinen bis mittleren großen Tests, aber wenn man natürlich dann irgendwann Tests hat, die 5000 Zeilen lang sind oder so, dann ist ja irgendwann irgendwie leichter mit überfordert auch.

Andre Steingreß

Also wie ist das jetzt in, also ich habe jetzt gehört, weil es nicht durch das, dass ja Tests, Okay, also wir haben jetzt quasi bei MyFlexbox verwenden wir aktuell so AI-Tools noch nicht, weil das wird noch geprüft und blablabla.

Aber wie ist es jetzt bei Cursor?

Da hast du quasi das Git-Repo einfach ausgecheckt, oder?

ist da quasi der gesamte Botan...

Thomas Einwaller

Genau, also ich habe es jetzt immer lokal, sodass ich ja eh jetzt immer diesen Worktree mit Git und so habe und dann habe ich halt eigentlich auch immer einen Worktree, mit dem ich halt, wo ich das ganz normale Backend-Report zum Beispiel halt dann habe in einem Worktree und das mache ich dann mit Cursor auf.

Parallel eigentlich meistens mit IntelliJ und Cursor halt, weil die IntelliJ für mich halt auch für die ganze Java-Tooling, für das Ausführen von den Tests und für die Bugs und so weiter halt dann einfach der Way-to-Go ist immer noch.

Und dann hat sich aber, kann man auch Gleiter einfließen lassen, mischen wir es ein bisschen.

Ihr hört es bei IntelliJ 2025 eins auskommen.

Die Tage sozusagen, vor 10 Tagen oder was.

Und da muss man sagen, haben sie auch wieder einen riesen Schritt gemacht im AI-Bereich, weil sie hier sind auch, ich glaube irgendwie ihren alten AI, die ihn komplett über Bord geschmissen haben.

Und hier sind auch auf Cloud, Sonnet, 3.7 und so weiter sitzen.

Andre Steingreß

Ich glaube, die waren ja vorher irgendwie so habe ich so im Hinterkopf, eher Google-mäßig unterwegs, oder?

Thomas Einwaller

Weiß es nicht, aber irgendwie die alte AI.

So richtig durchstanden ist es nicht.

Andre Steingreß

Gell?

Thomas Einwaller

Nein, so richtig, ja.

Ich habe mal eine Zeit, letztes Jahr das Trial gemacht und dann wieder kündigt quasi, oder auch zweitmal.

Andre Steingreß

Aber es ist schon noch eine kostenpflichtige Geschichte, oder?

Also du musst da quasi diesen AI-Assistent jetzt trotzdem noch als Abo dazunehmen.

Thomas Einwaller

Ja, aber es gibt jetzt verschiedene, ich habe es nicht so ganz genau nachgegeben, verschiedene Layer dieser AI-Subscription.

Es gibt auch eine Free-Variante.

Und je nachdem, welche Layer du da nimmst, ich meine am Anfang jetzt kannst du gleich mal 30 Tage Free Trial wieder machen, das habe ich jetzt geklickt und mache ich auch gerade, und das muss man sagen, kommt wieder echt sehr nach in Richtung Cursor zu, weil du halt auch da jetzt direkt im Code markieren kannst und sagen kannst, eben Richtung Cloud Sonnet 3.7 das schicken und da irgendein Prompt dazugeben, ja.

Was da auch geht, ist jetzt quasi so ein Pre-Prompt machen, das habe ich jetzt bei Cursor und bei IntelliJ hat einfach mal beides gleich gemacht und dann kommt auch echt ziemlich das gleiche Ergebnis halt raus, wo man halt quasi, was dir eben genau das ist, was ich vorher gesagt habe.

Ja, verwende kein Spock, verwende kein Groovy, verwende stattdessen SRJ, verwende JUnit 5, verwende Java 121 Language Features, Wandel, jetzt kann ich mal kurz reinschauen, wie der Pre-Prompt heißt, den was halt einfach überall mitschickt, damit halt sozusagen so eine Basis den kriege.

Warte mal, eine Prompt-Library da.

Die Basis-Chat-Instructions, was ich da reingeben habe.

Also du kannst da generell sagen, für Basis, was du bei jedem Chat mitschickst, dann kannst du sagen, für Generate-Unit-Tests, Java, Kotlin, JavaScript, was da als Basis-Prompt mitgeben werden soll.

Du kannst sagen, für Documentation eigene Pre-Prompts, für Commit-Actions und so weiter halt.

Und das, wenn sie da einmal reingehausturten, Dann schickt er das, wie gesagt, bei jedem deiner anderen Prompts halt einfach vorher mit und dann brauchst du eigentlich immer nur, du sagst zum Beispiel mein Fall Convert oder sowas, Convert to Java und dann führt er das alle mit den gleichen Basisregeln halt einfach aus.

Und im Mainfall jetzt zum Beispiel, jetzt schaue ich gerade, wo habe ich denn das da drinnen stehen?

Verdammt, fand ich das gerade nicht.

Aus dem, ach da, genau.

Get rid of all Groovy code in this project, use modern language research of Java 120 and JUnit 5 in their new code base, use assert J for assertion and Mokito for mocking, use display name annotation to convert Groovy method names from SPOC specifications to simpler Java method names without underscores.

Alle diese Sachen parametrisieren halt da vorher eine.

Convert SPOC parameterized tests to JUnit 5 parameterized tests.

Bla, bla, bla.

Ja, und genau, Convert Groovy Constructor Calls to Named Parameters, to Java Code using Getters and Setters, so Sachen halt.

Andre Steingreß

Okay, das sind jetzt alles diese Pre-Prompts quasi.

Thomas Einwaller

Genau, das habe ich auch mal in diesem Basis-Prompte reingeben.

Andre Steingreß

Das hängt da halt immer dazu quasi.

Thomas Einwaller

Genau, genau.

Und damit, das hat sich jetzt ein bisschen so, das habe ich dann immer wieder gemerkt, wenn er mal was konvertiert hat, was der, dass das noch abgeht, dass er das jetzt nie gemacht hat, dann habe ich halt das dann auch zugeschrieben.

Und dann ist es immer mehr und mehr geworden und irgendwann bist du dann auf dem, was du ungefähr haben willst.

Und da muss ich sagen, wenn du zum Beispiel immer so eine Testmethode nach der anderen nimmst und wenn die ruhig einmal 50 Zeilen oder 100 Zeilen lang ist, das funktioniert perfekt mit dem.

Da geht es einem noch ein bisschen ab, dass er halt nicht den ganzen Kontext deiner Dinge versteht, dass er da oft nicht weiß, hat die Klasse jetzt genau den Ghetto oder hast du die Property, ja, er schaut sich nicht an den ganzen Codebase an, schaut sich an, kompiliert das am Ende, Aber er macht das schon sehr, sehr gut.

Und ein Problem hat sich jetzt noch ausgestellt, ist, wenn du vorher, am Anfang habe ich das sehr lange gemacht für, keine Ahnung, bis zu 500 oder 1000 Zeilen, vielleicht sogar 1500 Zeilen Testcases Länge, habe ich einfach gesagt, convert die ganze Klasse.

Und dann dauert es ein paar Sekunden und dann konvertiert er das, aber man hat dann irgendwann gemerkt, der Marvin, mein Kollege, ist das sehr gut beim Pool-Request-View, der hat sich dann in einen Div-Checker die Sachen immer reingeladen, weil es ist ja so schwer, wenn du von Groovy nach Java konvertierst, dass die erstmal benendete das File um und im Pool-Request-6 ist echt schwierig, was da sich dann wirklich geändert hat.

Da fällt dann oft auf, dass dann irgendwann doch einmal passiert, dass ein Desk es einfach auslässt, oder oder zwei oder drei.

Und vielleicht einmal an der Tour fantasiert auch.

Und das kannst du eigentlich nur verhindern und so habe ich jetzt die letzten auch gemacht, indem du wirklich halt einmal zwei, drei Methoden, zwei, drei Testcases markierst du einfach in der Testklasse und dann sagst, kommentiert die mal.

Und dann die Nächsten.

So dass ich immer schaue, okay, aus den drei, was ich markiert habe, werden auch wieder drei.

Ist ein bisschen aufwendiger und mühsamer, aber es ist auf jeden Fall viel weniger aufwendig, wenn ich jetzt wirklich händisch die alle umschreibe.

Ja, das ist klar.

Und so will ich mich halt da jetzt die letzten Wochen durch diese ganze alte Groovy-Codebase und merze quasi meinen eigenen Architekturentscheidungsfehler von damals aus und bin froh jetzt, das haben wir dann in absehbarer Zeit geschafft und haben wir nur noch eine Java-Codebase eigentlich getan.

Das wird schön.

Andre Steingreß

Also man hat eigentlich auf der Jetprint-Seite, ich werde das Handy schon ausgeben, hat noch eigentlich einen guten Überblick über das Jetprint-AI-Assistent.

Da sieht man nämlich auch, dass man als LLMs, kannst du da jetzt alle möglichen Modelle ausfüllen.

Also es ist nicht nur das Cloud dabei, sondern auch JetGPT, alles mögliche, Gemini.

Ich weiß jetzt nicht, muss dann einen eigenen Cloud-Account dahinter liegen?

Nein, das nicht, oder wie?

Thomas Einwaller

Das ist bei Cursor ja auch so interessant.

Du hast ja das gleiche Modell eigentlich.

Du kannst ja dazwischen sehr vielen Modellen wählen, die er im Hintergrund verwendet.

Und du kannst dann dort deine eigene API-Keys hinterlegen, jetzt zum Beispiel für das Anthropic und für OpenAI und so weiter.

Und er weist dich aber explizit darauf hin, in die Settings-Tasche vom Cursor, dass das Hinterlegen eines API-Keys für Anthropic nicht notwendig ist, wenn du zum Beispiel die Cursor pro Subscription hast.

Da ist das inklusive, aber du könntest jetzt wahrscheinlich die Cursor free nehmen und dafür hast du einen Anthropic-Account und hast dort einen API-Key, dann wirst du halt quasi über den API-Key dann wieder pro Token-Salt abgerechnet.

Du musst halt du dann anschauen, ob da die 20 Euro Cursor-Subscription günstiger kommen, als wie die API-Usage pro Monat bei Anthropic.

Andre Steingreß

Ja, genau.

Thomas Einwaller

Das Selbe wird es da wahrscheinlich auch sein bei JetBrains.

Also du kannst dann wahrscheinlich auch eine Tropic oder OpenEye Cloud Key hinterlegen und sagen, ich rechne das über den Token per Token halt ab.

Oder nehme ich irgendeine zusätzliche JetBrains Subscription.

Andre Steingreß

Krass, die haben auch in einer Beta drinnen quasi diese MCP-Unterstützung.

Model Context Protocols, kannst Server hinterlegen quasi.

Okay, wild.

Ich meine, was mir auf jeden Fall schon aufgefunden ist, aber eh schon vor einiger Zeit, ich glaube, das habe ich dann kurz in meinem Podcast erwähnt, ist, dass eben auch die Code Completion jetzt auch schon mit AI hinterfüttert ist.

Weil ich habe ja, wo es mir halt immer auffällt, dass ich früher einfach einige Code-Snippets gehabt von so Code-Zeilen, die halt immer wieder brauchst, zum Beispiel, keine Ahnung, Criteria Query, das ist so ein Klassiker.

Weißt du, da hast du halt ein paar Objekte, die du halt brauchst, du hast halt den Routobjekt, der Query und bla bla bla, was du alles brauchst.

Und in Wirklichkeit, jetzt ist es halt schon so, wenn du jetzt zum Tippen halt anfängst, mit Criteria Query und dann schlagt du dir eigentlich eh schon die Codezeilen vor.

Das kommt aber aus der AI.

Oder ich mache oft gern für so Precondition-Evaluierung von Methoden-Argumenten verwende ich halt gerne, dass du das Validate, so Validate not null oder Validate not blank, dass du halt die eingehenden Argumente validierst.

Und da habe ich halt früher auch immer so Snippets gehabt, die ich halt über Tastaturkürzel aufgerufen habe.

Das kannst du super machen im IntelliJ.

Zum Beispiel VNN für Validate not null, Und dann hat er mir gleich die Zeile so generiert und dann hast du einen Platz weiter verwenden können, wo du dann nur mit den Argumentnamen oder wo du den Argumentnamen halt einsetzen lassen hast können.

Das brauche ich jetzt eigentlich alles nicht mehr, weil sobald ich Validate halt hinschreibe, passt das im Grunde dann schon.

Thomas Einwaller

Ja.

Also hast du jetzt auch gemerkt, wirst du auf die 20.5?

Andre Steingreß

Nein, das haben sie vorher schon drin gehabt.

Nein, das ist mir, ich weiß nicht in welcher Version, aber irgendwann denken wir auch, weil sie beim Tippen sind, denken, was ist denn da mit der Code Completion los, der generiert man ja auch, oder auch wenn du Testfälle schreibst und so, wenn du zum Beispiel, keine Ahnung, du legst irgendein Testobjekt da und dann rufst irgendeine Methode drauf auf und dann schaust du halt, ob die Properties zum Beispiel alle gleich sind und dann hast du halt so Assert, Dat, Kaskaden, ja, First Name is equal to First Name und wenn du das so nach der Reihe hinschreibst, dann schlägt er da quasi schon nach der Reihe halt dann auch die Properties vor, die unterschiedlichen.

Thomas Einwaller

Okay, ja.

Andre Steingreß

Also, und da haben wir schon gedacht, ah, okay, habe ich vielleicht AI-Assistent nur aktiv oder so, habe ich aber nicht.

Dann war es relativ klar, dass halt für diese Code-Completion-Geschichten jetzt mittlerweile auch schon AI einsetzen und das ist aber was, was quasi gratis sozusagen, also innerhalb der normalen Lizenz halt vom IntelliShare anscheinend dabei ist.

Thomas Einwaller

Jetzt habe ich das gerade noch herausgefunden bei mir.

Das ist quasi diese Prompt-Library, die du da bei dem AI-System konfigurierst.

Die ist sozusagen, projektspezifisch.

Das heißt, das hat auch deswegen bei mir die Settings von dem einen, was ich gerade offen gehabt habe, nicht drin gehabt.

Das habe ich in dem einen Worktree quasi gemacht.

Also das macht man sich sozusagen pro Projekt, diese Library.

Andre Steingreß

Genau.

Und Pricing ist ja genauso, wie du es gesagt hast.

Es gibt quasi den Free-Tier.

Und dann das AI Pro, das ist halt dann 10 Euro.

Dann gibt es da mehrere so Stufen.

Thomas Einwaller

Achso, included in der All-Products-Pack.

Okay, das ist aber dabei, wenn du dann alle Developer-Porten hast.

Andre Steingreß

Ja, vielleicht habt ihr es sogar dann dabei.

Thomas Einwaller

Und dann ist das Ultimate, glaube es noch.

Offers even more Cloud-Credits.

Okay, da sind dann schon unterschiedliche Credit-Anzahlung dabei.

Das ist bei Analyze ganz klar.

Andre Steingreß

Aber Sie sagen ja, dass quasi dieser TIE Source Code so generell eigentlich nirgendwo dann als Trainingsdaten weiterverwendet wird.

Thomas Einwaller

Genau, als Trainingsdaten sowieso nicht.

Die Frage ist eben nur, wie viel muss er für eine Prompt Evaluation nach oben schicken sozusagen.

Andre Steingreß

Genau, aber auch da schreiben Sie ja im Grunde auch, ja okay, Sie schicken es halt, aber es wird halt dann danach nirgendwo mehr gespeichert.

Thomas Einwaller

Sozusagen, ja.

Andre Steingreß

Genau, also die sind sich schon bewusst, weil ich meine, dass das ein Thema ist.

Thomas Einwaller

Ja.

Andre Steingreß

Dass das natürlich viel das Thema ist für andere Kunden.

Ja, genau.

Ja, im Grunde eh, weil wieso sollte man halt dann mehrere Ideen halt verwenden, nur, Also wenn ich eh schon in JetBrains generell mitbewege, muss ich dann halt wirklich ein Cursor dann halt noch offen haben.

Man hat halt da oben.

Thomas Einwaller

Soll ich gerade sehen, so einen AI-Button quasi in der IDE, JetBrains AI.

Und wenn man da draufklickt, sieht man so einen, wo man gerade im Status halt ist.

Man sieht da mein Quota, ich habe da schon einiges meines Quotas aufgebraucht mit den ganzen Dingen.

Aber das funktioniert echt ganz geil jetzt sozusagen ich habe dann zwischendurch mir was gebastelt und hätte quasi die Entropic API einfach mal wieder ich habe mit Cursor ein Python-Skript gebaut, was quasi die Entropic Sonnet 3.7 API aufruft und einfach dort das was im Clipboard ist hinschickt und diese Response wieder ins Clipboard kopiert, Und das habe ich mir als Action quasi, als Run-Action oben in IntelliJ hingelegt, sodass ich quasi, wenn ich einen Test-Case markiert habe, was der einfach nur das Klicken, also kopiert habe in der Zwischenablage, nur das Klicken habe müssen und am Ende habe ich in der Zwischenablage den konvertierten Test-Case gehabt.

So habe ich mir inzwischen ein bisschen geholfen.

Jetzt brauche ich das wieder nicht mehr, weil jetzt ist das quasi in IntelliJ einfach so mit der Markierung möglich und dann sagen, convert.

Und ich glaube, wie du eben vorhin gesagt hast, das ist so, jetzt sind wir jetzt in so einer Phase, wo halt jeder so gerade ein bisschen halt noch rausfindet von diesen Herstellern und Firmen, was da so, wie immer mit dem, was man braucht, was die Entwickler so wollen, aber am Ende wird es so hinlaufen, dass du halt einfach dann dein Backend-Subscription für irgendein so ein AI-Ding halt hast und das klingt halt dann in dein Favorite-Ide oder was halt ein.

So zeichnen sich es ja jetzt ab da dann auch und Und ich fühle mich natürlich schon immer noch in IntelliJ als Entwicklungsumgebung wohl, als wie das jetzt mit Visual Studio Code was mache im Java-Bereich.

Obwohl das auch auf der Devox aufgefallen ist, dass einige schon so unterwegs sind Java-Developer mit Visual Studio Code.

Aber ich finde es jetzt echt wieder sehr cool, dass ich da jetzt die Möglichkeit habe, eigentlich ziemlich ähnlich zu den Funktionen vom Cursor auch im IntelliJ zu arbeiten.

Andre Steingreß

Ja.

Ja, schauen wir mal.

Ich glaube, so vom Start her war es ein bisschen rupig, weil ich habe gleich am Anfang den AI Assistant mal abonniert gehabt, eben um diese 10 Dollar.

Thomas Einwaller

Genau.

Andre Steingreß

Aber da war es halt teilweise von der Qualität, ich glaube, in meinem Podcast darüber geredet, weit nicht so wie GitHub Copilot.

Thomas Einwaller

Genau.

Andre Steingreß

Ja, weil GitHub Copilot, da habe ich einfach schon gemerkt, der lernt einfach, wie bestimmte Sachen im Projekt gemacht werden und so.

Also auch was die komplett projektspezifische Klassen, wie die verwendet werden, also die gibt es halt sonst nicht.

Normalerweise glaube ich in der Form hat der aber dann auch im Laufe der Zeit mir schon Code generiert dafür, für die Verwendung dieser Klassen.

Also das war schon richtig gut und sowas hat AI Assistant nicht gebraucht.

Oder auch zum Beispiel so, Testfallgenerierung, da habe ich nicht einmal Ergebnis gehabt, wie ich das letzte Mal probiert habe.

Also das war noch sehr mit heißer Nadel gestrickt oder weiß ich nicht, waren die Modelle noch nicht mächtig genug oder so?

Thomas Einwaller

Ganz genau das weiß ich auch.

Bei mir habe ich bald einmal gesehen, die Subscription für AI, Jetbrands brauche ich nicht.

Ich bleibe beim Copilot.

Und jetzt ist es aber leider im Moment, muss ich sagen, wieder so, dass ich einen Co-Pilot fast gar nicht mehr brauche im Moment, weil das meiste, was ich irgendwie AI-mäßig mache, einfach entweder über Cursor mache oder eben jetzt mit dem neuen JetBrains AI wieder mit Sonnet-37.

Das ist einfach so ein Race, was sich da alle paar Monate oder so irgendwie verschirbt.

Es kann auch sein, dass der Co-Pilot in der Zwischenzeit auch wieder einiges gemacht hat.

Er hat jetzt ja auch diesen Agent-Mode im IntelliJ, diesen Edit-Mode nennen sie es, wo er da wirklich Files erzeugt und ändert und so weiter, nicht nur jetzt einen Chat hat, aber er ist trotzdem jetzt gefühlt wieder hinterher noch im Moment für mich.

Andre Steingreß

Ich finde auch, ich habe auch den Cloud, die macOS-Version einfach installiert, mit dem Prompt, und ich finde das, gerade zum Source-Code generieren und so, funktioniert das echt gut einfach, das Modell für einen.

Also, war das nach der letzten Episode oder?

Thomas Einwaller

Ja, da hast man dann mal was geschickt dann im Chat.

Andre Steingreß

Genau, habe ich halt so Shell-Scripts weitergeneriert, mit Zugriff auf die Jira-API halt.

Und da kannst du echt wirklich quasi in mehr oder wenigen so Pair-Programming halt hergehen und sagen dann, was du generieren wir mal da das Skript, was quasi in der Git-Historie durchgeht und sich dann den Status, abfragt vom Jira und halt dann alle Tickets zum Beispiel auf irgendeinen Status setzt, ist ja wurscht jetzt.

Und der macht das dann und dann ist man halt aufgefunden, naja, okay, jetzt hat er da 17 Mal die Jira-Uhrl halt drinnen gehabt.

Dann sage ich halt, hey, die Jira-Uhrl, bitte tu das einmal ausfaktorisieren halt in einer Variable, dass man das halt zentral ändern kann.

Ja, bumm, ja, okay, ich überarbeite das Skript, ja, und mach da halt dann, weißt du.

Oder so ein paar Aufrufe waren quasi in der alten API noch, weil Jira, da gibt es ja ein paar API-Versionen, über das haben wir geredet.

Und dann sage ich, bitte nimm V3 her.

Dann haben wir gedacht, naja, okay, da würde ich halt jetzt irgendwas machen.

Aber der hat das dann echt quasi mit einem gültigen V3-Aufruf halt dann ersetzt.

Wo du halt dann nur fragst, okay, wieso nimm das halt nicht gleich so, aber ja, aber wurscht.

Thomas Einwaller

War das Programm, was du da brauchst aus der Java-Anwendung?

Andre Steingreß

Nein, es war ein Shell-Skript.

Da funktioniert es nur mehr besser.

Thomas Einwaller

Nur besser, finde ich, ja.

Andre Steingreß

Ja, voll.

Also das funktioniert schon, aber man müsste sich ja wahrscheinlich, wie du sagst, die geben sich da alle so Rays, ich habe ja gar keinen Überblick mehr da.

Thomas Einwaller

Also man probiert jetzt auch nicht jeden Tag, für mich jetzt als CTO, weißt du, weil du gerade die Developer, haben wir vor ein paar Monaten dann einmal GitHub Co-Pilot, sollst du die Wiese ausgeben, nimmst das alle her im IntelliJ und so weiter, naja, du musst ja da ständig eigentlich dranbleiben, weißt du, du musst eigentlich, ich meine für mich selber jetzt, okay, ich habe jetzt sehr viel gearbeitet, auch mit dem natürlich selber, weil es mir für mein Work, für mein Maintenance-Work und so weiter optimal ist auch.

Und auch für die Shell-Skripts und das ganze Zeug.

Aber ja, natürlich kannst du ja, jede Woche eine gewisse Zeit reservieren, um immer am Laufenden zu bleiben, nur eben, was die Woche wieder an neue AI-Modelle und so weiter tun hat, die optimal für die und die Sachen sind.

Andre Steingreß

Ja.

Thomas Einwaller

Es ist brutal, gerade da dran zu bleiben.

Aber ja, spannende Sache auf jeden Fall.

Ich muss jetzt selber ein bisschen, zum Glück habe ich die Zeit oder die Motivation, mit Daxa extrem da dran zu bleiben, weil wenn ich jetzt zum Beispiel mein ATP-Podcast rauskomme, die sind ja alle so grumpy und das Vibe-Calling, was ist denn das für Scheiß und bla bla bla, weißt du?

Das finde ich wieder das andere Extrem, was auch nicht gut ist.

Andre Steingreß

Die müssen halt auch mit Xcode programmieren.

Thomas Einwaller

Ja.

Andre Steingreß

Da ist sowieso eine andere Welt.

Thomas Einwaller

Das ist eine andere Welt auch, ja.

Wir haben ja auch Xcode-Entwickler, ich weiß nicht, wir fühlen sich vielleicht ein bisschen benachteiligt, aber nein, ich habe auch schon ein Xcode-Projekt mit Cursor im Prinzip gemacht, genau gleich, ich mache halt das Projekt im Cursor auf und im Xcode und dann sprammt ihr halt im Cursor, was ich haben will, und im Xcode führst du halt dann aus.

Das geht auch.

Andre Steingreß

Ich habe auch immer wieder mal Pizze und so und da hat auch der Timo Hetzl, der Host, erzählt halt auch, dass er halt damit oder hat auch erzählt, dass er mit Cursor auch schon ein paar so kleine Apps einfach quasi von Null weg halt einfach geschrieben hat.

Aber nur halt so für den Eigenbedarf halt, aber wo er sagt, okay, da gibt es halt nichts im App Store.

Und dann mit Cursor, der generiert es halt einmal so, sag ich mal, 90 Prozent oder irgendwie.

Und dann arbeitest du halt vielleicht sogar mit der AI noch ein paar Mal drüber und dann bist du schon bei 95 Prozent und das reicht wahrscheinlich dir nicht für den Eigenbedarf.

Weißt du, für das Problem, für das Kleine, was du dann irgendwie lösen magst.

Also klar, ist das jetzt nichts, was du jetzt wahrscheinlich dann gleich verkaufst oder weißt du so, in der Qualität halt und da hast du dann keine Tests oder irgendwas und wahrscheinlich ist er teilweise nicht so performant oder sonst irgendwas gelöst, aber ist ja wurscht.

Darum taugt mir der Einsatz eben bei so, finde ich es halt auch prädestiniert für so Scripting-Geschichten, weil du hast ja da nicht so extrem hohe Anforderungen in Richtung Security oder Richtung Performance oder musst da aufpassen, weiß ich nicht, kundendatenmäßig irgendwas.

Ja, weil das sind halt Skripte, die laufen halt lokal oder von mir aus nur in der Pipeline.

Thomas Einwaller

Und es ist einfach wirklich so geil, weil du halt einfach deine eigenen Werkzeuge herstößt halt.

Vielen Dank.

Andre Steingreß

Ja, ja, voll.

Thomas Einwaller

Ja, genau.

Wie wenn du als, keine Ahnung, als Tischler der eigene, für dich, deine Feile und deinen Hammer und alles, was du genau für dich abgestimmt brauchst, der dir einfach optimal herstößt.

Das ist einfach, du kannst so schnell dir noch irgendein Werkzeug bauen, mit dem du noch effizienter, noch besser die Arbeiten machen kannst, die du die ganze Zeit machen musst halt einfach.

Das finde ich schon sehr cool.

Andre Steingreß

Das hast du bis jetzt auch machen können.

Thomas Einwaller

Ja, aber es war immer eine Hürde.

Andre Steingreß

Das war halt auch zusammen Google-Lai.

Thomas Einwaller

Genau.

Andre Steingreß

In Wirklichkeit halt.

Thomas Einwaller

Das macht er nicht dauern täglich.

Aber dann läuft er wieder irgendein Werkzeug ab und du denkst, das wäre schon cool, wenn du das hättest, dass man genau diese Aufgabe, diese zehn Schritte, die du da immer ausführen musst, erledigt.

Und dann denkt man sich oft, ah, Gileck, aber wie Schellskript, boah, da bin ich jetzt auch nicht so fit.

Dann muss ich dann das noch nachkugeln und das noch.

Das ist jetzt einfach nicht mehr zum Überlegen.

Ja, zack, Körse aufgerissen und da mach einmal, bitte.

Das ist so geil.

Andre Steingreß

Ja, voll.

Ich meine, diese Schnelligkeit der Entwicklung ist halt dann schon irgendwo dann ein Problem, auch jetzt in dem Bereich, weil im Grunde ist es dann so, wie ich gesagt habe, auch so jetzt da bei uns, ja, wie soll ich sagen, jetzt in der Firma, also du kannst dich nicht an jedem irgendwie AI-Agent oder Prompt oder so verwenden lassen, sondern im Grunde musst du halt dann auch anschauen, okay, wie schaut das rechtlich aus, was ist da mit der DSGVO, bla bla bla, wo hat denn der seine Server und hin und her und wird da was übertragen und ja.

Thomas Einwaller

So.

Andre Steingreß

Und ja, ist halt dann schwierig, wenn es dann mal sagt, okay, jetzt weiß ich nicht, die eine Woche ist JetGPT geil, dann kommt Cloud daher, dann weiß ich nicht, morgen ist wieder irgendwas anderes.

Thomas Einwaller

Das ist halt immer die Frage, bei uns ist das relativ simpel, jetzt, es gibt halt die Timer-Kundendaten, ja, die liegen in einer großen Datenbank und die haben halt einfach keine Berührung mit AI.

Und mein Code, das hat ja nichts mit DSGVO und irgendwas, das ist ja unser Code, mit dem kann ich ja machen, was ich will.

Und den kann ich auch in die Cloud schicken und nach AI und weiß gerade wohin.

Der liegt ja auf Big Bucket und überall im Modell.

Also da habe ich überhaupt kein Problem und auch meine Entwickler, wenn ich sage, ist ja wirklich was anderes, wenn einer im Second Level Support, für einen Kunden irgendwelche keine Ahnung, von einem Excel, was er kriegt, importieren soll, den DIMA oder sowas und da AI verwendet.

Das ist ja wirklich was anderes, das sind Kundendaten.

Aber wenn ich jetzt zum Code herstellen irgendwelche AI-Tools wendet, dann berührt das null.

Andre Steingreß

Ja, ja, kann auch eine relativ schmale Grenze dann werden, ein relativ schmale Grad, also auch für die Entwickler.

Thomas Einwaller

Inwiefern?

Andre Steingreß

Musst nicht zum Beispiel dann mit irgendeiner, keine Ahnung, dumpst ihr die Datenbank und testet halt mit der oder so.

Thomas Einwaller

Ja, aber das ist ja die Frage.

Andre Steingreß

Ob es da kann.

Thomas Einwaller

Das kann ja keiner von den Entwicklern, Oder die Produktionsdaten irgendwo holen oder so.

Andre Steingreß

Oder die Testdaten, die darfst du ja auch wirklich nur Testdaten drin haben und lauter so Geschichten.

Ich meine, ich sage, man hat das eh normalerweise, aber ja, muss man halt dann gucken.

Und wir tun uns halt noch leicht so, also leicht, auch schon schwach, aber wir können ja dem Ganzen noch halbwegs folgen.

Aber ich sehe ja auch so in der Firma quasi Projekte, was nicht, die halt gemacht werden, von Leuten, die jetzt keine Programmierer sind, die halt auch AI setzen wollen.

Und da spielt es halt Rambazamba in Wirklichkeit.

Weil die wissen halt dann nicht genau, wie das jetzt genau funktioniert.

Weißt du, das ist halt dann Magic.

Und ja, für die ist halt diese Schnelllebigkeit dann nur viel Sache natürlich.

Thomas Einwaller

Ja.

Ich meine, die nutzen die AI halt anders, auf eine andere Art und Weise, für andere Aufgaben vielleicht.

Oder eh nur viel weniger, man erinnert mich noch zu wenig teilweise.

Also, weiß ich nicht, wie gut jetzt im Marketing, so in dem Bereich, das ist reingesetztwert schon einfach halt.

Also den Haupt-Denefit im Effizienz und so weiter sehe ich bei uns natürlich schon in den Entwicklungsmoment die letzten Monate.

Andre Steingreß

Ja, und vielleicht ist da wirklich sehr prädestiniert sogar, weißt du, im Grunde über die Programmiersprachen, du hast ja da sehr strukturierte Sprachen einfach.

Thomas Einwaller

Eben, genau, das kannst du da sehr gut verstehen einfach.

Andre Steingreß

Das Ganze ist ja eigentlich prädestiniert für so ein Sprachmutter im Endeffekt.

Thomas Einwaller

Das Ergebnis ist ja sehr strukturiert.

Es ist ja auch so, das hat der Serocuser schon auch ganz gut gesagt im Podcast, das finde ich genauso, der Vorteil, warum AI in dem Bereich der Entwicklung auch so gut funktioniert, ist, weil du ja am Ende dann ein verifizierbares Ding, du generierst ja nicht hunderttausende Codezeilen, du kannst dir das überschauen, den Testcase, den er da generiert, den verstehe ich ja, den kann ich ja dann auch, den führe ich ja aus und dann sehe ich, okay, der führt zu dem gewünschten Ergebnis.

Und ich kann denen auch, wenn er eine Chance macht, dann bestelliert die letzten zwei Prozent noch nach sozusagen oder fünf.

Das ist ja eine Tätigkeit, die es als Entwickler sowieso auch, ich mache genau dasselbe, du machst ja nicht auf Anhieb den richtigen Code immer, und da kommen auch nicht auf Anhieb den richtigen Code immer raus, ist so.

Andre Steingreß

Aber verstehst du immer jeden Code zum Beispiel von einem anderen Entwickler im Team?

Thomas Einwaller

Naja, wenn ich mir lang genug anschaue, schon natürlich.

Andre Steingreß

Ja, naja, weißt du nicht.

Thomas Einwaller

Na sicher, weiß.

Andre Steingreß

Kommt immer auf die Generation dann drauf.

Wir verstehen ganz noch, die nächste Generation dann nur mit so 80 Prozent.

Thomas Einwaller

Ja, das ist die Frage.

Andre Steingreß

Also, wenn wir sind halt, naja, okay, Zeiterfassung darf man nicht unterschätzen, gell?

Thomas Einwaller

Nein.

Andre Steingreß

Aber jetzt, so wie es bei uns ist, wir haben ja jetzt zum Glück keine hochkomplexen algorithmischen Probleme oder so.

Thomas Einwaller

Ja, ja, sicher.

Andre Steingreß

Aber, gib einmal, wem, meine beliebte, Ostersonntagsberechnung.

Dann schauen wir mal, wer die noch versteht.

Oder nimmt man die halt dann einfach her und es kommt halt eh Magic.

Immer das richtige Datum aus, die nächsten Jahre und man denkt sich, boah, geil, dass ich mir das, gut, dass ich es nicht verstehen muss.

Ich nehme das jetzt einfach her.

Thomas Einwaller

Ja, stimmt schon.

Es gibt schon ein großes Algorithmen, die man nicht verstehen muss.

Andre Steingreß

Naja.

Thomas Einwaller

So gut.

Jan.

Andre Steingreß

Das ist übrigens ein leichtere Beispiel, kenne ich so von früher noch, von anderen Projekten, wo ich war, wo zum Beispiel, keine Ahnung, irgendwie Förderungen berechnet worden sind, früher nur über Excel, da hat es halt noch Leute gegeben, die haben ja gewusst, ah ok, die und die Formel stehen dahinter, dann hat man es digitalisiert in einer Anwendung, dann hat es die Leute noch gegeben, die das Excel verstanden haben und somit auch verstanden haben, was die Anwendung macht, dann waren die Leute in Pension und die Leute danach die haben das verwendet was einfach aus dem Programm aus sich gefallen ist haben schon gar nicht mehr so richtig verstanden wie das funktioniert die Berechnung weil es halt immer sichtbar.

Thomas Einwaller

Ist im Excel die Formel noch irgendwo.

Andre Steingreß

Hinweg Besonders die.

Thomas Einwaller

Formel sieht nur noch der Entwickler genau.

Andre Steingreß

Ja genau, ja

Thomas Einwaller

Gut, Ja gut, jetzt haben wir schon wieder relativ viel gequatscht über das Thema.

Andre Steingreß

Aber Nibs, dass du jetzt, wenn wir schon dabei sind, okay, jetzt hast du das für so typische Migrations-Tätigkeiten quasi verwenden, also einfach Groovy-Code in Java-Code.

Und ich meine, gibt es da nicht eigentlich sogar in IntelliJ überhaupt die Funktion Azure?

Thomas Einwaller

Nein, du kannst grundsätzlich Groovy-Code in Java-Code konvertieren.

Andre Steingreß

Aber das geht mit dem ganzen Spock-Schichten.

Thomas Einwaller

Und dann vor allem auch, was es ja einfach schwadelt ist, sozusagen dann die ganzen Constructor-Calls, was du hast, was du mit den Name-Parameters dann mit Zeta-Aufruf umzuwandeln und was er auch gern tut, der Java-Kommentierer von IntelliJ, der nimmt dann auch so groovy Methods in Ports noch her.

Der macht dann immer da, wo du es gleich, wo du so diese typischen groovy Boolean-Auswertungen, wo es true ist oder false ist, wenn es null ist oder false, weißt du?

Das checkt der auch alles nicht.

Dann nehmen wir dann so groovy Methods her und haut die halt immer rein.

Andre Steingreß

Das genauso funktioniert quasi wie Schneider dann, gell?

Thomas Einwaller

Genau.

Und das musst du halt alles nacharbeiten, halt endlich.

Andre Steingreß

Boah, ja, du musst da beim Mikrohlen auch aufpassen.

Thomas Einwaller

Ja, ja.

Andre Steingreß

Dass du halt nicht quasi ein gleich-gleich machst, Schott.

Thomas Einwaller

Genau.

Ja, oder so.

Andre Steingreß

Okay, aber was ich jetzt fragen wollte, jetzt so dann zur eigentlichen Implementierung von Features, nimmst du das da auch schon her dann?

Thomas Einwaller

Also ich bin bis jetzt eigentlich nie so, dass ich sage, ich beschreibe eben die ganze Feature, bauen wir das oder so.

Die Architektur, die Grunddingen mache ich schon noch eigentlich wie bisher auch immer alles.

Aber was ich jetzt sehr gerne tue, ist immer so eben so Snippets, so Optimierungen, so Verbesserungen, keine Ahnung.

Jetzt zum Beispiel haben wir relativ viel, wieder dann einmal auf ein Optional umbaut oder sowas, weißt du, wo ich halt bisher ein Null oder das Ding zurückbefreit.

Und dann habe ich jetzt ein Optional an der Hand und das muss jetzt an zehn störenden Methoden halt dann nachziehen, wo diese Methode verwendet wird, wo der Return-Wert plötzlich ein Optional ist.

Und da kannst du, dann machst du es auch so im Handy schon mit ein paar Unterstützungen von IntelliJ, aber dann gefällt mir das Ergebnis nicht so gut.

Und ich sage dann, ich markiere im Blog die zehn Zeilen oder die sieben und sage halt, hey, AI quasi, mach den Code schöner, indem du den optional optimal verwendest.

Andre Steingreß

Ja?

Thomas Einwaller

Und dann macht er halt Ilsef, Elf, Fro, bla bla bla, oder so.

Weißt du, dass man statt, dass ich vorher mit Ispresent das Abfrag und so zeige.

Dann schaut der Code am Ende viel schöner aus und tut genau das, was er vorher hat und nutzt den optional jetzt richtig.

Für solche Dinge nehme ich es schon echt gern her.

Oder wo ich sage, einfach, ich weiß, der Code, der ist jetzt nicht so richtig so schön, wie man vorgestellt hätte, hey, schau dir das nochmal an, kannst du das ein bisschen nachoptimieren sozusagen.

Andre Steingreß

Das heißt ja eigentlich in die Pre-Prompts überhaupt die Coding-Conventions, also, weiß ich nicht, ob du da so Dokumente oder was habt, aber im Grunde musst du eigentlich die Coding-Conventions einballern und sagen, hey, schau her, wir verwenden zum Beispiel Non-Null und Null-Label-Ennotations auf Argumente etc.

Thomas Einwaller

Genau, das könnte man auch, also das geht ja voll super, zum Beispiel, wenn du sowas in die Pre-Prompts eine haust, weißt du, ich möchte gerne immer Final War, herverwenden und nicht nur War, weißt du, oder, dass er das dann immer überall so macht, auch.

Wenn er reichengucken wird.

Ja, also wie gesagt, jetzt bin ich gerade sehr stark beim Nacharbeiten, also vom Umwandeln, beim Maintenance, sage ich mal, Code von Alt auf Neu, von Curvy auf Java und so weiter, von Hibernate, Criterias auf Criteria Builder und so weiter und da hat das überall echt sehr gut funktioniert.

Was auch gut funktioniert, ist schon, du hast irgendwo eine Native Query und du willst das auf irgendeine andere Art Query umbauen, auf ein Criteria-Bilder zum Beispiel oder sowas.

Oder du hast irgendwo eine Native Query, die mit Object-Array als Return-Wert arbeitet und du willst eigentlich da ein Mapping haben, mit einem Mapping-Objekt zum Beispiel, dass das dann am Ende mit Constructor-Call das direkt in das Objekt, die ganzen Werte reingekriegt, sondern nicht mit Object-Array, St.

7 und Object-Array, St.

8, da drauf zugreifen musst.

Einfach Code nacharbeiten, wo wirklich schon Code da ist, den er gut verstehen kann, wo er versteht, was das tut und du willst in eine andere Richtung umkonvertieren sozusagen.

Da habe ich bis jetzt einfach echt extrem gute Ergebnisse gehabt.

Weniger, indem du dir etwas beschreibst mit Prosa sozusagen und sagst, das hätte ich gerne in Code.

Andre Steingreß

Genau, einfach die Ticket.

Wenn du bei uns die Ticket-Description reinkopierst, dann kann ich das nicht ausgabe.

Thomas Einwaller

Nein, das war ja die Next Level, oder?

Wenn du im Cursor einfach einen MCB für die Jira machst und sagst halt einfach, ich arbeite mal ein paar Tickets ab.

Andre Steingreß

Genau so.

Geht schon.

Heute reißen wir mal alles nieder.

Die offenen Tickets.

Thomas Einwaller

Tickets, 1 bis 1.000, bitte, ich arbeite mal die mal ab.

Andre Steingreß

Genau.

Thomas Einwaller

Nein, so weit sind wir noch nicht.

Andre Steingreß

Ja, nein, sind wir noch nicht.

Ja, cool.

Ja, muss ich auch wieder mal ausprobieren.

Ich habe schon gesehen, dass das Update nicht geflattert ist oder das Pop-Up habe ich schon gesehen bei mir, aber ich habe dann nicht updatet.

Muss ich mal machen und die 30 Tage vielleicht noch mal aktivieren.

Thomas Einwaller

Ja, jetzt hat mich das interessiert noch, was du gesagt hast mit Docker Compose und Functional Tests.

Das habe ich noch nicht ganz verstanden.

Das hast du mir ja im Mächsten schon mal geschrieben, gell?

Andre Steingreß

Ja, genau, haben wir jetzt auch.

Also das ist ja in Spring Boot 3.1 oder halt damals, wie wir da in Barcelona auch waren.

Thomas Einwaller

Haben wir das schon gesehen?

Ja, genau.

Andre Steingreß

Genau, haben sie das quasi veröffentlicht letztes Jahr.

Und dieses Feature, das heißt ja, es gibt quasi so ein Starter Spring Boot Docker Compose, Starter Modul.

Und das kannst du halt reinwerfen in die Anwendung.

Und dann findet er halt beim Hochstarten, wenn du es halt irgendwo im Sourceman-Resources drin hast, glaube ich, das Docker-Compose-File und startet halt das Environment quasi hoch, was halt unter dem Docker-Compose definiert ist.

Thomas Einwaller

Genau, ja.

Andre Steingreß

Genau, und wir haben das so bis jetzt eigentlich nicht in Verwendung gehabt, also Docker-Compose jetzt prinzipiell.

Und ich habe es jetzt aber mal aktiviert, nämlich für den Zweck, dass wir also wir haben ja relativ viel, also ich habe es mit Flexbox mit Locker und so Geschichten, wir haben halt relativ viel funktionale Tests, weil wir die wichtigsten Benutzer-Workflows, die man halt nur irgendwie auf, virtuellen Locker, sage ich jetzt mal, testen kann, sprich auf einer Web-Anwendung, die halt irgendwo läuft, ohne Hardware-Anbindung.

Dass wir halt die wichtigsten Benutzerprozesse da so virtuell einmal testen.

Weil du kannst halt nicht jedes Mal, bei jedem Release kannst du jetzt nicht vor ein Testgerät hinstellen und alle möglichen Testfälle manuell durchführen.

Jetzt haben wir gesagt, wir machen quasi so manuelle Testfälle nur, wenn wirklich hardware-spezifische Sachen dabei sind.

Also nicht, du magst Fachöffnungen testen, Scanner testen, etc.

Aber jetzt so normale Flows machen wir über funktionale Tests.

Jetzt sind halt schon relativ viele funktionale Tests, deswegen zusammenkommen.

Und die Entwickler haben halt quasi lokal immer die Herausforderung, die haben halt eine lokale Entwickler-Datenbank, wie es halt jeder hat.

Und wenn die halt die funktionalen Tests laufen lassen, dann lassen sie es halt üblicherweise auf ihre lokale Entwickler-Datenbank laufen.

Und die lokale Entwickler-Datenbank hat halt dann bei einigen Entwicklern einen Zustand, der eigentlich nicht so ist, wie es der funktionale Test erwartet.

Weil die halt schon Daten aufgelegt haben in der Datenbank für Tests oder irgendwelche, für Ärger noch, irgendwelche Feature Flags aktiv haben, die eigentlich standardmäßig zum Beispiel nicht aktiv sind und dann duschen halt UI-Tests.

Weil halt bestimmte Settings gemacht sind, lokal, die eigentlich gar nicht standardmäßig auftrat sind.

Jetzt einmal vereinfacht gesagt.

So, und jetzt haben wir gesagt, naja, okay, dann machen wir es jetzt so, quasi mit dieser Docker-Compose-Unterstützung, jetzt kommen wir wieder auf das zurück, dass wir, wenn wir hochfahren, quasi eigene Datenbank-Bootstrappen, die wird halt dann nur für funktionale Tests verwendet, also in Wirklichkeit sind es sogar zwei bei uns, für das Backend und für den Locker, genau.

Und dann gibt es quasi schon im Projekt fixfertige Run-Configurations für alle Anwendungen, die du brauchst.

Also bei uns hat das mehrere, die du brauchst quasi.

Die startest du hoch und dann ist prinzipiell garantiert, dass in dieser mit Docker Compose hochgestarteten Datenbank ein Basis-Datenbestand da ist.

Und auf dem kannst du dann quasi die UI-Tests ausführen.

Und da ist dann aber immer garantiert, dass dieser Basis-Datenbestand immer genau der gleiche ist, so wie er eigentlich auch in der Pipeline ist.

Genau.

Und ja, kann ich sagen, funktioniert.

Ist ganz geil eigentlich mit dieser Docker-Compose-Unterstützung.

Das Einzige, wo ich halt jetzt noch draufgekommen bin, aber ich weiß nicht, da gibt es glaube ich nicht so richtig einen Umweg.

Man kann zwar in diesem Docker Compose Spring Boot Unterstützung auch auf einen, anderen File nehmen, als wir diesen Standard File nehmen, gell?

Aber was du ja nicht machen kannst im Docker Compose, du kannst ja nicht quasi mehrere Docker Compose Fails gleichzeitig laufen haben, oder?

Weil jetzt haben wir natürlich Entwickler, aber die haben es ja jetzt schon selber quasi Docker Compose gemacht, vor allem mit dem hoch und wenn der jetzt quasi parallel dazu die Run-Configurations der Applikationen startet, die dann über Spring auch nochmal Docker Compose quasi hochfallen, steht irgendwie dann da so, es darf nur ein Environment geben oder irgendwie so in die Richtung oder es läuft schon ein Environment.

Thomas Einwaller

Ja, also wenn du natürlich tust, dann auch mehrere Docker Compose-File herumliegen sozusagen.

Die Docker-Compose-File haben ja alle so ein Project-Name, so ein Environment quasi, so ein Präfix, wie es dann auch heißen.

Ja, genau.

Und das kann man steuern.

Da gibt es immer, wenn man in dem Folder, wo das Docker-Compose-File liegt, ein .env-File macht, so .environment quasi, dann kann man dort ein Compose-Project-Name angeben.

Andre Steingreß

Und wenn man den unterschiedlich macht.

Thomas Einwaller

Dann kannst du mehrere quasi ausführen.

Man muss dann sagen, okay, du führst das Docker-Compose aus dem Verzeichnis aus, dann hat es dieses Environment und in dem hat es dieses.

Und dann heißen es unterschiedlich.

Andre Steingreß

Und da müssen wir schauen, ob das dann quasi, wenn du das über Spring Boot herausstattest, über das checkt.

Thomas Einwaller

Oder vielleicht kannst du sogar beim Spring Boot, ich habe jetzt auch nicht nachgeschaut, bei den Properties einen eigenen Project Name oder Environment Name auch mitgeben, dass es einem da einen anderen Namen gibt.

Andre Steingreß

Okay, bei den Properties war es mir nicht aufgefallen, ich habe extra geschaut.

Thomas Einwaller

Vielleicht kannst du es dann über das Environment File lösen.

Andre Steingreß

Okay, muss ich mal schauen.

Das war jetzt das Einzige, was mir noch aufgefallen ist, dass halt da quasi da quer kommst, wenn du jetzt selber schon irgendwie ein Docker-Kompost quasi verwenden hast.

Thomas Einwaller

Du konntest ja auch theoretisch ohne Docker Compose Support im Spring Boot hättest du ja auch früher, man kann ja über das IntelliJ auch Docker Compose starten sozusagen.

Da kannst du ja auch eigene Run Configurations ohne.

Andre Steingreß

Run Configuration, ich checkte einfach für das.

Thomas Einwaller

Ja, genau.

Und du kannst dir auch sagen, dass eine Run Configuration, glaube ich, vorher die andere ausführen muss oder so, oder?

Kann man nicht die abnehmen von einander so irgendwie auch.

Das war auch ein Weg.

Was bei mir.

Andre Steingreß

Habt ihr funktionale Tests eigentlich bei Timer?

Thomas Einwaller

Nein, also nur die Highest Level Tests, was wir im Backend jetzt drinnen haben, sind halt so, was die über Socket halt einfach Web Requests sozusagen, wo halt die Jasons prüft, dann sind die Tarkingen.

Aber keine UI-Tests oder sowas.

Andre Steingreß

Ja, genau.

Thomas Einwaller

Aber wir nehmen das Docker Compose im Backend beim Timer schon sehr lang, also die Basis her, um quasi, damit die Entwickler lokal NTB halt betreiben.

Und da war früher im Readme-File halt immer so ein Punkt drinnen, ja, bevor du im Backend halt die Java-Anwendung hochstartest, startest du Docker Compose halt hoch, weil ohne dem geht es nicht.

Andre Steingreß

Das sparsst du natürlich dann.

Thomas Einwaller

Und das sparsst du jetzt im Readme-File halt, ja, weil das Docker Compose-File jetzt eben automatisch beim Hochfahren halt dann ausgeführt wird, wenn es noch nicht läuft und dann halt, wir haben es auch so eingestellt, dass es dann auch weiterläuft quasi.

Und das ist schon mal eine nette Geschichte und da haben wir eigentlich das gleiche mit dem Thema drin, wir haben auch so ein Basis-DBS, wo auch das Schema und alles schon drinnen ist, damit das nicht dann auch beim ersten Mal hochfahren noch angelegt werden muss über Liquidbase, weil es dauert auch immer Zeitl, Und das gleiche Docker Compose oder das gleiche Image von der MySQL, was wir da drin haben, wird auch für die Pipelines verwendet.

Und da könnte man ja bei euch eigentlich, im Prinzip kannst du ja das gleiche für die funktionalen Tests verwenden.

Ja, genau.

Andre Steingreß

Also ich habe mir jetzt eh gedacht, also wenn es da keinen easy Weg gibt mit den Environments, das ist ja eigentlich egal.

Weil man kann im Grunde ja, dann mache ich einfach ein Standard-Docker-Compose-File rein, was ja eh wie du sagst generell Sinn macht.

Für die Datenbank, da ist halt dann eine normale leere Datenbank oder was drin für die Entwickler und dann lege ich halt nur zwei weitere, das sind dann für die oder x weitere für die funktionalen Tests und die sind halt auch im selben Feld drin.

Thomas Einwaller

Im Endeffekt.

Andre Steingreß

Weil Ports etc.

brauche ich sowieso, wurscht welche Art und Weise, ich verwende sowieso unterschiedliche, da darf ich mich sowieso nicht überlappen.

Ja genau, so werde ich es nämlich, glaube ich, machen.

Thomas Einwaller

Das ist ja auch witzig, weil das kann ja ja eh aus dem Docker Compose-File und automatisch auslesen.

Das ist ja auch so geil, weil früher hast du dann irgendwie das immer richtig konfigurieren müssen.

Andre Steingreß

Ja, aber die Datenquellen und so, gell, meinst du, kann er dann quasi konfigurieren?

Thomas Einwaller

Ja, er checkt automatisch, ich kann dann auch den Datasource-Ul und so weiter rausschmeißen gehen, weißt du, weil er das halt aus dem Port und alles liest er aus dem Docker Compose-File dann halt aus und dann kannst du da ganz einfach andere Ports da konfigurieren und musst dir bei jedem irgendwie anpassen oder was.

Andre Steingreß

Ja, da ist bei uns die Datenquellen-Konfiguration ein bisschen kompliziert.

Ich denke, es geht nicht automatisch.

Thomas Einwaller

Trust me.

Nein, genau.

Andre Steingreß

Aber ja, stimmt.

Nein, ich glaube nämlich, die Variante werde ich da bevorzugen.

Ja, gar nicht da mit dem Endfall oder irgendwie so.

Thomas Einwaller

Witzigerweise geht ja Spring Boot da jetzt auch nochmal ein bisschen einen anderen Weg.

Habe ich das Gefühl.

Oder Sie haben jetzt auch da ja noch zusätzlich einen Support eingebaut für Testcontainer.

Also Testcontainer unterstützen sie ja schon lange jetzt auch eben für die Tests, dass du dann eben irgendwie die DBs und Redis und was weiß ich über Testcontainer hochfährst, automatisch für einen Test.

Andre Steingreß

Genau, ja.

Thomas Einwaller

Und sie können das jetzt auch, glaube ich, seit 3.3 oder 3.2 irgendwo auch quasi für die Development Environment, ja.

Also, dass du quasi Testcontainer als dein DevDB verwendest, sozusagen, wenn du die Umwendung startest.

Andre Steingreß

Ja.

Thomas Einwaller

Und da irgendwie, das habe ich auch noch nicht ganz durchgeschaut, aber auch bei den Test-Containern, da gibt es ja dann diese Service-Connection oder diese Services, was man eben speziell auch Annotations konfigurieren kann, wo man halt dann die diversen Dinge, die aus den Test-Containern halt kommen, als Services in Spring-Beans halt dann zur Verfügung hat.

Da gehen wir uns nur einen Schritt weiter eigentlich, also quasi, dass man nicht einmal noch Docker-Compose braucht, sondern dass man sich halt einfach als Test-Container-Konfiguration das irgendwo definiert, was man halt so braucht an UI, an Infrastruktur.

Andre Steingreß

Ja, durch das, dass wir eben da was deine komplett auf alle Spring-Möglichkeiten setzen, sag ich mal, Richtung Datenquise, wir haben aber kein Spring Data-JP oder so im Einsatz, ist bis da wahrscheinlich ein bisschen halt dann außen vor, jetzt bei uns.

Ich meine, du kannst es natürlich alles handisch dann anlegen und so, irgendwie im Java-Code beim Hochfahren oder so, halt dann die Desk, aber weiß es nicht.

Ja, okay, aber ist interessant, weil es im Grunde eigentlich ein konkurrierender Ansatz ist, gerade zu den ganzen Docker-Compose-Geschichten.

Thomas Einwaller

Genau, ja.

Andre Steingreß

Wenn ich das sehe, da kannst du ja ein Redis und alles mögliche hochstarten mit Desk-Container, sondern es ist nicht nur Datenbanken.

Thomas Einwaller

Genau, ja.

Und ich habe genau den Vorjahren bei mir im Docker-Compose ein MySQL drinnen und ein Redis.

Andre Steingreß

Ah, okay.

Thomas Einwaller

Und ich brauche halt fast die Redis für Spring-Session-Redis und so im Web, ja, und das konnte ich genauso mit den Desk-Container halt auch lösen.

Andre Steingreß

Ja.

Thomas Einwaller

Ja.

Andre Steingreß

So, jetzt konnte ich das verlinkt.

Also habe ich das verstanden.

Thomas Einwaller

Okay, ja.

Andre Steingreß

Ja, genau.

Wichtiger Punkt bei uns, funktionelle Tests.

Aber es ist halt immer wie überall.

Es sind halt dann was, da in der Pipeline halt uns langsam.

Thomas Einwaller

Ja, ja.

Andre Steingreß

Es ist halt irgendwie trotzdem voll der Pain.

Aber keine Ahnung.

Es ist halt auch ein Pain, wenn du manuell alles durchklicken musst.

Also...

Thomas Einwaller

Auf jeden Fall, ja.

Andre Steingreß

Das ist, aber ja.

Jo.

Thomas Einwaller

Gut, dann habe ich noch einen auf der Liste da, den muss ich jetzt einmal daran plagen.

Ich bin gerade ein bisschen verliebt.

Andre Steingreß

Du bist verliebt?

Thomas Einwaller

In einen Entwickler, in einen anderen Kollegen.

Andre Steingreß

Achso.

Thomas Einwaller

Der Prime Again.

Den habe ich irgendwie, der ist halt ein Zeitel bei mir.

Andre Steingreß

Prime again.

Thomas Einwaller

Der ist bei mir seit einem Teil immer in allen möglichen Social Feeds drinnen.

Ich weiß nicht, seit ein paar Monaten irgendwie habe ich den im X drinnen, also im Twitter-Feed, im Twitch-Dachter ja, im Twitch, im TikTok, überall.

Ich halte da einfach mal ein paar Links für eine Twitch.

Und jetzt war er vor kurzem auch mal beim Lex Friedman in einem vierstündigen Podcast und dann hat er da so eine geile Aussage, ich habe das glaube ich immer gepostet, über Groovia gemacht, weil der war bei Netflix seit einem Zeit lang so, ich habe es da sehr in dem ganzen Podcast redet, über seine ganze Historie, also wie er zum Programmieren gekommen ist und was er früher alles für einen Chance gemacht hat und der war ziemlich auf wilden Wegen unterwegs, aber jetzt tut er eigentlich hauptberuflich seit einem Jahr ungefähr und deswegen wird er jetzt seit ein paar Monaten bei mir in die Vizepräger auftauchen, macht er hauptberuflich eigentlich ja, Streaming, ja, Streaming einfach, ja.

Er tut auf Twitch streamen und auf Twitter und überall und tut aber quasi nicht Games oder Spiele streamen, wie man kann daraus, sondern er tut halt Coding streamen.

Andre Steingreß

Ja.

Thomas Einwaller

Und er macht das mit recht viel Schmäh, finde ich halt, ja.

Ist ganz ein witziger Typ und ja, hat auch sehr, wie sie sagen, einen ganz coolen Stil und macht auch so Reaction-Videos auf YouTube-Videos von anderen Code-Dingern wieder, schaut sich AI-Sachen halt an.

Ja, echt ein, was man sich mal reinzieht, irgendwie takt der voll.

Immer wieder an die Snippets, was er halt so postet und hat auch eine ganz coole Einstellung zu viele Dinge, finde ich.

Was voll krass ist, finde ich, und das hat mich jetzt ein bisschen angefixt, ich bin noch nicht ganz so weit, aber er ist voll der VI-Fan.

Andre Steingreß

Ja, das habe ich schon gesehen in seinen Videos, er hat Neo-Vim und alles mögliche.

Thomas Einwaller

Oh, ich gehe aus Neo-Vim.

Und er hat jetzt so ein spezielles, dieses Curved Keyboard da von Microsoft, wo man die Hände halt so drinnen liegen hat.

Und er verwendet halt quasi fast keine Maus, glaube ich.

Also eigentlich habe ich noch nie eine Maus verwenden gesehen, so richtig.

Hau jetzt da den Neo-Vim-Link rein.

Er schwört halt voll auf die Vim-Motions.

Das habe ich jetzt mal alles einmal angeschaut, was das eigentlich genau heißt sozusagen.

Sagen, also die Bewegungen, die man im WIM halt machen kann mit all den Tastenkombinationen, wie man halt, von quasi Methodenanfang zu Methodenendem springt und Wörter springen, vier zurück zum nächsten Wort, zum nächsten, zum Wortanfang, mit allem möglichen Dingen und es ist brutal, wenn du dir da zuschaust, wie schnell der unterwegs ist im Code mit dem.

Es gibt ein paar Videos von Erma, wo er halt einfach nur ein bisschen so diese, WIM-Motions vorstellt und herzeigt, wie er das macht und was das alles kann.

Wenn man nach Vim Motions auf YouTube schaut, findet man auch natürlich sehr viele andere Videos.

Ich verstehe, ich bin ja so ein Vim-VI-User immer schon gewesen, wenn es jetzt darum geht, dass ich irgendwo ein SSH-Shell irgendwo auf irgendeinem Server von meinen vielen aufgemacht habe, habe ich nie Nano oder irgendeinen anderen Editor verwenden, sondern immer VI und ich kann mich im VI so mittelmäßig fortbewegen und alles und das verwenden.

Ja, aber ja, man kann nicht im VI um so viel besser sein, wenn man das sieht, wie die das machen alle, und das ist ja so krass, das habe ich auch vor ein paar Jahren schon mal gesehen, wie man VI auch mit Plugins erweitern kann, mit einem Links halt quasi so einem Tree mit Files und so weiter und alle mit Syntax-Highlightings und im Hintergrund auch noch irgendwelche language-Server und bla bla bla, ja.

Andre Steingreß

Ja, ja, da gibt es ja, Warte mal, da denkst du, was hast du gesagt, Space Vim zum Beispiel gibt es ja, das ist ja überhaupt voll wild.

Thomas Einwaller

Ja, es gibt voll viel so Vim-Distributions halt.

Andre Steingreß

Genau, wie Space Vim zum Beispiel, der hat dann quasi schon die ganzen Plugins, wie Nerdtree etc.

Also der, wo du halt auch so einen File Explorer auf der linken Seite hast.

Genau.

Thomas Einwaller

Und der ist halt voll unterwegs in dem halt.

Oder da gibt es halt das Kickstart, VR, Neowim und ja.

Alle machen so Distros halt.

Wenn du es jetzt erst mal was reingepostet, auch Space Film, genau.

Andre Steingreß

Ich habe da einen Link reingepostet zu diesen Motions, da sind nochmal die wichtigen erklärt, eigentlich ganz schön erklärt, in so einem Blogpost.

Thomas Einwaller

Genau.

Und warte, ich habe letztes Mal was gespielt, Wim Motions, da gibt es ein Game auch.

Andre Steingreß

Ja, das habe ich auch schon gespielt.

Thomas Einwaller

Wim mit Wendt.

Andre Steingreß

Es gibt ja, hat er sich schon hat er sich schon das IntelliJ-Plugend installiert.

Thomas Einwaller

Natürlich, also für die Vim-Keeper-Eintings oder was.

Wenn du da einsteigst in dieses Vim-Thema und Vim-Motions und so, dann sagen ja auch viele, und das sagt er auch, es hat halt bei ihm auch so angefangen, vorher hat er sich auch gedacht, das Vim ist ja was für alte Entwickler aus der 60er Jahre quasi, aber er hat dann auch angefangen, dass er sich halt in seiner IDE, also Visual Studio Code oder wo auch immer, gibt es ja überall ein Vim-Plugin.

Dann hast du halt sozusagen den Editor, kannst du dann bedienen, mir halt ein VI mit den Vim-Motions einmal.

Nicht ganz 100%ig wahrscheinlich alle Vim-Motions, was es gibt, aber jetzt schon sehr viele davon und du wirst jetzt sehr schnell einmal da vertraut mit dem, wie du dich überhaupt da bewegst.

Und das habe ich jetzt auch tageweise immer wieder mal ein bisschen gemacht, aber ich glaube, du musst dann wirklich sagen, so jetzt lege ich den Switch um und tue nur noch so.

Dass du halt wirklich dann da drin gut wirst.

Und ja, ich genieße oder sagen wir so, ich bin schon mit der Maus und dem Ganzen, ich verwende das schon sehr viel und bin da ganz flott unterwegs, aber irgendwie Lusten und Reizen tut es mir im Moment schon immer wieder ein bisschen einmal zu sagen, da noch in dem Bereich ein bisschen was zu improven und vielleicht proben wir noch mit dem Motions mehr zu beschäftigen.

Das Spiel habe ich auf jeden Fall auch mal gespielt, bis zu einer, bis zu der Level hin, wo man dann zahlen muss, glaube ich, man muss sich das Spiel dann irgendwann kaufen, um wirklich da zu den Advanced Settings zu kommen.

Andre Steingreß

Ja, heute schon habe ich früh auch mal gemacht, das, Also ich habe auch mal viel Vim verwendet, aber ja, ich weiß es nicht.

Es ist halt dann am Ende des Tages irgendwie trotzdem dann ausstrengend.

Die ganzen, die ganzen Komponenten, weil da gibt es ja ganz, ganz viele Sachen.

Also du kannst dir im Grunde dann auch diese Motions, die kannst du dann auch recorden.

Thomas Einwaller

Ja.

Andre Steingreß

Und sozusagen dann auch wieder abspülen, weißt du, wenn du quasi so keine Ahnung, so in einem Pfeil halt immer wieder das gleiche Pattern dann anwenden musst oder so.

Also es gibt ja die wildesten Sachen, die du da machen kannst.

Aber bis dir das wirklich in die Fingern, reingeht und dann kommt es halt davor, was die, durch das, dass du ja dann in Wirklichkeit den Veeam ja nicht zum tatsächlichen Programmieren verwenden meistens, sondern jetzt eben sowas wie IntelliJ, kommt es halt dann davor, was dann das IntelliJ Veeam-WI-Plugin oder wie immer das heißt, was das halt dann kann.

Thomas Einwaller

Ja.

Andre Steingreß

Oder nicht kann.

Und wie sehr, dass die dann da mit quasi irgendwelche Shortcuts dann schneidest, oder nicht?

Thomas Einwaller

Genau.

Andre Steingreß

Puh, ja.

Also da habe ich eigentlich fast, ich bin dann irgendwann einmal eben so vom Source-Code, also von so Editoren dann auf Sublime einfach gegangen.

Ich meine, der ist jetzt auch schon wieder uralt, der Sublime-Text.

Und was halt beim Sublime-Text halt einfach Killer ist, und das gibt es meines Wissens so im Vim und auch in diese ganzen Distributionen auch nicht, ist halt dieser ganze Multicursor-Support.

Thomas Einwaller

Ja, ja.

das ist genau wichtig, dass mir das gerade nicht gefallen hat.

Aber ich muss auch sagen, ich habe gerade bei meinen letzten, das, letzten Wochen, wo ich jetzt diese vielen Konvertierungen und so weiter und Physio-Code umgewandelt habe, ich bin auch jetzt immer mehr, mehr zum Multicursor-User geworden.

Das hilft bei so Sachen Vollgas.

Also wenn du gerade so, keine Ahnung, so Groovy-Kaskaden hast, wo du vorher immer mit ohne Setter das zugewiesen hast, weißt du, so ganze, keine Ahnung, zehn Zeilen lang irgendwas zugewiesen an das selbe Objekt, immer wieder andere Property.

Das wird Multicursor einfach Set davor schreiben, dann den nächsten Buchstab markieren und Command-Shift-U für Uppercase.

Andre Steingreß

Genau, für Uppercase.

Thomas Einwaller

Dann wieder zum Endespringen die Klammer einfügen, statt dem ist gleich.

Und dann ganz ans Ende und die Klammer und den Strichpunkt hinzufügen.

Und zehn Teile sind editiert.

Also die Multicursion ist da schon sehr mächtig, und das ist eben was, was man zum Beispiel im UI abgeben würde.

Ja, habe ich schon gehört.

Andre Steingreß

Ja, genau.

Es gibt so, wenn es jetzt so Search and Replace ist, da gibt es das Global Search and Replace und so.

Okay, da kann man es vielleicht zu irgendjemandem bewegen.

Aber Multicursion ist doch was anders nur mehr.

Thomas Einwaller

Und, ich meine, es gibt wahrscheinlich Plugins und Blabla auch so, aber was ich natürlich jetzt auch in meiner täglichen Arbeit jetzt in den letzten Wochen sehr viel gemacht habe, ist dann auch Search and Replace mit Regular Expressions.

Das geht ja im VIA, aber in der IDE, im IntelliJet zum Beispiel, diese direkte Anzeige des möglichen Ergebnisses ist schon auch sehr geil.

Du quasi oben, du bearbeitest quasi nur die Regex für die Suche und er zeigt dann gleich den Match schon, was er findet im Code, und dann schreibst du hin, wie er es ersetzt mit den Groups und dann siehst du gleich bei dem ersten Match, was das dann am Ende für Ergebnis wäre, wenn es das replaced.

Das ist schon alles sehr mächtig und das weiß ich nicht, ob ich das gleich auch ersetzen könnte dann halt.

Andre Steingreß

Ja, voll.

Ja, das gibt ja da eher im IntelliJ, weil da passt ich da mal rein.

Das habe ich jetzt auch schon länger nicht mehr hergenommen.

Irgendwo einmal wirklich, es gibt ja quasi diese Structural Search und Replacement da noch im IntelliJ, wo du dir komplett steil gehen kannst.

Wo es quasi mit so, da kannst du ja richtig so mit regular Expressions dann so Code-Umstrukturierungen und so machen.

Ich weiß nicht mehr, für was ich das damals verwende.

Thomas Einwaller

Ja, das haben wir auch immer besprochen.

Da gibt es ja so ein eigenes, was hast du jetzt gesagt, das ist so ein mächtiges Ding, so ein eigenes Structural Search.

Genau, Structural Search, genau.

Das habe ich aber auch.

Andre Steingreß

Wo du nämlich wirklich mit so Templates dann suchen kannst und dann kannst du quasi sagen, hey, pass auf, da schneidest du mit aus der Klasse alle Föder aus und du arbeitest dann zum Beispiel irgendwie in dem Replace-Template mit die Föder einmal weiter und so, wo du quasi mit dem normalen Search und Replace, halt ausstehst, irgendwo einmal.

Das ist auch vielleicht für so Migrationsgeschichten ganz cool.

Was haben sie denn da für Beispiele drin?

Das ist correct.

Ja, das müsstest du vielleicht einmal ausschauen.

Vielleicht bringt dir das auch noch irgendwas bei diesen Groovy-Geschichten.

Thomas Einwaller

Da gibt es nämlich eh Language-Auswahl auch noch und so.

Andre Steingreß

Ja.

Ja, vor allem, das war früher ein eigenes Plugin, das dürfte aber jetzt mittlerweile glaube ich sogar schon im Standard.

Thomas Einwaller

Ich glaube auch, aber das habe ich die Falle einfach da dabei.

Andre Steingreß

Da würde er sogar für Groovy-Unterstützer-Check ganz oben für java kotlin und gruvi unterstützen das geht mir da noch in die schon dort seine drum die kindern extrem viel.

Thomas Einwaller

Ja, wie gesagt, also ich finde den ganz cool und ein bisschen denke ich mir oft, wenn ich mal statt, wenn ich nicht Gaming-Streamer wäre, könnte ich ja Coding-Streamer werden zum Beispiel.

Andre Steingreß

Ja, du kannst einfach jeden Tag, du schaltest einfach um 8.00 ein, du beginnst um 8.00 zu streamen.

Thomas Einwaller

Aber das ist wieder beim Thema mit Datenschutz.

Andre Steingreß

Achso, ja, das könnte vielleicht tricky werden.

Thomas Einwaller

Gut, tricky werden.

Sonst könnte ich das natürlich machen.

Andre Steingreß

Ich habe mir ja das eine Video angeschaut von er mit irgendwie so how I made this algorithm weiß ich nicht, 3000 Mal oder nur mehr faster oder so.

Genau, wo er halt auch so einen Algorithmus beschreibt aus so einer Coding Challenge oder so.

Und welcher Schritt er dann nimmt, damit er quasi dann noch schneller ist.

Und das ist eigentlich auch ganz cool.

Ich meine, er kommt dann zu einer Lösung, die versteht halt dann im Grunde keiner mehr, ohne irgendeine Erklärung, sage ich mal.

Aber es ist halt schneller.

Aber da haben wir auch wieder gedacht, ja, siehst du, so im Arbeitsalltag hast du das eigentlich selten, dass du richtig so algorithmische, Probleme oder so lösen musst, ja, da ist eigentlich sowas auch hin und wieder mal ganz nett, dass man sich wieder mal ausschaut oder vielleicht sogar dann einmal selber auch halt überlegt einmal ein wenig, ja.

Thomas Einwaller

Ja, also es ist einfach ein bisschen ein anderer.

So ein Content, den man noch konsumieren kann für Entwickler.

Andre Steingreß

Ja, genau.

Thomas Einwaller

Genau.

Ja, jetzt sind wir eh schon wieder relativ am Ende.

Jetzt hätte ich noch einen anderen Content, den man konsumieren muss.

Andre Steingreß

Ja.

Thomas Einwaller

Hast du schon von Adolescence gehört?

Andre Steingreß

Ja.

Thomas Einwaller

Adolescence.

Sens, er lebt auch Sens, ja.

Andre Steingreß

Genau, also ich habe neulich mit der Tina geredet, die hat es schon gesehen, interessanterweise.

Ich weiß zwar nicht, wann sie sich das angeschaut hat, aber es ist ja eine Miniserie, glaube ich, gell?

Thomas Einwaller

Ja, eine vierteilige, vierepisode Miniserie, ja.

Andre Steingreß

Ja, ich habe es aber noch nicht gesehen, es gibt irgendeinen Jugendlichen oder Kind, was ganz krass Schauspieler hat, oder?

Thomas Einwaller

Genau, genau, ein großes Schauspieltalent.

Und das Witzige war, bei mir ist es eben auch so gewesen, die Tani hat es schon geschaut, weil es ist einfach, muss man sagen, bei uns, die etwas mehr Netflix-Schautes wie ich, und das ist eigentlich da gleich mal ziemlich oben angepriesen worden, wahrscheinlich auf der Startseite irgendwann, und ihr hat es ganz gut gefallen, und dann haben wir es eben gemeinsam auch, das ist dann der zweite Film mit mir geschaut, und ich habe zufällig parallel eben etwas quasi eher Technisches dazu gelesen, weil das Krasse an der Serie ist jetzt, abgesehen vom Inhalt.

Und das ist der Dani gar nicht aufgefallen, wie auch immer, dass quasi jede Episode dieser vierteiligen Miniserie, die ungefähr eine Stunde jeweils dauern, in einem Take aufgenommen worden sind.

Also das sind so One-Shot-Sachen.

Und das finde ich jetzt auf der filmtechnischen Seite einfach schon mal so krass.

Also es gibt dann, man denkt sich ja, wir haben es dann zu zweit geschaut, das zweite Mal für die Daniels, das erste Mal für mich und dann hat sie gesagt, ah ja, glatt, Jetzt merke ich das auch, wenn du das vorher gesagt hast, das sehe ich mir ja, dass das quasi immer ohne Schnitt ist.

Aber trotzdem, wenn man das dann so schaut, denkt man sich dann, habe ich mir halt auch gedacht, bei gewissen Szenen und gewissen Aufnahmen ist es nicht so gut.

Ist, dass man das in einem Take macht, sozusagen.

Und dazu poste ich dann jetzt da noch einen zweiten Link rein, also ein YouTube-Video, das Making-of, das würde ich mir erst anschauen, wenn ich die Serie geschaut habe, weil da ein paar Spoilers natürlich drinnen sind, aber da sieht man voll geil in diesem, wie lange dauert das, einmal zwölf Minuten oder vier Stunden, wie halt die ganzen Sachen auch gemacht worden sind.

Filmtechnisch.

Und da haben sie sich, also das ist extrem krass, finde ich, wie sie das hinbracht haben sozusagen, dass wirklich diese ganzen Shots ohne Schnitt gingen und ja, wie gesagt, es sind drei sehr unterschiedliche Episoden auch vom ganzen Scenning her und, der jugendliche Schauspieler habe ich dann auf YouTube auch gelesen, eh bei dem Video drunter, da schreiben sie in die Kommentare schon eine so, passt es mal auf den auf, so quasi, wer der ist so jung, weißt du, verhorzt es den jetzt nie den irgendwelchen, weil der wird jetzt viel Angebote kriegen und so wie andere, Schauspielereien, dass er halt nicht so ein typischer Kinderstar wird, weißt du, sondern ja, aber der ist wirklich gerade in der dritten Episode einfach extrem gut, wie er das spielt.

Das musst du mal schaffen, das spült in einem Tag, eine Stunde lang quasi, was der da macht, das ist brutal.

Dicke Empfehlung auf jeden Fall für diese Serie, wer es noch nicht gesehen hat.

Aber das ist, Es ist halt auch vom Inhalt her, was jetzt zum Nachdenken anregt und was jetzt gerade so, wir haben es ja schon öfter ein bisschen so, das Medienkonsum und Internet und Kinder und was weiß ich, ist auch von der Art Ding her finde ich ganz gut eigentlich alles gemacht und zum Nachdenken einfach auch so spannend.

Andre Steingreß

Ja, muss ich schauen, vielleicht schauen wir es auch.

Also vielleicht schaut es Tina auch ein zweites Mal an.

Ja, sehr cool, ja.

Genau, ich habe jetzt, glaube ich, bei den Serien habe ich jetzt nichts Neues.

Ich bin ein bisschen bei Ding, wo ich den mal anfangen, wie heißt es auf Apple TV, Friends and Neighbors.

Thomas Einwaller

Okay.

Andre Steingreß

Was gerade Nummer eins ist, was der, das ist mit dem einen, ich weiß jetzt den Namen nicht, ich und Namen, mit dem Schauspieler von Mad Men.

Thomas Einwaller

Ah, ja, ich sehe dich gerade, ja.

Andre Steingreß

Genau.

Aber ich bin da jetzt noch.

Ich weiß nicht, ich bin jetzt gar nicht weitergekommen bei irgendwie fast keine Serien.

Studio bin ich auch irgendwie hänger geblieben.

Thomas Einwaller

Was?

Andre Steingreß

Bei das Studio bin ich auch irgendwie hänger geblieben, bei der dritten oder vierten Episode.

Thomas Einwaller

Ja, ich wollte gerade sagen, das Studio hätte jetzt auch angefangen quasi mit der Dani.

Der Dani hat es überhaupt nicht getaugt, die erste Episode.

Andre Steingreß

Ja, es ist halt auch wirklich stressig.

Thomas Einwaller

Ich habe die zweite jetzt noch geschaut.

Das ist ja auch so ein One-Shot-One-Take-Ding.

Ja, war ganz cool auch, aber wir müssen jetzt auch wieder irgendwas suchen, was wir zu zweit schauen können.

Wie ist denn das mit Friends and Neighbor?

Ist das schon alles da?

Coming this Friday, okay, da gibt es vier Episoden jetzt, ja.

Weil das ist immer auch blöd, wenn du dann wieder ganz überraten musst.

Ja, ja.

Gut, nein, aber das klingt auch ganz cool aus.

Mythic Quest habe ich nicht ganz fertig geschaut, das habe ich nur gelesen, es wird jetzt auch eingestellt, das ist jetzt auch die letzte Staffel sozusagen.

Andre Steingreß

Ah, war das die letzte.

Thomas Einwaller

Haben sie sich jetzt entschieden, so quasi, es ist ja ein bisschen Luft ausgegangen, aber es wird jetzt dann kippsen.

Andre Steingreß

Ja, da haben sie noch quasi Sidequest, also ein Sidequest, was heißt der?

Heißt der Sidequest?

Thomas Einwaller

Ach so, ja.

Andre Steingreß

Habt sie gebracht.

Thomas Einwaller

Okay.

Andre Steingreß

Aber das war dann auch, da haben wir glaube ich auch irgendwie eine Folge mal angeschaut und haben gedacht, ja, eh, passt.

Ich kann es nicht.

Thomas Einwaller

Ah ja, stimmt, Sidequest, das habe ich noch gar nicht geschaut, ja.

Das ist also ein paar so.

Vier Episoden.

Andre Steingreß

Genau, Spin-Off.

Thomas Einwaller

Ja.

Ja.

Gut.

Andre Steingreß

Na gut.

Thomas Einwaller

Soweit für diese Episode.

Ja.

Dann sind wir wieder, also das eine große Topik kann man halt wieder auslassen.

Aber es ist quasi nicht ausgegangen.

Aber gut, wenn man ein bisschen Zeit drüber geredet.

Ja, passt schon.

Ja, das passt schon.

Nein, und dann das nächste Mal, okay, die sind auch noch ein bisschen hin bis zur WWDC, weil wir noch richtig die Apple-Themen reinbrasseln.

Aber es ist ja immer ganz cool so, Development-Themen, AI-Themen, das passt jetzt mal, finde ich jetzt immer ganz gut so, muss man ja mal besprechen.

Andre Steingreß

Ja, viel.

Thomas Einwaller

Es ist so unterschiedlicherweise, geht auch.

Passt.

Dann würde ich sagen, wünsche ich dir eine gute Woche, guten Start dann morgen.

Andre Steingreß

Danke.

Thomas Einwaller

Und den Hörern auch, genau, wenn ich mir dann unsere Episode hören kann.

Nein, heute wird es nicht mehr rausgekommen.

Andre Steingreß

Schwierig.

Thomas Einwaller

Aber ja, übermorgen dann ungefähr.

Passt dann, bis bald.

Andre Steingreß

Bis dann.

Thomas Einwaller

Ciao.

Andre Steingreß

Ciao.

Never lose your place, on any device

Create a free account to sync, back up, and get personal recommendations.