Category: Entwicklung

20 Zeilen Code, um A/B-Tests zu übertreffen

2025-01-13

Müde von ineffizienten A/B-Tests? Dieser Artikel stellt einen Algorithmus vor, der auf dem Problem des Multi-Armed Bandit basiert und die Website-Optimierung mit nur 20 Zeilen Code deutlich verbessert. Durch die Verfolgung der Belohnung jeder Auswahl und die Einbeziehung einer zufälligen Exploration findet der Algorithmus schnell die beste Option und verwendet sie kontinuierlich, bis eine bessere auftaucht. Diese Methode behandelt mehrere Optionen gleichzeitig, passt sich an Veränderungen an und eliminiert den Bedarf an ständiger Überwachung und Anpassungen, wodurch erhebliche Zeit und Mühe gespart werden. Verabschieden Sie sich von ineffizienten A/B-Tests und begrüßen Sie eine intelligentere Website-Optimierung!

Dover-Website: JavaScript erforderlich

2025-01-13

Ein Besuch der Website namens Dover zeigt eine Aufforderung, JavaScript zu aktivieren, um die Anwendung auszuführen. Dies deutet stark darauf hin, dass die Website stark von JavaScript für das Front-End-Rendering oder interaktive Funktionen abhängt. Sie verwendet wahrscheinlich dynamische Inhalte, Animationen oder eine komplexe interaktive Benutzeroberfläche, die JavaScript für den ordnungsgemäßen Betrieb benötigt. Dies wirft Fragen zu den Designentscheidungen der Website und dem Grad der JavaScript-Abhängigkeit auf.

Entwicklung Frontend

KI-Coding-Assistent: Mein „Oh mein Gott“-Moment

2025-01-13
KI-Coding-Assistent: Mein „Oh mein Gott“-Moment

In den Weihnachtsferien experimentierte der Autor mit einem KI-Coding-Assistenten, um eine Rust-Bibliothek in Haskell zu konvertieren. Die Ergebnisse waren erstaunlich: Der Assistent führte nicht nur die Konvertierung durch, sondern generierte auch einen umfassenden Testsatz, C-Bindungen und eine CoreAudio-Schnittstelle. Dies war keine einfache Wiedergabe von Wissen, sondern eine neue Erfindung durch die KI. Der Autor glaubt, dass zukünftige Softwareentwickler KI-Assistenten annehmen müssen, um zu überleben, und dass derzeit eine Spaltung in der Branche bezüglich ihrer Akzeptanz besteht.

Entwicklung KI-Coding

Werk: Ein einfaches, plattformübergreifendes Build-System

2025-01-13

Müde von der Komplexität von Make? Simon Ask Ulsnes hat Werk entwickelt, ein einfaches Build-System und Befehlsläufer, der die Mängel von Make und Just beheben soll. Werk unterstützt plattformübergreifende Builds, verarbeitet komplexe Abhängigkeiten und bietet eine benutzerfreundliche Erfahrung. Es ist in Rust geschrieben und nutzt async/await für effizientes Concurrency-Management, wodurch gängige Synchronisationsfehler vermieden werden. Der Artikel beschreibt detailliert die Designphilosophie von Werk, die Verwendung und den Vergleich mit anderen Build-Tools und teilt die Erfahrungen und Erkenntnisse des Autors bei der Entwicklung von Werk.

Entwicklung Build-System

Literarisches Programmieren neu gedacht: Ist Knuths Ansatz überholt?

2025-01-13

Dieser Artikel bietet eine kritische Betrachtung von Donald Knuths Ansatz zum literarischen Programmieren. Der Autor argumentiert, dass Knuths Methode die Typografie überbetont und den wichtigen Aspekt der Code-Organisation vernachlässigt, was zu statischer und weniger interaktiver Dokumentation führt. Der Autor plädiert für einen Stil des literarischen Programmierens, der die Code-Organisation und interaktives Feedback priorisiert, und veranschaulicht die Vorteile mit einem einfachen Interpreter, den er selbst erstellt hat. Die Kernaussage ist, dass effektives literarisches Programmieren es Entwicklern ermöglichen sollte, Code direkt in ihrer Programmierumgebung zu ändern und auszuführen, anstatt nur ein statisches Dokument passiv zu lesen.

