Category: Entwicklung

Dateiorganisation: Typ vs. Kontext

2025-05-02
Dateiorganisation: Typ vs. Kontext

Dieser Artikel untersucht zwei gängige Ansätze zur Organisation von Code-Dateien: nach Typ und nach Kontext. Anhand eines realen Beispiels eines Identity and Access Management (IAM)-Systems vergleicht der Autor die Vor- und Nachteile jeder Methode. Während die Organisation nach Typ praktisch ist, um bestimmte Dateitypen zu finden, bleibt sie in Bezug auf das Verständnis der Geschäftslogik und die Wartbarkeit des Codes hinter den Erwartungen zurück. Die Organisation nach Kontext hingegen zeigt die Geschäftsprozesse des Systems klarer auf, erleichtert die Teamarbeit und die Fehlerbehebung und eignet sich besser für große Projekte. Letztendlich kommt der Autor zu dem Schluss, dass die beste Wahl von der Teamgröße, den Projekteigenschaften und dem Workflow abhängt, ohne dass es eine absolut überlegene Methode gäbe.

Entwicklung

15 Wesentliche Git-Befehle für jeden Entwickler

2025-05-02
15 Wesentliche Git-Befehle für jeden Entwickler

Dieser Artikel fasst 15 wichtige Git-Befehle zusammen, die im täglichen Entwicklungsablauf verwendet werden. Von der Initialisierung eines Repositorys (`git init`) und dem Klonen eines Remote-Repositorys (`git clone`) bis zum Hinzufügen von Dateien (`git add`), dem Committen von Änderungen (`git commit`), dem Verwalten von Branches (`git branch`, `git merge`, `git checkout`), dem Umgang mit Remotes (`git pull`, `git push`), dem Rückgängigmachen von Aktionen (`git reset`) und dem temporären Speichern (`git stash`) wird jeder Befehl klar mit Beispielen erklärt. Die Beherrschung dieser Befehle steigert die Entwicklungseffizienz erheblich und minimiert Fehler. Dieser Leitfaden bietet eine solide Grundlage für die Arbeit mit Git in verschiedenen realen Szenarien.

Entwicklung

Sprachkenntnisse, nicht Mathematik, sind der Schlüssel zum Erlernen des Programmierens

2025-05-02
Sprachkenntnisse, nicht Mathematik, sind der Schlüssel zum Erlernen des Programmierens

Eine Studie der University of Washington stellt die herkömmliche Weisheit zum Erlernen des Programmierens in Frage. Die Forscher fanden heraus, dass die Geschwindigkeit und die Fähigkeit, Python zu lernen, stärker mit der Sprachbegabung und den Fähigkeiten zur Problemlösung korrelieren als mit der mathematischen Fähigkeit. Mittels Verhaltenstests und EEG-Daten zeigte die Studie, dass Sprachkenntnisse die Lerngeschwindigkeit signifikant beeinflussen und den Einfluss mathematischer Fähigkeiten übertreffen. Dies hat wichtige Auswirkungen auf die Programmierausbildung und die Rekrutierung von Talenten und stellt die traditionelle Sichtweise des Programmierens als rein mathematisches Gebiet in Frage und legt nahe, dass Frauen in diesem Bereich möglicherweise unterschätzt werden.

Entwicklung Sprachkenntnisse

Streit um NATS-Markenrecht eskaliert: Synadia nimmt Projekt zurück, CNCF wehrt sich

2025-05-02
Streit um NATS-Markenrecht eskaliert: Synadia nimmt Projekt zurück, CNCF wehrt sich

