Category: Entwicklung

Kronotop: Eine Redis-kompatible, verteilte und transaktionale Dokumentdatenbank

2025-01-20
Kronotop: Eine Redis-kompatible, verteilte und transaktionale Dokumentdatenbank

Kronotop ist eine mit Redis kompatible, verteilte und transaktionale Dokumentdatenbank, die auf FoundationDB basiert. Sie unterstützt eine MQL-ähnliche Abfragesprache, ACID-Transaktionen und eine On-Disk-Storage-Engine mit einem Primary-Standby-Replikationsmodell. Sie befindet sich noch in der frühen Entwicklungsphase mit einer instabilen API, bietet aber bereits Funktionen wie ZMap (ein geordneter Key-Value-Store), Namespaces und teilweise Unterstützung für Redis-Datenstrukturen (Strings und Hashes). Zukünftige Pläne umfassen die Unterstützung weiterer Redis-Datenstrukturen (Listen, Mengen, geordnete Mengen) und eine Bucket-Datenstruktur zum Speichern von JSON-ähnlichen Dokumenten mit MQL-Abfragesprache und Transaktionsunterstützung.

Entwicklung

Vorschlag: Wesentliche Effekte für C

2025-01-20

Dieser Vorschlag schlägt vor, das Kerntypssystem von C um ein Typ- und Effektsystem zu erweitern, das Funktionen und Blöcke zwingt, die Effekte ihrer Auswertung zu deklarieren. Dies verbessert die Komposition in der Metaprogrammierung und vereinfacht die Definition von MISRA-artigen Einschränkungen. Das System verfolgt und überprüft Effekte, behandelt aber keine dynamische Effektabwicklung. Es werden drei Hauptgruppen von Effekten vorgeschlagen: Lokal (z. B. lokale Schreibzugriffe), Persistent (z. B. nicht-lokale Schreibzugriffe) und Steuerung (z. B. nicht-lokale Steuerungstransfers). Die statische Effektkontrolle wird erreicht, indem jedem Statement, Ausdruck und Funktionskörper ein Typ und ein Effekt zugewiesen werden, wobei lokale Effekte verworfen werden, um eine korrekte Reihenfolge zu gewährleisten. Es werden bewährte Verfahren vorgeschlagen, wie die Begrenzung der Magnitude von `mut`- und `vol`-Effekten und die Angabe von Effektkontrollen für Operatoren und Kontrollstrukturen. Das Ziel ist es, die Sicherheit, Lesbarkeit und Komposition von C zu verbessern, insbesondere für Metaprogrammierung und Ressourcenverwaltung.

Entwicklung

SRCL: Eine React-Komponentenbibliothek mit Terminal-Ästhetik

2025-01-20
SRCL: Eine React-Komponentenbibliothek mit Terminal-Ästhetik

SRCL ist ein Open-Source-Repository für React-Komponenten und -Stile, mit dem Sie Webanwendungen, Desktopanwendungen und statische Websites mit Terminal-Ästhetik erstellen können. Es bietet eine umfassende Sammlung von Komponenten, darunter Aktionsleisten, Akkordeons, Schaltflächen, Warnbanner, Avatare, Badges, Ladeanzeigen, Blogbeiträge, Breadcrumbs, Karten, Kontrollkästchen, Schachbretter, Codeblöcke, Kombinationsfelder, Datentabellen, Datumswähler, Dashboards, Datenbankbeispiele, Dropdown-Menüs, leere Zustände, Eingabefelder, Formulare, Links, Listen, Nachrichten, Modale, Navigationsleisten, Popovers, Fortschrittsbalken, Optionsfelder, Auswahllisten, Seitenleisten, Schieberegler, Tabellen, Textbereiche, Tooltips und Treeviews – alles im Retro-Terminal-Stil.

WordPecker: Personalisierte Sprachlern-App mit Duolingo-artigen Lektionen und benutzerdefinierten Vokabellisten

2025-01-20
WordPecker: Personalisierte Sprachlern-App mit Duolingo-artigen Lektionen und benutzerdefinierten Vokabellisten