Londons Live-U-Bahn-Karte nach 15 Jahren eingestellt

2025-01-13

Ein Entwickler hat seit 2010 eine Website erstellt und gepflegt, die die Routen der Londoner U-Bahn und Busse in Echtzeit mithilfe der offenen Daten von TfL anzeigt. Die Website, die von der BBC und dem Guardian vorgestellt wurde, gewann an Popularität. Am 7. Januar 2025 erhielt der Entwickler jedoch eine Unterlassungsaufforderung von TfL bezüglich des Schemas der U-Bahn-Karte. Trotz seiner Bereitschaft zur Änderung schloss der Entwickler die Website und nannte das autoritäre Vorgehen von TfL. Diese Geschichte unterstreicht den Konflikt zwischen großen Organisationen und einzelnen Entwicklern und die Komplexität von Anwendungen mit offenen Daten.

JUring: Blitzschnelle Datei-E/A in Java mit io_uring

2025-01-13
JUring: Blitzschnelle Datei-E/A in Java mit io_uring

JUring ist eine experimentelle, hochperformante Java-Bibliothek, die die asynchrone E/A-Schnittstelle io_uring von Linux über die Foreign Function & Memory API von Java nutzt, um extrem schnelle Datenlesevorgänge zu ermöglichen. Benchmarks zeigen eine 33%ige Geschwindigkeitsverbesserung gegenüber Java NIO für lokale Dateien und eine bemerkenswerte 78%ige Verbesserung für entfernte Dateien. Mit sowohl blockierenden als auch nicht blockierenden APIs für das Lesen und Schreiben von Dateien, befindet sich JUring derzeit in der Entwicklung. Geplante Verbesserungen umfassen die Kosten für die Instanzerstellung, die Speichernutzung und zusätzliche Funktionen wie Socket-Unterstützung.

Entwicklung Hochleistungs-E/A

Debugging-Bibel: Neun unverzichtbare Regeln

2025-01-13

David J. Agans' "Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems" wird von Software- und Hardwareentwicklern als Klassiker gefeiert. Das Buch konzentriert sich nicht auf spezifische Technologien, sondern auf grundlegende Methoden zum Finden und Beheben von Fehlern. Durch neun Regeln, illustriert mit zahlreichen anschaulichen Beispielen, erklärt der Autor, wie man das System versteht, Fehler erzeugt, Daten erhält, die Divide-and-Conquer-Methode anwendet, eine Sache nach der anderen ändert, eine Audit-Trail führt, Annahmen überprüft, Hilfe sucht und Korrekturen verifiziert. Sogar erfahrene Entwickler finden hilfreiche Erinnerungen, während Anfänger es als unschätzbare Ressource empfinden werden.

Entwicklung

Raycast sucht einen Full-Stack Softwareentwickler für die Zukunft der plattformübergreifenden Produktivität

2025-01-13
Raycast sucht einen Full-Stack Softwareentwickler für die Zukunft der plattformübergreifenden Produktivität

Raycast, das Mac-App-Unternehmen, das sich auf die Entwicklung einfacher und effizienter Tools konzentriert, sucht einen Full-Stack Softwareentwickler. Sie werden die Web- und Backend-Infrastruktur warten und verbessern und so das Fundament für das nächste Generation von plattformübergreifenden Produkten legen. Dies ist eine herausfordernde und lohnende Position, die Expertise in TypeScript, Vertrautheit mit Ruby on Rails oder vergleichbaren Backend-Frameworks und Erfahrung im Bau von hochleistungsfähigen Webanwendungen erfordert. Sie werden an dem gesamten Prozess von der Konzeption bis zur Wartung beteiligt sein und eng mit einem kleinen, talentierten Team zusammenarbeiten, um die Roadmap des Produkts zu gestalten. Wenn Sie leidenschaftlich an der Benutzererfahrung interessiert sind, die Codequalität schätzen und einen bedeutenden Einfluss auf ein schnell wachsendes Unternehmen haben möchten, ist dies Ihre ideale Gelegenheit.