Ein Rechtsstreit um das Markenrecht und das Marketing der weit verbreiteten NATS-Messaging-Software spitzt sich zu. Nachdem Synadia, der ehemalige Eigentümer, die Software von der Cloud Native Computing Foundation (CNCF) zurückgefordert hat, versucht die CNCF nun, die NATS-Marke und das Logo löschen zu lassen. Die CNCF argumentiert, dass Synadia 2018 alle Rechte abgetreten hat und die Vereinbarungen einhalten muss. Synadia entgegnet, dass die CNCF die Community-Beteiligung nicht gefördert habe, die meisten Beiträge von Synadia stammten und schlägt vor, NATS auf eine Business Source License (BSL) umzustellen. Die CNCF lehnt die BSL als nicht Open-Source-Lizenz ab und betont ihr Engagement für Open-Source-Werte. Der Kernstreit dreht sich um Eigentum, Markenrechte und Lizenzen, was möglicherweise zu einer Projekt-Fork ähnlich der Terraform/OpenTofu-Spaltung führt.

Entwicklung

Diese verdammte App ist makellos

2025-05-02

Sind Sie müde von aufgeblähten, dopaminreichen Apps, die Sie mit „täglichen Serien“ und „achtsamen Erinnerungen“ bombardieren? Diese App ist das Gegenmittel. Blitzschnell, keine Startbildschirme, keine Animationen – nur pure Funktionalität. Sie bietet einen dunklen Modus, kein Tracking, einen integrierten „Nichts tun“-Knopf, ist völlig kostenlos und erfordert keine Anmeldung. Sie ist ein minimalistisches Wunderwerk, der Inbegriff von „mit möglichst wenig möglichst viel erreichen“, ein Mittelfinger an jedes überentwickelte Startup, das jemals Ihre Zeit verschwendet hat.

Entwicklung ToDo-Liste

Webflow stellt GSAP kostenlos zur Verfügung: Webanimationen werden einfacher

2025-05-02
Webflow stellt GSAP kostenlos zur Verfügung: Webanimationen werden einfacher

Webflow hat die branchenführende JavaScript-Animationsbibliothek GreenSock Animation Platform (GSAP) erworben und sie komplett kostenlos für alle Nutzer bereitgestellt, einschließlich der zuvor kostenpflichtigen Club-Plugins. Ziel ist es, die Einstiegshürde für die Animationsentwicklung zu senken und die Webinteraktivität zu verbessern. Zu den wesentlichen Updates gehören ein überarbeitetes SplitText-Plugin (50 % kleinere Dateigröße, verbesserte Leistung, verbesserte Barrierefreiheit), eine einfachere Integration von GSAP-Plugins in Webflow und die Möglichkeit, benutzerdefinierten Code vor der Veröffentlichung in der Vorschau anzuzeigen. Künftig soll GSAP noch tiefer in Webflow integriert werden, um eine intuitivere Animationsentwicklung zu ermöglichen.

Entwicklung Webanimation

Yelps epische Migration von Tabs zu Leerzeichen

2025-05-02

Dieser Beitrag beschreibt die Erfahrung des Autors bei der Konvertierung von Yelps riesiger Python-Codebasis von Tabs auf vier Leerzeichen. Der Prozess umfasste die Behandlung inkonsistenter Einrückungen, die Verwendung von Git-Filtern zur Erzwingung von Leerzeichen und die Behebung verschiedener Probleme wie Geisterdateien und langsamen Git-Status. Der Autor hat die Migration erfolgreich abgeschlossen und teilt die gewonnenen Erkenntnisse, darunter die Verwendung von .gitattributes, dem expand-Dienstprogramm und Git-Tricks.

(eev.ee)
Entwicklung

Ein jq-Ersatz in Common Lisp: cljq

2025-05-02

Müde von der komplizierten DSL von jq? Hier ist cljq, ein in Common Lisp geschriebener Ersatz für jq. cljq verwendet einen intuitiveren Query-Operator, `?`, der JSONPath-ähnliche Funktionalität für die vereinfachte JSON-Bearbeitung bietet. Derzeit noch in der frühen Entwicklung, bietet cljq bereits grundlegende Funktionen mit Plänen für zukünftige Erweiterungen.

Python in z/OS bündeln: niedrigere Einstiegshürde

