Coming-Out

Stehe ich unter Stress, esse ich weniger und manchmal tagelang überhaupt nichts. Dadurch nehme ich ab: Während der Arbeit am Internetmem-Buch verlor ich im Zeitraum eines Jahres etwa zehn Kilogramm Körpergewicht, in den letzten zweieinhalb Monaten weitere fünf. Offensichtlich habe ich eine Essstörung.

Gesundheitliche Sorgen muss man sich allerdings (noch) nicht machen: Bei einer Körpergröße von 172cm wiege ich etwa 70kg, mein Body-Mass-Index befindet sich im Normbereich. Habe ich keinen Stress, esse ich gerne und genug – tendenziell esse ich eher zu viel, denn mir fehlen Hunger- und Sättigungs-Gefühl.

Trotzdem fühle ich mich in meinem Körper unwohl: Meine Arme kommen mir dürr und kränklich vor; beim Laufen habe ich das Gefühl, dass mein Hintern zu klein ist. Bei Kuscheln und Sex vermisse ich immer wieder meine früheren Fettpolster. Beim Gedanken an eine übergewichtige Exfreundin fühle ich Neid.

Um mich in meinem Körper wohler zu fühlen, möchte ich das verlorene Gewicht wieder zunehmen. Die gewichtsangleichende Operation besteht darin, mehr zu essen. Ich bin transfett.

11. September 2013 von erlehmann
Kategorien: In eigener Sache | Schlagwörter: , | 2 Kommentare

minime – a minimalist Unix text editor

Unix philosophy encourages developers to focus on minimal programs that communicate using text streams. However, most text editors for unixoid operating systems do not follow these guidelines, relying on internal functionality instead of standard text manipulation applications like the GNU core utilities.

This architectural choice implies complexity and hinders re-use: Emacs contains a complete environment for a dialect of the LISP programming language; applications such as IRC clients written in Emacs LISP cannot easily be used outside Emacs.

The minimalist editor minime (source code) conforms to Unix philosophy in the most simple way: Inspired by the text editor sam, all programmatic text transformations are done by piping text to external programs; see the minime README for details.

the minime interface consists of two text buffers, the main buffer at the top
and the mini buffer at the bottom. the main buffer is for editable text, the
minibuffer is for commands that act upon the text in the main buffer. minime
takes a single optional argument, which is interpreted as a file from which to
populate the main buffer.

you can switch focus between buffers by pressing the tab key. if the minibuffer
is empty, upon switching to the minibuffer the current word in the main buffer
is copied to the mini buffer. upon pressing the return key while the minibuffer
has focus, the text in the minibuffer is evaluated as a command. focus is then
returned to the main buffer.

if a command starts with a ”<” character, the following characters specify the
name of a file. text is read into the main buffer from that file. if a command
starts with a “>” character, the following characters specify the name of a
file. text is written into the file from the main buffer. successful loading or
saving removes the first character from the minibuffer, leaving the filename.

if a command starts with a “|” character, the following characters specify a
shell command. the content of the main buffer is given to the shell command on
standard input and the output of the shell command is written into the main
buffer. if a command starts with another character, the command is evaluated as
a shell command with the empty string given on standard input.

Keys are bound to shell commands in a CSV configuration file called minimerc (screencast).

ctrl n,|true
meta w,>xsel -i
ctrl w,|xsel -i
ctrl y,<xsel -o
meta q,|fmt -w80 -g72
meta l,|ls
ctrl o,|xargs cat
meta o,>xargs xdg-open

10. September 2013 von erlehmann
Kategorien: Software | Schlagwörter: , , | 2 Kommentare

Linkschleuder (31)

Bilder

Comics

Musik

Spiele

Fragmente

Popkultur

Politik

Ergonomie

Technik

Programmierung

Anwendungen

Sicherheit

30. August 2013 von erlehmann
Kategorien: Linkschleuder | Schreibe einen Kommentar

Making music with a C compiler

At SIGINT 2013 I gave a talk about the creation of synthesizer music by piping the output of short C programs into /dev/dsp. I ended the presentation live coding music with libglitch. Watch:

I have also uploaded the submission, the slides (PDF) and the source code for the presentation (needs pinpoint and SoX).

My talk can also be seen on YouTube, but the description includes wrong licensing information. I hereby declare the license of my performance to be CC BY 3.0.

26. Juli 2013 von erlehmann
Kategorien: Bastelei, Software, Video | Schreibe einen Kommentar

