22 Punkte von xguru 2024-10-28 | 10 Kommentare | Auf WhatsApp teilen

Visualisierung und Erläuterung der neuesten Trends in den Bereichen Techniken/Tools/Plattformen/Programmiersprachen und Frameworks in vier Stufen: Hold/Assess/Trial/Adopt

Antipatterns bei Coding Assistants

  • Wenig überraschend dreht sich diese Radar-Ausgabe vor allem um generative KI und LLMs, die Entwickler allgemein nutzen
  • Muster führen zwangsläufig zu Antipatterns; damit sind situative Konstellationen gemeint, die Entwickler vermeiden sollten
  • Im überhitzten KI-Bereich zeichnen sich erste Antipatterns ab:
    • die falsche Vorstellung, Menschen und KI könnten Pair Programming als Begleiter vollständig ersetzen
    • übermäßige Abhängigkeit von Vorschlägen zur Code-Unterstützung
    • Probleme bei der Codequalität von generiertem Code
    • schnellere Wachstumsraten der Codebasis
  • KI neigt dazu, Probleme eher mit brachialen Methoden zu lösen, statt Abstraktion zu verwenden
    • Beispiel: Dutzende if-Bedingungen statt des Strategy-Design-Patterns
  • Gerade das Thema Codequalität betont einen Bereich, dem Entwickler und Architekten dauerhaft Aufmerksamkeit widmen müssen, damit sie nicht bei Code landen, der „funktioniert, aber schrecklich ist“
  • Daher sollten Teams gute Engineering-Praktiken noch stärker in den Fokus rücken, etwa Unit-Tests, Architecture Fitness Functions und andere bewährte Governance- und Verifikationstechniken
    • damit sichergestellt ist, dass KI die Arbeit unterstützt, statt die Codebasis mit Komplexität zu verschlüsseln

Rust is anything but rusty - Rust rostet ganz und gar nicht

  • Rust wird zunehmend zur bevorzugten Sprache für die Systemprogrammierung
  • In jeder Radar-Sitzung taucht Rust im Gesprächskontext immer wieder auf
  • Viele der besprochenen Tools sind in Rust geschrieben
  • Rust ist die bevorzugte Sprache, wenn alte Utilities auf Systemebene ersetzt oder Teile eines Ökosystems zur Leistungssteigerung neu geschrieben werden
  • Die häufigste Zuschreibung für Rust-basierte Tools scheint „wahnsinnig schnell“ zu sein
  • Im Python-Ökosystem gibt es zum Beispiel mehrere Tools mit Rust-basierten Alternativen, die deutlich bessere Performance ermöglichen
  • Sprachdesigner und Community haben es geschafft, ein hochgeschätztes Ökosystem aus Kern-SDK, Bibliotheken und Entwicklungswerkzeugen aufzubauen, das hervorragende Ausführungsgeschwindigkeit mit weniger Fallstricken als viele frühere Sprachen bietet
  • Viele im Team sind Fans von Rust, und die meisten Entwickler, die Rust nutzen, scheinen Rust sehr zu schätzen

Der allmähliche Aufstieg von WASM

  • WASM (WebAssembly) ist ein binäres Befehlsformat für eine stackbasierte virtuelle Maschine
  • Für die Interessen der meisten Entwickler klingt das zu obskur und zu Low-Level, aber die Bedeutung ist klar: die Fähigkeit, komplexe Anwendungen innerhalb der Browser-Sandbox auszuführen
  • WASM kann innerhalb bestehender JavaScript Virtual Machines laufen und ermöglicht es Entwicklern damit, Anwendungen in den Browser einzubetten, die zuvor nur in nativen Frameworks und Erweiterungen umsetzbar waren
  • Die vier großen Browser (Chrome, Firefox, Safari, Edge) unterstützen inzwischen WASM 1.0 und eröffnen damit spannende Möglichkeiten für ausgefeilte, portable und plattformübergreifende Entwicklung
  • Wir beobachten den Standard seit einigen Jahren mit großem Interesse und freuen uns, dass er nun beginnt, sein Potenzial als legitimes Deployment-Ziel zu entfalten

Die kambrische Explosion generativer KI-Tools

  • Wenn man der Entwicklung aus den letzten Radar-Ausgaben folgt, war zu erwarten, dass generative KI in unseren Diskussionen eine prominente Rolle spielen würde
  • Trotzdem hat uns die Explosion des Technologie-Ökosystems rund um Sprachmodelle weiterhin überrascht:
    • Guardrails, Evaluierungen, Agent-Building-Tools, Frameworks für strukturierte Output-Aufgaben, Vektordatenbanken, Cloud-Services und Observability-Tools
  • Dieses schnelle und vielfältige Wachstum ist in vielerlei Hinsicht vollkommen nachvollziehbar
  • Die ersten Erfahrungen, also die Einfachheit, Sprachmodellen reine Text-Prompts zu geben, haben zu Software Product Engineering geführt
  • Das entspricht vielleicht nicht den Träumen und dem Hype, die entstanden, nachdem Menschen ihren ersten Prompt an ChatGPT geschickt hatten, aber wir sehen bei vielen Kunden einen klugen und produktiven Einsatz generativer KI, und all diese Tools, Plattformen und Frameworks spielen eine wichtige Rolle dabei, LLM-basierte Lösungen in Produktion zu bringen
  • Wie schon bei der Explosion des JavaScript-Ökosystems um 2015 wird dieses chaotische Wachstum voraussichtlich noch einige Zeit anhalten

[Techniques]

Adopt

  • 1% canary

    • frühes Feedback zu neuen Software-Versionen fördern und Risiken senken, indem Canary Deployments genutzt werden
    • Technik, neue Funktionen an 1 % der Nutzer auszurollen, damit Teams Feedback erfassen, Auswirkungen beobachten und bei Bedarf reagieren können
    • wichtig für großflächige Deployments wie Mobile Apps, Edge-Computing-Geräte oder softwaredefinierte Fahrzeuge
  • Component testing

    • Testautomatisierung ist ein Grundpfeiler effektiver Softwareentwicklung
    • Fokus auf Frontend-Tests, um Stabilität und Geschwindigkeit sicherzustellen
    • für Component Testing wird jsdom verwendet, um Tests im Speicher auszuführen
    • für End-to-End-Tests werden Browser-Tools verwendet
  • Continuous deployment

    • möglichst Continuous Deployment praktizieren
    • jede Änderung, die automatisierte Tests besteht, automatisch in den Betrieb deployen
    • ermöglicht schnelle Feedback-Schleifen und rasche Wertlieferung an Kunden
    • siehe Valentina Serviles Buch "Continuous Deployment", das eine Roadmap zum Erreichen der nötigen Reife bietet
  • Retrieval-augmented generation (RAG)

    • bevorzugtes Muster zur Verbesserung der Antwortqualität großer Sprachmodelle
    • erfolgreich eingesetzt in Projekten wie der Jugalbandi AI-Plattform
    • Informationen zu relevanten und vertrauenswürdigen Dokumenten werden in einer Datenbank gespeichert
    • relevante Dokumente werden zum Prompt gesucht und zur Anreicherung genutzt, um reichhaltigen Kontext bereitzustellen
    • liefert bessere Output-Qualität und reduziert Halluzinationen deutlich

Trial

  • Domain storytelling

    • Domain-Driven Design (DDD) ist zur Grundlage unseres Softwareentwicklungsansatzes geworden
    • für viele Teams ist der Einstieg in DDD schwierig
    • Domain Storytelling ist eine Alternative oder Ergänzung zur frühen Entwicklung von Domänenmodellen
    • durch die Visualisierung von Beschreibungen der Aktivitäten von Fachexperten wird ein klares gemeinsames Verständnis geschaffen
  • Fine-tuning embedding models

    • beim Aufbau von LLM-Apps auf Basis von Retrieval-augmented Generation hat die Qualität der Embeddings direkten Einfluss auf Suche und Antworten
    • Genauigkeit und Eignung von Embeddings für eine bestimmte Aufgabe oder Domäne lassen sich verbessern
    • unser Team führt Embedding-Fine-Tuning durch, wenn bei domänenspezifischen LLM-Apps die präzise Informationsextraktion entscheidend ist
    • die Vor- und Nachteile dieses Ansatzes müssen abgewogen werden
  • Function calling with LLMs

    • Fähigkeit, dass ein LLM auf Basis einer gegebenen Query und relevanter Dokumente die passende Funktion bestimmt und aufruft
    • erweitert LLMs über reine Textgenerierung hinaus
    • über das Auslösen von Funktionen oder APIs können LLMs Aufgaben übernehmen, die zuvor außerhalb ihres eigenständigen Funktionsumfangs lagen
    • LLMs können interne Systeme und Datenbanken anbinden oder auch per Browser im Internet suchen
    • ein abstraktes Muster, das im Kontext von Retrieval-augmented Generation und Agent-Architekturen verstanden werden sollte
  • LLM as a judge

    • es werden Systeme gebaut, die auf Basis großer Datensätze Antworten auf Fragen liefern können, aber der Weg zum Ergebnis ist schwer nachzuvollziehen
    • Einsatz eines LLM zur Bewertung der Antworten eines anderen Systems, das ebenfalls LLM-basiert sein kann
    • genutzt zur Bewertung der Relevanz von Suchergebnissen in Produktkatalogen und der Nutzerführung von LLM-basierten Chatbots
    • sorgfältige Einrichtung und Kalibrierung des Bewertungssystems sind erforderlich
    • kann zu höherer Effizienz und geringeren Kosten führen
  • Passkeys

    • vom FIDO-Bündnis vorangetrieben und von Apple, Google und Microsoft unterstützt, nähert sich der Mainstream-Tauglichkeit
    • beim Einrichten eines neuen Logins wird ein Schlüsselpaar erzeugt – die Website erhält den öffentlichen Schlüssel, der Nutzer behält den privaten Schlüssel
    • der Login erfolgt über asymmetrische Kryptografie
    • nachgewiesen wird der Besitz des privaten Schlüssels, der auf dem Gerät des Nutzers gespeichert und nicht an die Website übertragen wird
    • der Zugriff auf den Passkey wird durch Biometrie oder PIN geschützt
    • für Nutzer auf mehreren Plattformen kann ein Passkey auch auf einem anderen Gerät als dem zur Schlüsselerzeugung oder Anmeldung erforderlichen Gerät über CTAP gespeichert werden
  • Small language models

    • Große Sprachmodelle (LLMs) sind nützlich, können aber durch ihre Größe Probleme verursachen
      • Sie benötigen für Prompt-Antworten viele Rechenressourcen und sind daher langsam und teuer
      • Da die Modelle proprietär und groß sind, müssen sie auf Cloud-Infrastruktur von Drittanbietern gehostet werden, was bei sensiblen Daten problematisch ist
      • In den meisten Fällen ist das Training der Modelle übermäßig teuer
    • Mit dem RAG-Muster lässt sich die Notwendigkeit von Training und Fine-Tuning des Basismodells lösen, Kosten- und Datenschutzprobleme bleiben jedoch bestehen
    • Das Interesse an Small Language Models (SLMs) nimmt zu
      • Sie haben weniger Gewichte und geringere Präzision (in der Regel 3,5 bis 10 Milliarden Parameter)
      • In geeignetem Kontext und bei richtiger Konfiguration können sie genauso gute oder bessere Leistung als LLMs erzielen
      • Aufgrund ihrer Größe können sie auf Edge-Geräten ausgeführt werden
      • Ein schnell fortschreitendes Feld, etwa mit Google Gemini Nano und Microsofts Phi-3-Serie
  • Synthetic data for testing and training models

    • Umfasst die Erzeugung künstlicher Daten, die reale Szenarien nachbilden können, ohne auf sensible oder nur eingeschränkt zugängliche Datenquellen angewiesen zu sein
    • Synthetische Daten für strukturierte Datensätze wurden umfassend erforscht
    • Die Wiederverwendung synthetischer Daten für unstrukturierte Daten nimmt zu
    • Besonders bei Unternehmen, die mit einem Mangel an gelabelten domänenspezifischen Daten für das Training oder Fine-Tuning von LLMs konfrontiert sind
    • Tools wie Bonito und Microsofts AgentInstruct können aus Rohquellen wie Textdokumenten und Codedateien synthetische Daten für Instruction-Tuning erzeugen
    • Sie beschleunigen das Modelltraining und senken zugleich Kosten und Abhängigkeit von manueller Datenkuratierung
    • Ein weiterer wichtiger Anwendungsfall ist die Erzeugung synthetischer Daten zur Lösung unausgewogener oder spärlicher Datenbestände
      • Das ist bei Aufgaben wie Betrugserkennung oder Kundensegmentierung häufig der Fall
    • Techniken wie SMOTE gleichen Datensätze aus, indem sie künstlich Instanzen von Minderheitsklassen erzeugen
    • In Branchen wie dem Finanzsektor werden GANs verwendet, um seltene Transaktionen zu simulieren, damit Modelle Edge Cases robuster erkennen und die Gesamtleistung verbessern
  • Using GenAI to understand legacy codebases

    • Generative KI (GenAI) und Large Language Models (LLMs) helfen Entwicklern beim Schreiben und Verstehen von Code
    • Besonders nützlich ist das bei Legacy-Codebasen, deren Dokumentation schlecht, veraltet oder irreführend ist
    • Techniken und Produkte für den Einsatz von GenAI zum Verständnis von Legacy-Codebasen entwickeln sich weiter
    • Besonders erfolgreich werden sie zur Unterstützung von Reverse-Engineering-Arbeiten bei der Mainframe-Modernisierung eingesetzt
    • Vielversprechend ist ein Retrieval-Augmented-Generation-(RAG)-Ansatz, bei dem Informationsabruf über einen Knowledge Graph der Codebasis erfolgt
    • Ein Knowledge Graph kann strukturelle Informationen über die Codebasis bewahren, die über das hinausgehen, was LLMs aus Textcode ableiten können
    • Das hilft besonders bei Legacy-Codebasen mit geringer Selbsterklärbarkeit und schwacher Kohärenz
    • Es gibt zudem Möglichkeiten, den Graphen weiter anzureichern, etwa mit vorhandener und KI-generierter Dokumentation, externen Abhängigkeiten und Wissen über die Business-Domäne, was die Arbeit der KI erleichtern kann