2025-05-02

IBM untersucht die Möglichkeit, Python in das z/OS-Basissystem einzubinden. Dies würde der Einbindung von REXX ähneln und Benutzern direkten Zugriff auf Pythons umfangreiche Funktionen bieten – von Webentwicklung und Datenanalyse bis hin zu KI und wissenschaftlichem Rechnen – ohne separate Installationen. Dieses Vorgehen soll die Einstiegshürde für IT-Profis deutlich senken und ihnen Produktivität auf z/OS ermöglichen, während sie mit einer weit verbreiteten Sprache auf anderen Plattformen vertraut bleiben.

Entwicklung

Apples App Store Review Richtlinien: Ein tiefer Einblick

2025-05-02
Apples App Store Review Richtlinien: Ein tiefer Einblick

Apples umfassende App Store Review Richtlinien bieten Entwicklern eine umfassende Anleitung zu Sicherheit, Performance, Geschäftsmodellen, Design und rechtlicher Compliance. Die Richtlinien betonen die Sicherheit von Apps und den Schutz der Privatsphäre der Nutzer und verbieten strikt anstößige Inhalte, Malware und Verstöße gegen das Urheberrecht. Spezifische Anforderungen werden für die Performance der App, die Funktionalität, die Geschäftsmodelle und das Design beschrieben, einschließlich Metadaten, Icons, Screenshots und Vorschauen. Besondere Richtlinien gelten für Apps, die Apple-Dienste wie Push-Benachrichtigungen, Game Center und Apple Pay nutzen. Ziel ist es, Entwicklern zu helfen, den Überprüfungsprozess zu verstehen, die App-Genehmigungsraten zu erhöhen und zu einem sicheren, zuverlässigen und qualitativ hochwertigen App-Ökosystem beizutragen.

Jujutsu: Git-Workflow neu denken

2025-05-02

Verabschieden Sie sich von umständlichen Git-Workflows! Jujutsu ist ein neues Versionskontrollsystem, das Gits Commits, Arbeitskopie, Index und Stash im Konzept einer „Änderung“ vereint und die Bearbeitung von Code sicherer und flexibler macht. Keine lästigen Staging-Area-Operationen mehr; Jujutsu verfolgt automatisch alle Dateiänderungen. Erstellen Sie neue Änderungen mit `jj new`, verwerfen Sie sie sicher mit `jj abandon` und führen Sie mühelos Merge- oder Split-Operationen mit `jj squash` und `jj split` durch. Die leistungsstarke `jj undo`-Funktion und die Operationslogs ermöglichen es Ihnen, ohne Angst vor Fehlern zu experimentieren. Obwohl die Zusammenarbeit sich geringfügig von Git unterscheidet, erhöht die lokale Benutzerfreundlichkeit von Jujutsu die Entwicklungseffizienz erheblich.

Entwicklung

Microsoft nutzt LLMs zur Verbesserung der Sicherheit bei Low-Level-Programmierung: Checked C und RustAssistant

2025-05-02

Forscher von Microsoft Research präsentierten zwei Projekte, die Large Language Models (LLMs) nutzen, um die Sicherheit bei Low-Level-Programmierung zu verbessern. Ein Projekt verwendet LLMs, um Checked C zu unterstützen, indem automatisch Speicher-Sicherheitsannotationen zu vererbtem C-Code hinzugefügt werden, wodurch die Sicherheit verbessert und der Aufwand für manuelle Annotationen reduziert wird. Das zweite Projekt, RustAssistant, nutzt LLMs, um automatisch Rust-Kompilierungsfehler zu beheben und die Lernkurve von Rust deutlich zu reduzieren. Beide Projekte zeigen das immense Potenzial von LLMs zur Verbesserung der Codesicherheit und der Entwicklereffizienz und eröffnen neue Möglichkeiten für die Softwareentwicklung.

Entwicklung

OSle: Ein 510-Byte-Bootsektor-Betriebssystem