Sinnlose Verschlüsselung bei MyVideo.de

Das LG Hamburg verbot die Software JDownloader2, weil diese von der Webseite MyVideo.de Videos herunterladen konnte (Beschluss als PDF). Angeblich waren diese Videos mit einem Verschlüsselungsverfahren geschützt, das das Gericht als wirksame technische Schutzmaßnahme beschreibt. Wie aber funktioniert diese Verschlüsselung? Um das herauszufinden, schaute ich mir den Quellcode von MyVideo.de an; als Beispiel wählte ich eine Folge der Anime-Serie Naruto.

Die Herstellerfirma von JDownloader2 erläutert: Die Funktion war lediglich vorübergehend in einer Beta-Version der Software, also den Nightly-Builds des JDownloader2, enthalten. Auf entsprechenden Hinweis ist diese Änderung selbstverständlich rückgängig gemacht worden. Sowohl der JDownloader als auch die aktuellen Nightly-Builds (JDownloader2) sind also weiterhin legal.

Die Webseite enthält zwei Variablen, die an den eingebetteten Flash-Player übergeben werden: _encxml mit dem Wert http%3A%2F%2Fwww.myvideo.de%2Fdynamic%2Fget_player_video_xml.php und ID mit dem Wert 8336292. Die erste Variable ist URL-kodiert; dekodiert lautet sie http://www.myvideo.de/dynamic/get_player_video_xml.php. Übergibt man die zweite Variable als Parameter im Query String, erhält man http://www.myvideo.de/dynamic/get_player_video_xml.php?ID=8336292 – dort befindet sich ein unleserliches – vermutlich verschlüsseltes – Dokument.

Den notwendigen Schlüssel berechnet der Flash-Player von MyVideo.de aus einem Generalschlüssel und der Variable ID – die Formel lautet md5(Generalschlüssel+md5(ID)). Der Generalschlüssel ist mit der Kommandozeile ermittelbar: Die Eingabe von tail -c+9 ming.swf | openssl zlib -d | strings | grep KEY ergibt unter Anderem MASTER_KEY@c8407a08b3c71ea418ec9dc662f2a56e40cbd6d5a114aa50fb1e1079e17f2b83. Mit echo -n c8407a08b3c71ea418ec9dc662f2a56e40cbd6d5a114aa50fb1e1079e17f2b83`echo -n 8336292 | md5sum | cut -d' ' -f1` | md5sum erhält man schließlich den Schlüssel 36210cd70cc7f123dfd358bf8653eb4a.

Die Entschlüsselung erfolgt mit dem RC4-Algorithmus (Beispiel-Code in Python); das Ergebnis ist eine XML-Datei – im vorliegenden Beispiel gehört diese allerdings nicht zu Naruto sondern zu einem Werbe-Video mit David Hasselhoff. Der Grund dafür sind fehlende URL-Parameter: Entschlüsselt man den Inhalt von http://www.myvideo.de/dynamic/get_player_video_xml.php?domain=www.myvideo.de&flash_playertype=SER&ds=1&autorun=yes&ID=8336292&_countlimit=4, erhält man Informationen zum gewünschten Video, das sich dann mit dem Programm rtmpdump lokal speichern lässt.

Weswegen Myvideo.de die zum Abspielen eines Videos notwendigen XML-Dateien verschlüsselt, dann aber sämtliche Schlüssel öffentlich zur Verfügung stellen, ist mir unklar: Ich selbst habe zwar kein Interesse an dort angebotenen Videos (und auch nicht genug Bandbreite), kann mir jedoch kaum vorstellen, dass eine derartige Maßnahme Leute am Herunterladen der Videos hindert.

Vermutlich haben die Entwickler nicht verstanden, dass der Einsatz von Verschlüsselung Inhalte nicht schützen kann, wenn man alle Schlüssel veröffentlicht. Für diese Vermutung spricht auch der Einsatz von RTMPE, das für die Verschlüsselung ebenfalls nur öffentlich zugängliche Daten verwendet.

Meiner Ansicht nach handelt es sich bei der Verwendung des Flash-Players um eine wirksamere technische Maßnahme, bestimmte Leute vom Ansehen der Videos auszuschließen. Zum Einbetten von Videos empfehle ich die Verwendung des <video>-Elements.

22. Juni 2013 von erlehmann
Kategorien: Bastelei, Software | Schlagwörter: , , | 3 Kommentare

← Ältere Artikel