sudoku

How to build a brute force Sudoku solver

Follow my journey on how to build an algorithm that lets you create or solve Sudoku puzzles!

The Bitcoin Puzzle

In this post, I’ll explain how I fell into a deep rabbit hole. I’ll cover how the puzzle works and how the algorithm can be optimized in Python using techniques like parallelization and pre-compiling with Cython. Finally, I’ll reveal how you can increase computation speed by nearly 100x by implementing Metal to fully harness the power of your Apple Silicon. Let’s go!

hidey

Hidey ist nichts anderes als eine extrem nützliche Fingerübung in JavaScript. Hidey versteckt eine Botschaft in einem Text, in dem die Botschaft zunächst in binäre Werte umgewandelt wird. Anstatt Nullen und Einsen werden aber nicht sichtbare Zeichen verwendet.

Viel Spaß.

hidey.nickyreinert.de

github.com

Die Nerd Enzyklopädie 45 - 80 Spalten und die Legende vom Pferdehintern

Für die einen ist sie unerforschtes Land, für die anderen die linke Westentasche: Die Kommandozeile! Eine Eigenschaft eint die meisten Kommandozeilen-Programme unter Windows, MacOS und Linux: Sie sind in der Standard-Konfiguration 80 Zeichen bzw. Spalten breit. Dieser Standard begegnet einem auch an anderen Orten, wie in Code Editoren oder Style Guides von Programmiersprachen, die 80 Zeichen pro Zeile als sinnvollen Standard beschreiben.

Es gibt viele Erklärungsversuche für dieses Standard-Maß. Der erste liegt in der Lesbarkeit:

Die Nerd Enzyklopädie 44 - Von Fliegenklatschen und Häkeldeckchen

Auch damals, als Informationen noch auf Lochkarten gespeichert wurden, ließ man es sich nicht nehmen, den Kolleg:innen kleine Streiche zu spielen. Wie z.B. alle verfügbaren Löcher einer Lochkarte ausstanzen! Die Folge: Aufgrund der vielen Löcher war das Papier nicht mehr stabil genug. Die Karte konnte leichter verbiegen und so den Mechanismus im Kartenleser blockieren.

Und diese Art von manipulierten Lochkarten bekamen entsprechende Namen: **whoppee card (**Spaßkarte), lace card (Spitzenkarte, in Anlehnung an die kunstvoll ausgestanzten Grußkarten), flyswatter (Fiegenklatsche), IBM doily (Häkeldeckchen) oder ventilator card (Beatmungskarte) [CATB3, WIKI19].

Die Nerd Enzyklopädie 43 - 0x5f3759df

In der Informationstechnologie gibt es zwei wichtige Innovationstreiber: Die Porno-Industrie und die Spiele-Industrie. Quake III ist ein wegweisender Vertreter der Spiele-Industrie. Der Pionier unter den Ego-Shootern wurde 1999 veröffentlicht, eroberte die Herzen der spielenden Gemeinde im Sturm und glänzte mit für die damaligen Verhältnisse herausragenden optischen Effekten. Und das trotz vergleichsweise geringer Anforderungen an die Hardware.

Nerd-Enzyklopädie #43

Um das zu ermöglichen nutzte Quake die „fast inverse square root“ (zu Deutsch klingt es etwas sperriger: „Schnelle umgekehrte Quadratwurzel”).

My 2,718281828459045235 Cents - - Das Dilemma der digitalen Güter

Was ist der große Vorteil digitaler Güter? Man kann sie beliebig, kostengünstig und verlustfrei verfielfältigen! Stell dir vor, man könnte “tangible” (tangibel - schlau-deutsch für “anfassbar”) konventionelle Güter wie Bier, Schuhe oder Autos duplizieren - einfach so! Das wäre fantastisch, ist aber, solange der Star Trek Replikator noch nicht existiert, eine utopische Traumvorstellung.

Digitale Güter altern in der Regel nicht: Das Paar Schuhe steht in meinem Schuhschrank und nach ein paar Monaten oder Jahren, je nach Umständen, sind die Schuhe verschlissen und ich muss mir neue kaufen. Doch bis dahin kann ich mit den Schuhen machen, was ich will. Bis sie zerfallen, so geschehen vor ein paar Tagen:

Die Nerd Enzyklopädie 42 - Mit einem nassen Seil ins Internet

Nerd-Enzyklopädie #42

Um Breitband-Internet in die Wohnungen und Büros zu bekommen, wird viel Aufwand betrieben und am Ende beschweren sich die Kunden trotzdem. Als Internet-Provider hat man es wahrlich nicht leicht.
Kupferkabel, Glasfaserleitungen oder große Satelliten-Anlagen sind den meisten von uns ein Begriff. Aber es geht auch günstiger: Einem Techniker des Internet-Anbieters Andrew & Arnolds aus dem Vereinigten Königreich ist es gelungen, ein nasses Seil als Übertragungsmedium zu nutzen. Über eine Entfernung von 2 Metern erreichte er so eine Übertragungsgeschwindigkeit von 3,5 MBit/Sekunde! Reicht für die Prokrastination!

Die Nerd Enzyklopädie 41 - Welche Farbe hat Chuck Norris?

Eine Farbe sagt mehr als 1.000 Worte!

Oder so ähnlich. Im Webdesign können Farben unterschiedlich definiert werden. Ziemlich weit verbreitet ist die Angabe der roten, grünen und blauen Farbanteile mittels der entsprechenden Hexadezimal-Wertes. Jeder Farbanteil wird auf einer Skala von 0 bis 255 angegeben, bzw. in hexadezimaler Schreibweise von 0 bis FF.

Der folgende Farbcode steht z.B. für Grün (0 Rotanteile, 255 bzw. FF Grünanteile und 0 Blauanteile. (Ein Farbwert hat immer genau 2 Stellen, deshalb schreibt man 00 und nicht nur 0. So lässt sich auch genau erkennen, welcher Teil des Farbcodes für welche Farbe steht.)

Die Nerd Enzyklopädie 40 - isUserAMonkey

Googles Betriebssystem Android bietet über Schnittstellen eine Vielzahl von Methoden an, um den Entwickler:innen die Arbeit zu erleichtern. Eine dieser Methoden heißt isUserAMonkey. Die Methode prüft, ob die Benutzeroberfläche von einem Affen manipuliert wurde [ANDRO1]:

Returns “true” if the user interface is currently being messed with by a monkey.

Das klingt danach, als würde Google sich einen Spaß erlauben, aber es gibt tatsächlich ein Tool, das pseudo-randomisierte Ereignisse simuliert: Monkey erzeugt wahllos Clicks, Wischgesten und vieles mehr, um eine Benutzeroberfläche auf Herz und Nieren zu prüfen. Und mit der Method isUserAMonkey findet man heraus, ob das eigene Programm gerade von eben jenem Hilfsmittel „bedient“ wird.