Assess

  • AI team assistants

    • KI-Coding-Assistenten werden vor allem im Kontext der Unterstützung und Verbesserung der Arbeit einzelner Mitarbeitender diskutiert
    • Softwarebereitstellung war jedoch Teamarbeit und wird es auch bleiben, daher muss untersucht werden, wie sich AI-Team-Assistenten entwickeln lassen, die statt 10x-Entwicklern 10x-Teams ermöglichen
    • Die jüngsten Entwicklungen auf dem Tool-Markt bringen uns der Realität dieses Ziels einen Schritt näher
      • Unblocked ist eine Plattform, die alle Wissensquellen eines Teams zusammenführt und intelligent in die Tools der Teammitglieder integriert
      • Atlassians Rovo bringt KI in eine der am weitesten verbreiteten Plattformen für Teamzusammenarbeit und ermöglicht neue Arten der Suche und des Zugriffs auf Dokumente
    • Wir erkunden selbst das Potenzial von KI zur Wissensverstärkung und Unterstützung von Teampraktiken
      • Wir stellen den Team-Assistenten Haiven als Open Source bereit und beginnen mit dem Lernen durch KI-Unterstützung bei nicht programmierbezogenen Aufgaben wie der Anforderungsanalyse
  • Dynamic few-shot prompting

    • Auf Basis von Few-Shot-Prompting werden bestimmte Beispiele dynamisch in den Prompt aufgenommen, um die Modellantwort zu steuern
    • Durch die Anpassung von Anzahl und Relevanz dieser Beispiele werden Kontextlänge und Relevanz optimiert, was Effizienz und Leistung des Modells verbessert
    • Bibliotheken wie scikit-llm implementieren diese Technik mithilfe von Nearest-Neighbor-Suche, um die relevantesten Beispiele passend zur Benutzeranfrage abzurufen
    • Dadurch wird das begrenzte Kontextfenster des Modells besser genutzt und der Tokenverbrauch reduziert
    • Der Open-Source-SQL-Generator vanna nutzt Dynamic Few-Shot Prompting, um die Genauigkeit der Antworten zu verbessern
  • GraphQL for data products

    • Eine Technik, bei der GraphQL als Output-Port von Datenprodukten verwendet wird, damit Clients die Produkte konsumieren können
    • Mit GraphQL wird eine einheitliche API-Schicht erstellt, die die Komplexität der zugrunde liegenden Daten abstrahiert und Clients eine konsistentere und leichter zu verwaltende Schnittstelle bietet
    • Bei der Verwendung von GraphQL für Datenprodukte können Konsumenten Datenformate und Beziehungen über das GraphQL-Schema nahtlos entdecken und vertraute Client-Tools verwenden
    • Unser Team untersucht diese Technik für einen bestimmten Anwendungsfall zur Erkundung und Entdeckung von Big-Data-Erkenntnissen mit Unterstützung von LLMs
      • LLMs erstellen dabei GraphQL-Abfragen auf Basis von Benutzer-Prompts und eines GraphQL-Schemas als Referenz
  • LLM-powered autonomous agents

    • Mit dem Aufkommen von Frameworks wie Autogen und CrewAI entwickelt sich das Feld über Einzelagenten und statische Multi-Agenten-Systeme hinaus
    • Dabei werden komplexe Aktivitäten in mehrere kleinere Aufgaben zerlegt und durch Zuweisung spezifischer Rollen an einzelne Agenten ausgeführt
    • Entwickler verwenden vorkonfigurierte Tools zur Aufgabenausführung, und Agenten können miteinander kommunizieren und den Ablauf koordinieren
    • Das Feld befindet sich noch in einer frühen Entwicklungsphase, und unsere Teams stoßen auf Probleme wie Endlosschleifen von Agenten oder unkontrolliertes Verhalten
    • Bibliotheken wie LangGraph bieten mit der Möglichkeit, Abläufe als Graphen zu definieren, mehr Kontrolle über Agenteninteraktionen
    • Beim Einsatz dieser Technik empfehlen wir die Implementierung von Fail-Safe-Mechanismen einschließlich Timeouts und menschlicher Aufsicht
  • Observability 2.0

    • Ein Wandel von traditionellen und heterogenen Monitoring-Tools hin zu einem integrierten Ansatz, der strukturierte Event-Daten mit hoher Kardinalität in einem einzigen Datenspeicher nutzt
    • Reichhaltige, rohe Events werden zusammen mit detaillierten Metadaten erfasst, um eine umfassende Single Source of Truth für Analysen bereitzustellen
    • Die Speicherung von Events in ihrer Rohform vereinfacht Korrelationen, unterstützt Echtzeit- und forensische Analysen und ermöglicht tiefere Einblicke in komplexe, verteilte Systeme
    • Sie bietet hochauflösendes Monitoring und dynamische Untersuchungsmöglichkeiten
    • Priorisiert wird die Erfassung von Daten mit hoher Kardinalität und hoher Dimensionalität für detaillierte Inspektionen ohne Performance-Engpässe
    • Ein einheitlicher Datenspeicher reduziert die Komplexität, bietet eine konsistente Sicht auf das Systemverhalten und richtet Observability-Praktiken enger am Softwareentwicklungszyklus aus
  • On-device LLM inference

    • Große Sprachmodelle (LLMs) können nun in Webbrowsern und auf Edge-Geräten wie Smartphones und Laptops ausgeführt werden
    • Dadurch lassen sich sensible Daten ohne Übertragung in die Cloud sicher verarbeiten, extrem niedrige Latenzen für Aufgaben wie Edge Computing sowie Echtzeit-Bild- und Videoverarbeitung erreichen, Kosten durch lokale Berechnung senken und Funktionen auch bei instabiler oder fehlender Internetverbindung bereitstellen
    • Es handelt sich um ein Feld mit intensiver Forschung und Entwicklung; zuvor wurde MLX hervorgehoben, ein Open-Source-Framework für effizientes maschinelles Lernen auf Apple Silicon
    • Neue Tools wie Transformers.js und Chatty kommen auf
      • Transformers.js kann mithilfe von ONNX Runtime Transformer im Browser ausführen (unterstützt aus PyTorch, TensorFlow und JAX konvertierte Modelle)
      • Chatty nutzt WebGPU, um LLMs nativ und privat im Browser auszuführen und so funktionsreiche KI-Erlebnisse bereitzustellen
  • Strukturierte Ausgabe von LLMs

    • Bezeichnet die Praxis, Antworten von Sprachmodellen auf ein definiertes Schema zu beschränken
    • Kann erreicht werden, indem man ein General-Purpose-Modell anweist, in einem bestimmten Format zu antworten, oder indem man das Modell für eine „standardmäßige“ Ausgabe wie JSON feinabstimmt
    • OpenAI unterstützt jetzt strukturierte Ausgaben, sodass Entwickler Modellantworten einschränken können, indem sie JSON-Schemas, pydantic- oder Zod-Objekte bereitstellen
    • Besonders nützlich, wenn Genauigkeit und Einhaltung des Formats wichtig sind, etwa bei Function Calling, API-Interaktionen oder externen Integrationen
    • Verbessert nicht nur die Art der Schnittstelle zu Code, sondern unterstützt auch breitere Anwendungsfälle wie die Erzeugung von Markup für das Rendern von Diagrammen
    • Hilft auch dabei, die Wahrscheinlichkeit von Halluzinationen in Modellausgaben zu verringern

Hold

  • Selbstzufriedenheit bei KI-generiertem Code

    • KI-Coding-Assistenten wie GitHub Copilot und Tabnine sind sehr beliebt
    • Laut der StackOverflow Developer Survey 2024 „stehen 72 % aller Befragten KI-Tools für die Entwicklung positiv oder sehr positiv gegenüber“
    • Auch wir erkennen die Vorteile an, warnen jedoch vor den mittel- bis langfristigen Auswirkungen auf die Codequalität und mahnen Entwickler, sich nicht zu sehr auf KI-generierten Code zu verlassen
    • Nach einigen positiven Erfahrungen lässt man bei der Prüfung von KI-Vorschlägen leicht die Wachsamkeit sinken
    • Eine Studie von GitClear zeigt einen Trend zu schneller wachsenden Codebasen, was unserer Vermutung nach mit größeren Pull Requests zusammenfällt
    • Diese Studie von GitHub stellt infrage, ob die darin genannte Steigerung der Merge-Rate von Pull Requests um 15 % tatsächlich etwas Gutes ist oder ob Menschen KI-Ergebnissen zu stark vertrauen und deshalb größere Pull Requests schneller mergen
    • Wir verwenden weiterhin die grundlegenden „Erste-Schritte“-Ratschläge, die wir schon vor einem Jahr gegeben haben, und weisen darauf hin, auf Automation Bias, die Sunk-Cost-Fallacy, Verankerung und Review-Müdigkeit zu achten
    • Außerdem ist es sinnvoll, ein gutes mentales Modell dafür zu entwickeln, wo und wann Programmierer KI einsetzen und ihr nicht vertrauen sollten
  • Unternehmensweite Integrationstestumgebungen

    • Eine verbreitete und verschwenderische Praxis, die alles verlangsamt
    • Sie werden meist zu wertvollen Ressourcen, die sich nur schwer replizieren lassen und zum Engpass in der Entwicklung werden
    • Aufgrund unvermeidlicher Datenabweichungen zwischen Umgebungen und des Konfigurationsaufwands vermitteln sie ein trügerisches Gefühl von Sicherheit
    • Ein gängiges Gegenargument zu Alternativen wie ephemeren Umgebungen oder mehreren On-Premises-Testumgebungen sind ironischerweise die Kosten
    • Dabei werden jedoch die Kosten der Verzögerungen durch unternehmensweite Integrationstestumgebungen nicht berücksichtigt
      • Diese entstehen, wenn Entwicklungsteams darauf warten, dass andere Teams fertig werden oder neue Versionen abhängiger Systeme ausgerollt werden
    • Stattdessen sollten Teams ephemere Umgebungen verwenden und mit Fake-Stubs statt echten Replikaten Testsuiten aufbauen, die dem Entwicklungsteam gehören und sich günstig starten und wieder verwerfen lassen
    • Weitere Techniken, die diese Alternative unterstützen, sind Contract Testing, die Trennung von Deployment und Release, ein Fokus auf Mean Time to Restore und Tests in Produktion
  • LLM-Verbote

    • Statt umfassende LLM-Verbote am Arbeitsplatz zu verhängen, sollte der Fokus darauf liegen, Zugang zu einem Satz genehmigter KI-Tools bereitzustellen
    • Verbote führen nur dazu, dass Mitarbeitende nach nicht genehmigten und potenziell unsicheren Workarounds suchen
    • Wie schon in den Anfangstagen des Personal Computers erledigen Menschen ihre Arbeit mit Werkzeugen, die sie als effektiv empfinden, unabhängig von bestehenden Hürden
    • Wenn keine sicheren und abgesicherten Alternativen bereitgestellt werden, riskieren Unternehmen, dass Mitarbeitende nicht genehmigte LLMs verwenden und dadurch Risiken für geistiges Eigentum, Datenabfluss und Haftung entstehen
    • Werden stattdessen sichere und unternehmensweit genehmigte LLMs oder KI-Tools bereitgestellt, lassen sich sowohl Sicherheit als auch Produktivität gewährleisten
    • Mit einem gut gesteuerten Ansatz können Organisationen ihren Mitarbeitenden die Fähigkeiten von LLMs zugänglich machen und zugleich Datenschutz-, Sicherheits-, Compliance- und Kostenfragen steuern
    • Im besten Fall kann ein gut gesteuerter Zugang zu KI-Tools das organisationale Lernen darüber beschleunigen, wie KI am Arbeitsplatz am besten eingesetzt wird
  • Pair Programming durch KI ersetzen

    • Wenn über Coding-Assistenten gesprochen wird, kommt das Thema Pair Programming unweigerlich auf
    • Unser Beruf hat ein ambivalentes Verhältnis zum Pair Programming
      • Manche schwören darauf, andere können es nicht ausstehen
    • Nun werfen Coding-Assistenten die Frage auf, ob Menschen statt mit anderen Menschen mit KI zusammenarbeiten und für das Team dieselben Ergebnisse erzielen können
    • GitHub Copilot bezeichnet sich sogar als „your AI pair programmer“
    • Wir glauben, dass Coding-Assistenten einige Vorteile des Pair Programming bieten können, empfehlen aber nicht, Pair Programming vollständig durch KI zu ersetzen
    • Wer Coding-Assistenten als Pair Programmer betrachtet, übersieht einen der wichtigsten Vorteile des Pairings: nicht einzelne Beitragende, sondern das Team als Ganzes besser zu machen
    • Coding-Assistenten können helfen, Blockaden zu lösen, neue Technologien zu lernen, das Onboarding zu erleichtern oder taktische Aufgaben schneller zu erledigen, damit mehr Fokus auf strategisches Design gelegt werden kann
    • Sie helfen jedoch nicht bei den Vorteilen der Teamzusammenarbeit, etwa laufende Arbeit gering zu halten, Übergaben und erneutes Einarbeiten zu reduzieren, Continuous Integration zu ermöglichen oder kollektive Codeverantwortung zu verbessern