WordPecker ist eine personalisierte Sprachlern-App, die Duolingo-artige Lektionen mit eigenen, kuratierten Vokabellisten kombiniert. Fügen Sie mühelos Wörter aus Büchern, Artikeln oder Videos hinzu und wiederholen Sie sie durch interaktive Quizze und von LLMs generierte Lektionen. Die App behebt die Schwachstellen der Vokabelaneignung im traditionellen Sprachunterricht, indem sie das Lernen mit dem Kontext verbindet und so Effizienz und Behaltensleistung steigert. Derzeit werden verschiedene Fragetypen unterstützt; zukünftige Entwicklungen umfassen Fortschrittsverfolgung, Listenfreigabe und mehr.

Entwicklung

Frustrationstoleranz: Der Schlüssel zum Überleben in großen Organisationen

2025-01-20
Frustrationstoleranz: Der Schlüssel zum Überleben in großen Organisationen

In großen Organisationen stoßen Ambitionen oft auf die Realität. Dieser Artikel untersucht die „Frustrationstoleranz“, ein entscheidender Faktor, der den Erfolg bei der Bewältigung organisatorischer Komplexität, Konflikte und langsamen Fortschritts bestimmt. Eine hohe Frustrationstoleranz ermöglicht es Einzelpersonen, Herausforderungen als bewältigbar zu betrachten, während eine niedrige Toleranz zu Aufgabe, Negativität und Burnout führt. Vier Hauptursachen für eine niedrige Frustrationstoleranz werden identifiziert: Ansprüche auf Komfort, Gerechtigkeit, Leistung und emotionale Kontrolle. Die Neuinterpretation von organisatorischen Reibungen als Katalysator für Innovation ermöglicht die Entwicklung einer höheren Frustrationstoleranz und das Gedeihen in komplexen Umgebungen.

Die mathematische Magie hinter den Teilbarkeitsproblemen im Bachelorstudium

2025-01-20
Die mathematische Magie hinter den Teilbarkeitsproblemen im Bachelorstudium

Dieser Blogbeitrag untersucht den Ursprung gängiger Probleme in Mathematikvorlesungen im Bachelorstudium, wie zum Beispiel den Beweis, dass ein Polynom immer ein Vielfaches einer bestimmten ganzen Zahl ist. Der Autor betont, dass diese Probleme aus dem kombinatorischen Zählen stammen, insbesondere aus dem Pólya-Redfield-Zählen. Diese Methode verwendet die Formel zur Zählung von Bahnen unter Gruppenwirkung, um den Wert eines Polynoms mit dem Zählen einer bestimmten kombinatorischen Struktur zu verknüpfen und so sicherzustellen, dass das Polynom immer ein Vielfaches einer bestimmten ganzen Zahl ist. Der Artikel verwendet zwei Beispiele, das Zählen von Armbändern und das Zählen von Tic-Tac-Toe-Spielfeldern, um zu erklären, wie das Pólya-Redfield-Zählen verwendet wird, um diese Probleme zu konstruieren. Er stellt auch eine Vermutung darüber auf, ob alle diese Polynome aus dem Pólya-Redfield-Zählen stammen.

Systemd: Red Hats heimliche Übernahme des Linux-Ökosystems?

2025-01-20

Dieser Artikel untersucht die wahren Beweggründe hinter systemd und enthüllt, wie Red Hat seine Geschäftsinteressen im Bereich Embedded Devices genutzt hat, um systemd von einem einfachen Init-System zu einem zentralen Bestandteil des Linux-Betriebssystems zu machen. Der Autor behauptet, dass Red Hat verschiedene Taktiken eingesetzt hat, darunter die Einflussnahme auf Open-Source-Projekte, um systemd zu verwenden, und das Abwerben von Entwicklern anderer Distributionen, um die Kontrolle über das Linux-Ökosystem auszuüben. Dies führte zu einer Gegenreaktion in der Open-Source-Community und zum Rücktritt mehrerer Debian-Entwickler. Systemd wird als monolithisches System mit Datenschutzbedenken beschrieben, und Red Hats Ziel wird als die Schaffung des nächsten Windows dargestellt. Der Artikel plädiert für eine Rückkehr zur gemeinschaftsgesteuerten Entwicklung und empfiehlt Alternativen zu systemd wie runit und s6.

Entwicklung

Parinfer: Eine einfachere Möglichkeit, Lisp zu bearbeiten

2025-01-20