2025-05-02
OSle: Ein 510-Byte-Bootsektor-Betriebssystem

OSle ist ein winziges (510 Byte), echtmodisches Betriebssystem, das vollständig im Bootsektor residiert. Geschrieben in x86-Assembler, bietet es überraschenderweise eine Shell, ein Dateisystem, Prozessverwaltung, vorinstallierte Software und ein SDK zur Entwicklung eigener Programme. Der Artikel enthält detaillierte Anweisungen zur Installation, zum Erstellen, Ausführen von OSle lokal (mit Bochs oder QEMU) und sogar zum Ausführen auf einem echten Gerät (mit einer starken Warnung!). Eine Online-Demo und ein Tutorial sind ebenfalls verfügbar. Dies ist ein faszinierendes Projekt für alle, die sich für Betriebssysteme und Low-Level-Programmierung interessieren.

Entwicklung x86-Assembler

Bloom-Filter: Eine probabilistische Datenstruktur für effiziente Mengenmitgliedschaft

2025-05-02

Bloom-Filter sind probabilistische Datenstrukturen, die effizient testen, ob ein Element Mitglied einer Menge ist, wobei minimaler Speicherplatz verwendet wird. Durch Hashing von Elementen an mehrere Positionen in einem Bit-Array bieten Bloom-Filter schnelle Mitgliedschaftstests, obwohl mit einer kleinen Wahrscheinlichkeit von falsch positiven Ergebnissen. Ideal für Szenarien, in denen die meisten Abfragen ein negatives Ergebnis liefern, beschleunigen Bloom-Filter die Suche erheblich. Dieser Artikel beschreibt die zugrundeliegenden Prinzipien, die Implementierung (mit einem Go-Beispiel) und die mathematische Herleitung. Ein praktisches Beispiel zeigt die Berechnung optimaler Parameter für eine Menge mit einer Milliarde Elementen und einer falsch-positiven Rate von 1 %, wobei deren Effizienz bei der Verarbeitung großer Datenmengen hervorgehoben wird.

Der unbesungene Held des frühen Linux: MCC Interim Linux

2025-05-02

Nach der Veröffentlichung des Linux-Kernels durch Linus Torvalds schuf Owen LeBlanc die erste echte Linux-Distribution: MCC Interim Linux. Dieser Artikel erzählt die Geschichte von LeBlanc und seiner Kreation an der Universität Manchester. MCC Interim Linux war nicht für eine auffällige Benutzeroberfläche oder eine große Auswahl an Software bekannt, aber sein einfacher Installer war entscheidend für die frühe Akzeptanz von Linux. Es machte Linux für mehr Menschen zugänglich und legte den Grundstein für spätere, erfolgreichere Distributionen. LeBlancs Erfahrung unterstreicht auch die Herausforderungen der frühen Open-Source-Förderung und die Unterschiede in den technischen Perspektiven zwischen Entwicklern und Managern.

Entwicklung Linux-Geschichte

Spieleentwicklung mit Zig: Ein Erfahrungsbericht nach einem Jahr

2025-05-02

Dieser Beitrag beschreibt die Erfahrungen eines Jahres Spieleentwicklung (3D-Puzzle-Spiel) mit der Programmiersprache Zig. Besonders hervorgehoben wird die hilfreiche Zig Discord-Community, die selbst komplexe Compiler-Probleme schnell löst. Zigs integrierte Vektorunterstützung ist ausgezeichnet, die Matrixunterstützung hingegen noch nicht ausgereift. Das Zig-Buildsystem ist eine erfrischende Alternative zu CMake, Meson usw., erfordert aber eine steilere Lernkurve. Die Standardbibliothek ist teilweise unvollständig, wird aber aktiv weiterentwickelt. Häufige Compiler-Releases bringen Performance-Verbesserungen und eine verbesserte Entwicklererfahrung, wie die --watch-Option und die bald erscheinende inkrementelle Kompilierung. Insgesamt zeigt sich der Autor mit Zig für die Spieleentwicklung zufrieden und blickt positiv auf zukünftige Verbesserungen.