[Platforms]

Adopt : keine

Trial

  • Databricks Unity Catalog

    • Eine Data-Governance-Lösung für Assets im Lakehouse wie Dateien, Tabellen und ML-Modelle
    • Eine verwaltete Open-Source-Lösung, mit der sich Daten in externem Storage oder unter Verwaltung von Databricks verwalten und abfragen lassen
    • Ein Vorteil ist die integrierte Unterstützung für Governance, Metastore-Management und Datensuche, wodurch weniger verschiedene Tools verwaltet werden müssen
    • Als Nachteil wurde das Fehlen einer automatischen Disaster Recovery im von Databricks verwalteten Unity Catalog festgestellt
      • Teams mussten Backup- und Wiederherstellungsfunktionen selbst konfigurieren
    • Es ist eine zentralisierte Lösung, ermöglicht aber auch die Delegation von Berechtigungen, damit einzelne Teams ihre eigenen Assets verwalten können
  • FastChat

    • Eine offene Plattform zum Trainieren, Bereitstellen und Evaluieren großer Sprachmodelle
    • Mehrere Modelle (Llama 3.1, Mistral 7B, Llama-SQL usw.) lassen sich konsistent im OpenAI-API-Format hosten
    • Verwendet eine Controller-Worker-Architektur, um verschiedene Modelle auf mehreren Workern zu hosten
    • Unterstützt verschiedene Workertypen wie vLLM, LiteLLM und MLX
    • Je nach Anwendungsfall lassen sich unterschiedliche Arten von FastChat-Modell-Workern erstellen und skalieren
      • Code-Vorschläge in einer Entwickler-IDE benötigen geringe Latenz und werden daher über mehrere Worker skaliert
      • Text-to-SQL hat eine geringere Nachfrage, sodass mehrere Worker nicht notwendig sind
    • Kann für A/B-Tests genutzt werden
      • Für dasselbe Modell lassen sich unterschiedliche Hyperparameter-Werte setzen, um optimale Werte zu identifizieren
      • Bei einem Modellwechsel im Live-Betrieb lässt sich eine unterbrechungsfreie Migration validieren
  • GCP Vertex AI Agent Builder

    • Eine flexible Plattform, mit der sich KI-Agenten per Natural-Language- oder Code-first-Ansatz erstellen lassen
    • Integriert sich nahtlos über Third-Party-Connectoren mit Unternehmensdaten
    • Bietet alle Werkzeuge, die für das Erstellen, Prototyping und Deployen von KI-Agenten erforderlich sind
    • Entwickler können mit minimalem Setup schnell Agenten-Prototypen erstellen und komplexe Datenaufgaben verarbeiten
    • Nützlich für den Aufbau von Wissensbasen oder automatisierten Support-Systemen, die strukturierte und unstrukturierte Daten effizient verwalten
  • Langfuse

    • Ein Tool für Observability, Monitoring und Evaluierung von LLM-basierten Anwendungen
    • Mit Tracing-, Analyse- und Evaluierungsfunktionen lassen sich Performance und Genauigkeit von Completions analysieren
    • Kosten und Latenz lassen sich steuern, und durch das Verständnis von Nutzungsmustern in Produktion werden datengestützte Verbesserungen möglich
    • Nutzt Instrumentierungsdaten, die vollständige Nachvollziehbarkeit des Request-Response-Flusses und der Zwischenschritte bieten
    • Kann zusammen mit RAG und LLM-basierten autonomen Agenten verwendet werden
    • Durch die Analyse von Konversations-Traces mit niedrigen Bewertungen lassen sich Bereiche der Architektur identifizieren, die verbessert werden müssen
  • Qdrant

    • Eine in Rust geschriebene Open-Source-Engine und Datenbank für Vektor-Ähnlichkeitssuche
    • Unterstützt verschiedene Text- und multimodale Dense-Vector-Embedding-Modelle
    • Open-Source-Embeddings wie MiniLM-v6 und BGE können für die Wissensbasen mehrerer Produkte genutzt werden
    • Wird als Enterprise-Vector-Store mit Unterstützung für Multi-Tenancy eingesetzt
    • Vektor-Embeddings werden in separaten Collections gespeichert, um die Wissensbasis jedes Produkts zu isolieren
    • Richtlinien für den Benutzerzugriff werden auf der Anwendungsebene verwaltet
  • Vespa

    • Eine Open-Source-Suchmaschine und Big-Data-Verarbeitungsplattform
    • Geeignet für Anwendungen, die niedrige Latenz und hohen Durchsatz erfordern
    • Ermöglicht die Implementierung hybrider Suche mit mehreren Suchtechnologien
    • Unterstützt effizientes Filtern und Sortieren verschiedener Metadaten
    • Ermöglicht die Implementierung von mehrstufigem Ranking
    • Kann mehrere Vektoren pro Dokument ohne Duplikate indexieren
    • Ermöglicht die gleichzeitige Datensuche über mehrere indexierte Felder

Assess

  • Azure AI Search

    • Ein Cloud-basierter Suchdienst zur Verarbeitung strukturierter und unstrukturierter Daten für Anwendungen wie wissensbasierte Systeme
    • Unterstützt verschiedene Suchtypen wie Keyword-, Vektor- und hybride Suche
    • Kann gängige unstrukturierte Datenformate wie PDF, DOC und PPT automatisch erfassen und daraus durchsuchbare Inhalte erzeugen
    • Ist mit anderen Azure-Diensten wie Azure OpenAI integriert und ermöglicht den Bau von Anwendungen mit minimalem manuellem Integrationsaufwand
    • Geeignet für Projekte, die in Azure-Umgebungen gehostet werden, und bietet stabile Leistung
    • Über benutzerdefinierte Skills lassen sich spezifische Datenverarbeitungsschritte definieren
  • Databricks Delta Live Tables

    • Ein deklaratives Framework zum Aufbau zuverlässiger, wartungsfreundlicher und testbarer Datenverarbeitungspipelines
    • Definiert Datentransformationen deklarativ und verwaltet die zugrunde liegende Infrastruktur sowie den Datenfluss automatisch
    • Bietet starke Monitoring-Funktionen und stellt den DAG der gesamten Datenpipeline visuell dar
    • Nützlich für Data Lineage und das Nachverfolgen von Abhängigkeiten
    • Ist tief in das Databricks-Ökosystem integriert, wodurch es Einschränkungen bei der Anpassung der Benutzeroberfläche geben kann
  • Elastisys Compliant Kubernetes

    • Eine spezielle Kubernetes-Distribution für stark regulierte Branchen wie Gesundheitswesen, Finanzwesen und Behörden
    • Bietet automatisierte Sicherheitsprozesse
    • Unterstützt Multi-Cloud und On-Premises
    • Basiert auf einer Zero-Trust-Sicherheitsarchitektur
    • Compliance mit Vorschriften wie GDPR, HIPAA und Kontrollen wie ISO27001 ist integriert
  • FoundationDB

    • Eine Multi-Model-Datenbank, die 2015 von Apple übernommen und 2018 als Open Source veröffentlicht wurde
    • Ihr Kern ist ein verteilter Key-Value-Store, der strikt serialisierbare Transaktionen bietet
    • Es wurden wichtige Verbesserungen vorgenommen, etwa intelligente Datenverteilung zur Vermeidung von Write-Hotspots und neue Storage-Engines
    • Dank einer entbündelten Architektur lassen sich verschiedene Teile des Clusters unabhängig voneinander skalieren
    • Trotz ihres großen Funktionsumfangs ist der Betrieb großer Cluster einfach
  • Golem

    • Eine Distributed-Computing-Plattform, die eine explizite Zustandsmaschinenarchitektur für langlebiges Computing verwendet
    • Geeignet für Workflows wie langlebige Microservice-Sagas oder die Orchestrierung von AI-Agenten
    • WebAssembly-Komponenten können in jeder unterstützten Sprache geschrieben werden
    • Deterministisch und mit Unterstützung für schnelle Startzeiten
  • Iggy

    • Eine in Rust geschriebene Plattform für persistentes Message Streaming
    • Unterstützt mehrere Streams, Topics und Partitionen
    • Bietet unter anderem At-most-once-Zustellung, Nachrichtenablauf sowie TLS-Unterstützung für QUIC/TCP/HTTP-Protokolle
    • Erreicht auf einem einzelnen Server hohen Lese- und Schreibdurchsatz
    • Clustering und Unterstützung für io_uring sind geplant, wodurch es zu einer Alternative zu Kafka werden könnte
  • Iroh

    • Ein verteiltes Dateispeicher- und Content-Delivery-System, das IPFS weiterentwickelt
    • Es gibt keine Begrenzung der maximalen Blockgröße, und es bietet einen Mechanismus zur Datensynchronisierung über bereichsbasierte Mengenabstimmung
    • Browser-Unterstützung über WASM ist in der Roadmap enthalten
    • Cloud-Dienste können über iroh.network genutzt werden
    • Bietet SDKs für verschiedene Sprachen und ist benutzerfreundlicher als IPFS
  • Large vision model (LVM) platforms

    • Plattformen für große Vision-Modelle, die Segmentierung, Synthese, Rekonstruktion und Analyse von Videostreams und Bildern ermöglichen
    • Können in Kombination mit Diffusionsmodellen oder Standard-CNNs verwendet werden
    • Es bestehen Herausforderungen bei der Anwendung in Produktionsumgebungen
      • etwa bei der Erhebung von Trainingsdaten, der Objektsegmentierung und dem Labeling sowie beim Fine-Tuning von Modellen
    • Tools wie V7, Nvidia Deepstream SDK und Roboflow sind entstanden, um diese Herausforderungen zu lösen
    • Deepstream und Roboflow bieten integriert GUI und API für die Verwaltung von Videostreams
  • OpenBCI Galea

    • Eine nicht invasive Technologieplattform für Brain-Computer-Interfaces (BCI)
    • Verwendet elektrophysiologische Signale wie EEG und bietet eine risikoärmere Alternative zu Gehirnimplantaten
    • Das neueste Produkt von OpenBCI, das VR-Headset-Funktionen mit BCI kombiniert
    • Bietet zeitlich synchronisierte physiologische Datenströme, Sensoren für räumliche Positionierung und Eye-Tracking
    • Sensordaten können in Unity oder Unreal verwendet werden
    • Wird als Open-Source-Plattform angeboten und unterstützt Innovationen von Forschenden
  • PGLite

    • Ein WASM-Build der PostgreSQL-Datenbank
    • Kann ohne Linux-VM direkt im Webbrowser ausgeführt werden
    • Ermöglicht die Erstellung temporärer In-Memory-Datenbanken oder bietet Persistenz auf Datenträger über indexedDB
    • Zusammen mit Electric lassen sich reaktive Local-first-Anwendungen auf Basis von PostgreSQL bauen
  • SpinKube

    • Eine Open-Source-Serverless-Runtime für WebAssembly auf Kubernetes
    • Bietet mit Startzeiten im Millisekundenbereich von WebAssembly eine dynamischere und flexiblere Serverless-Lösung für On-Demand-Workloads
    • Vereinfacht die Entwicklung und Bereitstellung von WebAssembly-basierten Workloads
  • Unblocked

    • Ein Suchwerkzeug für SDLC-Assets und -Artefakte
    • Ist mit ALM- und Kollaborationstools integriert und hilft beim Verständnis der Codebasis und zugehöriger Ressourcen
    • Liefert unmittelbaren und relevanten Kontext zu Code und erleichtert so die Navigation und das Verständnis komplexer Systeme
    • Ermöglicht Engineering-Teams sicheren Zugriff auf arbeitsbezogene Diskussionen, Assets und Dokumente
    • Erfasst und teilt das Wissen erfahrener Teammitglieder, sodass es vom gesamten Team genutzt werden kann

Hold : keine

[Tools]