Entwicklung

Oracle weigert sich, JavaScript-Marke herauszugeben, sagt Deno Land

2025-01-13
Oracle weigert sich, JavaScript-Marke herauszugeben, sagt Deno Land

Deno Land hat eine Klage gegen Oracle wegen des Besitzes der JavaScript-Marke eingereicht. Oracle erwarb die Marke 2009 mit dem Kauf von Sun Microsystems. Deno Land argumentiert, dass Oracle die Marke aufgegeben hat und ihre Erneuerung 2019 betrügerisch war. Beide Seiten werden ihre Antworten vor dem 3. Februar einreichen, gefolgt von der Beweisaufnahme. Dieser Rechtsstreit wird voraussichtlich lange dauern.

Entwicklung Markenstreit

IRC Driven: IRC als soziale Plattform wiederbeleben

2025-01-13

IRC Driven ist eine moderne IRC-Indexierungsseite und Suchmaschine, die darauf abzielt, IRC wiederzubeleben und in eine soziale Plattform zu verwandeln. Es bietet Netzwerk- und Kanalindexierung, Erstellung von Benutzerprofilen und Kanalseiten basierend auf der Netzwerkkanalliste. Die Seite wurde mehrfach überarbeitet, und zu den jüngsten Verbesserungen gehören die Behebung von API-Problemen und die Wiederherstellung der Kanalbots. Die Seite sucht auch nach Freiwilligen, um bei der Entwicklung zu helfen, um die Benutzererfahrung weiter zu verbessern.

Entwicklung soziale Plattform

Chumby 8 Kernel-Upgrade: Lösung des Rätsels um die 100%ige CPU-Auslastung

2025-01-13

Bei der Aktualisierung des Linux-Kernels seines Chumby 8-Geräts auf Version 6.x stieß der Autor auf ein hartnäckiges Problem mit einer konstanten CPU-Auslastung von 100 %. Durch Reverse-Debugging, Kernel-Profiling und eine eingehende Untersuchung der Datei `/proc/stat` wurde die Ursache auf ein Timing-Problem im Kernel-Code zurückgeführt, der das PXA168-Hardware-Timer-Register liest, was zu einer ungenauen Zählung der Leerlaufzeit führt. Der Autor behob dieses Problem und steuerte die Lösung zum Hauptzweig des Linux-Kernels bei.

Entwicklung Hardware-Debugging

/etc/glob: Die unbekannte Geschichte des Shell-Globbing in frühen Unix-Systemen

2025-01-13

Dieser Artikel beleuchtet die Geschichte und Funktion von `/etc/glob` in frühen Unix-Systemen. Vor der V7 Bourne Shell wurde das Erweitern von Platzhaltern (Globbing) im Unix-Shell nicht vom Shell selbst, sondern von dem externen Programm `/etc/glob` übernommen. `/etc/glob` empfing den Befehl und die Argumente, erweiterte die Platzhalter und führte dann den Befehl aus. Der Artikel beschreibt detailliert, wie `/etc/glob` in verschiedenen Unix-Versionen funktionierte, einschließlich der Behandlung von Escape-Zeichen und der Begründung für die Verwendung eines externen Programms – wahrscheinlich aufgrund von Ressourcenbeschränkungen in frühen Systemen.

Entwicklung Unix-Geschichte

DoxyPress 1.7.0 veröffentlicht: Vereinfachte Dokumentationsgenerierung

2025-01-13