Parinfer ist ein neuartiger Editor-Modus für Lisp-Programmiersprachen, der die Lisp-Programmierung vereinfacht, indem er Klammern und Einrückungen intelligent miteinander verknüpft. Er löst das berüchtigte Klammerproblem in Lisp und bietet sowohl Anfängern als auch Experten eine intuitivere Bearbeitungserfahrung. Parinfer bietet zwei Modi: den Einrückungsmodus und den Klammermodus, sodass Benutzer sich entweder auf die Einrückung oder die Klammern konzentrieren können, während Parinfer das andere automatisch verwaltet. Er bietet auch Paredit-ähnliche Funktionen ohne komplexe Tastenkombinationen. Im Kern basiert Parinfer auf einer formalen Definition der Beziehung zwischen Klammern und Einrückungen und verwendet einen intelligenten Mechanismus zur automatischen Anpassung, der auf dieser Definition basiert.

Entwicklung

CFRS[] Community Demos: Erstaunliche Kunst mit sechs Befehlen zeichnen

2025-01-20

CFRS[] ist eine extrem minimalistische Zeichensprache, die nur aus sechs Befehlen besteht (C, F, R, S, [, ]). Dieses Dokument enthält eine Sammlung von CFRS[]-Demos, die von Community-Mitgliedern beigesteuert wurden, darunter dynamische Demos (mit dem Befehl 'S' für Animationen) und statische Demos. Diese Demos zeigen eine Vielzahl von Formen, wie Blumen, Kreuze, Kaleidoskope und Blätter, und demonstrieren die Ausdruckskraft der Sprache. Selbst einfache Befehle können beeindruckende Kunstwerke erzeugen. Diese Sammlung bietet Spaß und Inspiration für Anfänger und Programmierbegeisterte.

TypeScript Enums: Anwendungsfälle und Alternativen

2025-01-20

Dieser Blogbeitrag befasst sich genauer mit TypeScript Enums: Wie funktionieren sie? Welche Anwendungsfälle gibt es? Welche Alternativen gibt es, wenn man sie nicht verwenden möchte? Der Beitrag schließt mit Empfehlungen, wann welche Vorgehensweise verwendet werden sollte. Er behandelt die Grundlagen von Enums, Anwendungsfälle (z. B. Namensraum für Konstanten mit primitiven Werten, benutzerdefinierter Typ mit eindeutigen Werten, Namensraum für Konstanten mit Objektwerten), Alternativen (z. B. Objekt-Literale, Vereinigung von String-Literal-Typen) und wie man Vollständigkeitsüberprüfungen durchführt und Mitglieder aufzählt.

Entwicklung

Linux 6.13 Stable veröffentlicht: AMD-Optimierungen, erweiterte Apple-Unterstützung und mehr

2025-01-20

Der stabile Linux 6.13 Kernel ist da und bringt spannende Funktionen mit sich, darunter AMD 3D V-Cache Optimierungen für Ryzen X3D Prozessoren, verbesserte Energieeffizienz für AMD EPYC 9005 "Turin" Server, Unterstützung für ältere Apple Geräte und AutoFDO/Propeller Compileroptimierungen. Auch erste Unterstützung für Intel Xe3 Grafiken, NVMe 2.1 Unterstützung und erweiterte Rust-Sprachinfrastruktur sind enthalten. Als erster großer Kernel-Release von 2025 steigert Linux 6.13 die Leistung und Hardwarekompatibilität deutlich.

Entwicklung

GitHub Actions: Zweimal überlegen

2025-01-20

Dieser Beitrag beschreibt die Frustrationen bei der Verwendung von GitHub Actions für CI/CD in einem großen Monorepo mit 15 Entwicklern, die ständig in den Main-Branch pushen. Der Autor hebt wichtige Probleme hervor: fehlerhafte 'required checks' für Pull Requests in einem Monorepo-Setup, schlechte Workflow-Wiederverwendbarkeit und YAML-Verwaltung, fehlende lokale Entwicklungsumgebung und die unreaktive Haltung von GitHub gegenüber Benutzerfeedback. Die Schlussfolgerung empfiehlt, alternative CI/CD-Plattformen wie GitLab, Jenkins oder sogar Dagger zu prüfen, um bessere Lösungen zu finden.

Entwicklung

