Category: Entwicklung

Hotspot: Eine elegante GUI für die Linux perf-Leistungsanalyse

2025-05-22
Hotspot: Eine elegante GUI für die Linux perf-Leistungsanalyse

KDAB hat Hotspot entwickelt, eine eigenständige GUI für die Leistungsdatenanalyse, die sich zunächst auf die Visualisierung von Linux perf-Daten in einer KCachegrind-ähnlichen Oberfläche konzentriert. Sie bietet grafische Visualisierung, Timeline-Filterung und die Möglichkeit, perf zum Profilen von Anwendungen zu starten. Verfügbar als AppImage für einfache plattformübergreifende Nutzung oder über Paketmanager (AUR, Debian, Ubuntu, Fedora), ermöglicht Hotspot die Analyse von CPU- und Off-CPU-Zeit und exportiert Daten zum Teilen. Obwohl noch nicht vollständig funktionsfähig, vereinfacht Hotspot die Linux-Leistungsanalyse.

Entwicklung

Dijkstras vernichtende Kritik an den Ada-Sprachvorschlägen

2025-05-22
Dijkstras vernichtende Kritik an den Ada-Sprachvorschlägen

Edsger Dijkstra, Turing-Preisträger, begutachtete vier Vorschläge für die Programmiersprache Ada (rot, grün, blau und gelb). Er nannte den roten Vorschlag „sowohl fortschrittlich als auch rückständig in einer so widersprüchlichen Weise, dass ich verblüfft bin“. Der grüne Vorschlag wurde als „technische Inkompetenz, wahrscheinlich verstärkt durch Unehrlichkeit“ bewertet. Der blaue Vorschlag war „unannehmbar komplex“, mit einer Dokumentation, die als „unauflösliche Mischung aus technischer Dokumentation und Verkaufsgespräch“ beschrieben wurde. Schließlich machte sich Dijkstra Sorgen, dass die westliche Sicherheit von dem siegreichen grünen Vorschlag abhing, und schlug sogar vor, er würde sich sicherer fühlen, wenn die sowjetische Rote Armee ihn übernehmen würde. Diese Anekdote unterstreicht Dijkstras unerschütterliches Engagement für strenge technische Standards und klares Design im Software-Engineering.

Entwicklung

Warum Debian seine Pakete ändert

2025-05-22

Vor anderthalb Jahren habe ich "Warum ist Debian so, wie es ist?" geschrieben, was viele Fragen dazu aufwarf, warum Debian seine Softwarepakete verändert. Dieser Artikel beschreibt die Hauptgründe: Einhaltung der Richtlinien im Debian Policy Manual (z. B. Systemkonfiguration und Dokumentationsorte); Sicherstellung der Kompatibilität zwischen Programmen (z. B. Unix-Domain-Socket-Orte, Benutzerkonten); Entfernung von Code, der "nach Hause telefoniert" oder das Debian-Packaging-System umgeht (aus Datenschutz- und Sicherheitsgründen); Behebung oder Backporting von Fehlerbehebungen zur Verbesserung der Benutzererfahrung; Vermeidung der Einbeziehung von rechtlich problematischem Code (gemäß den Debian Free Software Guidelines); und Hinzufügen fehlender Manpages. Im Wesentlichen gewährleisten diese Änderungen die Systemstabilität, Sicherheit und die Einhaltung der Prinzipien freier Software.

Entwicklung

Inigo Quilez' Computergrafik-Tutorial-Goldgrube

2025-05-22

Inigo Quilez, ein erfahrener Experte für Computergrafik, widmet sich seit 1994 dem Lernen und Teilen seines Wissens. Seine Website bietet eine umfangreiche Sammlung von Computergrafik-Tutorials, die Themen von SDFs und Raymarching bis hin zu Fraktalen und mathematischen Techniken abdecken. Die Tutorials zeichnen sich durch prägnante Code-Schnipsel und klare Erklärungen aus und richten sich an Lernende unterschiedlicher Niveaus. Er stellt außerdem Video-Tutorials und weitere Ressourcen bereit, und sein Code ist unter der MIT-Lizenz verfügbar, um die Wiederverwendung zu erleichtern.

Entwicklung

DuckDB auf einem MacBook Pro von 2012: Haben wir ein Jahrzehnt mit verteilten Architekturen verschwendet?

2025-05-22
DuckDB auf einem MacBook Pro von 2012: Haben wir ein Jahrzehnt mit verteilten Architekturen verschwendet?