Adopt

  • Bruno

    • Bruno ist eine Open-Source-Desktop-Alternative zu Postman und Insomnia für API-Tests, Entwicklung und Debugging
    • Zielt mit einem einfachen Offline-only-Design darauf ab, hervorragende Zusammenarbeit, Datenschutz und Sicherheit zu bieten
    • Collections werden in Bru Lang, einer benutzerdefinierten Klartext-Markup-Sprache, geschrieben, direkt im Dateisystem gespeichert und können zur Zusammenarbeit über Git oder ein anderes Versionskontrolltool geteilt werden
    • Kann als Desktop-App und CLI-Tool genutzt werden, bietet eine offizielle VS Code-Erweiterung und plant zusätzliche IDE-Unterstützung
    • Ist zur Standardwahl mehrerer Thoughtworks-Teams geworden, allerdings ist Vorsicht geboten, da unerwartet fehlgeschlagene Requests bei der Arbeit in VPN- und Proxy-Umgebungen gemeldet wurden
  • K9s

    • K9s hat seine Visualisierungsfunktionen verbessert, indem es detailliertere Diagramme und Ansichten integriert hat
    • Es stellt jetzt Logs und Metriken besser dar und zeigt benutzerdefinierte Ressourcen (CRDs) flexibler an
    • Die Arbeit mit Pods wurde erweitert, die Integration mit Debugging-Tools (z. B. kubectl debug) wurde verstärkt und die Unterstützung für Multi-Cluster-Umgebungen verbessert
    • Die Unterstützung für CRDs wurde deutlich verbessert, sodass sich diese Ressourcen nun besser durchsuchen und verwalten lassen und die Interaktion mit benutzerdefinierten Ressourcen reibungsloser ist
    • Auch das Shortcut-Panel wurde verbessert, sodass es für Entwickler:innen, die mit kubectl nicht vertraut sind, leichter zugänglich ist
    • Da K9s anfangs vor allem auf DevOps-Teams ausgerichtet war, ist dies eine wichtige Verbesserung
  • SOPS

    • SOPS ist ein Editor für verschlüsselte Dateien, der verschiedene Dateiformate unterstützt, die mit KMS verschlüsselt werden
    • Unsere Empfehlung für den Umgang mit Secrets war immer, sie vom Quellcode zu trennen
    • Im Sinne von Infrastructure as Code stehen Teams jedoch oft vor einem Kompromiss, wenn sie zwischen vollständiger Automatisierung und einigen manuellen Schritten zur Verwaltung, Bereitstellung und Rotation von Seed-Secrets wählen müssen, etwa mit Tools wie Vault
    • So verwendet unser Team beispielsweise SOPS, um Seed-Credentials für das Bootstraping der Infrastruktur zu verwalten
    • In manchen Situationen lassen sich Secrets jedoch nicht aus Legacy-Code-Repositories entfernen
    • In solchen Fällen verwenden wir SOPS, um Secrets in Textdateien zu verschlüsseln
    • SOPS integriert sich mit Cloud-verwalteten Schlüsselspeichern wie AWS und GCP Key Management Service (KMS) oder Azure Key Vault als Quelle für Verschlüsselungsschlüssel
    • Außerdem funktioniert es plattformübergreifend und unterstützt PGP-Schlüssel
    • Wenn Secrets in Code-Repositories verwaltet werden müssen, nutzen mehrere unserer Teams standardmäßig SOPS
  • Tools für visuelle Regressionstests

    • Wir haben bereits früher Tools für visuelle Regressionstests hervorgehoben und beobachtet, wie sich die Algorithmen von rohen Vergleichen auf Pixelebene hin zu ausgefeiltem Pattern Matching und optischer Zeichenerkennung (OCR) entwickelt haben
    • Frühe Tools für visuelle Regressionstests erzeugten viele False Positives und waren erst in späten Entwicklungsphasen nützlich, wenn sich die Oberfläche stabilisiert hatte
    • BackstopJS vermeidet dieses Problem, indem es Selektoren und Viewports konfiguriert, um visuelle Tests gezielt für bestimmte Elemente einer Seite durchzuführen
    • Machine Learning hat es jedoch einfacher gemacht, visuelle Elemente genauer zu erkennen und zu vergleichen, selbst wenn sie verschoben wurden oder dynamische Inhalte enthalten
    • Diese Tools sind zunehmend nützlicher geworden und gut positioniert, um von den neuesten Entwicklungen in AI und Machine Learning zu profitieren
    • Mehrere kommerzielle Tools wie Applitools und Percy geben inzwischen an, AI für visuelle Regressionstests einzusetzen
    • Eines unserer Teams nutzt Applitools Eyes umfangreich und ist mit den Ergebnissen zufrieden
    • Visuelle Regressionstests können gut geschriebene End-to-End-Funktionstests nicht ersetzen, sind aber eine wertvolle Ergänzung im Test-Toolkasten
    • Wir übernehmen sie, weil sie sich als sichere Standardoption für einen Baustein einer umfassenden UI-Teststrategie etabliert haben
  • Wiz

    • Wiz hat sich in vielen Projekten als bevorzugte Cloud-Sicherheitsplattform durchgesetzt
    • Unsere Teams schätzen besonders, dass Änderungen kontinuierlich geprüft werden und sich Risiken und Bedrohungen dadurch schneller erkennen lassen als mit vergleichbaren Tools
    • Wiz kann Fehlkonfigurationen, Schwachstellen und offengelegte Secrets sowohl in Artefakten erkennen und melden, die nicht in Live-Umgebungen ausgerollt wurden, etwa Container-Images und Infrastructure as Code, als auch in Live-Workloads wie Containern, VMs und Cloud-Services
    • Wir schätzen außerdem die starken Reporting-Funktionen sowohl für Entwicklungsteams als auch für das Management
    • Diese Analyse hilft dabei zu verstehen, wie sich Schwachstellen auf bestimmte Services auswirken können, sodass Probleme im jeweiligen Kontext behoben werden können

Trial

  • AWS Control Tower

    • AWS Control Tower bleibt die beste Wahl für die Verwaltung von AWS-Accounts in Umgebungen mit mehreren Teams
    • Es bietet einen praktischen Mechanismus, um Sicherheits- und Compliance-Kontrollen vorzukonfigurieren, die automatisch auf neue Landing Zones angewendet werden
    • Das ist ein Beispiel für „Compliance zum Zeitpunkt der Änderung“: Jedes Mal, wenn neue Infrastruktur erstellt wird, werden Kontrollen angewendet und validiert, sodass später keine manuellen Compliance-Prüfungen nötig sind
    • AWS Control Tower Account Factory for Terraform (AFT) hat sich seit dem letzten Band weiterentwickelt und ist nun in mehr AWS-Regionen verfügbar
    • Mit AFT lassen sich Control-Tower-Accounts über eine Infrastructure-as-Code-Pipeline bereitstellen
    • Uns gefällt, dass sich AFT anpassen lässt, um Webhooks zu senden oder bestimmte Aktionen auszuführen, damit es sicher und zuverlässig mit externen Tools wie GitHub Actions integriert werden kann
    • Unsere Teams haben mit AWS Control Tower bei der Account-Verwaltung große Erfolge erzielt, hoffen aber, dass AWS Community-Beiträge zum Projekt annimmt, wenn sich Verbesserungsmöglichkeiten ergeben
  • CCMenu

    • Für Teams, die Continuous Integration praktizieren, ist es wichtig, den Status zentraler Builds aus dem Continuous-Integration-(CI-)System im Blick zu haben
    • Vor der Pandemie lieferten Dashboards auf großen TV-Bildschirmen in Teamräumen diese Information auf einen Blick
    • Da Remote-Arbeit anhält, werden Lösungen benötigt, die auf den einzelnen Workstations der Entwickler laufen
    • Auf dem Mac füllt eine kleine App namens CCMenu, geschrieben von einem Thoughtworker, genau diese Lücke
    • Die ursprünglich zu CruiseControl gehörende App funktioniert mit jedem Server, der Informationen im cctray-Format bereitstellen kann, einschließlich Jenkins und TeamCity
    • Kürzlich wurde sie neu geschrieben, wobei Unterstützung für GitHub Actions hinzugefügt wurde und der Weg für tiefere Integrationen mit weiteren CI-Servern und Authentifizierungsstilen geebnet wurde
  • ClickHouse

    • ClickHouse ist eine Open-Source-Spalten-Datenbank für Online Analytical Processing (OLAP) in Echtzeit
    • Sie begann 2009 als experimentelles Projekt und hat sich zu einer leistungsstarken, linear skalierbaren analytischen Datenbank entwickelt
    • Dank einer effizienten Query-Engine und Datenkompression eignet sie sich gut für interaktive Abfragen ohne Voraggregierung
    • ClickHouse ist eine gute Wahl für die Speicherung von OpenTelemetry-Daten
    • Durch die Integration mit Jaeger lassen sich große Mengen an Tracing-Daten speichern und effizient analysieren
  • Devbox

    • Trotz Fortschritten bei Entwickler-Tools bleibt es für viele Teams eine Herausforderung, konsistente lokale Entwicklungsumgebungen aufrechtzuerhalten
    • Das Onboarding neuer Engineers erfordert oft das Ausführen von Befehlen oder benutzerdefinierten Skripten, die auf unterschiedlichen Systemen unvorhersehbar fehlschlagen können, was zu Inkonsistenzen führt
    • Um dieses Problem zu lösen, setzen unsere Teams zunehmend auf Devbox
    • Devbox ist ein Kommandozeilen-Tool, das eine zugängliche Oberfläche zur Erstellung reproduzierbarer, projektspezifischer lokaler Entwicklungsumgebungen mit dem Nix-Paketmanager bietet, ohne virtuelle Maschinen oder Container zu verwenden
    • Ist es einmal für eine Codebasis konfiguriert, genügt auf einem neuen Gerät ein einziger CLI-Befehl (devbox shell), um die definierte Umgebung nachzubilden, was den Onboarding-Workflow deutlich vereinfacht
    • Devbox unterstützt Shell-Hooks, benutzerdefinierte Skripte und die Erzeugung von devcontainer.json, um sich in VSCode zu integrieren
  • Difftastic

    • Difftastic ist ein Tool, das Unterschiede zwischen Code-Dateien syntaxbewusst hervorhebt
    • Damit unterscheidet es sich deutlich von textbasierten Diff-Tools wie dem Unix-Befehl diff
    • So ignoriert Difftastic beispielsweise Zeilenumbrüche, die eingefügt wurden, um lange Anweisungen in durch Semikolon getrennten Sprachen wie Java oder TypeScript aufzuteilen
    • Das Tool hebt nur Änderungen hervor, die sich auf die Syntax des Programms auswirken
    • Dazu werden die Dateien zunächst in abstrakte Syntaxbäume geparst, anschließend wird mit dem Dijkstra-Algorithmus die Distanz zwischen den Bäumen berechnet
    • Wir haben festgestellt, dass Difftastic besonders beim Review großer Codebasen hilfreich ist, um Änderungen besser zu verstehen
    • Difftastic kann für jede Programmiersprache verwendet werden, für die ein Parser verfügbar ist, und unterstützt standardmäßig mehr als 50 Programmiersprachen sowie strukturierte Textformate wie CSS und HTML
    • Es ist kein neues Tool, aber wir halten es im Zeitalter der LLM-Coding-Assistenten, in dem Human-in-the-Loop-Reviews immer wichtiger werden, für bemerkenswert
  • LinearB

    • LinearB, eine Software-Engineering-Intelligence-Plattform, liefert Engineering-Führungskräften datengestützte Erkenntnisse zur Unterstützung kontinuierlicher Verbesserungen.
    • Wichtige Bereiche wie Benchmarking, Workflow-Automatisierung sowie gezielte Investitionen zur Verbesserung von Developer Experience und Produktivität werden aufeinander abgestimmt.
    • Die Erfahrungen mit LinearB unterstreichen seine Fähigkeit, innerhalb von Engineering-Teams eine Kultur der Verbesserung und Effizienz zu fördern.
    • Unser Team nutzte die Plattform, um zentrale Engineering-Metriken nachzuverfolgen, Bereiche mit Verbesserungsbedarf zu identifizieren und evidenzbasierte Maßnahmen umzusetzen.
    • Diese Fähigkeiten passen gut zu LinearBs zentralem Nutzenversprechen: Benchmarking, automatisierte Erfassung von Metriken und die Ermöglichung datengetriebener Verbesserungen.
    • LinearB integriert sich mit Source Code, Application Lifecycle, CI/CD und Kommunikationstools und liefert mithilfe vorkonfigurierter sowie benutzerdefinierter Engineering-Metriken umfassende quantitative Einblicke in Developer Experience, Produktivität und Teamleistung.
    • Als DORA-Befürworter schätzen wir an LinearB besonders, dass es diese spezifischen Metriken hervorhebt und seine Fähigkeit stärkt, zentrale Aspekte der Software-Delivery-Performance zu messen, die für Effizienzverbesserungen essenziell sind.
    • Historisch gesehen hatten Teams Schwierigkeiten, DORA-spezifische Metriken zu erfassen, und waren dabei oft auf komplexe benutzerdefinierte Dashboards oder manuelle Prozesse angewiesen.
    • LinearB bietet weiterhin eine überzeugende Lösung, die das Tracking dieser Metriken automatisiert und Echtzeitdaten bereitstellt, um proaktive Entscheidungen zu Developer Experience, Produktivität und Vorhersagbarkeit zu unterstützen.
  • pgvector

    • pgvector ist eine Open-Source-Erweiterung für PostgreSQL zur Vektorähnlichkeitssuche, mit der sich Vektoren zusammen mit strukturierten Daten in einer einzigen, gut etablierten Datenbank speichern lassen.
    • Einige fortgeschrittene Funktionen spezialisierter Vektor-Datenbanken fehlen zwar, dafür profitiert es von ACID-Konformität, Point-in-Time-Recovery und weiteren starken Funktionen von PostgreSQL.
    • Mit dem Wachstum generativer KI-basierter Anwendungen beobachten wir ein zunehmendes Muster, Embedding-Vektoren für Ähnlichkeitssuchen zu speichern und effizient abzurufen, ein Problem, das pgvector effektiv löst.
    • Angesichts der zunehmenden Nutzung von pgvector in Produktionsumgebungen, insbesondere bei Teams, die bereits Cloud-Anbieter mit Managed PostgreSQL einsetzen, sowie seiner nachgewiesenen Fähigkeit, gängige Anforderungen an Vektorsuche ohne separaten Vektorspeicher zu erfüllen, sind wir von seinem Potenzial überzeugt.
    • Unser Team hat es in Projekten nützlich eingesetzt, in denen strukturierte und unstrukturierte Daten verglichen wurden, was sein Potenzial für eine breitere Einführung zeigt.
    • Deshalb stufen wir pgvector in die Trial-Phase hoch.
  • Snapcraft build tool

    • Snapcraft ist ein Open-Source-Command-Line-Tool zum Bauen und Paketieren von in sich geschlossenen Anwendungen, sogenannten Snaps, für Ubuntu, andere Linux-Distributionen und macOS.
    • Snaps lassen sich über Hardware-Plattformen hinweg, darunter Linux-Computer, virtuelle Umgebungen und bordeigene Computersysteme in Fahrzeugen, einfach ausrollen und warten.
    • Snapcraft bietet einen öffentlichen App Store für die Veröffentlichung von Snaps, aber unser Team verwendet das Build-Tool, um autonome Fahrsysteme als Snaps zu paketieren, ohne sie im öffentlichen App Store zu veröffentlichen.
    • Dadurch können eingebettete Softwaresysteme lokal gebaut, getestet und debuggt und gleichzeitig in einem internen Artefakt-Repository veröffentlicht werden.
  • Spinnaker

    • Spinnaker ist eine von Netflix entwickelte Open-Source-Plattform für Continuous Delivery.
    • Als erstklassige Funktion implementiert sie Cluster-Management und die Bereitstellung von baked Images in der Cloud.
    • Wir mögen Spinnakers meinungsstarken Ansatz für die Bereitstellung von Microservices.
    • In früheren Versionen haben wir angemerkt, dass Pipelines nicht als Code konfiguriert werden konnten, aber mit der Ergänzung der spin CLI wurde dieses Problem gelöst.
    • Für einfache CD-Szenarien empfehlen wir Spinnaker nicht, aber in komplexen Umgebungen ist es mit entsprechend komplexen Deployment-Pipelines zum Tool der Wahl für viele geworden.
  • TypeScript OpenAPI

    • TypeScript OpenAPI (oder tsoa) ist eine Alternative zu Swagger zur Generierung von OpenAPI-Spezifikationen aus Code.
    • Es verfolgt einen Code-first-Ansatz, nutzt TypeScript-Controller und -Modelle als Single Source of Truth und verwendet TypeScript-Annotationen oder -Dekoratoren, anstatt komplexere Dateien und Konfigurationen zu benötigen, wie es sonst bei der Nutzung von OpenAPI-Tools aus TypeScript der Fall ist.
    • Es generiert sowohl API-Spezifikationen für 2.0 als auch 3.0 und kann Routen für Express, Hapi und Koa erzeugen.
    • Wenn du APIs in TypeScript schreibst, lohnt es sich, dieses Projekt anzusehen.
  • Unleash

    • So einfache Feature Toggles wie möglich zu verwenden, bleibt unser empfohlener Ansatz, aber mit wachsender Teamgröße und schnellerer Entwicklung wird das Management handgefertigter Toggles komplexer.
    • Unleash ist eine in unseren Teams weit verbreitete Option, um diese Komplexität zu bewältigen und CI/CD zu ermöglichen.
    • Es kann als Service genutzt oder selbst gehostet werden.
    • Es bietet SDKs für mehrere Sprachen sowie eine vertraute UI für Developer Experience und Management.
    • Offizielle Unterstützung für die OpenFeature-Spezifikation gibt es noch nicht, aber für Go und Java sind von der Community gepflegte Provider verfügbar.
    • Unleash eignet sich nicht nur für einfache Feature Toggles, sondern auch für Segmentierung und schrittweise Releases und ist damit eine gute Option für Feature-Management im großen Maßstab.