DoxyPress 1.7.0 ist jetzt verfügbar! Dieses leistungsstarke Dokumentationsgenerator-Tool, basierend auf CopperSpice, vereinfacht den Prozess der Dokumentationserstellung. Diese Version enthält Installations-, Build-, Nutzungsanweisungen und FAQs sowie umfangreiche Anpassungsmöglichkeiten. Egal ob Anfänger oder erfahrener Entwickler, Sie können schnell und einfach hochwertige Dokumentation erstellen.

Das Paradoxon eleganter Programmiersprachen: Warum Einfachheit ein Fluch sein kann

2025-01-13

Einige Programmiersprachen scheitern aufgrund von Unbekanntheit oder zu ehrgeizigen Designs. Der Artikel untersucht die Herausforderungen, denen prägnante und elegant gestaltete Sprachen wie BF und Scheme gegenüberstehen, bei denen Entwickler oft die Erstellung eigener Implementierungen gegenüber der Verwendung vorhandener priorisieren. Der Autor argumentiert, dass ein Gleichgewicht zwischen Einfachheit und Praktikabilität entscheidend ist. Mehrere Implementierungen sind nur dann von Vorteil, wenn eine starke Benutzergemeinschaft vorhanden ist und eine Nachfrage nach verschiedenen Implementierungen besteht. Der Erfolg von Clojure und Racket deutet darauf hin, dass Sprachen eine kritische Masse erreichen müssen, um Benutzer anzuziehen, die sich auf die Anwendungsentwicklung konzentrieren, anstatt auf die Implementierung.

Entwicklung

Kompilierzeit-Konfiguration in Zig: Cleveres Design in den Bibliotheken httpz und ztl

2025-01-13

Dieser Artikel untersucht Techniken zur Verwendung von Metaprogrammierung zur Kompilierzeit für die Konfiguration in der Programmiersprache Zig. Der Autor verwendet seine Bibliotheken httpz und ztl als Beispiele und zeigt, wie ein generischer Typparameter `T` gleichzeitig als Anwendungskontext und Konfiguration dienen kann. In `T` definierte Funktionen können das Standardverhalten der Bibliothek überschreiben, während Felder in `T` skalare Werte konfigurieren können. Kompilierzeitprüfungen gewährleisten die Richtigkeit der Konfiguration und ermöglichen Optimierungen zur Kompilierzeit, wie z. B. die Anpassung der Größe des virtuellen Maschinenstapels basierend auf der Konfiguration. Obwohl dieser Ansatz erfordert, dass Benutzer die Konfiguration zur Kompilierzeit bereitstellen, bietet er signifikante Leistungsverbesserungen und ist eine effektive Strategie zum Erstellen flexibler und effizienter Bibliotheken.

Qubes OS Templates: Sicheres und effizientes VM-Management

2025-01-13
Qubes OS Templates: Sicheres und effizientes VM-Management

Qubes OS verwendet ein Templatesystem zur Verwaltung von virtuellen Maschinen, wodurch Sicherheit, Speichereffizienz und Startgeschwindigkeit verbessert werden. Jedes Template teilt sich sein Root-Dateisystem, wobei Anwendungen in Qubes ausgeführt und Daten gespeichert werden. Die Aktualisierung eines Templates aktualisiert automatisch alle darauf basierenden Qubes nach einem Neustart. Software sollte in Templates, nicht in App-Qubes installiert werden. Qubes bietet Templates basierend auf Fedora, Debian und mehr, sowie Community-Templates. Benutzer können Templates über Befehlszeilentools oder eine grafische Benutzeroberfläche installieren, aktualisieren, deinstallieren oder wechseln. Deinstallationswarnungen sind normal. Das Wechseln von Templates erfordert die Aktualisierung aller auf dem alten Template basierenden Qubes. Die Sicherheit der Templates ist entscheidend; installieren Sie Software nur aus vertrauenswürdigen Quellen.