Dieser Artikel testet DuckDB auf einem MacBook Pro von 2012, um zu untersuchen, ob die Geschwindigkeit der Hardware-Innovation das Datenwachstum übertroffen hat und verteilte Architekturen überflüssig gemacht hat. Die Ergebnisse zeigen, dass der zehn Jahre alte Laptop komplexe analytische SQL-Abfragen ausführen kann, wenn auch langsamer als moderne Maschinen, aber innerhalb eines angemessenen Zeitrahmens. Dies führt zu einer Reflexion über den Fokus der letzten zehn Jahre auf verteilte Datenanalyse und legt nahe, dass die Einzelknoten-Datenbanktechnologie damals bereits in der Lage war, große Datensätze zu verarbeiten, wodurch die Notwendigkeit des Wechsels zu verteilten Systemen in Frage gestellt wird.

Entwicklung

Experimenteller Kotlin-Sprachserver für VS Code

2025-05-22
Experimenteller Kotlin-Sprachserver für VS Code

Ein offizieller Kotlin-Sprachserver in der Pre-Alpha-Version ist jetzt für Visual Studio Code verfügbar und implementiert das Language Server Protocol für Kotlin. Er basiert auf IntelliJ IDEA und dem IntelliJ IDEA Kotlin-Plugin und unterstützt die meisten wichtigen Funktionen, befindet sich aber noch in der experimentellen Phase und bietet keine Stabilitätsgarantien. Derzeit werden nur JVM-only Kotlin Gradle-Projekte direkt unterstützt. Teile der Implementierung sind derzeit Closed Source, um die Entwicklungsgeschwindigkeit zu erhöhen, mit Plänen für vollständiges Open Source später. Während er einfach als VS Code-Erweiterung installiert werden kann, erfordert die Konfiguration in anderen Editoren manuelle Schritte. Benutzer werden ermutigt, ihn zu testen und Feedback zu geben, direkte Code-Beiträge werden jedoch noch nicht unterstützt.

Entwicklung

Von der Ablehnung zur Annahme: Die Macht der ersten Seite

2025-05-22
Von der Ablehnung zur Annahme: Die Macht der ersten Seite

Ein ursprünglich abgelehnter Artikel wurde drastisch überarbeitet und schließlich angenommen. Der Autor beschreibt detailliert die vorgenommenen Änderungen, wobei der Fokus auf der entscheidenden ersten Seite (Titel, Zusammenfassung, Abbildung 1, Einleitung) liegt. Durch einen prägnanten und einprägsamen Titel, eine visuell ansprechende Abbildung 1 sowie eine präzise und fesselnde Zusammenfassung und Einleitung konnte der Autor die Wirkung des Artikels verbessern. Weitere Überarbeitungen umfassten das Hinzufügen von Basislinien, Ablationen und die Sicherstellung statistischer Signifikanz, um potenzielle Ablehnungsgründe zu adressieren. Der Autor schlussfolgert, dass eine verbesserte Kommunikation die wissenschaftliche Wirkung deutlich steigert.

Informationen in E-Mails mit LLMs und einem MCP-Server finden

2025-05-22

Der Autor hat einen MCP-Server gebaut, um einem großen Sprachmodell (LLM) schreibgeschützten Zugriff auf seine E-Mails zu ermöglichen. In einem Gespräch mit Gemini (einem LLM) demonstriert der Autor, wie einfache Such- und Abruftools verwendet werden können, um den Namen von Donovans Sohn in E-Mails zu finden. Obwohl Geminis anfängliche Suchstrategie mehrere Keywords (wie "son", "boy", "baby") verwendete, führten die meisten zu Donovans Verwandten. Schließlich identifizierte Gemini Hinweise in den ersten Suchergebnissen, analysierte Betreffzeilen und Inhalte von E-Mails und fand erfolgreich den Namen des Sohnes: Monty. Der Prozess unterstreicht die Leistungsfähigkeit von LLMs in Kombination mit spezifischen Tools für die Informationsabfrage und betont die Bedeutung präziser Suchstrategien.

Entwicklung Informationsabfrage

Pure JS CSV zu durchsuchbarer HTML-Tabelle

2025-05-22
Pure JS CSV zu durchsuchbarer HTML-Tabelle