Assess

  • Astronomer Cosmos

    • Astronomer Cosmos ist ein Airflow-Plugin, das entwickelt wurde, um mehr native Unterstützung für dbt-Core-Workflows in Airflow bereitzustellen.
    • Nach der Installation des Plugins wandelt DbtDag beim Wrappen von dbt-Workflows dbt-Knoten in Airflow-Tasks bzw. Task-Gruppen um, sodass Engineers Abhängigkeitsgraphen und Ausführungsfortschritt von dbt direkt in der Airflow-UI visualisieren können.
    • Außerdem können statt dbt-Profile Airflow-Verbindungen verwendet werden, wodurch sich Konfigurationswildwuchs reduzieren lässt.
    • Wir experimentieren mit dem Tool wegen seines Potenzials, dbt-Arbeiten in Airflow nahtloser zu machen.
  • ColPali

    • ColPali ist ein neues Tool zur Suche in PDF-Dokumenten mithilfe von Vision-Language-Modellen und adressiert die Schwierigkeit, leistungsfähige Retrieval-Augmented-Generation-(RAG)-Anwendungen zu bauen, die Daten aus Multimedia-Dokumenten mit Bildern, Diagrammen und Tabellen extrahieren können.
    • Im Gegensatz zu herkömmlichen Methoden, die auf textbasierte Embeddings oder OCR-Techniken angewiesen sind, verarbeitet ColPali ganze PDF-Seiten und nutzt visuelle Transformer, um Embeddings zu erzeugen, die sowohl Text als auch visuelle Inhalte berücksichtigen.
    • Dieser ganzheitliche Ansatz verbessert nicht nur die Suche, sondern ermöglicht auch Rückschlüsse darauf, warum ein bestimmtes Dokument gefunden wird, und steigert die RAG-Performance bei datenreichen PDFs erheblich.
    • Wir haben ColPali mit mehreren Kunden getestet und vielversprechende Ergebnisse gesehen, aber die Technologie befindet sich noch in einem frühen Stadium.
    • Besonders für Organisationen mit komplexen visuellen Dokumentdaten ist eine Evaluierung lohnenswert.
  • Cursor

    • Der Wettbewerb bei KI-gestützten Programmierwerkzeugen hält an, und besonders hervor sticht Cursor.
    • Cursor ist ein AI-first-Code-Editor, der KI tief in den Coding-Workflow integriert, um die Produktivität von Entwicklern zu steigern.
    • Wir haben Cursor bereits in einer früheren Radar-Bewertung hervorgehoben, aber es ist klar, dass die jüngsten kontinuierlichen Verbesserungen von Cursor einen qualitativen Sprung bewirkt haben.
    • In unserer Nutzung zeigte Cursor starke Fähigkeiten zur kontextbezogenen Schlussfolgerung auf Basis bestehender Codebasen.
    • Während andere KI-Code-Tools wie GitHub Copilot eher dazu tendieren, Code-Snippets zu erzeugen und zu kollaborieren, heben Cursor seine Bearbeitungen über mehrere Zeilen und mehrere Dateien hinweg hervor.
    • Cursor ist ein Fork von VSCode und darauf aufgebaut und bietet schnelle und intuitive Interaktionsweisen, die der Intuition von Entwicklern entsprechen.
    • Leistungsstarke Aktionen lassen sich mit ctrl/cmd+K und ctrl/cmd+L ausführen.
    • Cursor führt den neuen Wettbewerb bei KI-Programmierwerkzeugen im Hinblick auf Entwicklerinteraktion und Verständnis von Codebasen an.
  • Data Mesh Manager

    • Data Mesh Manager stellt die Metadatenebene einer typischen Data-Mesh-Plattform bereit
    • Besonders im Fokus stehen dabei die Definition von Datenprodukten und die Spezifikation von Datenverträgen unter Verwendung der OpenContract-Initiative; über die zugehörige DataContract CLI lässt sich das in Build-Pipelines integrieren
    • Darüber hinaus bietet die Anwendung einen Datenkatalog zum Suchen und Durchsuchen von Datenprodukten und deren Metadaten und ermöglicht föderierte Governance einschließlich der Definition von Datenqualitätsmetriken und der Verwaltung von Datenqualitätsregeln
    • Es ist eines der ersten dedizierten Werkzeuge, das in diesem Bereich aufgetaucht ist, und versucht nicht, bestehende Plattformen an das Data-Mesh-Paradigma anzupassen
  • GitButler

    • Die Kommandozeilenschnittstelle von Git ist mächtig und nützlich, aber berüchtigt dafür, sehr komplex zu sein, wenn es um die Verwaltung mehrerer Branches und das Staging von Commits darin geht
    • GitButler ist ein Git-Client mit grafischer Oberfläche, der diesen Prozess vereinfachen soll
    • Dazu verfolgt es nicht committete Dateiänderungen unabhängig von Git und staged diese Änderungen anschließend in virtuellen Branches
    • Man könnte argumentieren, dass dies eine Lösung für ein Problem ist, das gar nicht erst existieren sollte. Wenn man kleine Änderungen häufig vornimmt und in den Trunk pusht, braucht man keine mehreren Branches
    • Wenn der Workflow jedoch Pull Requests umfasst, kann die Branching-Struktur komplex werden, insbesondere wenn es vor dem Merge von PRs lange Review-Zyklen gibt
    • Um das zu lösen, integriert sich GitButler mit GitHub, gruppiert Änderungen wahlweise zu Pull Requests und kann diese direkt aus dem Tool heraus veröffentlichen
    • GitButler ist ein weiterer Eintrag in der wachsenden Blip-Kategorie zur Bewältigung der im PR-Prozess inhärenten Komplexität
  • JetBrains AI Assistant

    • JetBrains AI Assistant ist ein Coding-Assistent, der für eine nahtlose Integration in alle JetBrains-IDs entwickelt wurde, um Codevervollständigung, Testgenerierung und die Einhaltung von Styleguides zu unterstützen
    • Er basiert auf Modellen wie OpenAI und Google Gemini und hebt sich durch die Fähigkeit ab, den Coding-Stil für künftige Sitzungen zu speichern und so konsistente Ausgaben zu gewährleisten
    • Unsere Entwickler fanden besonders die Testgenerierungsfunktion nützlich und hoben die Fähigkeit hervor, längere Ausgaben ohne Stabilitätsprobleme zu verarbeiten
    • Anders als einige Wettbewerber hostet JetBrains jedoch keine eigenen Modelle, weshalb das Angebot für Kunden mit Bedenken hinsichtlich der Datenverarbeitung durch Dritte möglicherweise ungeeignet ist
    • Dennoch ist die Integration in JetBrains IDEs ein vielversprechender Pluspunkt für Teams, die AI-gestützte Coding-Assistenten evaluieren
  • Mise

    • Entwickler, die in polyglotten Umgebungen arbeiten, müssen häufig mehrere Versionen unterschiedlicher Sprachen und Tools verwalten
    • mise will dieses Problem lösen, indem es ein einziges Tool bietet, das nvm, pyenv, rbenv, rustup und weitere ersetzen kann, und außerdem als Ersatz für asdf dienen kann
    • Mise ist in Rust geschrieben, um schnelle Shell-Interaktionen zu ermöglichen; anders als asdf, das Shell-basierte Shims verwendet, passt mise die PATH-Umgebungsvariable im Voraus an, sodass Tool-Aufrufe direkt ausgeführt werden
    • Das ist einer der Gründe, warum mise schneller ist als asdf
    • Für Entwickler, die bereits mit asdf vertraut sind, bietet mise dieselben Funktionen, hat aber einige wesentliche Unterschiede
    • Da es in Rust geschrieben ist, ist es schneller und bietet einige Funktionen, die asdf nicht hat. So lassen sich beispielsweise mehrere Versionen desselben Tools gleichzeitig installieren, und es stellt tolerantere Befehle einschließlich Fuzzy Matching bereit
    • Außerdem bietet es einen integrierten Task-Runner, der nützlich ist, um Linter, Tests, Builder, Server und andere projektspezifische Aufgaben auszuführen
    • Wenn es Sie etwas ermüdet, mehrere Tools zur Verwaltung Ihrer Entwicklungsumgebung zu verwenden, und Sie die mitunter sperrige Syntax anderer Werkzeuge leid sind, ist mise definitiv einen Blick wert
  • Mockoon

    • Mockoon ist ein Open-Source-Tool für API-Mocking
    • Es bietet eine intuitive Oberfläche, anpassbare Routen und dynamische Antworten sowie die Möglichkeit, die Erzeugung von Mock-Datensätzen zu automatisieren
    • Mockoon ist mit OpenAPI kompatibel und kann verschiedene Szenarien erzeugen, die sich lokal testen und in Entwicklungspipelines integrieren lassen
    • Es kann auch Anfragen abfangen und nur in Mockoon definierte Aufrufe fälschen, um ein „partielles Mocking“ zu erzeugen
    • Partielles Mocking hilft dabei, bestimmte API-Routen oder Endpunkte zu simulieren und andere Anfragen an den echten Server weiterzuleiten
    • Partielles Mocking kann in bestimmten Szenarien nützlich sein, birgt bei übermäßigem Einsatz jedoch das Risiko unnötiger Komplexität
    • Davon abgesehen bleibt Mockoon ein nützliches Werkzeug, um Mock-APIs schnell einzurichten und Entwicklungs-Workflows zu verbessern und zu automatisieren
  • Raycast

    • Raycast ist ein Premium-Launcher für macOS, mit dem sich Anwendungen schnell per Tastatur starten, Befehle ausführen, Dateien durchsuchen und Aufgaben automatisieren lassen
    • Unser Team schätzt die integrierten Funktionen für Entwickler und die einfache Erweiterbarkeit, um mit Drittanbieter-Apps und -Diensten wie VSCode, Slack, Jira und Google zu interagieren
    • Raycast ist auf Produktivität ausgerichtet und ein nützliches Tool für alle, die tägliche Aufgaben vereinfachen und Kontextwechsel minimieren möchten
    • Pro-Nutzer erhalten Zugriff auf Raycast AI, einen spezialisierten AI-gestützten Suchassistenten
  • ReadySet

    • ReadySet ist ein Query-Cache für MySQL und PostgreSQL
    • Anders als herkömmliche Caching-Lösungen, die auf manueller Invalidierung beruhen, nutzt ReadySet Datenbank-Replikationsstreams, um den Cache inkrementell zu aktualisieren
    • Durch partielle View-Materialisierung erreicht ReadySet geringere Tail-Latenzen als bestehende Read-Replicas
    • ReadySet ist drahtkompatibel mit MySQL und PostgreSQL, sodass es sich ohne Änderungen an der Anwendung vor der Datenbank bereitstellen lässt, um Read-Workloads horizontal zu skalieren
  • Rspack

    • Viele unserer Teams, die an webbasierten Frontends arbeiten, sind von älteren Bundling-Tools wie Webpack zu Vite gewechselt
    • Ein neuer Teilnehmer in diesem Bereich ist Rspack, dessen Version 1.0 nach 18 Monaten Entwicklungszeit veröffentlicht wurde
    • Es wurde als Ersatz für Webpack entwickelt und ist mit Plugins und Loadern aus dem Webpack-Ökosystem kompatibel
    • Das kann gegenüber Vite ein Vorteil sein, wenn komplexe Webpack-Konfigurationen migriert werden
    • Der Hauptgrund für die Migration unserer Teams auf moderne Tools wie Vite und Rspack ist die Developer Experience, insbesondere die Geschwindigkeit
    • Nichts unterbricht den Entwicklungsfluss mehr, als ein bis zwei Minuten warten zu müssen, bevor man Feedback zur letzten Codeänderung erhält
    • Das in Rust geschriebene Rspack bietet eine deutlich höhere Performance als Webpack und ist in vielen Fällen sogar schneller als Vite
  • Semantic Router

    • Beim Aufbau von LLM-basierten Anwendungen ist es wichtig, die Absicht der Nutzer zu bestimmen, bevor Anfragen an einen bestimmten Agenten weitergeleitet oder bestimmte Abläufe ausgelöst werden
    • Semantic Router fungiert als ultraschnelle Entscheidungsschicht für LLMs und Agenten und ermöglicht es, Anfragen auf Basis semantischer Bedeutung effizient und zuverlässig weiterzuleiten
    • Durch die Nutzung von Vektor-Embeddings zur Ableitung von Intentionen reduziert Semantic Router unnötige LLM-Aufrufe und bietet einen einfacheren und kosteneffizienteren Ansatz zum Verständnis von Nutzerabsichten
    • Sein Potenzial geht über die Ableitung von Intentionen hinaus und erstreckt sich auf eine vielseitige Komponente für unterschiedlichste semantische Aufgaben
    • Dank der gebotenen Geschwindigkeit und Flexibilität positioniert es sich als starker Kandidat für Umgebungen, in denen schnelle Entscheidungen in Echtzeit ohne den Overhead von LLMs erforderlich sind
  • Software-Engineering-Agenten

    • Eines der derzeit heißesten Themen im GenAI-Bereich ist das Konzept von Software-Engineering-Agenten.
    • Diese Coding-Assistenten leisten mehr, als dass Entwickler hier und da einzelne Code-Schnipsel schreiben; sie erweitern die Größe der Probleme, die gelöst werden können, und führen Aufgaben idealerweise autonom und mit minimalem menschlichem Eingreifen aus.
    • Die Idee ist, dass diese Tools GitHub-Issues oder Jira-Tickets übernehmen, Pläne und Codeänderungen vorschlagen oder sogar Pull Requests erstellen können, die Menschen dann prüfen.
    • Das ist der nächste logische Schritt, um die Wirkung von AI-Coding-Unterstützung zu erhöhen, aber das Ziel eines allgemeinen Agenten, der die oft beworbene breite Palette an Coding-Aufgaben abdecken kann, ist sehr ambitioniert, und der aktuelle Stand der Tooling-Landschaft belegt das nicht eindeutig.
    • Dennoch sehen wir, dass dies in naher Zukunft für einfachere Aufgaben mit engerem Umfang funktionieren könnte, um Entwicklerzeit für komplexere Probleme freizusetzen.
    • Zu den Tools, deren Agenten-Betaversionen veröffentlicht wurden, gehören GitHub Copilot Workspace, qodo flow, der Tabnine-Agent für JIRA und Amazon Q Developer.
    • Im SWE-Bench-Benchmark sind noch mehr Tools aus diesem Bereich aufgeführt, allerdings sollte man Benchmarks im AI-Bereich mit einer gewissen Skepsis betrachten.
  • uv

    • Rust eignet sich wegen seiner schnellen Start-Performance gut zum Schreiben von Kommandozeilen-Tools, und wir sehen, dass einige Toolchains in Rust neu geschrieben werden.
    • In einem früheren Radar hatten wir Ruff erwähnt, einen in Rust geschriebenen Python-Linter.
    • In diesem Band haben wir uv bewertet, ein in Rust geschriebenes Python-Paketmanagement-Tool.
    • Das Wertversprechen von uv ist, dass es „extrem schnell“ ist, und in Benchmarks übertrifft es andere Python-Paketmanagement-Tools deutlich.
    • Während der Radar-Bewertung haben wir jedoch diskutiert, ob Optimierungen im Sekundenbereich bei Build-Tools nur marginale Verbesserungen darstellen.
    • Wichtiger als Performance sind bei einem Paketmanagement-System Ökosystem, eine reife Community und langfristiger Support.
    • Dennoch zeigte das Feedback von Projektteams, dass diese kleine Performance-Verbesserung erheblich dazu beitragen kann, Feedback-Zyklen und die gesamte Developer Experience zu verbessern – wir neigen dazu, manuelles CI/CD-Caching sehr komplex zu machen, um genau diese kleinen Performance-Gewinne zu erzielen; uv vereinfacht das Management von Python-Umgebungen.
    • Angesichts dessen, dass es beim Paket- und env-Management für Python-Entwicklung weiterhin viel Verbesserungspotenzial gibt, halten wir uv für eine Option, die eine Bewertung wert ist.
  • Warp

    • Warp ist ein Terminal für macOS und Linux.
    • Es teilt die Kommandoausgabe zur besseren Lesbarkeit in Blöcke auf.
    • Warp enthält AI-gestützte Funktionen wie intelligente Kommando-Vorschläge und Natural Language Processing.
    • Außerdem enthält es Notebook-Funktionen, mit denen Nutzer Kommandos und Ausgaben strukturieren sowie Anmerkungen und Erklärungen hinzufügen können.
    • Mit diesen Funktionen lassen sich README-Dateien oder Onboarding-Materialien erstellen und Terminal-Workflows strukturiert und interaktiv darstellen und verwalten.
    • Warp lässt sich zudem leicht mit Starship integrieren, einem flexiblen Shell-übergreifenden Prompt, mit dem sich das Terminal-Erlebnis anpassen lässt, indem Informationen über laufende Prozesse, spezifische Versionen der verwendeten Tools, Git-Details oder den aktuellen Git-Benutzer abgerufen werden.
  • Zed

    • Nachdem das Projekt des Texteditors Atom eingestellt wurde, entwickelten seine Schöpfer einen neuen Editor namens Zed.
    • Zed ist in Rust geschrieben, für die Nutzung moderner Hardware optimiert und fühlt sich schnell an.
    • Es bietet alle Funktionen, die man von einem modernen Editor erwartet, darunter Unterstützung für viele Programmiersprachen, ein integriertes Terminal und Multibuffer-Bearbeitung.
    • AI-gestütztes Coding ist über Integrationen mit mehreren LLM-Anbietern verfügbar.
    • Als begeisterte Pair-Programmierer waren wir von den in Zed eingebauten Funktionen für Remote-Zusammenarbeit angetan.
    • Entwickler können einander über ihre GitHub-ID finden und dann in Echtzeit im selben Workspace zusammenarbeiten.
    • Es ist noch zu früh, um zu beurteilen, ob Entwicklungsteams sich von der Anziehungskraft des Visual-Studio-Code-Ökosystems lösen können oder wollen.
    • Dennoch ist Zed eine Alternative, die es wert ist, erkundet zu werden.