Entwicklung

Benchmark von regulären Ausdrücken: Rust vs. Re2 vs. Ruby

2025-05-02
Benchmark von regulären Ausdrücken: Rust vs. Re2 vs. Ruby

SerpApi steht vor Herausforderungen beim Extrahieren von Daten von modernen Websites und greift dabei oft auf reguläre Ausdrücke zurück. Der Benchmark vergleicht Rubys Onigmo-Engine mit Googles re2 und Rusts Regex-Engine. Rusts Regex-Engine erweist sich in den meisten Fällen als am schnellsten, besonders bei Unicode-Text, aber ihre Set-Funktionalität ist inkonsistent. Re2 ist ebenfalls schnell, hat aber Einschränkungen bei der Unicode-Unterstützung. Pcre2s Ruby-Bindungen sind veraltet. Rusts Regex-Engine ist die beste Alternative zu Ruby, wobei jedoch Vorsicht bei der Verwendung der Set-Funktion geboten ist.

Entwicklung

Offline-First mit CouchDB und PouchDB: Eine Demo-App aus dem Jahr 2025

2025-05-02
Offline-First mit CouchDB und PouchDB: Eine Demo-App aus dem Jahr 2025

Dieser Blogbeitrag präsentiert Pouchnotes, eine 250-zeilige Demo-Anwendung, die Offline-First Notizen-Erstellung mit CouchDB und PouchDB demonstriert. Pouchnotes ermöglicht es Benutzern, Notizen online oder offline zu erstellen und zu bearbeiten und diese automatisch mit einer Remote-CouchDB-Instanz zu synchronisieren. Die Autoren beschreiben detailliert den Datenfluss innerhalb der App und zwischen lokalen und Remote-Datenbanken, wobei sie die Verwendung der lokalen PouchDB-Datenbank, die bidirektionale Replikation und Strategien zur Konfliktlösung hervorheben. Der Beitrag untersucht auch die effiziente TypeScript-Integration mit PouchDB, einschließlich der Behandlung mehrerer Dokumenttypen. Entwickelt mit Svelte 5, Vite und Pico.css, dient Pouchnotes als prägnantes und effizientes Beispiel für die Erstellung von Offline-First-Anwendungen.

Entwicklung

WhatsApps Private Processing: KI mit Ende-zu-Ende-Datenschutz

2025-05-02
WhatsApps Private Processing: KI mit Ende-zu-Ende-Datenschutz

WhatsApp stellt Private Processing vor, eine optionale Funktion, die die KI-Verarbeitung von Nachrichten in einer sicheren, vertraulichen Umgebung ermöglicht. Durch die Nutzung von Trusted Execution Environments (TEEs) können Benutzer KI-gestützte Funktionen wie die Nachrichtenzusammenfassung anfordern, ohne dass Meta oder WhatsApp auf ihre Daten zugreifen können. Basierend auf den Prinzipien von Optionalität, Transparenz und Benutzerkontrolle implementiert Private Processing robuste Sicherheitsmaßnahmen, darunter vertrauliche Verarbeitung, überprüfbare Transparenz und Nicht-Zielfähigkeit. WhatsApp veröffentlicht Komponenten von Private Processing und erweitert sein Bug-Bounty-Programm, um unabhängige Sicherheitsforschung zu fördern und sicherzustellen, dass der Datenschutz der Benutzer im Vordergrund steht.

Entwicklung

arXivLabs: Experimentelle Projekte in Zusammenarbeit mit der Community

2025-05-01
arXivLabs: Experimentelle Projekte in Zusammenarbeit mit der Community