Fine-grained Authorization revolutionieren: Die inkrementelle Berechnungs-Engine von Feldera

2025-01-20
Fine-grained Authorization revolutionieren: Die inkrementelle Berechnungs-Engine von Feldera

Feldera präsentiert einen revolutionären Ansatz für Fine-Grained Authorization (FGA). Traditionelle FGA-Systeme werten Autorisierungsanfragen in Echtzeit aus, was zu Ineffizienzen führt. Feldera berechnet alle Autorisierungsentscheidungen vorab und verwendet seine inkrementelle Berechnungs-Engine (basierend auf SQL), um die Ergebnisse zu aktualisieren, wodurch Autorisierungsanfragen in einfache Schlüssel-Wert-Suchen umgewandelt werden. Selbst bei großen Objektgraphen verarbeitet Feldera Änderungen in Millisekunden und verbessert so die Leistung drastisch. Der Artikel beschreibt die Prinzipien von FGA und zeigt die Erstellung einer hochleistungsfähigen FGA-Engine mit SQL, wobei die Überlegenheit bei der Verarbeitung großer Datensätze demonstriert wird.

Rhai: Eine sichere und effiziente eingebettete Skriptsprache für Rust

2025-01-20
Rhai: Eine sichere und effiziente eingebettete Skriptsprache für Rust

Rhai ist eine eingebettete Skriptsprache und Auswertungsumgebung für Rust, die eine sichere und einfache Möglichkeit bietet, Skriptfunktionen zu jeder Anwendung hinzuzufügen. Sie unterstützt alle von Rust unterstützten CPU- und Betriebssystemziele, einschließlich WebAssembly, und verfügt über eine einfache, JavaScript-ähnliche Syntax. Rhai zeichnet sich durch effiziente Auswertung und enge Integration mit nativen Rust-Funktionen und -Typen aus, wodurch das nahtlose Übergeben und Verwenden von Rust-Werten ermöglicht wird. Seine robusten Sicherheitsfunktionen schützen vor böswilligen Angriffen wie Stack-Overflow und außer Kontrolle geratenen Skripten.

Entwicklung Eingebettet

Berechnungsgeometrie mit probabilistisch verrauschten Primitiven

2025-01-20

Ein neuer Preprint untersucht Algorithmen der Berechnungsgeometrie unter probabilistisch verrauschten primitiven Operationen. Viele solcher Algorithmen basieren auf Primitiven, die auf Eingangskoordinaten zugreifen und diese in kombinatorische Informationen umwandeln. Der Artikel betrachtet Primitiven, die zufällig falsche Ergebnisse liefern, und untersucht, wie man mit hoher Wahrscheinlichkeit korrekte Ergebnisse erzielt, ohne die Effizienz wesentlich zu beeinträchtigen. Es zeigt sich, dass bei einigen Problemen (wie der Konstruktion der konvexen Hülle) die Verlangsamung durch Wiederholung vermieden werden kann, während dies bei anderen (wie der Suche nach nächsten Nachbarn) nicht möglich ist. Dies steht in Zusammenhang mit früheren Arbeiten zur Kommunikationskomplexität, die verrauschte Vergleiche verwenden, um die Effizienz zu verbessern.

Die zwei schwierigsten Dinge in der Informatik

2025-01-20
Die zwei schwierigsten Dinge in der Informatik

Ein klassischer Programmierer-Witz lautet: "Es gibt nur zwei schwierige Dinge in der Informatik: Cache-Invalidierung und Namensgebung." Dieser Artikel verfolgt den Ursprung und die Entwicklung dieses geistreichen Satzes und erforscht seinen Humor und seine tiefere Bedeutung. Von seiner anfänglichen prägnanten Form bis hin zu Variationen, die 'Off-by-one-Fehler' und mehr beinhalten, spiegelt der Witz die zahlreichen Herausforderungen wider, denen Programmierer täglich begegnen, und hebt die Komplexität und den Spaß der Programmierung hervor.

Entwicklung

Wie Unterbrechungen Softwareentwickler beeinflussen: Eine Forschungsstudie

2025-01-20
Wie Unterbrechungen Softwareentwickler beeinflussen: Eine Forschungsstudie