Whonix: Das ultimative Datenschutz-Betriebssystem

2025-01-12
Whonix: Das ultimative Datenschutz-Betriebssystem

Whonix ist ein Linux-basiertes virtuelles Maschinen-Betriebssystem, das maximale Internet-Privatsphäre und Anonymität bietet. Es erreicht dies, indem es den gesamten Internetverkehr über das Tor-Netzwerk leitet und mehrschichtige Sicherheitsmaßnahmen implementiert, darunter Schutz vor Browser-Fingerprinting, Tastatur-Verschleierung und strenge Zugriffskontrollen, um Benutzer vor Tracking und Malware zu schützen. Whonix' Designphilosophie ist „alles Tor“, und es bietet Funktionen wie das anonyme Hosten von Webservern und einen Live-Modus, um die Sicherheit und Anonymität des Benutzers online zu gewährleisten.

Entwicklung Anonymität

wonderful.dev: Die Entwickler-Portfolio-Plattform

2025-01-12

wonderful.dev ist eine Entwickler-fokussierte Online-Portfolio-Plattform, die Entwicklern dabei helfen soll, ihre Fähigkeiten zu präsentieren, Branchentrends zu verfolgen und ideale Jobs oder Projekte zu finden. Die Plattform unterstützt die Fähigkeitenverifizierung und integriert WakaTime-Daten, sodass Entwickler ihre Fähigkeiten mit datenbasierter Glaubwürdigkeit präsentieren und ihre Wettbewerbsfähigkeit auf dem Arbeitsmarkt verbessern können. Entwickler können Profile erstellen, verifizierte Fähigkeiten und Erfolge hervorheben, den neuesten Technologietrends folgen und perfekt zu ihrem Fachwissen passende Möglichkeiten entdecken.

uv: Ein Killer-Feature, das Sie kennen sollten

2025-01-12

uv ist nicht nur ein schneller Python-Paketmanager, sondern bietet ein Killer-Feature: vereinfachtes Dependency-Management. Benötigen Sie Pandas in Ihrer Python-REPL? Ein einziger Befehl, `uv run --python 3.12 --with pandas python`, eliminiert die Notwendigkeit für virtuelle Umgebungen oder das Umschalten zwischen Python-Versionen. Dies macht Ad-hoc-Scripting und das Experimentieren mit verschiedenen Python-Versionen unglaublich flüssig.

Entwicklung

Aufbau der weltweit besten Organisation für Produktentwicklung: Sechs Schlüsselelemente

2025-01-12

Dieser Artikel ist ein Transkript der Keynote-Präsentation von James Shore auf der Regional Scrum Gathering Tokyo Konferenz, in der er untersucht, wie man eine erstklassige Organisation für Produktentwicklung aufbaut. Er schlägt sechs Schlüsselelemente vor: Mitarbeiter, interne Qualität, Akzeptanz, Sichtbarkeit, Agilität und Rentabilität. Der Artikel beschreibt detailliert, wie diese Ziele durch verbesserte Rekrutierungsstrategien, verbesserte Codequalität, schnelle Feedbackschleifen, agile Methoden und Zusammenarbeit mit anderen Abteilungen erreicht werden können, wobei die Bedeutung kontinuierlicher Verbesserungen hervorgehoben wird. Anhand von Fallstudien und praktischer Erfahrung teilt der Autor wertvolle Erkenntnisse und gibt Anleitungen zum Aufbau effizienter und exzellenter Teams für die Produktentwicklung.

Entwicklung

Tabby: Ihr selbstgehosteter KI-Coding-Assistent

2025-01-12
Tabby: Ihr selbstgehosteter KI-Coding-Assistent