Hold

  • CocoaPods
    • CocoaPods ist ein seit Langem beliebtes Dependency-Management-Tool für Swift- und Objective-C-Cocoa-Projekte.
    • Seit mehr als 10 Jahren ist es ein wichtiges Tool für iOS- und macOS-Entwickler.
    • Das CocoaPods-Team hat nun angekündigt, dass das Projekt in den Wartungsmodus übergeht und die aktive Entwicklung eingestellt wird.
    • Das CocoaPods-Tool und die zugehörigen Ressourcen bleiben weiterhin verfügbar, aber es sind keine neuen Funktionen oder Verbesserungen geplant.
    • Entwicklern wird empfohlen, auf den Swift Package Manager umzusteigen.
    • Der Swift Package Manager bietet eine native Integration in Xcode und kann auf langfristige Unterstützung durch Apple zählen.

[Language and Frameworks]

Adopt

  • dbt

    • wird weiterhin als starke und kluge Option für die Umsetzung von Datentransformationen in ELT-Pipelines angesehen.
    • Uns gefällt, dass es technische Disziplin ermöglicht und Praktiken wie Modularität, Testbarkeit und Wiederverwendbarkeit SQL-basierter Transformationen fördert.
    • Es integriert sich gut mit vielen Cloud-Data-Warehouses, Lakehouses und Datenbanken wie Snowflake, BigQuery, Redshift, Databricks und Postgres und verfügt über ein gesundes Ökosystem an Community-Paketen.
    • Die kürzlich eingeführte native Unterstützung für Unit-Tests (dbt core 1.8+ und die kürzlich eingeführte „versionless“-Erfahrung in dbt Cloud) stärkt seine Position im Werkzeugkasten weiter.
    • Mit den neuen Unit-Test-Funktionen lassen sich statische Testdaten einfach definieren, Ausgabenerwartungen festlegen und sowohl inkrementelle als auch Full-Refresh-Modi der Pipeline testen, was von Teams sehr geschätzt wird.
    • In vielen Fällen konnten dadurch selbst entwickelte Skripte aufgegeben werden, ohne beim Qualitätsniveau Abstriche zu machen.
  • Testcontainers

    • Testcontainers wird als nützliche Standardoption wahrgenommen, um eine verlässliche Umgebung für Testausführungen zu schaffen.
    • Es handelt sich um eine in mehrere Sprachen portierte Bibliothek, die gängige Testabhängigkeiten dockerisiert, darunter verschiedene Arten von Datenbanken, Queue-Technologien, Cloud-Services und UI-Testabhängigkeiten wie Webbrowser; bei Bedarf können auch benutzerdefinierte Dockerfiles ausgeführt werden.
    • Kürzlich wurde eine Desktop-Version veröffentlicht, die visuelles Management von Test-Sessions und Funktionen zur Verwaltung komplexerer Szenarien bietet, was Teams als sehr nützlich einschätzen.