Eine neue Studie untersucht, wie Unterbrechungen die Produktivität und den Stress von Softwareentwicklern beeinflussen. Die Studie ergab, dass verschiedene Arten von Unterbrechungen (z. B. persönliche Unterbrechungen im Vergleich zu Bildschirm-Benachrichtigungen) sich unterschiedlich auf das Programmieren, das Code-Verständnis und die Code-Review auswirken, wobei komplexe Aufgaben weniger betroffen sind. Interessanterweise zeigten physiologische Daten (Herzratenvariabilität) weniger Stress bei persönlichen Unterbrechungen, aber die Entwickler empfanden sie als stressiger. Manager sollten daher die wahrgenommene Belastung der Entwickler priorisieren, indem sie Unterbrechungen mit hoher Priorität minimieren und konzentrierte Zeit für Aufgaben wie das Programmieren bereitstellen, um die Teameffizienz zu steigern.

Entwicklung Unterbrechungen

Die hässliche Wahrheit über Lisp-Einrückungen

2025-01-19

Lisp-Programmierer streiten seit langem über den besten Einrückungsstil. Dieser Artikel untersucht verschiedene Ansätze, darunter keine Einrückung, funktionsorientierte Einrückung, leerstellenfüllende Einrückung und die kontroverse "kranke" Makro-Einrückung des Autors. Funktionsorientierte Einrückung wird bei tief verschachteltem Code unübersichtlich, während leerstellenfüllende Einrückung zwar effizient ist, aber in Extremfällen versagt. Der Autor befürwortet einen "kranken" Makrostil, der trotz seiner Unkonventionalität die Lesbarkeit in tief verschachteltem Code erhält und mit den meisten Einrückungswerkzeugen gut funktioniert. Leser sind eingeladen, ihre bevorzugten Stile zu teilen.

Entwicklung Codingstil Einrückung

Git-Autokorrektur: Zu schnell selbst für Formel-1-Fahrer?

2025-01-19
Git-Autokorrektur: Zu schnell selbst für Formel-1-Fahrer?

Die Autokorrekturfunktion von Git mit ihrer Reaktionszeit von 0,1 Sekunden hat zu Diskussionen geführt. Dieser Artikel untersucht ihr Design und ihre überraschend hohe Geschwindigkeit. Es ist nicht das Standardverhalten, sondern über die Einstellung `help.autocorrect` konfigurierbar. Ursprünglich wurde eine scherzhaft kurze Wartezeit festgelegt, die später verbessert wurde, um benutzerdefinierte Verzögerungen oder Bestätigungsaufforderungen zu ermöglichen. Der Autor analysiert auch den Algorithmus der Git-Autokorrektur und schlägt Verbesserungen für eine bessere Benutzererfahrung vor.

Entwicklung

Erstelle eine winzige, YubiKey-gesicherte CA für dein Homelab

2025-01-19
Erstelle eine winzige, YubiKey-gesicherte CA für dein Homelab

Dieses Tutorial führt dich durch die Einrichtung einer sicheren, mit YubiKey geschützten Zertifizierungsstelle (CA) auf einem Raspberry Pi. Mit der Open-Source-Software step-ca und optionalem Infinite Noise TRNG für verbesserte Zufallszahlen erstellst du einen kleinen internen ACME-Server für die TLS-Anforderungen deines Homelabs. Die Anleitung umfasst die Systemeinrichtung, die PKI-Erstellung, die CA-Konfiguration, das Hinzufügen eines ACME-Provisioners und die Implementierung von systemd-Diensten zur Behandlung des Entfernens/Einsetzen des YubiKeys. Das Ergebnis: eine sichere, SSH-lose, winzige CA.

Entwicklung Zertifizierungsstelle

Der überraschende Kampf, eine UNIX-Epoch-Zeit aus einem UTC-String in C oder C++ zu erhalten

2025-01-19
Der überraschende Kampf, eine UNIX-Epoch-Zeit aus einem UTC-String in C oder C++ zu erhalten