Sind Sie es leid, mit CSV-Daten zu kämpfen? Dieses reine JavaScript-Projekt verwandelt Ihre CSV-Dateien in schöne, durchsuchbare und filterbare HTML-Tabellen. Mit minimalem Code visualisieren Sie Ihre Daten, passen die Formatierung an, ermöglichen Downloads und betten die Tabelle nahtlos ein. Schauen Sie sich die Demo an und vereinfachen Sie Ihre Datenverarbeitung noch heute!

Entwicklung

Abenteuer im Legacy-Code: Eine COBOL-Odyssee

2025-05-22

Die Wartung von 200.000 Zeilen COBOL-Code enthüllte einen Schatz an genialen Hacks und historischen Eigenheiten. Der Autor entdeckte dezimale Zahlen, intelligentes String-Parsing mit Datendefinitionen und eine 'REDEFINES'-Anweisung, die für die Internationalisierung verwendet wurde (sogar mit spanischen Redefinitionen!). Frühe Exits wurden für einen abrupten Job-Abbruch implementiert, und eine Datei enthielt mysteriöserweise die ersten 800 natürlichen Zahlen als String-Konstanten. Die Geschichte endet mit der Enthüllung, dass der UNIX-Befehl 'dd' von der COBOL-Anweisung 'DD' für Datendefinition stammt, was das unerwartete Erbe der Mainframe-Programmierung zeigt.

Entwicklung Legacy-Code

arXivLabs: Gemeinschaftsentwicklung von arXiv-Funktionen

2025-05-21
arXivLabs: Gemeinschaftsentwicklung von arXiv-Funktionen

arXivLabs ist ein Framework, das es Mitwirkenden ermöglicht, neue arXiv-Funktionen direkt auf der Website zu entwickeln und zu teilen. Teilnehmer müssen die Werte von arXiv wie Offenheit, Community, Exzellenz und Datenschutz der Benutzerdaten akzeptieren. Haben Sie eine Idee, um die arXiv-Community zu verbessern? Erfahren Sie mehr über arXivLabs.

Entwicklung

iText Core Tabellen-Rendering-Optimierung: Von 5 Minuten auf 7 Sekunden

2025-05-21
iText Core Tabellen-Rendering-Optimierung: Von 5 Minuten auf 7 Sekunden

Apryse-Ingenieur Guust hat die Leistung des Tabellen-Renderings von iText Core optimiert. Durch Vermeidung wiederholter Berechnungen des Border Collapse und unnötigen Tagging-Overhead wurde die Renderzeit einer Tabelle mit 50.000 Zellen von 5 Minuten auf 7 Sekunden reduziert. Die Optimierungen konzentrierten sich auf die Funktion `CollapsedTableBorders#getVerticalBorder` und die Tag-Verarbeitung, wodurch die Leistung durch Caching, Entfernung redundanter Funktionsaufrufe und Hinzufügen von Tags im Batch deutlich verbessert wurde. Diese Optimierung ist in iText Core 9.1.0 enthalten.

Entwicklung PDF-Rendering

Rocky Linux 10 unterstützt jetzt RISC-V: Ein großer Schritt für Open Source

2025-05-21

Machen Sie sich bereit für Rocky Linux 10! Diese Version ist ein bedeutender Meilenstein: die offizielle Unterstützung der RISC-V-Architektur. Dank der gemeinschaftlichen Bemühungen der Fedora RISC-V-Community und des Rocky AltArch SIG wird ein riscv64gc-Build enthalten sein, der auf Plattformen wie StarFive VisionFive 2, QEMU und SiFive HiFive Premier P550 abzielt. Obwohl einige Funktionen auf bestimmten Plattformen wie der P550 eingeschränkt sein können, ist die Out-of-the-Box-Funktionalität auf VisionFive 2 und QEMU ein Highlight. Diese community-getriebene Initiative, die Anfang 2024 begann, zeigt die Stärke der Open-Source-Zusammenarbeit mit den Upstream-Bemühungen von Fedora RISC-V.

Entwicklung

ACE-RISCV: Open-Source Confidential Computing Framework für RISC-V

2025-05-21
ACE-RISCV: Open-Source Confidential Computing Framework für RISC-V