Trial

  • CAP

    • Eine .NET-Bibliothek zur Implementierung des Outbox-Patterns, um Datenbank-Updates und Event-Veröffentlichung in verteilten Messaging-Systemen atomar auszuführen.
    • Sie löst das Problem, indem die Absicht, Events zu veröffentlichen, innerhalb derselben Datenbanktransaktion festgehalten wird.
    • Sie unterstützt mehrere Datenbanken und Messaging-Plattformen und ist nützlich, da sie mindestens einmalige Zustellung garantiert.
  • CARLA

    • Ein Open-Source-Simulator für die Forschung zu autonomem Fahren, der verwendet wird, um Systeme für autonomes Fahren vor dem Produktiveinsatz zu testen.
    • Er ermöglicht die flexible Erstellung und Wiederverwendung von 3D-Modellen von Fahrzeugen, Gelände, Menschen, Tieren und mehr, sodass sich unterschiedlichste Szenarien simulieren lassen.
    • Systeme für autonomes Fahren müssen diese dynamischen Objekte erkennen und angemessene Maßnahmen wie Bremsen ergreifen.
    • Er wird für die kontinuierliche Entwicklung und das Testen autonomer Fahrsysteme genutzt.
  • Databricks Asset Bundles

    • DABs, die im April 2024 GA wurden, etablieren sich als Tool für das Packaging und die Bereitstellung von Databricks-Assets, das Data-Teams bei der Einführung von Software-Engineering-Praktiken unterstützt.
    • Workflows und Job-Konfigurationen sowie der in diesen Jobs auszuführende Code können als Bundle paketiert und über CI/CD-Pipelines in mehrere Umgebungen ausgerollt werden.
    • Es unterstützt Templates für gängige Asset-Typen sowie benutzerdefinierte Templates, wodurch sich maßgeschneiderte Service-Templates für Data-Engineering- und ML-Projekte erstellen lassen.
    • Es wird zunehmend als zentraler Bestandteil von Engineering-Workflows eingesetzt.
    • Zwar unterstützt es Notebook-Templates und die Bereitstellung in Produktion, wir empfehlen jedoch nicht, Notebooks zu produktivieren.
    • Stattdessen fördert es bewusst das Schreiben von Produktionscode mit Engineering-Praktiken, die Anforderungen an Wartbarkeit, Robustheit und Skalierbarkeit unterstützen.
  • Instructor

    • Eine Bibliothek, die hilfreich ist, wenn mit LLMs strukturierte Antworten (JSON, YAML usw.) angefordert, geparst und in Anwendungen verwendet werden
    • Da LLMs nicht deterministisch sind, verhalten sie sich möglicherweise nicht immer wie angefordert
    • Man kann die beabsichtigte Ausgabestruktur definieren und Wiederholungsversuche konfigurieren, wenn das LLM die angeforderte Struktur nicht zurückgibt
    • Bietet auch die Möglichkeit, partielle Strukturen aus einem Stream zu parsen, sodass Ergebnisse gestreamt werden können, ohne auf die vollständige Antwort zu warten
  • Kedro

    • Als MLOps-Tool deutlich verbessert und mit weiterem Fokus auf Modularität und Engineering-Praktiken
    • Betont Modularität, etwa durch die Einführung des eigenständigen Pakets kedro-datasets, das Code und Daten trennt
    • Verbesserungen bei CLI, Starter-Projektvorlagen und Telemetrie-Funktionen
    • Jüngst veröffentlichte VS Code-Erweiterung verbessert die Developer Experience
  • LiteLLM

    • Eine Bibliothek, die sich nahtlos mit APIs verschiedener LLM-Anbieter integrieren lässt und Interaktionen über das OpenAI-API-Format standardisiert
    • Unterstützt eine große Bandbreite an Anbietern und Modellen und bietet eine einheitliche Schnittstelle für Completions, Embeddings und Bildgenerierung
    • Vereinfacht Integrationen, indem Eingaben so transformiert werden, dass sie zu den spezifischen Endpoint-Anforderungen der jeweiligen Anbieter passen
    • Bietet ein Framework zur Implementierung betrieblicher Funktionen, die für Produktionsanwendungen erforderlich sind, etwa Caching, Logging, Rate Limiting und Load Balancing
    • Ermöglicht den einfachen Austausch verschiedener Modelle, was in der aktuellen Situation mit ihrer schnellen Weiterentwicklung nötig ist
    • Dabei sollte man berücksichtigen, dass Modellantworten auf denselben Prompt variieren, sodass sich die Completion-Leistung nicht allein durch eine einheitliche Aufrufmethode optimieren lässt
    • Da jedes Modell Zusatzfunktionen auf eigene Weise implementiert, ist es mit einer einzigen Schnittstelle möglicherweise schwer, alle Funktionen abzudecken
  • LlamaIndex

    • Enthält eine Engine zur Entwicklung domänenspezifischer und kontextbasierter LLM-Anwendungen und unterstützt Aufgaben wie Datenerfassung, Vektorindizierung und natürlichsprachliche Frage-Antwort-Systeme für Dokumente
    • Mit LlamaIndex lassen sich RAG-Pipelines (Retrieval-Augmented Generation) aufbauen, die die Dokumentenerfassung automatisieren, Dokument-Embeddings indizieren und diese Embeddings auf Basis von Nutzereingaben abfragen
    • Mit LlamaHub lassen sich LlamaIndex-Module erweitern oder anpassen, und es können LLM-Anwendungen mit bevorzugten LLM-, Embedding- und Vector-Store-Anbietern erstellt werden
  • LLM Guardrails

    • Eine Sammlung von Richtlinien, Policies oder Filtern, die verhindern soll, dass LLMs schädliche, irreführende oder irrelevante Inhalte erzeugen
    • Kann auch zum Schutz von LLM-Anwendungen vor böswilligen Nutzern eingesetzt werden, die das System etwa durch Input-Manipulation missbrauchen wollen
    • Dient als Sicherheitsnetz, indem es Grenzen dafür setzt, wie das Modell Inhalte verarbeitet und erzeugt
    • Aufkommende Frameworks in diesem Bereich wie NeMo Guardrails, Guardrails AI und Aporia Guardrails sind nützlich
    • Es wird empfohlen, in allen LLM-Anwendungen Guardrails einzusetzen und Regeln sowie Policies kontinuierlich zu verbessern
    • Wichtig für den Aufbau verantwortungsvoller und vertrauenswürdiger LLM-Chat-Apps
  • Medusa

    • E-Commerce-Lösungen zum Aufbau der meisten Shopping-Websites geraten oft in die 80/20-Falle
    • Medusa ist eine gut ausbalancierte, hochgradig anpassbare Open-Source-Commerce-Plattform, mit der Entwickler einzigartige und maßgeschneiderte Shopping-Erlebnisse schaffen können
    • Auf Basis von Next.js und PostgreSQL entwickelt und mit einer umfassenden Modulauswahl ausgestattet, von Warenkorb und Auftragsverwaltung bis hin zu fortgeschrittenen Funktionen wie Gift-Card-Modulen und regionaler Steuerberechnung, was den Entwicklungsprozess beschleunigt
    • Wurde in einigen Projekten eingesetzt und als wertvolles Framework bewertet
  • Pkl

    • Eine Open-Source-Konfigurationssprache und ein entsprechendes Tool, das ursprünglich für den internen Einsatz bei Apple entwickelt wurde
    • Die Hauptfunktion ist ein Typ- und Validierungssystem, das Konfigurationsfehler vor dem Deployment erkennen kann
    • Kann Codeduplizierung reduzieren (etwa bei Environment-Overrides) und Konfigurationsänderungen validieren, bevor sie in Live-Umgebungen übernommen werden
    • Bietet breite IDE- und Sprachintegrationen, darunter die Erzeugung von JSON-, PLIST-, YAML- und .properties-Dateien sowie Codegenerierung
  • ROS 2

    • Ein Open-Source-Framework für die Entwicklung von Robotersystemen
    • Bietet Bibliotheken und Tools, die eine modulare Implementierung von Anwendungen ermöglichen, die Funktionen wie Interprozesskommunikation, Multithread-Ausführung und Quality of Service abdecken
    • Gegenüber früheren Versionen verbessert, etwa durch bessere Echtzeitfähigkeiten, mehr Modularität, breitere Plattformunterstützung und sinnvolle Standardwerte
    • Für Hersteller mit komplexen und sich weiterentwickelnden In-Vehicle-Anwendungen wie autonomen Fahrfunktionen sind die nodebasierte Architektur und das topicbasierte Kommunikationsmodell besonders attraktiv
    • Wird in der Automobilindustrie zunehmend eingesetzt
  • seL4

    • In SDV- und anderen sicherheitskritischen Szenarien ist die Echtzeitzuverlässigkeit des Betriebssystems entscheidend
    • Wegen der hohen Eintrittsbarrieren wird dieser Bereich von wenigen Unternehmen dominiert, weshalb Open-Source-Lösungen wie seL4 wertvoll sind
    • seL4 ist ein hochsicherer, leistungsstarker Mikrokernel für Betriebssysteme
    • Verwendet Methoden der formalen Verifikation, um sicherzustellen, dass das Verhalten des Betriebssystems den Spezifikationen „mathematisch“ entspricht
    • Die Mikrokernel-Architektur minimiert Kernverantwortlichkeiten, um die Systemstabilität sicherzustellen
    • EV-Unternehmen wie NIO arbeiten mit dem seL4-Ökosystem zusammen; künftig könnte es in diesem Bereich weitere Fortschritte geben
  • SetFit

    • Die meisten aktuellen KI-basierten Tools sind generativ, erzeugen also Texte und Bilder und nutzen GPT
    • Für klassische Textaufgaben wie Textklassifikation oder Intent-Erkennung werden Sentence Transformers bevorzugt
    • SetFit ist ein Framework zur Feinabstimmung von Sentence Transformers
    • Nutzt kontrastives Lernen, um verschiedene Intent-Klassen zu trennen, und erreicht oft schon mit sehr wenigen Beispielen eine klare Trennung
    • Sentence Transformers können auch in generativen KI-Systemen eine Rolle spielen
    • In kundengerichteten Chatbot-Systemen auf LLM-Basis wurde SetFit erfolgreich für die Intent-Erkennung eingesetzt; für strikteres Filtering wurde ein SetFit-basierter Klassifikator gewählt
  • vLLM

    • Eine Inference Engine für LLMs mit hohem Durchsatz und effizienter Speichernutzung, die in der Cloud oder On-Premises ausgeführt werden kann
    • Unterstützt nahtlos mehrere Modellarchitekturen und populäre Open-Source-Modelle
    • Durch Deployment dockerisierter vLLM-Worker auf GPU-Plattformen wie NVIDIA DGX und Intel HPC lassen sich Modelle wie Llama 3.1 (8B und 70B), Mistral 7B und Llama-SQL für Entwickler-Coding-Unterstützung, Wissenssuche, natürlichsprachliche Datenbankinteraktion und mehr hosten
    • Kompatibel mit dem OpenAI-SDK-Standard und fördert damit konsistentes Model Serving
    • Der AI Model Catalog von Azure verbessert die Model-Serving-Performance mit benutzerdefinierten Inference-Containern und nutzt vLLM aufgrund des hohen Durchsatzes und des effizienten Speichermanagements als Standard-Inference-Engine
    • Das vLLM-Framework entwickelt sich zum Standard für groß angelegte Model Deployments