Dieser Artikel befasst sich mit den Komplexitäten der Konvertierung von UTC-Zeitstrings in Unix-Zeitstempel in C/C++. Der Autor entdeckt unerwartetes Verhalten in POSIX-Zeitbehandlungsfunktionen in verschiedenen C-Bibliotheken und -Sprachen. Der Fokus liegt auf der Verwendung von `strptime()`, `mktime()` und `timegm()`, wobei Probleme mit der Sommerzeit und Gebietsschemas hervorgehoben werden. Lösungen werden angeboten, darunter die Verwendung von `timegm()` für UTC-Zeiten und die Nutzung von C++-Streams, um Gebietsschema-Probleme zu umgehen. Der Artikel schließt mit der Empfehlung robusterer Zeitbehandlungsbibliotheken in C++20 und höher, wie der tz-Bibliothek von Howard Hinnant.

Entwicklung

Open-Source-Kurs: Robotik und ROS 2 Essentials – ROS 2 von Grund auf lernen

2025-01-19
Open-Source-Kurs: Robotik und ROS 2 Essentials – ROS 2 von Grund auf lernen

Henki Robotics hat in Zusammenarbeit mit der Universität Ostfinnland einen für Anfänger geeigneten ROS 2 Robotik-Kurs als Open Source veröffentlicht. Der Kurs behandelt essentielle ROS 2 Konzepte, Gazebo-Simulation, SLAM, Navigation und mehr, alles in einer Docker-basierten Containerumgebung, die keine vorherige Installation erfordert. Praktische Übungen und der Fokus auf Anwendung machen diesen Kurs ideal für Anfänger, die schnell die Fähigkeiten für die moderne Robotik-Entwicklung erlernen möchten.

Entwicklung Open-Source-Kurs

Typenentfernung in Node.js: Vereinfachung der TypeScript-Entwicklung

2025-01-19
Typenentfernung in Node.js: Vereinfachung der TypeScript-Entwicklung

Node.js v23.6.0 führt ein lang erwartetes experimentelles Feature ein: die Typenentfernung (Type Stripping). Ziel ist die Vereinfachung der TypeScript-Nutzung, indem TypeScript-Code ohne zusätzliche Konfiguration ausgeführt werden kann. Dies wird erreicht, indem Typinformationen aus dem TypeScript-Code entfernt werden, wodurch umständliche Konfigurationen und Typprüfungen vermieden und die Entwicklungseffizienz gesteigert wird. Obwohl Kompromisse hinsichtlich Kompatibilität und Leistung eingegangen wurden, z. B. die Nichtunterstützung einiger komplexer TypeScript-Features, verbessert dieses Feature die Entwicklererfahrung deutlich und ebnet den Weg für die Verbreitung von TypeScript im Node.js-Ökosystem.

Entwicklung Typenentfernung

Google veröffentlicht OSV-SCALIBR: Eine leistungsstarke Bibliothek für die Software-Zusammensetzungsanalyse

2025-01-19
Google veröffentlicht OSV-SCALIBR: Eine leistungsstarke Bibliothek für die Software-Zusammensetzungsanalyse

Google hat OSV-SCALIBR veröffentlicht, eine erweiterbare Bibliothek für die Software-Zusammensetzungsanalyse (SCA), mit der installierte Pakete, eigenständige Binärdateien und Quellcode auf Schwachstellen geprüft werden können. Sie unterstützt zahlreiche Programmiersprachen und Paketmanager und generiert Software-Bill-of-Materials (SBOMs). OSV-SCALIBR ist die primäre SCA-Engine, die intern bei Google verwendet wird, und ist jetzt Open Source. Geplant ist die Integration in OSV-Scanner für eine robustere Befehlszeilenschnittstelle.

Leitfaden zur Linux-Netzwerkprogrammierung: Ein tiefer Einblick in die Socket-Programmierung

2025-01-19
Leitfaden zur Linux-Netzwerkprogrammierung: Ein tiefer Einblick in die Socket-Programmierung

Dieser Leitfaden bietet eine umfassende Erklärung der Linux-Netzwerkprogrammierung mit Schwerpunkt auf der Socket-Programmierung. Der Autor merkt an, dass viele Online-Ressourcen unklar sind und Codebeispiele oft nur die Grundlagen abdecken. Daher wurde dieses Tutorial erstellt, das klare Anleitungen und zahlreiche Beispiele bietet. Behandelte Themen sind Socket-Typen, Adressierung, APIs (getprotobyname(), getservbyname(), getaddrinfo(), htonl(), htons(), ntohl(), ntohs(), socket(), setsockopt(), bind(), listen(), accept(), connect(), recv(), send(), close()), Client-Server-Modelle (einfacher HTTP-Client, TCP-basierter Client-Server, Multithread-TCP-Client-Server, UDP-basierter Client-Server), fortgeschrittene Techniken (nicht blockierende Sockets, synchrone I/O-Multiplexing mit select() und poll(), Broadcast-Nachrichten) und sichere Netzwerkprogrammierung mit libcurl und OpenSSL.