Tabby ist ein Open-Source, selbstgehosteter KI-Coding-Assistent, der eine lokale Alternative zu GitHub Copilot bietet. Er ist in sich geschlossen, benötigt keine Datenbank oder Cloud-Services, verfügt über eine OpenAPI-Schnittstelle für einfache Integration und unterstützt Consumer-Grade-GPUs. Zu den jüngsten Aktualisierungen gehören die Llamafile-Bereitstellungsintegration, eine verbesserte Benutzererfahrung für die Answer Engine, die Möglichkeit, zwischen verschiedenen Backend-Chat-Modellen in der Answer Engine zu wechseln, und die Anzeige kürzlich geteilter Threads auf der Hauptseite. Es bietet auch IDE-Plugins und Unternehmensfunktionen wie Teamverwaltung und sicheren Zugriff.

Entwicklung KI-Coding-Assistent

SemHash: Schnelle semantische Text-Deduplizierung

2025-01-12
SemHash: Schnelle semantische Text-Deduplizierung

SemHash ist ein leichtgewichtiges und flexibles Werkzeug zur Deduplizierung von Datensätzen mithilfe semantischer Ähnlichkeit. Es kombiniert die schnelle Erzeugung von Einbettungen von Model2Vec mit einer effizienten ANN-basierten Ähnlichkeitssuche über Vicinity. SemHash unterstützt sowohl die Deduplizierung einzelner Datensätze als auch die Deduplizierung mehrerer Datensätze und verarbeitet sowohl einfache Datensätze wie Textlisten als auch komplexere Datensätze wie mehrspaltige QA-Datensätze. Es enthält Funktionen zur Inspektion der Deduplizierungsergebnisse, wodurch das Verständnis und die Verfeinerung Ihres Datenbereinigungsprozesses erleichtert werden. Benchmarks zeigen, dass SemHash extrem schnell ist und auf große Datensätze mit Millionen von Datensätzen skaliert.

Racket-Bibliothek für elegante HTML5-Generierung

2025-01-12

Die `html-printer`-Bibliothek für Racket bietet eine elegante Möglichkeit, gut formatierten HTML5-Code zu generieren. Ihre Hauptfunktion, `xexpr->html5`, konvertiert X-Ausdrücke in HTML5-Strings mit automatischer Einrückung und Zeilenumbruch, wobei die Anpassung der Spaltenbreite möglich ist. Sie ist Unicode-bewusst, behandelt die Längen der Zeichen korrekt und fügt optional Zeilenumbrüche zwischen Tags hinzu, um die Lesbarkeit und Wartbarkeit zu verbessern. Ideal für die Erstellung von semantisch sauberem und strukturell solidem HTML5.

Entwicklung

20 großartige CPAN-Module letzte Woche veröffentlicht

2025-01-12

Letzte Woche wurden 20 hervorragende Perl-Module auf CPAN (Comprehensive Perl Archive Network) veröffentlicht, jedes mit 12 oder mehr Favoriten. Diese Module decken ein breites Spektrum an Funktionalitäten ab, darunter Datenbanknavigation, Datenbank-Änderungsmanagement, CGI-Handling, Konfigurationsmanagement, Sicherheitsüberprüfung, Passwortmanagement, Datum/Uhrzeit-Parsing, Datenbanktreiber, Objektmodelle, Codeformatierung und ORMs. Zu den Updates gehörten beliebte Module wie DBD::mysql, DBI und Perl::Tidy sowie neue Ergänzungen. Dieses wichtige Update bietet Perl-Entwicklern eine Fülle an Tools und eine verbesserte Entwicklungseffizienz.

Entwicklung Modul-Updates

Rusts Reiz geht über die Performance hinaus: Eine Liebesgeschichte eines Programmierers

2025-01-12

Ein Programmierer teilt seine Gründe für die Liebe zur Programmiersprache Rust und hebt Aspekte hervor, die über die bekannte Performance und die Speichersicherheit hinausgehen. Der Beitrag konzentriert sich auf Rusts ausdrucksstarkes und sicheres Typsystem, hilfreiche Compiler-Fehlermeldungen und die Flexibilität, funktionale und imperative Programmierstile zu kombinieren. Obwohl die steilere Lernkurve anerkannt wird, betont der Autor die Vorhersagbarkeit von Rust, die Sicherheit bei der konkurrenten Programmierung und den allgemeinen Spaß im Vergleich zu Sprachen wie Go. Letztendlich wird Rust als eine Sprache präsentiert, die sich lohnt, selbst wenn höchste Performance keine Hauptanforderung ist.

