Heute schrieb die ettercat einen Link auf nebenstehenden Comic von xkcd.com ins IRC. Die Seite hat mich schon des öfteren mit wirklich lustigen Comics begeistert, zumal einige nur mit entsprechendem Geek-Hintergrundwissen wirklich lustig sind. Nummer 99 – »binary heart« – trifft vom Untertitel der Seite (»A webcomic of romance,
sarcasm, math, and language.«) klar den romantischen Teil. Aber ganz ehrlich, seid Ihr nicht auch total neugierig, ob sich hinter den Nullen und Einsen im Bild nicht noch eine zusätzliche Botschaft verbirgt? Ich war es jedenfalls und da nur selbst dekodieren schlau macht, hab ich frei nach dem Perl-Motto »Es gibt mehr als einen Weg, etwas zu tun« die Zeichen einzeln abgetippt und ein kleines Skript geschrieben.
Hart (siehe Titel ;-)) war da dran einerseits das Abtippen vom Comic – man verrutscht schon sehr leicht in Zeile und Spalte – und andererseits um Mitternacht die eingerosteten Perl-Kenntnisse zu reaktivieren. Wer sich gern selbst an einem Progrämmchen in beliebiger Sprache probieren will, kann sich die binär codierte Nachricht runterladen, die Textdatei, wo ich mal die Einsen und Nullen abgetippt habe.
Ach und für die ganz Neugierigen oder zur Kontrolle des eigenen Programms hier noch die Auflösung:
iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv
6 Kommentare
Vogi
9. December 2007, 01:58 Uhr 1[[All the numbers are black except for a heart-shaped red section in the middle.]] / 011010010110110001101 / 111011101100110010101 / 111001010011110111010 / 101101001011011000100 / 111101110110011001010 / 111100101101111011101 / 010110100101101100011 / 011110111011001100101 / 011110010100111101110 / 101011010010110110001 / 001111011101100110010 / 101111001010011110111 / 010101101001011011000 / 101010110100101101100 / 010011110111011001100 / 101011110010110111101 / 110101011010010110110 / 001001111011101100110 / 010101111001010011110 / 111010101101001011011 / 000100111101110110011 / {{alt: i love you}}
LeSpocky
28. February 2008, 23:40 Uhr 2Man kann sich natürlich maximal umständlich selbst bauen, was Perl schon direkt kann. Mit pack lässt sich das doch um einiges schneller lösen:
Tux
29. February 2008, 00:55 Uhr 3Noch etwas kuerzer. O:)
Die ersten beiden Zeilen lesen die Eingabedaten von der Standardeingabe (in einem Rutsch).
Dann wird der String in Achtergruppen von [01] umgewandelt, alles andere wird ignoriert, diese Gruppen sind durch Leerzeichen getrennt.
Das eval ist da nur drin, um beim regex nicht achtmal das Gleiche hinschreiben zu muessen.
Nun nur noch an den Leerzeichen aufsplitten (split), alles, was kuerzer als acht Zeichen ist, weglassen (grep), dann die Binaercodes umwandeln (mit map auf der ganzen Liste) und wieder zusammenfuegen (join).
Perl. :)
LeSpocky
29. February 2008, 08:22 Uhr 4Soll das hier einfach oder obfuscated werden? :P
Damit kürze ich mit
substrvorher noch den String auf ein Vielfaches von 8, den Rest machtpackallein. Die Frage ist allerdings, warum er beinur das erste ‘i’ ausgibt. Folgendes gibt auch nur das erste ‘i’ aus:
Kann das jemand erklären?
LeSpocky
29. February 2008, 09:10 Uhr 5Wenn man nicht unter allen Umständen die Bereinigung des Eingabestrings und die Aufteilung in 8er-Gruppen in eine Zeile quetschen will, geht’s so etwas leichter verständlich:
Und wenn man Klammern für
joinbenutzt, kann man das Newline noch in die gleiche Zeile packen. 8-)LeSpocky
29. February 2008, 14:45 Uhr 6Ein ‘B’ reicht und wenn man dem was größeres als 8, am besten was passendes mitgibt, klappt’s auch:
Das nenn ich TIMTOWTDI. ;-)
Hinterlasse einen Kommentar:
Suchen
Kategorien
Allgemein AntiVir Apache CLI DataMining Debian eBay Eclipse Eisfair GnuPG GTD Hardware HCI HowTo ICQ Ideen IMPULS Internet IRC Jabber KDE Kommunikation LaTeX Linux Literatur Lustiges Magdeburg MATLAB Mobiltelefon MSRS OpenSource Perl PIM Politik Programmierung RFID Shirt Sicherheit Software Umwelt Versionsverwaltung Video Virtualisierung WebUni Wikipedia Windows WordPress Zaurus
Letzte Beiträge
Letzte Kommentare
Autoren
Meta
Blogroll
Archiv
A design creation of Design Disease
Copyright © 2007–2010 – antiblau blog – Impressum
InSense 1.0 Theme by Design Disease translated by antiblau blog team.