Entwicklung

Das Fuzzing-Buch: Automatisiertes Softwaretesting

2025-01-19
Das Fuzzing-Buch: Automatisiertes Softwaretesting

Das Fuzzing-Buch ist ein umfassender Leitfaden für automatisiertes Softwaretesting mit Schwerpunkt auf Fuzzing-Techniken. Es behandelt verschiedene Fuzzing-Methoden, darunter lexikalisches, syntaktisches und semantisches Fuzzing, mit ausführbaren Codebeispielen für praktisches Lernen. Egal ob Softwaretester, Sicherheitsingenieur oder Entwickler, dieses Buch befähigt Sie, automatisch Testfälle zu generieren, die Softwarequalität zu verbessern und versteckte Fehler aufzudecken.

Eine Datenbank in 3000 Zeilen Go-Code bauen: Von null Abhängigkeiten zu SQL-Abfragen

2025-01-19
Eine Datenbank in 3000 Zeilen Go-Code bauen: Von null Abhängigkeiten zu SQL-Abfragen

Dieser Artikel beschreibt die Erstellung einer kleinen Datenbank in 3000 Zeilen Go-Code, beginnend bei null Abhängigkeiten. Der Autor erklärt die Kernkonzepte, angefangen bei der Atomizität bei Stromausfall (erreicht durch Anhänge-nur-Logs und Prüfsummen) und effizienter Indizierung mit Datenstrukturen wie B+-Bäumen. Der Prozess wird Schritt für Schritt erklärt, einschließlich der Erstellung eines Anhänge-nur-KV-Speichers, der Speicherplatzwiederverwendung, relationaler Datenbankoperationen (Punkt-/Bereichsabfragen, sekundäre Indizes), der Nebenläufigkeitssteuerung und einer einfachen SQL-ähnlichen Abfragesprache. Der gesamte Prozess ist in einem Buch dokumentiert, das online kostenlos verfügbar ist.

Entwicklung

Wiederentdeckung des Apple Newton Juwels: Open Dylan

2025-01-19

Open Dylan ist eine objekt-funktionale Programmiersprache, abstammend von Apples Dylan-Sprache, die ursprünglich für den Newton PDA entwickelt wurde. Sie kombiniert die Stärken von Scheme und CLOS, ohne die Lisp-Syntax, und ist für die effiziente Generierung von Maschinencode konzipiert. Dieser Artikel präsentiert die umfassende Dokumentation von Open Dylan, einschließlich Tutorials, Referenzhandbücher und umfangreiche Bibliotheksdokumentationen, sowie einen Online-Playground für schnelles Experimentieren. Egal, ob Sie eine neue Sprache lernen oder effiziente Programmierparadigmen erkunden, Open Dylan ist einen Blick wert.

Entwicklung

Terminal-Bildbetrachter: Die Odyssee eines Programmierers

2025-01-19

Ein Programmierer begibt sich auf eine herausfordernde Reise, um den perfekten Terminal-Bildbetrachter zu erstellen. Ausgehend von der einfachen Pixelanzeige taucht er in die Komplexität des Ladens und Renderns verschiedener Bildformate (JPEG, PNG, GIF, AVIF, JPEG XL, HEIC, ETC, BC, OpenEXR usw.) ein und stößt dabei auf unerwartete Hürden: inkonsistente Formatstandards, schlecht dokumentierte Bibliotheken, die Komplexität der HDR-Bildverarbeitung, die Feinheiten des Farbmanagements und die Einschränkungen von Terminal-Ausgabeprotokollen. Schließlich überwindet er diese Herausforderungen und entwickelt einen leistungsstarken Bildbetrachter, wobei er eine tiefe Wertschätzung für die Komplexität und Faszination der Computergrafik gewinnt.

Entwicklung Terminalanzeige
1 2 181 182 183 185 187 188 189 214 215