arXivLabs ist ein Framework, das es Mitarbeitern ermöglicht, neue arXiv-Funktionen direkt auf unserer Website zu entwickeln und zu teilen. Einzelpersonen und Organisationen, die mit arXivLabs zusammenarbeiten, haben unsere Werte von Offenheit, Community, Exzellenz und Datenschutz der Benutzerdaten angenommen und akzeptiert. arXiv engagiert sich für diese Werte und arbeitet nur mit Partnern zusammen, die diese einhalten. Haben Sie eine Idee für ein Projekt, das der arXiv-Community einen Mehrwert bietet? Erfahren Sie mehr über arXivLabs.

Entwicklung

Das Deno-Imperium bröckelt: Ein Post-Mortem-Bericht

2025-05-01
Das Deno-Imperium bröckelt: Ein Post-Mortem-Bericht

Deno Deploy, angepriesen als 'Edge'-Hosting mit 'massiver globaler Skalierung', hat seine Serveranzahl von 35 Regionen Anfang 2024 auf nur 6 im Februar 2025 reduziert. Der Autor beschreibt seine eigenen negativen Erfahrungen mit Leistungseinbußen und hebt die Stagnation anderer Deno-Produkte wie das Fresh-Framework und Deno KV hervor. Der Artikel drückt ernsthafte Bedenken über die Zukunft von Deno aus und macht einen Mangel an Innovation und die übermäßige Abhängigkeit vom Nachahmen von Node.js-Funktionen verantwortlich.

ScummVM Wiki wehrt massiven DDoS-Angriff mit Anubis ab

2025-05-01
ScummVM Wiki wehrt massiven DDoS-Angriff mit Anubis ab

Die ScummVM-Wiki-Website wurde von einem massiven DDoS-Angriff aus ca. 35.000 IP-Adressen weltweit getroffen, was zu einem Ausfall führte. Die Angreifer nutzten spezielle URLs, um die Datenbank stark zu belasten und die Ressourcen der Apache-, PHP-FPM- und MariaDB-Server zu erschöpfen. Um dem entgegenzuwirken, hat der Autor Anubis eingesetzt, ein System, das einen Proof-of-Work-Mechanismus verwendet, um böswillige Anfragen effizient zu filtern. Anubis hat den Angriff erfolgreich mit minimalem Ressourcenverbrauch des Servers abgewehrt und die Verfügbarkeit der Website sichergestellt. Anubis blockiert nicht nur KI-Scraper effektiv, sondern fungiert auch als DDoS-Schutz.

Entwicklung Website-Sicherheit

Kubetail: Echtzeit-Logging-Dashboard für Kubernetes

2025-05-01
Kubetail: Echtzeit-Logging-Dashboard für Kubernetes

Kubetail ist ein Echtzeit-Logging-Dashboard für Kubernetes, optimiert für das Verfolgen von Logs über mehrere Container-Workloads. Mit Kubetail können Sie Logs aller Container in einer Workload (z. B. Deployment oder DaemonSet) in einer einzigen, chronologischen Timeline anzeigen, die an Ihren Browser oder Ihr Terminal geliefert wird. Der primäre Einstiegspunkt für Kubetail ist das kubetail CLI-Tool, das ein lokales Web-Dashboard auf Ihrem Desktop starten oder Roh-Logs direkt an Ihr Terminal streamen kann. Hinter den Kulissen verwendet Kubetail Ihre Kubernetes-API, um Logs direkt von Ihrem Cluster abzurufen, sodass es sofort funktioniert, ohne Ihre Logs zuerst an einen externen Dienst weiterleiten zu müssen. Kubetail verwendet auch Ihre Kubernetes-API, um Container-Lebenszyklusereignisse zu verfolgen, um Ihre Log-Timeline synchron zu halten, wenn Container gestartet, gestoppt oder ersetzt werden. Dies macht es einfach, Logs nahtlos zu verfolgen, während Benutzeranforderungen von einem kurzlebigen Container zum nächsten über Dienste hinweg wechseln.

Entwicklung Echtzeit-Logs