ACE-RISCV ist ein Open-Source-Projekt, das ein Confidential-Computing-Framework mit einem formal verifizierten Sicherheitsmonitor bereitstellt. Es zielt auf RISC-V ab und ist portabel auf andere Architekturen. Der Schwerpunkt der formalen Verifikation liegt auf der Implementierung des Sicherheitsmonitors. Das Projekt unterstützt lokale Attestierung und verwendet Post-Quantum Cryptography (PQC), darunter ML-KEM, SHA-384 und AES-GCM-256. Detaillierte Anweisungen zum Erstellen und Ausführen sind für eine 64-Bit-RISC-V-Architektur verfügbar.

Entwicklung

P vs. PSPACE: Ist der Raum rechnerisch mächtiger als die Zeit?

2025-05-21
P vs. PSPACE: Ist der Raum rechnerisch mächtiger als die Zeit?

Eine zentrale Frage in der Komplexitätstheorie ist die Beziehung zwischen den Komplexitätsklassen P und PSPACE. P umfasst Probleme, die in angemessener Zeit lösbar sind, während PSPACE sich mit der Raumkomplexität befasst. Die vorherrschende Annahme ist, dass PSPACE größer als P ist, da der Raum im Gegensatz zur Zeit wiederverwendbar ist. Um dies zu beweisen, müsste man Probleme in PSPACE zeigen, die nicht in polynomieller Zeit lösbar sind. Der Artikel beschreibt den Durchbruch von Hopcroft, Paul und Valiant aus dem Jahr 1975, der den leichten Vorteil des Raums gegenüber der Zeit aufzeigte, aber der Fortschritt stagnierte. Die Arbeit von Ryan Williams hat schließlich den Stillstand durchbrochen und neue Perspektiven zur Lösung des Problems P vs. PSPACE eröffnet.

Entwicklung

Appwrite Sites: Website-Deployment und Hosting an einem Ort

2025-05-21
Appwrite Sites: Website-Deployment und Hosting an einem Ort

Appwrite veröffentlicht Sites, ein neues Produkt, mit dem Sie Websites und Webanwendungen direkt in Appwrite bereitstellen und hosten können. Schluss mit dem Hin- und Herspringen zwischen verschiedenen Plattformen und komplexen Konfigurationen; einfach bauen, bereitstellen und live gehen. Sites unterstützt statische Websites und SSR-Anwendungen und integriert Git, ein globales CDN, DDoS-Schutz und lässt sich nahtlos in die Datenbanken, Funktionen, den Speicher und die Authentifizierungsdienste von Appwrite integrieren. Mehrere mit einem Klick bereitgestellte Vorlagen sind verfügbar, mit Unterstützung für Self-Hosting. Appwrite Sites ist bis zum 1. Juli 2025 kostenlos.

Entwicklung Website-Deployment

Google AI Studio: KI-App-Entwicklung mit Gemini 2.5 Pro verbessert

2025-05-21
Google AI Studio: KI-App-Entwicklung mit Gemini 2.5 Pro verbessert

Google AI Studio erhielt ein wichtiges Update mit Integration des Gemini 2.5 Pro Modells für deutlich verbesserte Codegenerierung. Entwickler können schnell KI-basierte Web-Apps mit einfachen Text-, Bild- oder Video-Prompts erstellen und bereitstellen. Die neue Version integriert auch multimodale Modelle wie Imagen, Lyria RealTime und Veo, mit One-Click-Deployment auf Cloud Run und komfortabler Code-Versionsverwaltung. Zusätzlich gibt es native Audio-Unterstützung und ein URL-Kontext-Tool für verbesserte Interaktivität und Informationsbeschaffung.

Entwicklung

Go-Scheduler: Von bescheidenen Anfängen zu einer leistungsstarken Engine

2025-05-21
Go-Scheduler: Von bescheidenen Anfängen zu einer leistungsstarken Engine

Dieser Blogbeitrag befasst sich eingehend mit der Entwicklung des Go-Schedulers, von einem ineffizienten Modell mit einer einzigen globalen Ausführungswarte-schlange bis hin zum hochperformanten GMP-Modell (Goroutine, Machine, Processor). Er beschreibt detailliert die Rollen und Mechanismen der einzelnen Komponenten des GMP-Modells, einschließlich der Goroutine-Erstellung, der Präemption, der Behandlung von Systemaufrufen und der Rolle von netpoll bei Netzwerk-E/A und Datei-E/A. Kooperative und nicht-kooperative Präemption-Mechanismen werden erläutert. Durch die Zerlegung des Go-Runtime-Quellcodes erhalten die Leser ein tieferes Verständnis des Go-Concurrency-Modells und können so effizientere concurrente Programme schreiben.