Assess

  • Apache XTable™

    • Unter den verfügbaren offenen Tabellenformaten zeichnet sich kein klarer Sieger ab
    • Tools wie Delta UniForm ermöglichen Interoperabilität zwischen diesen Formaten
    • Apache XTable™ ist ein Apache-Inkubatorprojekt, das bidirektionale Interoperabilität zwischen Hudi, Delta und Iceberg fördert
    • Aufgrund der Funktionsunterschiede dieser Formate könnte eine langfristig starke Abhängigkeit von bidirektionaler Interoperabilität dazu führen, dass Teams nur noch Funktionen des „kleinsten gemeinsamen Nenners“ nutzen können
  • dbldatagen

    • Die Vorbereitung von Testdaten für Data Engineering ist eine erhebliche Herausforderung
    • Die Übertragung von Daten aus der Produktion in Testumgebungen kann riskant sein, weshalb Teams oft auf Fake- oder synthetische Daten zurückgreifen
    • dbldatagen (Databricks Labs Data Generator) ist eine Python-Bibliothek zur Erzeugung synthetischer Daten in Databricks-Umgebungen für Tests, Benchmarking, Demos und mehr
    • dbldatagen kann Milliarden von Zeilen in wenigen Minuten erzeugen und damit synthetische Daten im großen Maßstab für verschiedene Szenarien bereitstellen, darunter mehrere Tabellen, Change Data Capture und Merge-/Join-Operationen
  • DeepEval

    • DeepEval ist ein Python-basiertes Open-Source-Evaluierungs-Framework zur Bewertung der Leistung von LLMs
    • Es kann zur Bewertung von RAG- (retrieval-augmented generation) und anderen Arten von Apps verwendet werden, die mit beliebten Frameworks wie LlamaIndex oder LangChain erstellt wurden, und um bei Bedarf Baselines und Benchmarks für den Vergleich verschiedener Modelle festzulegen
    • DeepEval bietet umfassende Metriken und Funktionen zur Bewertung der LLM-Leistung, darunter Halluzinationserkennung, Antwortrelevanz und Hyperparameter-Optimierung
    • Es bietet eine Integration mit pytest, sodass sich Testsets zusammen mit Assertions einfach in CI- (continuous integration) Pipelines integrieren lassen
  • DSPy

    • Die meisten heutigen sprachmodellbasierten Anwendungen verlassen sich auf manuell abgestimmte Prompt-Templates für bestimmte Aufgaben
    • DSPy ist ein Framework zur Entwicklung solcher Anwendungen und verfolgt einen anderen Ansatz, der direktes Prompt Engineering überflüssig macht
    • Stattdessen führt es höherstufige Abstraktionen ein, die sich auf den Programmfluss beziehen (über Module, die übereinander geschichtet werden können), auf zu optimierende Metriken sowie auf Daten zum Trainieren oder Testen
    • Anschließend optimiert es auf Basis der definierten Metriken die Prompts oder Gewichte des zugrunde liegenden Sprachmodells
    • Die resultierende Codebasis ähnelt stark dem Training neuronaler Netze mit PyTorch
  • Flutter for Web

    • Flutter ist für seine plattformübergreifende Unterstützung von iOS- und Android-Anwendungen bekannt
    • Inzwischen wurde es auf weitere Plattformen ausgeweitet
    • Mit derselben Codebasis lassen sich Apps für iOS, Android und Browser erstellen
    • Nicht jede Webanwendung ergibt mit Flutter Sinn, aber besonders geeignet ist es für Progressive Web Apps, Single-Page-Apps und für die Umwandlung bestehender Flutter-Mobil-Apps ins Web
    • Flutter unterstützte WebAssembly (WASM) bereits im experimentellen Kanal als Compile-Target, was bedeutete, dass es sich in aktiver Entwicklung mit potenziellen Bugs und Performance-Problemen befand
    • In einer aktuellen Veröffentlichung wurde dies stabilisiert
    • Die Performance von Flutter-Webanwendungen, die auf das WASM-Target kompiliert werden, ist deutlich besser als beim JavaScript-Compile-Target
    • Die nahezu native Performance auf verschiedenen Plattformen ist auch einer der Gründe, warum sich viele Entwickler ursprünglich für Flutter entschieden haben
  • kotaemon

    • kotaemon ist ein Open-Source-RAG-basiertes Tool und Framework zum Aufbau von Q&A-Apps für wissensbasierte Dokumente
    • Es kann mehrere Dokumenttypen einschließlich PDF- und DOC-Formaten verstehen und bietet eine auf Gradio basierende Web-UI, über die Nutzer ihre Wissensbasis organisieren und über eine Chat-Oberfläche damit interagieren können
    • Es verfügt über eine integrierte RAG-Pipeline mit Vector Store und lässt sich per SDK erweitern
    • Außerdem bietet es webbasierte Inline-Vorschauen und zitiert Quelldokumente in Antworten zusammen mit Relevanzwerten
    • Für alle, die eine RAG-basierte Dokumenten-Q&A-Anwendung suchen, ist dieses anpassbare Framework ein sehr guter Ausgangspunkt
  • Lenis

    • Lenis ist eine leichtgewichtige, aber leistungsstarke Smooth-Scrolling-Bibliothek, die für moderne Browser entwickelt wurde
    • Sie ermöglicht flüssige Scrolling-Erlebnisse wie WebGL-Scroll-Synchronisierung und Parallax-Effekte und ist damit ideal für Teams, die Seiten mit flexiblen und nahtlosen Scroll-Interaktionen entwickeln
    • Entwickler haben festgestellt, dass Lenis einfach und leicht zu verwenden ist und einen schlanken Ansatz zum Erstellen von Smooth Scrolling bietet
    • Die Bibliothek kann jedoch Probleme bei der Barrierefreiheit verursachen; insbesondere vertikale und horizontale Scroll-Interaktionen können Nutzer mit Behinderungen verwirren
    • Sie ist visuell ansprechend, erfordert aber eine sorgfältige Implementierung, um die Barrierefreiheit zu erhalten
  • LLMLingua

    • LLMLingua komprimiert Prompts, indem es mit kleineren Sprachmodellen nicht essenzielle Tokens entfernt, und steigert so die Effizienz von LLMs bei minimalem Leistungsverlust
    • Dieser Ansatz ermöglicht es LLMs, längere Prompts effizient zu verarbeiten und dabei Inferenz sowie In-Context Learning beizubehalten, wodurch Herausforderungen wie Kosteneffizienz, Inferenzlatenz und Kontextverarbeitung adressiert werden
    • LLMLingua ist ohne zusätzliches Training mit verschiedenen LLMs kompatibel und unterstützt Frameworks wie LlamaIndex, wodurch es sich gut zur Optimierung der LLM-Inferenzleistung eignet
  • Microsoft Autogen

    • Microsoft Autogen ist ein Open-Source-Framework, das die Erstellung und Orchestrierung von AI-Agenten vereinfacht und die Zusammenarbeit mehrerer Agenten zur Lösung komplexer Aufgaben ermöglicht
    • Es unterstützt sowohl autonome als auch Human-in-the-Loop-Workflows und bietet Kompatibilität mit verschiedenen LLMs und Tools für Agenteninteraktionen
    • Ein Team nutzte Autogen für einen Client, um eine AI-basierte Plattform aufzubauen, in der jeder Agent eine bestimmte Fähigkeit repräsentiert, etwa Codegenerierung, Code-Review oder Dokumentzusammenfassung
    • Durch die Definition geeigneter Modelle und Workflows mit dem Framework kann das Team neue Agenten nahtlos und konsistent erstellen
    • Mithilfe von LlamaIndex zur Orchestrierung der Workflows können Agenten Aufgaben wie Produktsuche und Codevorschläge effizient verwalten
    • Autogen hat insbesondere in Produktionsumgebungen Potenzial gezeigt, doch mit der Hinzunahme weiterer Agenten bleiben Bedenken hinsichtlich Skalierbarkeit und Komplexitätsmanagement bestehen
    • Zur Bewertung der langfristigen Tragfähigkeit bei der Skalierung agentenbasierter Systeme sind weitere Evaluierungen erforderlich
  • Pingora

    • Pingora ist ein Rust-Framework zum Aufbau schneller, stabiler und programmierbarer Netzwerkdienste
    • Ursprünglich wurde Pingora von Cloudflare entwickelt, um die Schwächen von Nginx zu beheben; es zeigt bereits großes Potenzial, da neue Proxys wie River darauf aufbauen
    • Die meisten Menschen stehen zwar nicht vor einer Skalierung auf Cloudflare-Niveau, begegnen aber Szenarien, in denen flexibles Routing auf Anwendungsebene für Netzwerkdienste unverzichtbar ist
    • Die Architektur von Pingora erlaubt es, in solchen Situationen die volle Leistungsfähigkeit von Rust zu nutzen, ohne Sicherheit oder Performance zu opfern
  • Ragas

    • Ragas ist ein Framework zur Bewertung der Leistung von Retrieval-Augmented-Generation- (RAG-)Pipelines und adressiert die Herausforderung, sowohl Retrieval- als auch Generierungskomponenten zu evaluieren
    • Es bietet strukturierte Metriken wie Faithfulness, Antwortrelevanz und Kontextnutzung und hilft so bei der Bewertung der Effektivität RAG-basierter Systeme
    • Entwickler fanden es nützlich, regelmäßige Evaluierungen durchzuführen, um Parameter wie Top-k-Retrieval und Embedding-Modelle feinzujustieren
    • Einige Teams haben Ragas in Pipelines integriert, die täglich laufen, sobald sich Prompt-Templates oder Modelle ändern
    • Obwohl die Metriken belastbare Erkenntnisse liefern, gibt es Bedenken, dass das Framework nicht alle Nuancen und komplexen Wechselwirkungen komplexer RAG-Pipelines erfassen kann; daher wird empfohlen, zusätzliche Evaluierungs-Frameworks in Betracht zu ziehen
    • Dennoch hebt sich Ragas durch seine Fähigkeit hervor, RAG-Evaluierung in Produktionsumgebungen zu vereinfachen und datengestützte Verbesserungen zu ermöglichen
  • Score

    • Viele Organisationen, die eine eigene interne Entwicklungsplattform implementieren, neigen dazu, ein eigenes Plattform-Orchestrierungssystem zu bauen, um Organisationsstandards zwischen Entwicklern und den Teams für das Plattform-Hosting durchzusetzen.
    • Die grundlegenden Funktionen einer Golden-Path-Bereitstellungsplattform zum sicheren, konsistenten und regelkonformen Hosting von Container-Workloads sind jedoch von Organisation zu Organisation ähnlich.
    • Wäre es nicht gut, eine gemeinsame Sprache zur Beschreibung dieser Anforderungen zu haben?
    • Score zeigt das Potenzial, in diesem Bereich zu einem Standard zu werden.
    • Es handelt sich um eine deklarative Sprache im YAML-Format, die beschreibt, wie containerisierte Workloads bereitgestellt werden und welche konkreten Services und Parameter für ihren Betrieb erforderlich sind.
    • Score wurde ursprünglich als Konfigurationssprache für das Produkt Platform Orchestrator von Humanitec entwickelt, ist inzwischen jedoch ein Open-Source-Projekt unter der Verwaltung der CNCF (Cloud Native Computing Foundation).
    • Mit der Unterstützung der CNCF hat Score das Potenzial, über die Produkte von Humanitec hinaus breiter eingesetzt zu werden.
    • Es wurde zusammen mit zwei Referenzimplementierungen für Kubernetes und Docker Compose veröffentlicht.
    • Von der Erweiterbarkeit von Score wird erwartet, dass sie zu Community-Beiträgen für andere Plattformen führt.
    • Score weist Ähnlichkeiten mit der Open Application Model (OAM)-Spezifikation für Kubevela auf, konzentriert sich jedoch stärker auf die Bereitstellung von Container-Workloads als auf vollständige Anwendungen.
    • Es gibt auch gewisse Überschneidungen mit SST, aber SST ist stärker an der direkten Bereitstellung in Cloud-Infrastrukturen interessiert als an internen Engineering-Plattformen.
    • Wir beobachten Score mit Interesse, während es sich weiterentwickelt.
  • shadcn

    • shadcn stellt das traditionelle Konzept von Komponentenbibliotheken infrage, indem es wiederverwendbare Komponenten anbietet, die sich kopieren und einfügen lassen.
    • Dieser Ansatz gibt Teams vollständige Ownership und Kontrolle und ermöglicht dadurch einfachere Anpassung und Erweiterung — ein Bereich, in dem allgemeinere etablierte Bibliotheken wie MUI und Chakra UI oft Schwächen zeigen.
    • shadcn, aufgebaut auf Radix UI und Tailwind CSS, lässt sich nahtlos in jede React-basierte Anwendung integrieren und eignet sich daher gut für Projekte, bei denen Kontrolle und Erweiterbarkeit im Vordergrund stehen.
    • Enthält eine CLI, die den Prozess des Kopierens und Einfügens von Komponenten in ein Projekt unterstützt.
    • Da dadurch auch versteckte Abhängigkeiten reduziert und eng gekoppelte Implementierungen vermieden werden, gewinnt shadcn als attraktive Alternative für Teams an Aufmerksamkeit, die bei der Frontend-Entwicklung einen praktischeren und anpassungsfähigeren Ansatz verfolgen.
  • Slint

    • Slint ist ein deklaratives GUI-Framework zum Erstellen nativer Benutzeroberflächen für Rust-, C++- oder JavaScript-Anwendungen.
    • Es ist ein plattformübergreifendes UI-Framework mit wichtigen Funktionen wie Live-Vorschau, responsivem UI-Design, VS Code-Integration und nativer Benutzererfahrung, wobei wir insbesondere seine Nützlichkeit für Embedded-Systeme hervorheben möchten.
    • Teams, die Embedded-Anwendungen entwickeln, hatten traditionell nur begrenzte Optionen für die UI-Entwicklung, die jeweils ihre eigenen Vor- und Nachteile hatten.
    • Slint verwendet eine einfach zu nutzende, HTML-ähnliche Markup-Sprache und wird direkt in Maschinencode kompiliert, wodurch es eine ausgezeichnete Balance zwischen Developer Experience und Performance bietet.
    • Auch zur Laufzeit zeichnet es sich durch einen geringen Ressourcenbedarf aus, was für Embedded-Systeme wichtig ist.
    • Kurz gesagt gefällt uns Slint, weil es bewährte Praktiken aus der Web- und Mobile-Entwicklung in das Embedded-Ökosystem bringt.
  • SST

    • SST ist ein Framework zur Bereitstellung von Anwendungen in Cloud-Umgebungen zusammen mit allen Services, die für deren Ausführung erforderlich sind.
    • SST ist nicht nur ein einfaches IaC-Tool, sondern ein Framework mit einer TypeScript-API zur Definition der Anwendungsumgebung, einem Service zur Bereitstellung von Anwendungen bei einem durch Git push ausgelösten Trigger sowie einer GUI-Konsole zur Verwaltung der resultierenden Anwendung und zum Aufruf der Management-Funktionen von SST.
    • SST basierte ursprünglich auf AWS Cloud Formation und CDK, die neueste Version ist jedoch auf Terraform und Pulumi aufgebaut und damit theoretisch Cloud-unabhängig.
    • SST unterstützt standardmäßig die Bereitstellung mehrerer gängiger Webanwendungs-Frameworks, darunter Next.js und Remix, unterstützt aber auch Headless-API-Anwendungen.
    • SST scheint in eine eigene Kategorie zu gehören.
    • Es gibt Ähnlichkeiten mit Plattform-Orchestrierungstools wie Kubevela, bietet aber auch Komfortfunktionen für Entwickler, etwa einen Live-Modus, der AWS-Lambda-Aufrufe an Funktionen weiterleitet, die auf dem lokalen Rechner des Entwicklers laufen.
    • Derzeit bleibt SST noch eine gewisse Kuriosität, ist aber mit seiner Weiterentwicklung ein bemerkenswertes Projekt und Teil einer interessanten Tool-Kategorie.

Hold : keine

10 Kommentare

 
kane44 2024-11-05

Danke. Das ist interessant.

 
dastjead 2024-11-04

Sie haben sich viel Mühe gemacht … vielen Dank!

 
roxie 2024-10-31

Wenn ich kurz meine Gedanken zu der Scroll-Bibliothek namens Lenis einwerfen darf: Solch geschmeidige Scroll-Animationen wie auf Apples Website fühlen sich für mich eher etwas unangenehm an.

Wenn man mit dem Mausrad scrollt, wirkt es, als würde die Animation ständig stocken, und wenn man sich mit der Pfeiltaste nach unten bewegt, geht es zu schnell, sodass sich die Inhalte nur schwer lesen lassen.

Am Ende ist die einzige Möglichkeit, solche Websites wirklich zu „genießen“, unter Windows auf das Scrollrad zu klicken und sich dann ganz leicht und langsam nach unten zu bewegen — aber ich bin mir nicht sicher, ob das den Aufwand wert ist. Kurz gesagt: Ich weiß nicht, ob das wirklich eine gute Technik ist.

 
roxie 2024-10-31

Databricks taucht erschreckend oft auf.

 
halfenif 2024-10-29

Beim Lesen schon aufgegeben. schluchz

 
savvykang 2024-10-29

Ich habe die Produkte/Services zusammengestellt, die bereits auf GeekNews erschienen sind.

Platforms - Assess

Platforms - Trial

Language and Frameworks - Adopt

Language and Frameworks - Assess

Language and Frameworks - Trial

Tools - Adopt

Tools - Assess

Tools - Trial

 
wwhite103 2024-10-29

Vielen Dank. Das ist interessant~

 
nottiger 2024-10-29

Gut gelesen. Vielen Dank.

 
bbulbum 2024-10-29

Ich habe den Artikel mit großem Interesse gelesen. Vielen Dank.