18 Regeln für ein erfolgreiches Skunkworks-Projekt in einem großen Technologieunternehmen

2025-05-01

Dieser Artikel fasst die Erfahrungen des Autors beim Aufbau großer Softwareprojekte bei Meta und Confluent zusammen und beschreibt 18 Prinzipien für die erfolgreiche Durchführung von Skunkworks-Projekten in großen Unternehmen. Diese Regeln umfassen die Zusammensetzung des Teams, die Kommunikationsstile, Anreizstrukturen und das Risikomanagement. Die Kernidee ist, ein kleines, hochgradig kollaboratives und innovatives Team aufzubauen und den Erfolg durch schnelle Iteration, präzise externe Kommunikation und ergebnisorientierte Belohnungen sicherzustellen. Der Autor betont, dass ein vorzeitiges Verlassen des Skunkworks-Modus vermieden werden sollte und die individuellen Fähigkeiten im Kontext des Gesamterfolgs des Projekts und nicht der individuellen Beförderung bewertet werden sollten.

Entwicklung

JRuby: Elegante Java-Integration löst Probleme mit externen Bibliotheken

2025-05-01

Auf der RubyKaigi stieß der Autor auf Schwierigkeiten bei der Verwendung externer Bibliotheken in Ruby: C-Bibliotheken erfordern das Schreiben von C-Erweiterungen oder FFI-Bindungen, während andere Sprachen noch größere Herausforderungen darstellen. Beispiele wie Charty (das matplotlib verwendet) und QuickChart (in JavaScript implementiert) zeigten die Umständlichkeit bestehender Lösungen. Der Autor schlägt einen eleganteren Ansatz vor: die Nutzung der Java-Integration von JRuby. Anhand von JFreeChart wird gezeigt, wie man ohne Code in Java, C, Python oder JavaScript mühelos Diagramme erstellen kann. Der Artikel beschreibt die Java-Integrationsschicht von JRuby, einschließlich der Verwaltung von Abhängigkeiten mit `jar-dependencies`, dem Aufrufen von Java-Klassen und dem Erstellen einfacher Balken- und Kreisdiagramme. Der Autor endet mit der Aufforderung, JRuby auszuprobieren und seine Weiterentwicklung zu unterstützen.

Millionen von Affen tippen: Hinter den Kulissen eines Milliarden-Wort-Projekts

2025-05-01
Millionen von Affen tippen: Hinter den Kulissen eines Milliarden-Wort-Projekts

Die Website monkeys.zip, mit Tausenden von virtuellen Affen, die tippen, hat über 6 Milliarden Wörter generiert und damit über 75 % der Werke von Shakespeare abgeschlossen! Der Autor beschreibt die Architektur der Website: Ein 15-Sekunden-„Tick“-Mechanismus, der die Datengenerierung, die Speicherung und die Datenbankaktualisierungen in vier Schritte unterteilt und sfc32 für die deterministische Erzeugung von Zufallszahlen verwendet. Redis-Caching und Datenbank-Sharding optimieren die Leistung. Herausforderungen und zukünftige Verbesserungen, wie z. B. ein Server-Upgrade für schnellere Tippgeschwindigkeiten, werden ebenfalls diskutiert.

Entwicklung Backend-Architektur

C++26: Ein gewaltiger Sprung für Compile-Time-Funktionen der Standardbibliothek

2025-05-01

C++26 steht kurz davor, die Compile-Time-Programmierung mit einem enormen Schub an constexpr-Unterstützung in der Standardbibliothek zu revolutionieren. Mehrere Vorschläge (P2562R1, P1383R2, P3074R7, P3372R2, P3508R0, P3369R0) integrieren stabile Sortieralgorithmen, - und -Funktionen, verbesserte Union-Regeln, fast alle Container und Adapter sowie spezialisierte Speicheralgorithmen in den constexpr-Bereich. Dies verbessert die Compile-Time-Fähigkeiten erheblich und ermöglicht beispielsweise das Sortieren von constexpr-Containern zur Compile-Time. Obwohl std::hive und std::hash aufgrund von Einschränkungen ausgeschlossen bleiben, verspricht C++26 eine dramatische Erweiterung der Möglichkeiten der Compile-Time-Programmierung.