Entwicklung

Shopifys Storefront Web Components: Einfache E-Commerce-Integration

2025-05-21
Shopifys Storefront Web Components: Einfache E-Commerce-Integration

Shopify hat die Storefront Web Components veröffentlicht, eine Reihe von HTML-Komponenten, die die Integration von Shopifys E-Commerce-Funktionen in jede Website vereinfachen. Zeigen Sie Produkte, Kollektionen und den Checkout mit minimalem HTML-Code an. Diese Komponenten verwalten die Komplexität der Interaktion mit der Shopify Storefront API und eliminieren so den Bedarf an komplexem JavaScript. Erstellen Sie maßgeschneiderte Einkaufserlebnisse mit CSS und HTML, geeignet für die Einbettung in bestehende Inhalte oder den Aufbau völlig neuer Seiten.

LlamaDev: Das neue Monorepo-Management-Tool von LlamaIndex

2025-05-21
LlamaDev: Das neue Monorepo-Management-Tool von LlamaIndex

Die Wartung des LlamaIndex-Monorepos mit über 650 Python-Paketen stellte erhebliche Herausforderungen dar. Zunächst wurden Poetry für einzelne Projekte und Pants für die Orchestrierung verwendet, doch mit zunehmender Größe traten Probleme mit der Build-Geschwindigkeit und der Wartung des Caching-Servers auf. Um dies zu lösen, entwickelte das LlamaIndex-Team LlamaDev, das Poetry durch uv ersetzt und die Abhängigkeitsgraphen und Testauslösung intern verwaltet. LlamaDev verbessert die Build-Geschwindigkeit deutlich, vereinfacht das Debugging und verbessert die Entwicklererfahrung, wodurch die Beteiligung von Mitwirkenden am Projekt erleichtert wird.

Entwicklung

Langfuse veröffentlicht anpassbare Dashboards: Die Power der LLM-Nutzungsdaten entfesseln

2025-05-21
Langfuse veröffentlicht anpassbare Dashboards: Die Power der LLM-Nutzungsdaten entfesseln

Am dritten Tag des Langfuse-Launches wurden anpassbare Dashboards vorgestellt: eine leistungsstarke Möglichkeit, die LLM-Nutzung direkt in der Langfuse-Benutzeroberfläche zu visualisieren. Egal ob Sie Latenztrends verfolgen, Benutzerfeedback überwachen oder Kosten mit Leistung korrelieren möchten, mit den neuen Dashboards können Sie die benötigten Diagramme erstellen – genau dort, wo Sie sie benötigen. Für diejenigen, die lieber ihren eigenen Analyse-Stack verwenden, sind die gleichen Abfragefunktionen über die API verfügbar. Dieser Beitrag beschreibt den Weg von der Produktidee über die technische Implementierung, Tests und den Rollout und teilt die gewonnenen Erkenntnisse beim Aufbau flexibler, Echtzeit-Einblicke in Ihre LLM-Pipelines. Durch Abstraktion des Datenmodells, den Aufbau einer flexiblen und performanten Abfrage-Engine und eines Dashboard-Builders hat Langfuse erfolgreich anpassbare Dashboards bereitgestellt und diese durch Beta-Tests und Benutzerfeedback iterativ verbessert, um mehr Diagrammkomponenten, größenverstellbare Widgets, verbesserte Tools und sogar von Langfuse verwaltete Dashboards mit wertvollen vordefinierten Themen hinzuzufügen.

Entwicklung

arXivLabs: Experimentelle Projekte mit Community-Mitwirkenden

2025-05-21
arXivLabs: Experimentelle Projekte mit Community-Mitwirkenden

arXivLabs ist ein Framework, das die Zusammenarbeit an neuen arXiv-Funktionen direkt auf der Website ermöglicht. Einzelpersonen und Organisationen, die mit arXivLabs arbeiten, haben unsere Werte von Offenheit, Community, Exzellenz und Datenschutz der Benutzerdaten angenommen und akzeptiert. arXiv ist diesen Werten verpflichtet und arbeitet nur mit Partnern zusammen, die diese einhalten. Haben Sie eine Idee für ein Projekt, das einen Mehrwert für die arXiv-Community schafft? Erfahren Sie mehr über arXivLabs.

Entwicklung

Visualisierung des Chromium-Include-Graphen: Ein 150 MB GraphML-Abenteuer

