LOLWUT: ein Kunstwerk in einem DB-Team

Published on September 13, 2018

LOLWUT: ein Kunstwerk in einem DB-Team

Ursprünglicher Autor: Salvatore Sanfilippo
  • Übersetzung
Der Autor ist Salvatore Sanfillipo aka antirez, einer der Hauptentwickler von DB Redis, einem Mitarbeiter von Redis Labs. Artikel veröffentlicht am 12. September 2018 Die

letzten Tage waren sehr angespannt. Eines der Argumente im Streit um das Ersetzen oder Nicht-Ersetzen der im Redis-Replikationscode verwendeten Wörter war das Folgende: Lohnt es sich, Arbeit zu leisten, die kein technologisches Ergebnis liefert? [Rede zur Ersetzung der Begriffe "Master / Slave" in Replikation - ca. trans.]

Während der Bereinigung des Redis-Quellcodes von einem bestimmten Wort, wo es möglich ist, dachte ich, dass ich Code auch ohne messbare technologische Effekte schreiben möchte. Das Ersetzen von Wörtern ist zu routinemäßig, es ist einfach ärgerlich, auch wenn es auf dem Weg dorthin wertvolle technische Probleme gibt. Es gibt jedoch eine andere Art von Code mit einer besonderen Qualität, die ich als "Hackwert" bezeichnen würde. Er kann kein Problem lösen, aber dennoch ist es eine würdige Aufgabe. Dafür gibt es mehrere Gründe. Manchmal ist das Schreiben von Code an sich nützlich. Manchmal werden technisch fortgeschrittene Ideen verwendet, um nicht das wichtigste Problem zu lösen. Und manchmal wird der Code einfach aus ästhetischen Gründen geschrieben.

Dumme, chaotische und hitzige Diskussionen der letzten Tage auf Twitter ließen den Gedanken aufkommen, dass wir jetzt sehr weit von den ersten Hackern der 60er Jahre entfernt sind. Jedes Jahr wird es immer schwieriger, Technologien aus der Sicht von Hackern zu diskutieren - ohne fertige Ideen und Probleme, bei denen das Ziel reine Forschung ist. Für alles rund um entwickelte "Best Practices". Für jede Idee gibt es ein Tabu. Zu dieser neuen Welt sage ich LOLWUT, weil ich mich nicht als Teil davon fühle, und es ist überhaupt kein Hacker, zumindest in meiner Vision. Die Idee war also, etwas Zeit mit einer technisch unbrauchbaren Idee zu verbringen, um etwas aus den 60ern zu erforschen.

Ich erinnerte mich sofort an eines meiner Lieblingswerke der Computerkunst - Schotter Engravel von Georg Nys. Der Autor hat in ALGOL ein Programm für einen Plotter geschrieben, der mit Chaos (Zufallszahlen) Kunstwerke erzeugt. [Allmählich werden die schlanken Figuren im Bild immer chaotischer - und umgekehrt wird das Chaos systematisch in eine geordnete Struktur geordnet, wenn Sie das Bild um 180 ° drehen - ca. trans.] . Diese Gravella ist wunderschön in ihrer Einfachheit und tiefen Bedeutung, die der Betrachter verstehen kann. Im Schutz der völligen Ruhe liegt das Chaos tief in der Ordnung. Wenn Sie das Bild auf den Kopf stellen, sieht es aus wie das Meer während eines Sturms. Chaos tobt an der Oberfläche und in den Tiefen bleibt das Meer ruhig.

Kann man aus einem Kunstwerk ein DB-Team machen? Dies ist ziemlich schwierig, da Redis hauptsächlich von der Kommandozeile aus verwendet wird. Heutzutage sind Konsolen ausgefeilter als früher, aber es ist schwierig, anständige Grafiken anzuzeigen. Auf der anderen Seite haben wir einen großen Vorteil beim Echtzeit-Computing - das Bild kann mit jeder Generation dynamisch werden und sich ändern.

Bevor ich fortfahre, zeige ich Ihnen das Endergebnis:



Obwohl in sehr geringer Auflösung, ist aber die ursprüngliche Idee erhalten geblieben. Hier habe ich den Trick angewendet, mit dem viele Programme verschiedene interessante Dinge in der Textkonsole anzeigen. Der erste Teil der Lösung besteht darin, mithilfe von Unicode-Braille eine Pixelmatrix mit einer höheren Auflösung als einzelne Konsolenzeichen zu generieren. Insbesondere können Sie für jedes Zeichen ein Raster von 2 × 8 Pixeln erstellen.

Der zweite Teil sind die Parameter für das Bild:



Sie können mehrere Versionen des Bildes erstellen, indem Sie die Anzahl der Quadrate und die Ausgabeauflösung ändern. Schließlich wollte ich den Quellcode als Beispiel für die Erstellung von Lese- und Schreibprogrammen schreiben - in einer Form, die eher einem Lehrbuch mit einer detaillierten Beschreibung jedes Schritts ähnelt, und nicht nur einem Black-Box-Generator. Der Code ist hier .

Ab Redis 5 wird der LOLWUT-Befehl zum Standard. In jeder größeren Hauptversion ändert sich die Funktionalität vollständig. Nur der Regelsatz bleibt unverändert:

  1. Sie kann nichts Nützliches tun.
  2. Es sollte schnell funktionieren, damit es sicher auf Servern in der Produktion aufgerufen werden kann.
  3. Das Ergebnis dürfte in gewisser Weise interessant sein.

Ich habe die erste Version für Redis 5 geschrieben. In der nächsten Version werde ich jemanden von den Redis-Entwicklern fragen, der dies wünscht, ansonsten schreibe ich es selbst (ich hoffe, ich muss es nicht tun). Das LOLWUT-Team sollte uns daran erinnern, dass unsere Arbeit - die Programmierung - nicht nur für immer existiert. Am Anfang ging es hauptsächlich darum, Möglichkeiten auszuloten . Ich hoffe, dass LOLWUT die Redis-Community auch daran erinnert, dass Computer für Menschen gemacht sind und dass es unmöglich ist, steril zu argumentieren, wenn man nur an technologische Konsequenzen denkt. Es gibt lebende Menschen, die Systeme verwenden, die Systeme aufbauen und so weiter.