Entwicklung

macOS-Malware-Scans verlangsamen App-Starts

2025-05-01

Der Entwickler Jeff Johnson hat festgestellt, dass der macOS-Prozess syspolicyd Malware-Scans auf Anwendungen durchführt, was zu langsamen Starts von Anwendungen wie Xcode, FileMerge und Google Chrome führt. Diese Scans verbrauchen erhebliche CPU-Ressourcen und führen zu spürbaren Verzögerungen, selbst bei kleinen Anwendungen. Johnson vermutet, dass syspolicyd nicht nur die Anwendung selbst, sondern auch deren verknüpfte Bibliotheken scannt. Er hat das Problem behoben, indem er den Systemintegritätsschutz (SIP) deaktiviert hat, aber dies deaktiviert auch einige Systemdienste. Der Artikel untersucht die Ursache und drückt Frustration über diese scheinbar unnötige Sicherheitsmaßnahme aus und bevorzugt Hintergrund-Scans gegenüber Unterbrechungen im Vordergrund.

KI schreibt Code, KI überprüft ihn? Ist das dumm?

2025-05-01
KI schreibt Code, KI überprüft ihn? Ist das dumm?

Daksh, Mitbegründer von Greptile, stellte fest, dass ein KI-Codegenerierungswerkzeug namens Devin mehr Pull Requests einreichte als jeder menschliche Ingenieur. Dies wirft die interessante Frage auf: Sollte KI-generierter Code von KI selbst überprüft werden? Obwohl LLMs zustandslos sind, ist jeder Aufruf unabhängig. Das bedeutet aber nicht, dass KI ihren eigenen Code perfekt überprüft. KI-generierter Code steigert zwar die Effizienz, kann aber auch Fehler einführen, die für Menschen schwer zu finden sind. Studien zeigen, dass KI bei der Suche nach bestimmten Fehlertypen effektiver ist als Menschen, obwohl ihre Genauigkeit noch verbessert werden muss. Letztendlich argumentiert der Artikel, dass KI-Codeüberprüfung, obwohl nicht perfekt, effektiver ist als Menschen, um bestimmte Fehlertypen zu finden, die von der KI selbst eingeführt werden.

Entwicklung KI-Codeüberprüfung

Changesets: Versionsverwaltung und Changelogs für Multi-Package-Repositories vereinfacht

2025-05-01
Changesets: Versionsverwaltung und Changelogs für Multi-Package-Repositories vereinfacht

Changesets ist ein Tool zur Vereinfachung der Versionsverwaltung und Changelog-Erstellung, insbesondere für Multi-Package-Repositories. Es ermöglicht Entwicklern, die Veröffentlichung ihrer Änderungen zu deklarieren, und automatisiert dann die Aktualisierung von Paketversionen, Changelogs und die Veröffentlichung neuer Paketversionen basierend auf diesen Informationen. Changesets löst die Komplexität der Versionsverwaltung in Multi-Package-Repositories, hält abhängige Pakete aktuell und vereinfacht Änderungen an Gruppen von Paketen. Es verwendet Changeset-Dateien zur Definition von Release-Absichten und ein CLI-Tool kombiniert mehrere Changesets zu einem Release, verarbeitet interne Abhängigkeiten, aktualisiert Changelogs und veröffentlicht alle aktualisierten Pakete aus einem Monorepository mit einem einzigen Befehl. Umfassende Dokumentation, Empfehlungen zur CI-Integration und eine GitHub-Action zur Automatisierung von Versionierungs-Pull-Requests und der Veröffentlichung werden ebenfalls bereitgestellt.

1 2 99 100 101 103 105 106 107 214 215