2025-05-21
Visualisierung des Chromium-Include-Graphen: Ein 150 MB GraphML-Abenteuer

Dieser Beitrag beschreibt die Visualisierung des riesigen Include-Graphen von Chromium mit Hilfe von clang-include-graph, einem Kommandozeilen-Tool. Der Prozess beinhaltete das Erstellen von Chromium, um die compile_commands.json zu generieren, und die anschließende Verwendung von clang-include-graph, um eine 150 MB große GraphML-Datei zu erstellen. Diese Datei, die über 140.000 Knoten und 1,3 Millionen Kanten enthält, wurde mit Gephi visualisiert. Python-Skripte analysierten den Graphen und enthüllten interessante Statistiken, wie z. B. eine stark verbundene Komponente mit 92 Knoten, die für 99 % der Zyklen verantwortlich ist. Der Autor untersucht verschiedene Visualisierungslayouts und diskutiert die Herausforderungen bei der Arbeit mit einem so großen Datensatz.

Entwicklung

LLM-Funktionsaufrufe skalieren nicht: Code-Orchestrierung ist einfacher und effektiver

2025-05-21
LLM-Funktionsaufrufe skalieren nicht: Code-Orchestrierung ist einfacher und effektiver

Die vollständige Ausgabe von Funktionsaufrufen an LLMs zurückzuspeisen ist teuer und langsam. Dieser Artikel argumentiert, dass Ausgabeschemata, die das Abrufen strukturierter Daten ermöglichen, LLMs erlauben, die Verarbeitung über generierten Code zu orchestrieren – ein einfacherer und effektiverer Ansatz. Traditionelle Methoden, bei denen die Ausgaben von Tools als Nachrichten an das LLM zurückgegeben werden, um den nächsten Schritt zu bestimmen, funktionieren gut bei kleinen Datensätzen, scheitern aber im realen Maßstab (z. B. große JSON-Blobs von Linear- und Intercom-MCP-Servern). Der Artikel schlägt die Codeausführung als grundlegende Methode zur Datenverarbeitung vor, wobei Variablen als Speicher verwendet werden und Code mehrere Funktionsaufrufe für eine skalierbare Datenverarbeitung orchestriert, wodurch die Probleme mit Kosten, Geschwindigkeit und potenziellen Datenverlusten von LLMs behoben werden, die große Datensätze verarbeiten. Dies erfordert sichere, zustandslose AI-Laufzeitumgebungen, die sich derzeit in der frühen Entwicklung befinden.

Entwicklung Code-Orchestrierung

Devstral: Open-Source LLM übertrifft GPT-4.1-mini im Software-Engineering-Benchmark

2025-05-21
Devstral: Open-Source LLM übertrifft GPT-4.1-mini im Software-Engineering-Benchmark

Mistral AI und All Hands AI haben gemeinsam Devstral veröffentlicht, ein agentisches Large Language Model (LLM) für Software-Engineering-Aufgaben. Devstral zeichnet sich im SWE-Bench Verified Benchmark aus und erreicht einen Score von über 46,8 %, mehr als 6 % besser als vorherige Open-Source-Modelle und sogar besser als GPT-4.1-mini. Es bewältigt komplexe Software-Engineering-Probleme wie das Verstehen von Kontextbeziehungen in großen Codebasen und das Erkennen subtiler Bugs. Devstral ist leichtgewichtig, läuft auf einer einzelnen RTX 4090 oder einem Mac mit 32 GB RAM und unterstützt lokale Bereitstellung, Unternehmenseinsatz und Copilot-Integration. Das Modell ist Open Source und über eine API und verschiedene Download-Optionen verfügbar.

Entwicklung

Kollaborative Textbearbeitung ohne CRDTs oder OT

2025-05-21

Dieser Blogbeitrag beschreibt einen neuen Ansatz zur kollaborativen Textbearbeitung, der die Komplexität von konfliktfreien replizierten Datentypen (CRDTs) und Operational Transformation (OT) vermeidet. Die Kernidee besteht darin, jedem Zeichen eine global eindeutige ID zuzuweisen und "einfügen nach"-Operationen zu verwenden. Der Server aktualisiert seinen Zustand wörtlich basierend auf diesen Operationen, während Clients Server-Rekonziliation für optimistische lokale Aktualisierungen verwenden. Dieser Ansatz ist einfacher und flexibler als CRDT/OT und ermöglicht benutzerdefinierte Operationen und Funktionen wie die Behandlung von Rich Text und Zugriffskontrollen. Eine ergänzende npm-Bibliothek, Articulated, unterstützt die Implementierung.