Entwicklung

18 Jahre in der Linux-Konsole: Kein Bedauern

2025-01-12
18 Jahre in der Linux-Konsole: Kein Bedauern

Ein Programmierer berichtet über seine 18-jährige Reise, bei der er nur die Linux-Kommandozeile verwendet hat. Angefangen in den frühen 2000er Jahren in einer ländlichen Gegend mit eingeschränktem Internetzugang, lernte er Linux und fand schließlich seinen „Zen“ durch unzählige Nächte des Codens und Experimentierens mit verschiedenen Distributionen. Der Autor beschreibt Herausforderungen und Lösungen und teilt Einblicke in moderne Linux-Trends wie den Aufstieg von systemd und seine Wahl von Gentoo. Dieser nostalgische Text ist eine fesselnde Geschichte von Hingabe an reine Technologie.

Entwicklung

Nextest: Warum Prozess pro Test?

2025-01-12
Nextest: Warum Prozess pro Test?

Der Rust-Testläufer cargo-nextest zeichnet sich dadurch aus, dass er jeden Test in einem separaten Prozess ausführt. Dieser Artikel untersucht die Gründe dafür und betont nicht nur die technischen Vorteile, sondern auch seine Rolle als Koordinierungspunkt im riesigen Rust-Ökosystem. Die Prozessisolation verhindert Störungen zwischen Tests und behebt Probleme wie die Konkurrenz um gemeinsam genutzte Ressourcen und Speicherlecks, wodurch die Zuverlässigkeit erhöht wird. Obwohl die Prozesserstellung einen gewissen Overhead mit sich bringt, überwiegen die Vorteile die Kosten, insbesondere bei großen Test-Suites, was ihn zu einem stabilen und zuverlässigen Fokuspunkt im Rust-Testing macht.

Bad Apple in Vim: 6500 reguläre Ausdrücke und jede Menge Magie

2025-01-12
Bad Apple in Vim: 6500 reguläre Ausdrücke und jede Menge Magie

Dieser Beitrag beschreibt, wie der Autor das Musikvideo Bad Apple in Vim nur mit Suchbefehlen gerendert hat. Jedes Frame wurde in ein binäres Pixelarray umgewandelt, in Rechtecke zerlegt und durch einen regulären Vim-Ausdruck dargestellt. Das Ergebnis? Eine Datei mit über 6500 regulären Ausdrücken, die sequenziell über ein Vim-Makro abgespielt werden, um die Animation zu erstellen. Dieses beeindruckende Kunststück zeigt die überraschenden Fähigkeiten von Vim und die beachtlichen Programmierkenntnisse des Autors.

Entwicklung Regulärer Ausdruck

Animationen ohne Keyframes: Ein neuer CSS-Trick

2025-01-12
Animationen ohne Keyframes: Ein neuer CSS-Trick

Mit dem neuen CSS-Feature `@starting-style` lassen sich Animationen ohne `@keyframes` erstellen. Dies ersetzt nicht die klassische Animationsmethode, ist aber in bestimmten Situationen ein nützlicher Trick. Der Artikel zeigt zwei Beispiele: ein sich unendlich drehendes Quadrat und eine komplexere Animation, die Hintergrundfarbe, Verschiebung und Drehung über eine animierte Variable `--i` steuert. Auch wenn es nicht immer die beste Lösung ist, bietet es eine neue Möglichkeit, Animationen auszudrücken und erweitert die Möglichkeiten von CSS-Animationen.

1 2 186 187 188 190 192 193 194 214 215