Windows 11 Geräteübergreifende Wiederaufnahme: Schluss mit unterbrochenen Erlebnissen

2025-05-21
Windows 11 Geräteübergreifende Wiederaufnahme: Schluss mit unterbrochenen Erlebnissen

Microsoft hat auf der Build 2025 ein neues Feature für die geräteübergreifende Wiederaufnahme in Windows 11 vorgestellt, ähnlich Apples Handoff-Funktion. Entwickler können damit die nahtlose Fortsetzung der App-Nutzung zwischen Geräten ermöglichen. Eine Demo zeigte Spotify, bei der Benutzer eine Songwiedergabe auf ihrem Windows-PC von der Stelle aus fortsetzen können, an der sie auf ihrem Telefon aufgehört haben. Auch WhatsApp wurde gezeigt. Dieses Feature, scheinbar ein Nachfolger von Project Rome, verspricht flüssigere geräteübergreifende Erlebnisse und eine verbesserte App-Entdeckung auf Windows für Drittanbieter.

Blöcke, Procs und Lambdas in Ruby: Subtile Unterschiede bei Closures

2025-05-21
Blöcke, Procs und Lambdas in Ruby: Subtile Unterschiede bei Closures

Dieser Artikel untersucht die Unterschiede zwischen Blöcken, Procs und Lambdas in Ruby. Obwohl alle Code gruppieren, um ihn auszuführen, unterscheiden sie sich subtil: Procs sind Objekte, zuweisbar und mit Methoden aufrufbar, im Gegensatz zu Blöcken, die nur Teil der Syntax eines Methodenaufrufs sind; ein Methodenaufruf erlaubt maximal einen Block, aber mehrere Procs; Lambdas überprüfen die Argumentanzahl, Procs nicht; und Lambdas und Procs behandeln das Schlüsselwort `return` unterschiedlich. Der Artikel erklärt auch Closures, den Ursprung der Namen 'proc' und 'lambda' und behandelt die Lambda-Kalküle und anonyme Funktionen.

Entwicklung

Link-Time Optimization (LTO): Die nächste Stufe der Compileroptimierung?

2025-05-21
Link-Time Optimization (LTO): Die nächste Stufe der Compileroptimierung?

Dieser Artikel untersucht Link-Time Optimization (LTO), eine Technik, die die Programmleistung verbessert, indem sie Optimierungen während der Linkphase durchführt. Traditionelle Compiler optimieren innerhalb einzelner Dateien, während LTO umfassendere optimierungen über mehrere Dateien hinweg ermöglicht, wie z. B. das Inlining von Funktionen und die Verbesserung der Codelokalität. Obwohl LTO zu signifikanten Leistungsverbesserungen führen kann (z. B. eine Reduzierung der Laufzeit um 9,2 % und eine Reduzierung der Binärdateigröße um 20 % im Test des ProjectX-Projekts), erfordert es auch längere Kompilierungs- und Verknüpfungszeiten und mehr Arbeitsspeicher. Der Autor vergleicht Experimente an ProjectX und ffmpeg, um die Vor- und Nachteile von LTO zu veranschaulichen, und schlägt vor, LTO bei Projekten zu testen, die nicht aggressiv auf Geschwindigkeit optimiert wurden, und kommt zu dem Schluss, dass die letztendlichen Leistungsgewinne vom jeweiligen Projekt abhängen.

Entwicklung

evolved.lua: Eine schnelle und flexible ECS-Bibliothek für Lua

2025-05-21
evolved.lua: Eine schnelle und flexible ECS-Bibliothek für Lua

evolved.lua ist eine schnelle und flexible Entity-Component-System (ECS)-Bibliothek für Lua. Sie verwendet einen archetypenbasierten Ansatz zum Speichern von Entitäten und Komponenten und nutzt eine Structure of Arrays (SoA) für effizientes Iterieren und Verarbeiten. Die Bibliothek unterstützt Abfragen, verzögerte Operationen, Batch-Operationen und Funktionen wie einen Entitäts-Builder für die vereinfachte Erstellung komplexer Systeme. Installation über luarocks oder Klonen des Repositorys; die Dokumentation umfasst eine Übersicht, Beispiele und ein Spickzettel.

Entwicklung
1 2 80 81 82 84 86 87 88 214 215