<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Die Welt ist gar nicht so. &#187; Software</title>
	<atom:link href="http://blog.dieweltistgarnichtso.net/category/technik-die-vergeistert/software/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.dieweltistgarnichtso.net</link>
	<description>Sie ist ganz anders.</description>
	<lastBuildDate>Mon, 23 Sep 2013 15:41:20 +0000</lastBuildDate>
	<language>de-DE</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.35</generator>
	<item>
		<title>minime – a minimalist Unix text editor</title>
		<link>http://blog.dieweltistgarnichtso.net/minime-a-minimalist-unix-text-editor</link>
		<comments>http://blog.dieweltistgarnichtso.net/minime-a-minimalist-unix-text-editor#comments</comments>
		<pubDate>Tue, 10 Sep 2013 02:01:42 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=8276</guid>
		<description><![CDATA[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 &#8230; <a href="http://blog.dieweltistgarnichtso.net/minime-a-minimalist-unix-text-editor">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Unix_philosophy"><i>Unix</i> philosophy</a> encourages developers to focus on minimal programs that communicate using text streams. However, most text editors for <a href="http://en.wikipedia.org/wiki/Unix-like">unixoid</a> operating systems do <em>not</em> follow these guidelines, relying on internal functionality instead of standard text manipulation applications like the <a href="http://www.gnu.org/software/coreutils/"><abbr title="GNU is not Unix">GNU</abbr> core utilities</a>.</p>
<p>This architectural choice implies complexity and hinders re-use: <a href="http://en.wikipedia.org/wiki/Emacs"><i>Emacs</i></a> contains a complete environment for <a href="http://en.wikipedia.org/wiki/Emacs_Lisp">a dialect of the <i>LISP</i> programming language</a>; applications such as <abbr title="Internet Relay Chat">IRC</abbr> clients written in <i>Emacs</i> <i>LISP</i> cannot easily be used outside <i>Emacs</i>.</p>
<p>The minimalist editor <i>minime</i> (<a href="http://daten.dieweltistgarnichtso.net/src/minime/minime">source code</a>) conforms to <i>Unix</i> philosophy in the most simple way: Inspired by the <a href="http://plan9.bell-labs.com/sys/doc/sam/sam.html">text editor <i>sam</i></a>, all programmatic text transformations are done by piping text to external programs; see the <a href="http://daten.dieweltistgarnichtso.net/src/minime/README"><i>minime</i> README</a> for details.</p>
<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/minime.png" alt="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 ”&lt;” 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 “&gt;” 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.
">
<ins datetime=2013-09-23">
<p>Keys are bound to shell commands in a <a href="http://en.wikipedia.org/wiki/Comma-separated_values"><abbr title="Comma-Separated Values">CSV</abbr></a> configuration file called <i>minimerc</i> (<a href="http://daten.dieweltistgarnichtso.net/video/screencasts/minime-keybindings.ogv">screencast</a>).</p>
<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/minime-keybindings.png" alt="ctrl n,|true
meta w,&gt;xsel -i
ctrl w,|xsel -i
ctrl y,&lt;xsel -o
meta q,|fmt -w80 -g72
meta l,|ls
ctrl o,|xargs cat
meta o,&gt;xargs xdg-open
">
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/minime-a-minimalist-unix-text-editor/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/video/screencasts/minime-keybindings.ogv" length="1644073" type="video/ogg" />
		</item>
		<item>
		<title>Making music with a C compiler</title>
		<link>http://blog.dieweltistgarnichtso.net/making-music-with-a-c-compiler</link>
		<comments>http://blog.dieweltistgarnichtso.net/making-music-with-a-c-compiler#comments</comments>
		<pubDate>Fri, 26 Jul 2013 14:11:20 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=8200</guid>
		<description><![CDATA[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: video (low quality) video (high quality) I &#8230; <a href="http://blog.dieweltistgarnichtso.net/making-music-with-a-c-compiler">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<a href="http://sigint.ccc.de/schedule/events/5067.html">At <i>SIGINT 2013</i> I gave a talk about the creation of synthesizer music</a> by piping the output of short C programs into <a href="http://en.wikipedia.org/wiki/Open_Sound_System#API"><code>/dev/dsp</code></a>. I ended the presentation live coding music with <a href="https://github.com/erlehmann/libglitch"><i>libglitch</i></a>. Watch:
</p>
<video controls preload=none poster="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler.jpg">
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-lq.webm" type="video/webm">
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-lq.mp4" type="video/mp4">
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-hq.webm" type="video/webm" media="all and (view-mode:fullscreen)">
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-hq.mp4" type="video/mp4" media="all and (view-mode:fullscreen)">
  <a href="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-lq.webm">video (low quality)</a>
  <a href="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-hq.webm">video (high quality)</a>
</video>
<p>
I have also uploaded the <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/sigint-2013-cfp.html">submission</a>, the <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/music-c-compiler/music-c-compiler.pdf">slides (<abbr title="Portable Document Format">PDF</abbr>)</a> and the <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/music-c-compiler.tar.xz">source code for the presentation</a> (needs <a href="https://wiki.gnome.org/Pinpoint"><i>pinpoint</i></a> and <a href="http://sox.sourceforge.net/"><i><abbr title="Sound Exchange">SoX</abbr></i></a>).
</p>
<ins datetime="2013-07-26T14:15:23+00:00"><p>
<a href="http://www.youtube.com/watch?v=vCEUyx-SxPw">My talk can also be seen on <i>YouTube</i></a>, but the description includes wrong licensing information. I hereby declare the license of my performance to be <a href="http://creativecommons.org/licenses/by/3.0/"><i><abbr title="Creative Commons">CC</abbr> <abbr title="Attribution">BY</abbr> 3.0</i></a>.
</p></ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/making-music-with-a-c-compiler/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-lq.webm" length="89453489" type="application/wordperfect" />
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-lq.mp4" length="92793440" type="video/mp4" />
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-hq.webm" length="510658045" type="application/wordperfect" />
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/making-music-with-a-c-compiler-hq.mp4" length="516537810" type="video/mp4" />
		</item>
		<item>
		<title>Sinnlose Verschlüsselung bei MyVideo.de</title>
		<link>http://blog.dieweltistgarnichtso.net/sinnlose-verschlusselung-bei-myvideo-de</link>
		<comments>http://blog.dieweltistgarnichtso.net/sinnlose-verschlusselung-bei-myvideo-de#comments</comments>
		<pubDate>Sat, 22 Jun 2013 00:54:03 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[myvideo]]></category>
		<category><![CDATA[rc4]]></category>
		<category><![CDATA[rtmpe]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=8089</guid>
		<description><![CDATA[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? &#8230; <a href="http://blog.dieweltistgarnichtso.net/sinnlose-verschlusselung-bei-myvideo-de">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<a href="http://www.golem.de/news/jdownloader2-downloadsoftware-fuer-streaming-in-deutschland-verboten-1306-99891.html">Das <abbr title="Landgericht">LG</abbr> Hamburg verbot die Software <i>JDownloader2</i></a>, weil diese von der Webseite <i>MyVideo.de</i> Videos herunterladen konnte (<a href="http://raschlegal.de/uploads/media/LG_HH__B.v._25.04.13__Az._310_O_144-13.pdf">Beschluss als <abbr title="Portable Document Format">PDF</abbr></a>). Angeblich waren diese Videos mit einem <q cite="http://raschlegal.de/uploads/media/LG_HH__B.v._25.04.13__Az._310_O_144-13.pdf">Verschlüsselungsverfahren</q> geschützt, das das Gericht als <q cite="http://raschlegal.de/uploads/media/LG_HH__B.v._25.04.13__Az._310_O_144-13.pdf">wirksame technische Schutzmaßnahme</q> beschreibt. Wie aber funktioniert diese Verschlüsselung? Um das herauszufinden, schaute ich mir den Quellcode von <i>MyVideo.de</i> an; als Beispiel wählte ich <a href="http://www.myvideo.de/watch/8336292/Folge_1_Wer_ist_Naruto_Naruto">eine Folge der <i>Anime</i>-Serie <cite>Naruto</cite></a>.
</p>
<ins datetime="2013-06-22T08:11:00+00:00">
<p>
<a href="http://jdownloader.org/de/news/blog/x20130619-161329rtmpe">Die Herstellerfirma von <i>JDownloader2</i> erläutert</a>: <q cite="http://jdownloader.org/de/news/blog/x20130619-161329rtmpe">Die Funktion war lediglich vorübergehend in einer Beta-Version der Software, also den Nightly-Builds des JDownloader2, enthalten.</q> <q cite="http://jdownloader.org/de/news/blog/x20130619-161329rtmpe">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.</q>
</p>
</ins>
<p>
Die Webseite enthält zwei Variablen, die an den eingebetteten <i>Flash</i>-Player übergeben werden: <var>_encxml</var> mit dem Wert <samp>http%3A%2F%2Fwww.myvideo.de%2Fdynamic%2Fget_player_video_xml.php</samp> und <var>ID</var> mit dem Wert <samp>8336292</samp>. Die erste Variable ist <a href="http://de.wikipedia.org/wiki/URL-Encoding"><abbr title="Uniform Resource Locator">URL</abbr>-kodiert</a>; dekodiert lautet sie <samp>http://www.myvideo.de/dynamic/get_player_video_xml.php</samp>. Übergibt man die zweite Variable als Parameter im <a href="http://de.wikipedia.org/wiki/Query_String"><i lang=en>Query String</i></a>, erhält man <samp>http://www.myvideo.de/dynamic/get_player_video_xml.php?ID=8336292</samp> – dort befindet sich ein <a href="http://daten.dieweltistgarnichtso.net/src/myvideo-8336292.encxml">unleserliches – vermutlich verschlüsseltes – Dokument</a>.
</p>
<p>
Den notwendigen Schlüssel berechnet der <a href="http://is2.myvideo.de/de/player/mingR13f/ming.swf"><i>Flash</i>-Player von <i>MyVideo.de</i></a> aus einem Generalschlüssel und der Variable <var>ID</var> – die Formel lautet md5(<var>Generalschlüssel</var>+md5(<var>ID</var>)). Der Generalschlüssel ist mit der Kommandozeile ermittelbar: Die Eingabe von <kbd>tail -c+9 ming.swf | openssl zlib -d | strings | grep KEY</kbd> ergibt unter Anderem <samp>MASTER_KEY@c8407a08b3c71ea418ec9dc662f2a56e40cbd6d5a114aa50fb1e1079e17f2b83</samp>. Mit <kbd>echo -n c8407a08b3c71ea418ec9dc662f2a56e40cbd6d5a114aa50fb1e1079e17f2b83`echo -n 8336292 | md5sum | cut -d' ' -f1` | md5sum</kbd> erhält man schließlich den Schlüssel <samp>36210cd70cc7f123dfd358bf8653eb4a</samp>.
</p>
<p>
Die Entschlüsselung erfolgt mit dem <a href="http://de.wikipedia.org/wiki/RC4"><abbr title="Ron's Code 4">RC4</abbr>-Algorithmus</a> (<a href="http://daten.dieweltistgarnichtso.net/src/myvideo-8336292.py">Beispiel-Code in <i>Python</i></a>); das Ergebnis ist <a href="http://daten.dieweltistgarnichtso.net/src/myvideo-8336292.xml">eine <abbr title="eXtensible Markup Language">XML</abbr>-Datei</a> – im vorliegenden Beispiel gehört diese allerdings nicht zu <i>Naruto</i> sondern zu <a href="http://www.myvideo.de/watch/8085086/MyVideoTV_30s_TV_Spot_mit_David_Hasselhoff_The_Hoff">einem Werbe-Video mit David Hasselhoff</a>. Der Grund dafür sind fehlende <abbr title="Uniform Resource Locator">URL</abbr>-Parameter: Entschlüsselt man den Inhalt von <samp>http://www.myvideo.de/dynamic/get_player_video_xml.php?domain=www.myvideo.de&#038;flash_playertype=SER&#038;ds=1&#038;autorun=yes&#038;ID=8336292&#038;_countlimit=4</samp>, erhält man Informationen zum gewünschten Video, das sich dann mit dem Programm <a href="http://en.wikipedia.org/wiki/Rtmpdump"><i>rtmpdump</i></a> lokal speichern lässt.
</p>
<p>
Weswegen <i>Myvideo.de</i> die zum Abspielen eines Videos notwendigen <abbr title="eXtensible Markup Language">XML</abbr>-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.
</p>
<p>
Vermutlich haben die Entwickler nicht verstanden, dass der Einsatz von Verschlüsselung Inhalte nicht schützen <em>kann</em>, wenn man alle Schlüssel veröffentlicht. Für diese Vermutung spricht auch der Einsatz von <a href="http://lkcl.net/rtmp/RTMPE.txt"><abbr title="Real-Time Messaging Protocol Encrypted">RTMPE</abbr>, das für die Verschlüsselung ebenfalls nur öffentlich zugängliche Daten verwendet</a>.
</p>
<p>
Meiner Ansicht nach handelt es sich bei der Verwendung des <i>Flash</i>-Players um eine wirksamere technische Maßnahme, bestimmte Leute vom Ansehen der Videos auszuschließen. Zum Einbetten von Videos empfehle ich die Verwendung des <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#the-video-element"><code>&lt;video&gt;</code>-Elements</a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/sinnlose-verschlusselung-bei-myvideo-de/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Die inoffiziellen Mitarbeiter der Stasi 2.0</title>
		<link>http://blog.dieweltistgarnichtso.net/die-inoffiziellen-mitarbeiter-der-stasi-2-0</link>
		<comments>http://blog.dieweltistgarnichtso.net/die-inoffiziellen-mitarbeiter-der-stasi-2-0#comments</comments>
		<pubDate>Fri, 14 Jun 2013 12:35:03 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Politik]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nsa]]></category>
		<category><![CDATA[prism]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[überwachung]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=8013</guid>
		<description><![CDATA[Die NSA überwacht das Internet und amerikanische Internet-Firmen helfen dabei. Viele finden das angeblich schlimm: Johnny Haeusler nennt es internen Terror; Katharina Nocun sieht Bürgerrechte in Gefahr; Karsten Gerloff erkennt nicht nur den Überwachungsstaat, sondern übernimmt auch Bruce Schneiers Metapher &#8230; <a href="http://blog.dieweltistgarnichtso.net/die-inoffiziellen-mitarbeiter-der-stasi-2-0">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<a href="http://www.guardian.co.uk/world/2013/jun/09/edward-snowden-nsa-whistleblower-surveillance">Die NSA überwacht das Internet</a> und <a href="http://netzpolitik.org/2013/google-erklart-wie-sie-daten-an-die-nsa-weitergeben/">amerikanische Internet-Firmen helfen dabei</a>. Viele finden das angeblich schlimm: <a href="http://www.spreeblick.com/2013/06/09/der-interne-terror/">Johnny Haeusler nennt es internen <q cite="http://www.spreeblick.com/2013/06/09/der-interne-terror/">Terror</q></a>; <a href="http://kattascha.de/?p=1145">Katharina Nocun sieht Bürgerrechte in Gefahr</a>; <a href="http://netzpolitik.org/2013/prism-uberwachung-freiheit-und-die-grenzen-des-versteckens/">Karsten Gerloff erkennt nicht nur den <q cite="https://netzpolitik.org/2013/prism-uberwachung-freiheit-und-die-grenzen-des-versteckens/">Überwachungsstaat</q></a>, sondern übernimmt auch <a href="http://www.wired.com/opinion/2012/11/feudal-security/">Bruce Schneiers Metapher vom <q cite="https://netzpolitik.org/2013/prism-uberwachung-freiheit-und-die-grenzen-des-versteckens/">quasi-feudalen System</q></a>.
</p>
<p>
Der Schönheitsfehler: Die Genannten helfen selber, Nutzer ihrer Webseiten zu überwachen. Mit jedem Zugriff auf ihre Webseiten übertragen Browser <a href="http://de.wikipedia.org/wiki/HTTP-Cookie#Tracking">Tracking-Informationen</a> an Firmen wie <i>Amazon</i>, <i>Google</i> oder <i>Twitter</i>. <a href="http://blog.dieweltistgarnichtso.net/werbung-und-tracking-im-web">Das Ausmaß der Überwachung visualisierte ich bereits.</a>
</p>
<p>
Webseiten-Betreiber wissen, was sie damit tun: Sie helfen Firmen und Staaten, Internet-Nutzer zu bespitzeln und Persönlichkeitsprofile zu erstellen – ganz ohne formales Arbeitsverhältnis, als <a href="http://de.wikipedia.org/wiki/Inoffizieller_Mitarbeiter">inoffizielle Mitarbeiter</a> der <a href="http://de.wikipedia.org/wiki/Stasi_2.0"><i>Stasi 2.0</i></a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/die-inoffiziellen-mitarbeiter-der-stasi-2-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trollforschung am Beispiel re:fefe</title>
		<link>http://blog.dieweltistgarnichtso.net/trollforschung-am-beispiel-refefe</link>
		<comments>http://blog.dieweltistgarnichtso.net/trollforschung-am-beispiel-refefe#comments</comments>
		<pubDate>Sat, 11 May 2013 17:39:40 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Netzkultur]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[fefe]]></category>
		<category><![CDATA[refefe]]></category>
		<category><![CDATA[republica]]></category>
		<category><![CDATA[rp13]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=7688</guid>
		<description><![CDATA[Auf der diesjährigen re:publica hielten Linus Neumann, Michael Kreil und ich einen Vortrag über empirische Trollforschung: Wir untersuchten dazu die Kommentare bei re:fefe, einer externen Kommentarfunktion für Fefes Blog. Linus hat das bereits bei sich verbloggt und auf YouTube veröffentlicht. &#8230; <a href="http://blog.dieweltistgarnichtso.net/trollforschung-am-beispiel-refefe">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Auf der diesjährigen <a href="http://de.wikipedia.org/wiki/Re:publica"><i>re:publica</i></a> hielten <a href="http://www.linus-neumann.de/">Linus Neumann</a>, <a href="http://www.michael-kreil.de/">Michael Kreil</a> und ich einen <a href="http://www.re-publica.de/sessions/refefe-erkenntnisse-empirischen-trollforschung">Vortrag über empirische Trollforschung</a>: Wir untersuchten dazu die Kommentare bei <a href="http://blog.refefe.de/"><i>re:fefe</i></a>, einer externen Kommentarfunktion für <a href="http://blog.fefe.de">Fefes Blog</a>.
</p>
<p>
<a href="http://www.linus-neumann.de/2013/05/08/die-trolldrossel-erkenntnisse-der-empirischen-trollforschung/">Linus hat das bereits bei sich verbloggt</a> und <a href="http://www.youtube.com/watch?v=ZG4FawUtYPA">auf <i>YouTube</i> veröffentlicht</a>. Da <a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/fail/youtube-rp13-censorship.png"><i>YouTube</i> <i>re:publica</i>-Videos zensiert</a>, gibt es den Mitschnitt und die <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/refefe-preview.pdf">Folien zum Vortrag</a> auch nochmal hier:
</p>
<video controls preload=none>
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/trolldrossel-refefe-trollforschung.webm" type="video/webm">
  <source src="http://daten.dieweltistgarnichtso.net/video/talks/trolldrossel-refefe-trollforschung.mp4" type="video/mp4">
</video>
<p>
Für Interessierte habe ich <a href="http://daten.dieweltistgarnichtso.net/pics/graphs/refefe/">weitere Grafiken zu <i>re:fefe</i></a> (nicht alle im Vortrag enthalten) und <a href="https://github.com/erlehmann/trollscoring">meinen Teil des verwendeten Codes</a> veröffentlicht.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/trollforschung-am-beispiel-refefe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/trolldrossel-refefe-trollforschung.webm" length="36205567" type="application/wordperfect" />
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/trolldrossel-refefe-trollforschung.mp4" length="44648833" type="video/mp4" />
		</item>
		<item>
		<title>Werbung und Tracking im Web</title>
		<link>http://blog.dieweltistgarnichtso.net/werbung-und-tracking-im-web</link>
		<comments>http://blog.dieweltistgarnichtso.net/werbung-und-tracking-im-web#comments</comments>
		<pubDate>Mon, 29 Apr 2013 18:56:49 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Netzpolitik]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[googleplus]]></category>
		<category><![CDATA[socialmedia]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[werbung]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=5049</guid>
		<description><![CDATA[Ich surfe oft per Mobilfunkverbindung und merke dann, wie viele überflüssige Daten Webseiten nachladen. UMTS hat im Vergleich zum Festnetz eine hohe Latenz: Es dauert über zehn Mal so lange, bis angeforderte Datenpakete ankommen – im Regelfall etwa 300 bis &#8230; <a href="http://blog.dieweltistgarnichtso.net/werbung-und-tracking-im-web">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Ich <a href="https://www.youtube.com/watch?v=ycyjzFfsz5M">surfe</a> oft per Mobilfunkverbindung und merke dann, wie viele überflüssige Daten Webseiten nachladen. <a href="http://de.wikipedia.org/wiki/Universal_Mobile_Telecommunications_System"><abbr title="Universal Mobile Telecommunications System">UMTS</abbr></a> hat im Vergleich zum Festnetz eine hohe <a href="http://de.wikipedia.org/wiki/Paketumlaufzeit">Latenz</a>: Es dauert über zehn Mal so lange, bis angeforderte Datenpakete ankommen – im Regelfall etwa 300 bis 700 Millisekunden statt 20 bis 50.
</p>
<p>
Um Zehntelsekunden längere Ladezeiten sollten eigentlich kein Problem darstellen. Webseiten voller Werbung und <i>Social Media Widgets</i> (<a href="https://developers.facebook.com/docs/reference/plugins/like/"><i>Like</i></a>, <a href="http://www.google.com/+1/button/"><i>+1</i></a>, <a href="https://twitter.com/about/resources/buttons#tweet"><i>Tweet</i></a>) laden allerdings <em>hunderte</em> von Dateien, die für Leser* weitgehend überflüssig sind. <a href="http://www.spreeblick.com/"><i>Spreeblick</i></a> etwa lädt 116 Dateien mit einer Gesamtgröße von 2,8<abbr title="Megabyte">MB</abbr>. Selbst mit <a href="http://de.wikipedia.org/wiki/Digital_Subscriber_Line"><abbr title="Digital Subscriber Line">DSL</abbr></a> bedeutet das eine <em>Ladezeit zwischen 5 und 25 Sekunden</em> – für eine Seite mit 7 Bildern und 3 Videos.
</p>
<p>
Übermäßige Werbung ist leicht erkennbar: Lade ich <i>Heise Online</i> ohne Werbeblocker, besteht 38% der Seitenfläche aus unerwünschten Informationen (<a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/heise-online-advertising.png">Bildschirmfoto</a>). <i>Social Media Widgets</i> hingegen funktionieren unsichtbar: <a href="http://www.taz.de/!56608/">Durch sie wissen soziale Netzwerke, wer welche Seiten aufruft.</a> Die Übertragung dieser Daten erfolgt ohne Kenntnis oder Einwilligung der Nutzer* – es handelt sich also um <a href="http://de.wikipedia.org/wiki/Spyware">Spyware</a>.
</p>
<p>
Ende Januar baute ich ein <a href="http://daten.dieweltistgarnichtso.net/src/list-web-bugs.py">Skript, das zeigt, welche externen Inhalte eine Webseite einbindet</a>. Hier einige Ergebnisse:
</p>
<span id="more-5049"></span>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/heise.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/heise.de-web-bugs.png" alt="Externe Inhalte auf http://heise.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/spiegel.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/spiegel.de-web-bugs.png" alt="Externe Inhalte auf http://spiegel.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/taz.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/taz.de-web-bugs.png" alt="Externe Inhalte auf http://taz.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/faz.net-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/faz.net-web-bugs.png" alt="Externe Inhalte auf http://faz.net"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/netzpolitik.org-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/netzpolitik.org-web-bugs.png" alt="Externe Inhalte auf http://netzpolitik.org"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/mspr0.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/mspr0.de-web-bugs.png" alt="Externe Inhalte auf http://mspr0.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/zeit.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/zeit.de-web-bugs.png" alt="Externe Inhalte auf http://zeit.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/bild.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/bild.de-web-bugs.png" alt="Externe Inhalte auf http://bild.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/spreeblick.com-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/spreeblick.com-web-bugs.png" alt="Externe Inhalte auf http://spreeblick.com"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/crackajack.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/crackajack.de-web-bugs.png" alt="Externe Inhalte auf http://crackajack.de"></a>
<ins datetime="2013-04-30T01:28:52+00:00">
<p>
Privatsphärenfreundliche Webseiten ohne Bannerwerbung existieren!
</p>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/blog.fefe.de-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/blog.fefe.de-web-bugs.png" alt="Externe Inhalte auf http://blog.fefe.de"></a>
<a href="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/krautchan.net-web-bugs.png"><img src="http://daten.dieweltistgarnichtso.net/pics/graphs/web-bugs/krautchan.net-web-bugs.png" alt="Externe Inhalte auf http://krautchan.net"></a>
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/werbung-und-tracking-im-web/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Lautheit angleichen mit dem loudfucker</title>
		<link>http://blog.dieweltistgarnichtso.net/lautheit-angleichen-mit-dem-loudfucker</link>
		<comments>http://blog.dieweltistgarnichtso.net/lautheit-angleichen-mit-dem-loudfucker#comments</comments>
		<pubDate>Mon, 19 Nov 2012 19:00:28 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[auphonic]]></category>
		<category><![CDATA[levelator]]></category>
		<category><![CDATA[loudfucker]]></category>
		<category><![CDATA[redokast]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=6393</guid>
		<description><![CDATA[Amateur-Podcasts und Interviews haben oft deutliche Variationen in der Lautheit, etwa durch unterschiedlich laute oder sich bewegende Sprecher. Sind weder Mischpult noch Headsets vorhanden, lassen sich diese Unterschiede nur in der Postproduktion verringern. Auf dem zweiten Podlove Developer Meeting traf &#8230; <a href="http://blog.dieweltistgarnichtso.net/lautheit-angleichen-mit-dem-loudfucker">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Amateur-Podcasts und Interviews haben oft deutliche Variationen in der <a href="http://de.wikipedia.org/wiki/Lautheit">Lautheit</a><ins datetime="2012-11-19T19:08:37+00:00">, etwa durch unterschiedlich laute oder sich bewegende Sprecher</ins>. Sind weder Mischpult noch Headsets vorhanden, lassen sich diese Unterschiede nur in der <a href="http://de.wikipedia.org/wiki/Postproduktion">Postproduktion</a> verringern.
</p>
<p>
Auf dem <a href="http://metaebene.me/blog/2012/09/27/podlove-developer-meeting-2/">zweiten <i>Podlove Developer Meeting</i></a> traf ich <a href="http://grh.mur.at/">Georg Holzmann</a> von <a href="https://auphonic.com/"><i>Auphonic</i></a>, der mir erklärte, wie man Lautheit innerhalb einer Datei angleichen kann (<a href="https://auphonic.com/blog/2012/08/02/loudness-measurement-and-normalization-ebu-r128-calm-act/">Blogpost dazu</a>). So entstand der <a href="https://github.com/erlehmann/loudfucker"><i>loudfucker</i></a>, eine Anwendung, die Lautheit einer Datei auf ein einheitliches Niveau nach <a href="http://tech.ebu.ch/loudness"><abbr title="European Broadcasting Union">EBU</abbr> R128</a> bringt.
</p>
<p>
Der <i>loudfucker</i> benötigt eine <a href="https://github.com/erlehmann/loudfucker/blob/master/ebur128.cc.patch">gepatchte</a> Version des <a href="http://kokkinizita.linuxaudio.org/linuxaudio/ebumeter-doc/quickguide.html"><i>ebumeter</i>s</a>, ist in Python geschrieben und lizensiert unter der <a href="http://www.gnu.org/licenses/agpl-3.0.html"><abbr title="GNU is Not Unix">GNU</abbr> <abbr title="Affero General Public License">AGPL</abbr><abbr title="Version 3">v3</abbr></a>. <strong><a href="https://github.com/erlehmann/loudfucker">Hier ist der Code.</a></strong>
</p>
<ins datetime="2013-05-12T14:54:55+00:00">
<p>
<a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/fail/github-loudfucker-fail.png"><i>GitHub</i> geht nicht</a>; <a href="http://daten.dieweltistgarnichtso.net/src/loudfucker.tar.gz">den Code gibt es auch bei mir.</a>
</p>
</ins>
<p>
Das folgende Beispiel demonstriert den Effekt. Eine Methode, um Hintergrundgeräusche <em>nicht</em> lauter zu machen, habe ich nicht gefunden.
</p>
<figure>
<audio controls id="audio-original">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.oga" type="audio/ogg; codecs=vorbis">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.mp3" type="audio/mpeg">
</audio>
<figcaption>Aufnahme ohne Bearbeitung</figcaption>
</figure>
<figure>
<audio controls id="audio-loudfucked">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.loudfucked.oga" type="audio/ogg; codecs=vorbis">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.loudfucked.mp3" type="audio/mpeg">
</audio>
<figcaption>Aufnahme nach Bearbeitung durch den <i>loudfucker</i> (<kbd>./loudfucker.py metrolaut-erlehmann-spacken.wav</kbd>)</figcaption>
</figure>
<span id="more-6393"></span>
<h3>Alternativen</h3>
<p>
Es gibt bereits zwei Programme für einfache Postproduktion, die <a href="https://auphonic.com/"><i>Auphonic</i></a>-Software und den <a href="http://www.conversationsnetwork.org/levelator"><i>levelator</i></a>. Beide sind jedoch proprietäre Software und zu unflexibel, um mit dem Podcast-Seitengenerator <a href="https://github.com/erlehmann/redokast"><i>redokast</i></a> verwendet zu werden.
</p>
<p>
Georg Holzmann empfahl mir dennoch, die <a href="https://auphonic.com/api-docs/"><i>Auphonic</i>-<abbr title="Application Programming Interface">API</abbr></a> auszuprobieren. Das schien zunächst einfach – funktionierte aber erst, nachdem ich die Kombination <i>username</i>/<i>password</i> <a href="https://auphonic.com/accounts/register/">bei <i>Auphonic</i> registrierte</a>.
</p>
<blockquote>
<kbd>
curl -X POST https://auphonic.com/api/simple/productions.json \
     -u username:password \
     -F "input_file=@/home/user/dein_audio_file.mp3" \
     -F "action=start"
</kbd>
</blockquote>
<p>
 Der Server antwortete mit einer <abbr title="JavaScript Object Notation">JSON</abbr>-Datei mit <abbr title="Uniform Resource Locator">URL</abbr> zu einer <a href="https://auphonic.com/engine/status/rkbJSvb4w2CDHGjKGxfYyT">Status-Webseite</a>. Diese zeigte nach dem Login zunächst nichts an. Als ich <i>JavaScript</i> aktivierte, wurde ich aufgefordert, den Flashplayer zu installieren und erhielt einen Download-Link. Nebenbei wurde mir zu <em>jeder</em> <abbr title="Application Programming Interface">API</abbr>-Anfrage eine Email gesendet – eine würdige Konkurrenz für das <a href="https://mobile.twitter.com/frank_rieger/status/269772769129005056"><q cite="https://mobile.twitter.com/frank_rieger/status/269772769129005056">Custom-Qualitaetssystem aus dem Von Leitnerschen Institut fuer verteiltes Echtzeit-Java</q></a>!
</p>
<p>
Im Gegensatz zum <i>loudfucker</i> kann <i>Auphonic</i> Sprache von anderen Geräuschen unterscheiden. Atmen, Rauschen und sonstige Hintergrundgeräusche werden nicht verstärkt:
</p>
<figure>
<audio controls id="audio-auphonic">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.auphonic.oga" type="audio/ogg; codecs=vorbis">
  <source src="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.auphonic.mp3" type="audio/mpeg">
</audio>
<figcaption>Aufnahme nach Bearbeitung durch <i>Auphonic</i></figcaption>
</figure>
<h3>Vergleich</h3>
<p>
Ein Plot der Lautheit gegen die Zeit zeigt, dass der <i>loudfucker</i> die Lautheit wesentlich stärker angleicht als <i>Auphonic</i>. Ich vermute als Ursache die fehlende Filterung unerwünschter Geräusche.
</p>
<figure>
<img src="http://daten.dieweltistgarnichtso.net/pics/graphs/loudfucker/metrolaut-erlehmann-spacken.png">
<figcaption>Lautheit der <a href="#audio-original"> Aufnahme ohne Bearbeitung</a></figcaption>
</figure>
<figure>
<img src="http://daten.dieweltistgarnichtso.net/pics/graphs/loudfucker/metrolaut-erlehmann-spacken.loudfucked.png">
<figcaption>Lautheit der <a href="#audio-loudfucked">Aufnahme nach Bearbeitung durch den <i>loudfucker</i></a></figcaption>
</figure>
<figure>
<img src="http://daten.dieweltistgarnichtso.net/pics/graphs/loudfucker/metrolaut-erlehmann-spacken.auphonic.png">
<figcaption>Lautheit der <a href="#audio-auphonic">Aufnahme nach Bearbeitung durch <i>Auphonic</i></a></figcaption>
</figure>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/lautheit-angleichen-mit-dem-loudfucker/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.oga" length="497596" type="audio/ogg" />
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.mp3" length="806660" type="audio/mpeg" />
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.loudfucked.oga" length="542678" type="audio/ogg" />
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.loudfucked.mp3" length="806660" type="audio/mpeg" />
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.auphonic.oga" length="502133" type="audio/ogg" />
<enclosure url="http://daten.dieweltistgarnichtso.net/audio/metrolaut-erlehmann-spacken.auphonic.mp3" length="807892" type="audio/mpeg" />
		</item>
		<item>
		<title>Computational Power and Privilege</title>
		<link>http://blog.dieweltistgarnichtso.net/computational-power-and-privilege</link>
		<comments>http://blog.dieweltistgarnichtso.net/computational-power-and-privilege#comments</comments>
		<pubDate>Wed, 14 Nov 2012 20:44:25 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[externality]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[langsec]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[principleofleastpower]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=6124</guid>
		<description><![CDATA[Language is everywhere; it is all around us, even now on this very web site, which uses HTML and CSS. You can see it when you look at your phone or you turn on your PC. You are using it &#8230; <a href="http://blog.dieweltistgarnichtso.net/computational-power-and-privilege">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Language is everywhere; it is all around us, even now on this very web site<ins datetime="2012-11-14T21:18:10+00:00">, which uses <a href="http://en.wikipedia.org/wiki/HTML"><abbr title="HyperText Markup Language">HTML</abbr></a> and <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets"><abbr title="Cascading Style Sheets">CSS</abbr></a></ins>. You can see it when you look at your phone or you turn on your <abbr title="Personal Computer">PC</abbr>. You are using it when you send emails, write blog posts or <a href="http://en.wikipedia.org/wiki/Google_Search#Search_options">query a search engine</a>.
</p>
<p>
People often use <a href="http://en.wikipedia.org/wiki/Chomsky_hierarchy#The_hierarchy">powerful languages</a> to express themselves. By doing this, senders raise the computational complexity of communication and <a href="http://en.wikipedia.org/wiki/Externality">externalize the costs</a>: Receivers must be capable of equivalent computation to understand messages.
</p>
<p>
<a href="http://www.cs.dartmouth.edu/~sergey/langsec/synopsis.html">Determining computational equivalence is not always possible</a> and some designs force receivers to solve <a href="http://en.wikipedia.org/wiki/List_of_undecidable_problems">undecidable problems</a>. When inventing the Web, Tim Berners-Lee was aware that <a href="http://www.w3.org/DesignIssues/Principles.html#PLP">using powerful languages inhibits data re-use</a>.
</p>
<blockquote cite="http://www.w3.org/DesignIssues/Principles.html#PLP">
<p>
If, for example, a web page with weather data has RDF describing that data, a user can retrieve it as a table, perhaps average it, plot it, deduce things from it in combination with other information. At the other end of the scale is the weather information portrayed by the cunning Java applet. While this might allow a very cool user interface, it cannot be analyzed at all.
</p>
</blockquote>
<p>
The <a href="http://www.w3.org/2001/tag/doc/leastPower.html"><abbr title="World Wide Web Consortium">W3C</abbr> <abbr title="Technical Architecture Group">TAG</abbr> concluded</a> one should <strong><q cite="http://www.w3.org/2001/tag/doc/leastPower.html">use the least powerful language suitable for expressing information, constraints or programs</q></strong> to facilitate message comprehension.
</p>
<p>
It is cognitively cheap to dismiss these concerns as purely academic: Those possessing powerful hardware and fast internet connections seldom experience <a href="http://rmurphey.com/blog/2008/05/19/another-cautionary-remote-javascript-tale/">slowdown by advertising</a> or find content inaccessible due to <a href="http://www.webmonkey.com/2011/05/stop-typekit-fonts-from-slowing-down-your-site/">third-party javascript</a> or <a href="http://en.wikipedia.org/wiki/Browser_sniffing">browser sniffing</a>.
</p>
<p>
Lack of exposure to such problems may result in <a href="http://en.wikipedia.org/wiki/Victim_blaming">suspecting receivers of doing something wrong</a> or declaring them to be <i>outside the target audience</i>. This implies the possibility of an <a href="http://en.wikipedia.org/wiki/Pareto_principle"><i>80/20</i> solution</a> – which <a href="http://www.cs.dartmouth.edu/~sergey/langsec/"><abbr title="the Language-theoretic Security interest group">LANGSEC</abbr></a> compares to <a href="http://www.cs.dartmouth.edu/~sergey/langsec/insecurity-theory-28c3.pdf">claiming to have found a <i>80/20</i> solution for a perpetual motion machine</a>.
</p>
<p><strong>Have you checked your computational privilege today?</strong></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/computational-power-and-privilege/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textfolter fpr Nüxhterne</title>
		<link>http://blog.dieweltistgarnichtso.net/textfolter-fpr-nuxhterne</link>
		<comments>http://blog.dieweltistgarnichtso.net/textfolter-fpr-nuxhterne#comments</comments>
		<pubDate>Tue, 13 Nov 2012 10:04:08 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[betrunken]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[foxitalic]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=6090</guid>
		<description><![CDATA[Wer betrunken auf eine Tastatur patscht, haut gelegentlich daneben. Das habe ich automatisiert foxitalic und ich haben ein Programm entwickelt, um das zu simulieren – Vertipper erfolgen normalverteilt, Tastaturbelegung ist die QWERTZ-Variante meines HTC Dream. Text wird über stdin zugeführt, &#8230; <a href="http://blog.dieweltistgarnichtso.net/textfolter-fpr-nuxhterne">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Wer betrunken auf eine Tastatur patscht, haut gelegentlich daneben. <del>Das habe ich automatisiert</del> <ins><i>foxitalic</i> und ich haben ein Programm entwickelt, um das zu simulieren</ins> – Vertipper erfolgen <a href="http://de.wikipedia.org/wiki/Normalverteilung">normalverteilt</a>, Tastaturbelegung ist die <a href="http://de.wikipedia.org/wiki/Tastaturbelegung#QWERTZ">QWERTZ</a>-Variante meines <a href="http://de.wikipedia.org/wiki/HTC_Dream"><i>HTC Dream</i></a>. Text wird über <a href="http://de.wikipedia.org/wiki/Standard-Datenstr%C3%B6me#Standardeingabe_.28stdin.29"><i>stdin</i></a> zugeführt, einziger Parameter ist die Standardabweichung: <kbd>echo Automatisiert betrunken tippen | ./drunktyping.py 0.29</kbd> ergibt <samp>Autokatisiedz bettunken tippeb</samp>.
</p>
<p>
Das Programm ist in Python geschrieben und lizensiert unter der <a href="http://www.gnu.org/licenses/agpl-3.0.html"><abbr title="GNU is Not Unix">GNU</abbr> <abbr title="Affero General Public License">AGPL</abbr><abbr title="Version 3">v3</abbr></a>. <strong><a href="http://daten.dieweltistgarnichtso.net/src/drunktyping.py">Hier ist der Code.</a></strong>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/textfolter-fpr-nuxhterne/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zu Podlove Simple Chapters</title>
		<link>http://blog.dieweltistgarnichtso.net/zu-podlove-simple-chapters</link>
		<comments>http://blog.dieweltistgarnichtso.net/zu-podlove-simple-chapters#comments</comments>
		<pubDate>Sun, 11 Nov 2012 04:21:55 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cmml]]></category>
		<category><![CDATA[gerritvanaaken]]></category>
		<category><![CDATA[podlove]]></category>
		<category><![CDATA[simplechapters]]></category>
		<category><![CDATA[timpritlove]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=6080</guid>
		<description><![CDATA[Gestern war ich auf dem von Tim Pritlove organisierten zweiten Podlove Developer Meeting. Ich kam leider zu spät, um die Diskussion zu Podlove Simple Chapters mitzuverfolgen, einem XML-basierten Format für Kapitel von Mediendateien. Bei einem Gespräch mit Gerrit van Aaken &#8230; <a href="http://blog.dieweltistgarnichtso.net/zu-podlove-simple-chapters">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Gestern war ich auf dem
von <a href="http://de.wikipedia.org/wiki/Tim_Pritlove">Tim
Pritlove</a>
organisierten <a href="http://metaebene.me/blog/2012/09/27/podlove-developer-meeting-2/">zweiten <i>Podlove
Developer Meeting</i></a>. Ich kam leider zu spät, um die Diskussion
zu <a href="http://podlove.org/simple-chapters/"><i>Podlove Simple
Chapters</i></a> mitzuverfolgen, einem <abbr title="Extensible Markup
Language">XML</abbr>-basierten Format für Kapitel von
Mediendateien.</p>

<p>Bei einem Gespräch mit <a href="http://praegnanz.de/">Gerrit van
Aaken</a> äußerte ich die Vermutung, dass bestehende Formate nicht
berücksichtigt wurden. Spontan fiel
mir <a href="http://wiki.xiph.org/OggKate"><i>Ogg Kate</i></a> ein –
das ist allerdings ein Untertitel-Codec, für Kapitel also nicht zu
gebrauchen.</p>

<p>Als ich im Netz nach weiteren Formaten suchte, fand ich heraus,
dass man mit
dem <a href="http://de.wikipedia.org/wiki/Totem_(Software)">Mediaplayer <i>Totem</i></a>
auch <a href="http://axsaprykin.blogspot.de/search/label/totem">Kapitelmarken
anzeigen und erstellen</a> kann. Das verwendete Dateiformat
heißt <a href="http://www.annodex.net/TR/draft-pfeiffer-cmml-03.html"><i>Continuous
Media Markup Language</i></a> und
ist <a href="http://en.wikipedia.org/wiki/Annodex">über zehn Jahre
alt</a>.</p>

<p>Mit <abbr title="Continuous Media Markup Language">CMML</abbr> kann
man Kapiteln Bilder, Links und Beschreibungen zuweisen. Es
ist <abbr title="Extensible Markup Language">XML</abbr>-basiert, kann
in <a href="http://www.annodex.net/TR/draft-pfeiffer-cmml-03.html#anchor31"><i>Ogg</i>
verkapselt werden</a> und wird von bestehender Software
unterstützt: <a href="http://en.wikipedia.org/wiki/GStreamer"><i>GStreamer</i></a>
kann <abbr title="Continuous Media Markup
Language">CMML</abbr> <a href="http://developer.gnome.org/gst-plugins-libs/0.10/gst-plugins-good-plugins-cmmlenc.html">kodieren</a>
und <a href="http://developer.gnome.org/gst-plugins-libs/0.10/gst-plugins-good-plugins-cmmldec.html">dekodieren</a>, <a href="http://www.xiph.org/oggz/"><i>Oggz</i></a>
erkennt <abbr title="Continuous Media Markup Language">CMML</abbr>; es
existiert
sogar <a href="http://svn.annodex.net/scripts/trunk/ircCMMLBot.py">ein <abbr title="Internet
Relay Chat">IRC</abbr>-Bot, der Kapitelmarken schreibt</a>.
</p>

<p><strong>Ich halte <i>Podlove Simple Chapters</i> daher für
überflüssig.</strong></p>

<ins datetime="2012-11-11T04:21:05+00:00">
<p><a href="https://github.com/erlehmann/libcmml"><i>libcmml</i> gibt es jetzt auch auf GitHub.</a></p>
</ins>

<p>Nebenbei habe ich mal
eben <a href="https://github.com/erlehmann/redokast/blob/master/generate-cmml.py">ein
Skript</a> gefrickelt, das
aus <a href="https://github.com/erlehmann/redokast/blob/master/wn-10.linklist"><i>Warum
nicht?</i>-Annotationen</a> Kapitelmarken in <abbr title="Continuous
Media Markup Language">CMML</abbr> erstellt. In <i>Totem</i>
sieht <a href="http://warumnicht.dieweltistgarnichtso.net/wn-10.html">Folge
10</a> dann so aus:
</p>

<figure>
<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/totem-chapters-wn-10.png" alt="Bildschirmfoto des Mediaplayers Totem mit Kapitelmarken">
<figcaption>Bildschirmfoto des Mediaplayers <i>Totem</i> mit Kapitelmarken</figcaption>
</figure>

<figure>
<code>
&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
&lt;!DOCTYPE cmml SYSTEM "cmml.dtd"&gt;
&lt;cmml&gt;
&lt;head&gt;&lt;title&gt;Warum nicht? – Folge 10&lt;/title&gt;&lt;/head&gt;
&lt;clip title="Scotty" start="npt:0:0:0."&gt;&lt;/clip&gt;
&lt;clip title="Serien" start="npt:0:0:28."&gt;&lt;/clip&gt;
&lt;clip title="Joss-Whedon-Serien" start="npt:0:1:22."&gt;&lt;/clip&gt;
&lt;clip title="TV Tropes" start="npt:0:2:43."&gt;&lt;/clip&gt;
&lt;clip title="HBO" start="npt:0:5:30."&gt;&lt;/clip&gt;
&lt;clip title="Tod" start="npt:0:8:14."&gt;&lt;/clip&gt;
&lt;/cmml&gt;
</code>
<figcaption><abbr title="Continuous Media Markup
Language">CMML</abbr> für Folge 10 des Podcasts <i>Warum nicht?</i></figcaption>
</figure>

<ins datetime="2012-11-11T23:01:12+00:00">
<p>Tim ist nicht meiner Meinung:</p>
<blockquote>
<p>
Mag ja sein, dass es Formate gibt, die _derzeit_ noch ähnlich sind, aber die können wir nicht eigenständig weiterentwickeln. Die nächste Version von PSC wird Bilder dazubekommen und das können wir dann einfach einbauen, ohne uns mit Unbekannten rumschlagen zu müssen.
</p>
<p>
Dem wird dann &#8220;Podlove Shownotes&#8221; oder &#8220;Podlove Timeline&#8221; folgen und es wichtig, die beiden Formate aufeinander abzustimmen.
</p>
<p>
Dazu ist es für die Außenkommunikation wichtig, dass wir klar sagen können: hier ist eine Community mit Fokus, die in eine bestimmte Richtung marschiert und ihre Namespaces unter Kontrolle hat.
</p>
</blockquote>
<p>
Ich halte das für einen Fall von <a href="http://de.wikipedia.org/wiki/Not-invented-here-Syndrom">Not-invented-here-Syndrom</a>: Man kann bereits <a href="http://www.annodex.net/TR/draft-pfeiffer-cmml-03.html#anchor24">mit <abbr title="Continuous Media Markup Language">CMML</abbr> Bilder einbetten</a> (<a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/totem-chapters-untergang.png">Beweisfoto</a>) und die <a href="http://permalink.gmane.org/gmane.comp.multimedia.ogg.devel/1782">Spezifikation ist verwaist</a>. Aber an die <em>Außenkommunikation</em> der <em>Community</em> habe ich natürlich nicht gedacht – <em>Marschieren</em> ist auch nicht so mein Ding.
</p>
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/zu-podlove-simple-chapters/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ogg Opus richtig verwenden im HTML-Audio-Element</title>
		<link>http://blog.dieweltistgarnichtso.net/ogg-opus-richtig-verwenden-im-html-audio-element</link>
		<comments>http://blog.dieweltistgarnichtso.net/ogg-opus-richtig-verwenden-im-html-audio-element#comments</comments>
		<pubDate>Sun, 07 Oct 2012 19:09:19 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[alternativlos]]></category>
		<category><![CDATA[fefe]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[opus]]></category>
		<category><![CDATA[vorbis]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=5473</guid>
		<description><![CDATA[Lacher des Tages: Den Podcast Alternativlos gibt es jetzt auch im Audioformat Opus und Fefe erzählt dazu Folgendes: Die Browser-Integration funktioniert im Moment nur in Firefox 15 und neuer, und die Selektion innerhalb des Audio-Tags funktioniert nicht, und außerdem haben &#8230; <a href="http://blog.dieweltistgarnichtso.net/ogg-opus-richtig-verwenden-im-html-audio-element">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Lacher des Tages: Den Podcast <a href="http://www.alternativlos.org/"><i>Alternativlos</i></a> gibt es jetzt auch im Audioformat <a href="http://de.wikipedia.org/wiki/Opus_(Audioformat)"><i>Opus</i></a> und <a href="http://blog.fefe.de/?ts=ae8e92f9"><i>Fefe</i> erzählt dazu Folgendes</a>:
</p>
<blockquote cite="http://blog.fefe.de/?ts=ae8e92f9">
<p>
Die Browser-Integration funktioniert im Moment nur in Firefox 15 und neuer, und die Selektion innerhalb des Audio-Tags funktioniert nicht, und außerdem haben auch noch Ogg Vorbis und Ogg Opus den gleichen MIME-Type, daher sah ich mich gezwungen, eine stinkende Javascript-Browserweiche für Firefox 15 einzubauen.
</p>
</blockquote>
<p>
Da hat wohl jemand <del>das Memo</del> <ins>die Doku</ins> nicht gelesen! <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#attr-source-type">Laut <abbr title="Hypertext Markup Language">HTML</abbr>-Standard</a> und <a href="http://tools.ietf.org/html/rfc4281"><abbr title="Request For Comments">RFC</abbr> 4281</a> kann man hier nämlich durchaus unterscheiden – in diesem Fall gehört ins <code>type</code>-Attribut der <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#the-source-element"><code>&lt;source&gt;</code>-Elemente</a> <code>audio/ogg; codecs=vorbis</code> (<a href="http://tools.ietf.org/html/rfc5334#page-4"><abbr title="Request For Comments">RFC</abbr> 5334</a>) oder <code>audio/ogg; codecs=opus</code> (<a href="http://tools.ietf.org/html/draft-terriberry-oggopus-01#section-8"><i>Opus</i>-<abbr title="Internet Engineering Task Force">IETF</abbr>-Draft</a>). <strong><a href="http://daten.dieweltistgarnichtso.net/src/audio-element-test/">Hier ist die Demo.</a></strong>
</p>
<span id="more-5473"></span>
<ins datetime="2012-10-08T09:39:39+00:00">
<p>
Nur fürs Protokoll, so geht das:
</p>
<code>&lt;audio&gt;
    &lt;source src=opus.opus type="audio/ogg; codecs=opus"&gt;
    &lt;source src=vorbis.oga type="audio/ogg; codecs=vorbis"&gt;
    &lt;source src=mp3.mp3 type="audio/mpeg"&gt;
&lt;/audio&gt;
</code>
</ins>
<p>
Bei <a href="http://alternativlos.org/27/"><i>Alternativlos</i> 27</a> sieht das übrigens so aus:
</p>
<blockquote cite="http://alternativlos.org/27/">
<code>&lt;script&gt;
var codec="ogg"
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent) &#038;&#038; RegExp.$1&gt;=15)
  codec="opus"
&lt;/script&gt;

&lt;audio controls preload=none style="padding-top:70px"&gt;
&lt;script&gt;
  document.write('&lt;source src="http://alternativlos.cdn.as250.net/alternativlos-27.',codec,'" type="audio/ogg"&gt;')
&lt;/script&gt;
&lt;noscript&gt;
  &lt;source src="http://alternativlos.cdn.as250.net/alternativlos-27.ogg" type="audio/ogg"&gt;
&lt;/noscript&gt;
  &lt;source src="http://alternativlos.cdn.as250.net/alternativlos-27.mp3" type="audio/mp3"&gt;
  [Browser zu antik]
&lt;/audio&gt;</code>
</blockquote>
<ins datetime="2012-10-08T09:39:39+00:00">
<p>
Warum das schlecht ist, liegt vor Allem an der <a href="http://de.wikipedia.org/wiki/Browserweiche">Browserweiche</a>: <i>Firefox</i> 15 ist nicht der einzige Browser mit <i>Opus</i>-Unterstützung, <a href="http://tech.velmont.net/supporting-audio-codec-opus-in-opera-12/"><i>Opera</i> 12 kann das auch</a>; wegen <a href="http://zipmeme.com/meme/86317/">solcher Fälle</a> sollte man Daten <a href="http://www.teialehrbuch.de/Kostenlose-Kurse/HTML/3262-Deklaratives-Markup.html">deklarativ</a> abliefern. Nebenbei: Für die Ermittlung unterstützter Formate existiert <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-navigator-canplaytype"><code>canPlayType()</code></a>.
</p>
</ins>
<p>
Mit den <a href="http://en.wikiquote.org/wiki/Jamie_Zawinski#Attributed">Worten von <i>Jamie Zawinski</i></a>:
</p>
<blockquote cite="http://en.wikiquote.org/wiki/Jamie_Zawinski#Attributed">
<p>
Some people, when confronted with a problem, think &#8220;I know, I&#8217;ll use regular expressions.&#8221; Now they have two problems. 
</p>
</blockquote>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/ogg-opus-richtig-verwenden-im-html-audio-element/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://alternativlos.cdn.as250.net/alternativlos-27.ogg" length="59730046" type="audio/ogg" />
<enclosure url="http://alternativlos.cdn.as250.net/alternativlos-27.mp3" length="112305435" type="audio/mpeg" />
		</item>
		<item>
		<title>Debian GNU/Linux on Thinkpad Edge e135</title>
		<link>http://blog.dieweltistgarnichtso.net/debian-gnulinux-on-thinkpad-edge-e135</link>
		<comments>http://blog.dieweltistgarnichtso.net/debian-gnulinux-on-thinkpad-edge-e135#comments</comments>
		<pubDate>Sun, 23 Sep 2012 21:33:20 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[e135]]></category>
		<category><![CDATA[thinkpad]]></category>
		<category><![CDATA[uefi]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=5189</guid>
		<description><![CDATA[When fotografiona wanted a new laptop, tante suggested the Thinkpad Edge e135. Installing Debian GNU/Linux on it turned out to be moderately difficult. Using a normal installation image – written to a USB memory stick – the installer could not &#8230; <a href="http://blog.dieweltistgarnichtso.net/debian-gnulinux-on-thinkpad-edge-e135">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
When <a href="http://fionalerntprogrammieren.wordpress.com/"><i>fotografiona</i></a> wanted a new laptop, <a href="http://the-gay-bar.com/"><i>tante</i></a> suggested the <a href="http://shop.lenovo.com/ilind/IL/en/learn/products/laptops/thinkpad/thinkpad-edge/e135/index.html"><i>Thinkpad Edge e135</i></a>. Installing <a href="http://www.debian.org/"><i>Debian <abbr title="GNU is not Linux">GNU</abbr>/Linux</i></a> on it turned out to be moderately difficult.
</p>
<p>
Using a <a href="http://www.debian.org/CD/">normal installation image</a> – <a href="http://www.debian.org/CD/faq/#write-usb">written to a <abbr title="Universal Serial Bus">USB</abbr> memory stick</a> – the installer could not find the installation medium, expecting a <abbr title="Compact Disc">CD</abbr> or <abbr title="Digital Versatile Disc">DVD</abbr>. A <a href="http://www.debian.org/distrib/netinst">network installation</a> failed as the <a href="https://twitter.com/Fotografiona/status/248470807175643136/photo/1/large">bootloader could not be installed</a>.
</p>
<p>
After reading about <a href="http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface"><abbr>UEFI</abbr></a>, while trying to fix the broken installation using a <a href="http://www.debian.org/CD/live/">bootable live image</a>, I randomly tried installing <i>Debian</i> from the live system, which worked.
</p>
<ins datetime="2012-09-24T17:09:49+00:00">
<p>
I changed the first link to point to <i>fotografiona</i>&#8216;s programming blog, as it is more on topic than <a href="http://fotografiona.wordpress.com/">her other blog</a>.
</p>
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/debian-gnulinux-on-thinkpad-edge-e135/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Noise Invaders</title>
		<link>http://blog.dieweltistgarnichtso.net/noise-invaders</link>
		<comments>http://blog.dieweltistgarnichtso.net/noise-invaders#comments</comments>
		<pubDate>Tue, 24 Jul 2012 16:58:59 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bilder]]></category>
		<category><![CDATA[Kunst]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[artgames]]></category>
		<category><![CDATA[noiseinvaders]]></category>
		<category><![CDATA[spaceinvaders]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=5110</guid>
		<description><![CDATA[Noise Invaders is a Space Invaders clone set in a universe of noise, based upon an idea by Sean Howard. The gameplay video demonstrates why screenshots are insufficient, as any single frame is just static. To get the game, either &#8230; <a href="http://blog.dieweltistgarnichtso.net/noise-invaders">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/games/noise-invaders.png" alt="Screenshot of Noise Invaders">
<p>
<i>Noise Invaders</i> is a <a href="http://en.wikipedia.org/wiki/Space_invaders"><i>Space Invaders</i></a> clone set in a universe of <a href="http://en.wikipedia.org/wiki/Noise_(video)">noise</a>, based upon <a href="http://www.squidi.net/three/entry.php?id=56">an idea by Sean Howard</a>. The <a href="http://daten.dieweltistgarnichtso.net/video/screencasts/noise-invaders.ogv">gameplay video</a> demonstrates why screenshots are insufficient, as any single frame is just static.
</p>
<p>
To get the game, either <a href="http://daten.dieweltistgarnichtso.net/src/noise-invaders.tar.xz">download the archive</a> or <a href="https://github.com/erlehmann/noise-invaders">clone it on <i>GitHub</i></a>; make sure you have <a href="http://www.python.org/"><i>Python</i></a>, <a href="http://www.pygame.org/"><i>PyGame</i></a> and <a href="http://numpy.scipy.org/"><i>NumPy</i></a>.
</p>
<p>
<small>
<i>Noise Invaders</i> is released under the <a href="http://www.gnu.org/licenses/gpl-2.0.html"><abbr title="GNU is Not Unix">GNU</abbr> <abbr title="General Public License">GPL</abbr>, Version 2</a>.
</small>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/noise-invaders/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/video/screencasts/noise-invaders.ogv" length="16717959" type="video/ogg" />
		</item>
		<item>
		<title>Fixing dropped frames in digital video</title>
		<link>http://blog.dieweltistgarnichtso.net/fixing-dropped-frames-in-digital-video</link>
		<comments>http://blog.dieweltistgarnichtso.net/fixing-dropped-frames-in-digital-video#comments</comments>
		<pubDate>Sun, 10 Jun 2012 23:32:28 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[dv]]></category>
		<category><![CDATA[fotografiona]]></category>
		<category><![CDATA[mencoder]]></category>
		<category><![CDATA[mplayer]]></category>
		<category><![CDATA[spackeriade]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4795</guid>
		<description><![CDATA[Occasionally, when capturing DV, data is generated faster than it can be saved, thus audio and video frames are dropped. The resulting small gaps in the recording are noticeable at playback time as footage appears sped up and choppy, AV-sync &#8230; <a href="http://blog.dieweltistgarnichtso.net/fixing-dropped-frames-in-digital-video">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Occasionally, when capturing <a href="http://en.wikipedia.org/wiki/DV">DV</a>, data is generated faster than it can be saved, thus audio and video frames are dropped. The resulting small gaps in the recording are noticeable at playback time as footage appears sped up and choppy, <a href="http://en.wikipedia.org/wiki/Audio_to_video_synchronization"><abbr title="Audio-Video">AV</abbr>-sync</a> being lost occasionally. For most people, those recordings are unwatchable.
</p>
<p>
Obviously the lost data cannot be recovered. The symptoms however – stuttering and uncomfortable playback speed – can be remedied somewhat by interpolating the missing audio frames. Assuming a file with a nominal framerate of 25 <a href="http://en.wikipedia.org/wiki/Frame_rate"><abbr title="frames per second">FPS</abbr></a> that had every second frame dropped, this can easily be achieved using <a href="http://www.mplayerhq.hu/"><i>mplayer</i></a> for playback at half speed:
</p>
<kbd>mplayer -af scaletempo=stride=16:overlap=.25:search=10 -speed 0.5 -fps 25 example.dv</kbd>
<p>
The important piece is the <a href="http://scaletempo.sourceforge.net/0/"><i>scaletempo</i></a> filter, which can <a href="http://en.wikipedia.org/wiki/Audio_timescale-pitch_modification">change audio speed without altering the pitch</a>. Without it, speech played at half its original speed has more resemblance to <a href="http://en.wikipedia.org/wiki/Goa%27uld"><i>Goa&#8217;uld</i></a> utterances than to real-world language. Unfortunately, this approach is limited by the <a href="http://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem">sampling theorem</a>: If too many audio frames are missing, the result will sound like it was created using a bad mobile phone.
</p>
<p>
Though missing video frames could also be interpolated to smooth jerky movements, simply duplicating frames is adequate for real-world usage. The following shell script utilizes <i>mplayer</i> and <i>mencoder</i> to interpolate audio and duplicate video frames, creating a file that should be easier on viewers&#8217; eyes and ears than the original – broken – recording.
</p>
<kbd>
mplayer -af scaletempo=stride=16:overlap=.25:search=10 -speed 0.5 -fps 25 example.dv -vc null -vo null -ao pcm:waveheader:file=example.wav &amp;&amp; mencoder -fps 12.5 -ofps 25 -ovc copy -oac copy -o example-fixed.dv example.dv -audiofile example.wav &#038;&#038; rm example.wav
</kbd>
<p>
For an example recording processed using this method, see the <a href="http://daten.dieweltistgarnichtso.net/video/talks/fickileaks.ogv">video</a> of the <a href="http://lanyrd.com/2011/spack0/smrrw/"><i>Fickileaks</i> talk</a> me and <a href="http://mobile.twitter.com/fotografiona"><i>fotografiona</i></a> gave at the <a href="http://blog.spackeria.org/0-spackeriade/"><i>Spackeriade</i></a>; the original file was missing about every second frame.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/fixing-dropped-frames-in-digital-video/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://daten.dieweltistgarnichtso.net/video/talks/fickileaks.ogv" length="148123843" type="video/ogg" />
		</item>
		<item>
		<title>Projekte anderer Leute</title>
		<link>http://blog.dieweltistgarnichtso.net/projekte-anderer-leute</link>
		<comments>http://blog.dieweltistgarnichtso.net/projekte-anderer-leute#comments</comments>
		<pubDate>Tue, 10 Apr 2012 22:33:10 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Bilder]]></category>
		<category><![CDATA[Netzkultur]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[fotografiona]]></category>
		<category><![CDATA[gerritvanaaken]]></category>
		<category><![CDATA[island]]></category>
		<category><![CDATA[nnsb]]></category>
		<category><![CDATA[sigi]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4759</guid>
		<description><![CDATA[Freunde von mir sind noch bis Ende der Woche in Island. Sie machten eine Menge Fotos für ihr Reiseblog; fotografiona und cy_pp containerten auf der Fähre. Gerrit van Aaken schreibt ein Buch über Webtypografie – vorfinanziert durch Crowdfunding. Zur Zeit &#8230; <a href="http://blog.dieweltistgarnichtso.net/projekte-anderer-leute">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Freunde von mir sind noch bis Ende der Woche in Island. Sie machten eine Menge Fotos für ihr <a href="https://isnodrama.wordpress.com/">Reiseblog</a>; <i>fotografiona</i> und <i>cy_pp</i> <a href="https://isnodrama.wordpress.com/2012/04/04/fahr-trade/">containerten auf der Fähre</a>.
</p>
<p>
Gerrit van Aaken <a href="http://praegnanz.de/weblog/webtypobuch">schreibt ein Buch über Webtypografie</a> – <a href="http://www.startnext.de/webtypobuch">vorfinanziert durch Crowdfunding</a>. Zur Zeit ist etwa die Hälfte der dafür benötigten 7500€ erreicht.
</p>
<p>
Sigi hat jetzt ein <a href="https://zuckeraye.wordpress.com/">Kochblog</a>. Am Montag gab es <a href="https://zuckeraye.wordpress.com/2012/04/09/fur-die-jungs-kochen-statt-tatorten/">gefüllte Paprika</a>.
</p>
<p>
<span title="Eine seltene Freude. Ein Gaumenschmaus erster Güte.">Bonus-Leckerli</span>: Die deutschsprachige <i lang="en">Visual Novel</i> <a href="http://blog.dieweltistgarnichtso.net/netto-no-shishou-bernd-%E2%80%94-visual-novel-krautchan-style"><i>Netto no Shishou: Bernd</i></a> ist nun auch <a href="http://git.uncloaked.net/nnsb.git/">im Quelltext verfügbar</a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/projekte-anderer-leute/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fiona lernt Programmieren und andere Vorkommnisse</title>
		<link>http://blog.dieweltistgarnichtso.net/fiona-lernt-programmieren-und-andere-vorkommnisse</link>
		<comments>http://blog.dieweltistgarnichtso.net/fiona-lernt-programmieren-und-andere-vorkommnisse#comments</comments>
		<pubDate>Mon, 26 Mar 2012 01:48:09 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[fionalerntprogrammieren]]></category>
		<category><![CDATA[fotografiona]]></category>
		<category><![CDATA[plomlompom]]></category>
		<category><![CDATA[rp12]]></category>
		<category><![CDATA[sigint12]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4664</guid>
		<description><![CDATA[Viele werden es bereits kennen, der Vollständigkeit halber sei an dieser Stelle jedoch auf Fiona lernt Programmieren verwiesen: Seit Januar arbeiten fotografiona, plomlompom und ich uns anhand des Buches Programming from the Ground up durch die Feinheiten von x86-Assembler; später &#8230; <a href="http://blog.dieweltistgarnichtso.net/fiona-lernt-programmieren-und-andere-vorkommnisse">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Viele werden es bereits kennen, der Vollständigkeit halber sei an dieser Stelle jedoch auf <a href="https://fionalerntprogrammieren.wordpress.com/"><i>Fiona lernt Programmieren</i></a> verwiesen: Seit Januar arbeiten <a href="https://fotografiona.wordpress.com/"><i>fotografiona</i></a>, <a href="http://www.plomlompom.de/"><i>plomlompom</i></a> und ich uns anhand des Buches <a href="https://savannah.nongnu.org/projects/pgubook/"><i>Programming from the Ground up</i></a> durch die Feinheiten von <a href="http://de.wikipedia.org/wiki/X86-Prozessor"><i>x86</i></a>-<a href="http://de.wikipedia.org/wiki/Assemblersprache">Assembler</a>; später werden wir uns mit <a href="http://de.wikipedia.org/wiki/C_%28Programmiersprache%29"><i>C</i></a> und <a href="http://de.wikipedia.org/wiki/Python_%28Programmiersprache%29"><i>Python</i></a> beschäftigen.
</p>
<p>
Obwohl unser Vorgehen <a href="http://daten.dieweltistgarnichtso.net/pics/macros/anti-assembler-hipster.png">bei Hipstern eher auf Ablehnung stößt</a>, haben wir zur diesjährigen <i title="SIGINT">Fefecon</i> eine Vortragseinreichung dazu vorbereitet: In <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/sigint2012-cfp.html"><i>„Hallo Welt” in Assembler</i></a> wollen wir unseren Ansatz erklären, Erkenntnisse präsentieren und nebenbei erläutern, warum <a href="http://codeacademy.com"><i>Codeacademy</i></a> doof ist.
</p>
<p>
Eine weitere Einreichung von mir und <i>plomlompom</i>, <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/sigint2012-cfp-2.html"><i>Keine Angst vor großen Zahlen!</i></a>, beschäftigt sich mit der Annahme, neben gigantischen Hardware- und Software-Plattformen mit Millionen von Nutzern sei kein Platz für weitere <i lang=en>communities</i>. Sie basiert teilweise auf der bei der <i>re:publica</i> nicht angenommenen Einreichung <a href="http://daten.dieweltistgarnichtso.net/docs/presentations/republica2012-cfp.html"><i>Diaspora braucht kein Mensch!</i></a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/fiona-lernt-programmieren-und-andere-vorkommnisse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>uii – a minimalist IRC client</title>
		<link>http://blog.dieweltistgarnichtso.net/uii-a-minimalist-irc-client</link>
		<comments>http://blog.dieweltistgarnichtso.net/uii-a-minimalist-irc-client#comments</comments>
		<pubDate>Wed, 25 Jan 2012 13:29:24 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4476</guid>
		<description><![CDATA[uii is a minimalist text-based IRC client. uii is a shell script frontend for ii: using standard Unix utilities like tail and cat, it operates on files and directories representing input and output of servers, channels and other users. uiis &#8230; <a href="http://blog.dieweltistgarnichtso.net/uii-a-minimalist-irc-client">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>uii</i> is a minimalist text-based <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat"><abbr title="Internet Relay Chat">IRC</abbr></a> client. <i>uii</i> is a shell script frontend for <a href="http://tools.suckless.org/ii/"><i>ii</i></a>: using standard <i>Unix</i> utilities like <a href="http://en.wikipedia.org/wiki/Tail_%28Unix%29"><i>tail</i></a> and <a href="http://en.wikipedia.org/wiki/Cat_%28Unix%29"><i>cat</i></a>, it operates on files and directories representing input and output of servers, channels and other users.
</p>
<figure>
<img src="//daten.dieweltistgarnichtso.net/pics/screenshots/uii-spackeria.png" alt="Screenshot of uii's interface, showing the channel #spackeria on chat.freenode.org">
<figcaption>
<i>uii</i>s minimalist interface is dedicated entirely to one <abbr title="Internet Relay Chat">IRC</abbr> server, channel or nick name. It displays incoming text and has a <a href="http://en.wikipedia.org/wiki/GNU_readline"><i>readline</i></a>-enabled prompt at the bottom.
</figcaption>
</figure>
<p>
If data is received from an entity with no accompanying <i>uii</i> process, a <a href="http://developer.gnome.org/libnotify/">desktop notification</a> is shown. <i>uii</i> also has limited highlighting; if the nick name, preceded by a space character, occurs in the output, it is printed bold (using <a href="http://en.wikipedia.org/wiki/ANSI_escape_code"><abbr title="American National Standards Institute">ANSI</abbr> escape codes</a>) and a <a href="http://en.wikipedia.org/wiki/Bell_character">bell character</a> is emitted.
</p>
<p>
Users should be aware that <i>uii</i> output may look garbled if their terminal emulator does not show unicode glyphs correctly (<a href="http://en.wikipedia.org/wiki/Xterm"><i>xterm</i></a>) or has “clever” redraw behaviour (<a href="http://en.wikipedia.org/wiki/Rxvt"><i>urxvt</i></a>). Programs embedding the <a href="https://live.gnome.org/VTE">VTE Terminal Widget</a> (like <a href="https://en.wikipedia.org/wiki/GNOME_Terminal"><i>GNOME Terminal</i></a> or <a href="http://www.xfce.org/projects/terminal"><i>Xfce Terminal</i></a>) work well; I use <a href="http://www.tenshu.net/p/terminator.html"><i>Terminator</i></a>, as it can set an <a href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#URGENCY">urgent hint</a> when a bell character is output.
</p>
<p>
If you have read this far, you should check out <a href="https://github.com/erlehmann/uii"><i>uii</i>&#8216;s source code</a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/uii-a-minimalist-irc-client/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WissensWert-Projekt: Open-Access-Importer für Wikimedia Commons</title>
		<link>http://blog.dieweltistgarnichtso.net/wissenswert-projekt-open-access-importer-fur-wikimedia-commons</link>
		<comments>http://blog.dieweltistgarnichtso.net/wissenswert-projekt-open-access-importer-fur-wikimedia-commons#comments</comments>
		<pubDate>Wed, 18 Jan 2012 18:07:32 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Freie Lizenzen]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[oaimporter]]></category>
		<category><![CDATA[openaccess]]></category>
		<category><![CDATA[wikimediacommons]]></category>
		<category><![CDATA[wissenswert2011]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4458</guid>
		<description><![CDATA[Zusammen mit Daniel Mietchen und Raphael Wimmer werde ich in den kommenden Monaten Software entwickeln, um wissenschaftliche Inhalte automatisiert in Wikimedia Commons zu übertragen. Das Projekt wird im Rahmen des WissensWert-Wettbewerbs finanziell unterstützt durch Wikimedia Deutschland. Details gibt es im &#8230; <a href="http://blog.dieweltistgarnichtso.net/wissenswert-projekt-open-access-importer-fur-wikimedia-commons">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Zusammen mit <a href="http://en.wikiversity.org/wiki/User:Mietchen">Daniel Mietchen</a> und <a href="http://www.uni-regensburg.de/sprache-literatur-kultur/medieninformatik/sekretariat-team/raphael-wimmer/index.html">Raphael Wimmer</a> werde ich in den kommenden Monaten Software entwickeln, um <a href="http://de.wikiversity.org/wiki/Benutzer:OpenScientist/Offenes_Antragschreiben/Wissenswert_2011">wissenschaftliche Inhalte automatisiert in <i>Wikimedia Commons</i> zu übertragen</a>. Das Projekt wird <a href="http://blog.wikimedia.de/2011/12/15/wissenswert-2011-wir-gratulieren-den-fuenf-gewinnern/">im Rahmen des <i>WissensWert</i>-Wettbewerbs finanziell unterstützt durch <i>Wikimedia Deutschland</i></a>.
</p>
<p>
<a href="http://wir.okfn.org/2012/01/18/project-introduction-open-access-media-importer-for-wikimedia-commons/">Details gibt es im Blog der <i>Open Knowledge Foundation</i></a>, in dem ich wöchentlich über den Fortgang des Projektes bloggen werde.
</p>

<span id="more-4458"></span>

<blockquote cite="http://wir.okfn.org/2012/01/18/project-introduction-open-access-media-importer-for-wikimedia-commons/">
<p>
<a href="http://en.wikipedia.org/wiki/Open_access"><em>Open Access</em></a> scientific literature contains, almost by definition, content suitable – both in substance and licensing – for <a href="http://en.wikipedia.org/wiki/Wikimedia_Commons"><em>Wikimedia Commons</em></a>. However, currently, there seems to be no automated, easy way to identify such files, convert them into <a href="http://commons.wikimedia.org/wiki/Commons:Project_scope/Allowable_file_types">appropriate formats</a> and import them into <em>Commons</em>.
</p>

<p>
In November 2011, <a href="http://en.wikiversity.org/wiki/User:Mietchen">Daniel Mietchen</a> submitted <a href="http://en.wikiversity.org/wiki/User:OpenScientist/Open_grant_writing/Wissenswert_2011">a proposal</a> tackling the issue to the <a href="http://wikimedia.de/wiki/WissensWert"><em>WissensWert</em></a> funding scheme run by <a href="http://meta.wikimedia.org/w/index.php?title=Wikimedia_Deutschland/en&amp;uselang=en">the German chapter of <em>Wikimedia</em></a>. Among other projects, <a href="http://blog.wikimedia.de/2011/12/15/wissenswert-2011-wir-gratulieren-den-fuenf-gewinnern/">it was chosen to receive funding</a> (see <a href="http://wir.okfn.org/2011/12/15/supplementary-materials-to-wikimedia-commons-see-you-soon/">Daniel&#8217;s post</a>). As part of the team implementing the software envisioned, I will blog here about once a week until project conclusion.
</p>

<p>
Initially, the project will be focused on audio and video content available in <a href="http://en.wikipedia.org/wiki/PubMed_Central"><em>PubMed Central</em></a>&#8216;s <a href="http://www.ncbi.nlm.nih.gov/pmc/tools/openftlist/"><em>Open Access Subset</em></a> – however, <a href="http://en.wikiversity.org/wiki/User:OpenScientist/Open_grant_writing/Wissenswert_2011/Documentation">the toolchain is intended to be modular</a>, so other sources can be added as development continues.
</p>

<p>
The only component currently existing is a proof-of-concept <a href="https://github.com/erlehmann/open-access-media-importer/blob/master/crawler/crawler.py">crawler / downloader</a>: It downloads archives containing <abbr title="Extensible Markup Language">XML</abbr> files – each about a GiB in size – from <em>PubMed Central</em>, identifies articles referring to supplementary materials (attachments) and displays <abbr title="Uniform Resource Locator">URL</abbr>s to retrieve those.
</p>

<p>
Until next week, I intend to add metadata collection – minimally author, source and licensing terms – and downloading of supplementary materials. <a href="http://www.uni-regensburg.de/sprache-literatur-kultur/medieninformatik/sekretariat-team/raphael-wimmer/index.html">Raphael Wimmer</a> also proposed an option to only download new articles, which could reduce network load by several orders of magnitude compared to the currently existing naive implementation.
</p>

<p>
In line with the principles of <a href="https://en.wikipedia.org/wiki/Free_culture_movement"><em>free culture</em></a>, all tools will be released as <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>, licensed under the <a href="http://gnu.org/licenses/gpl-3.0-standalone.html"><abbr title="GNU is Not Unix">GNU</abbr> General Public License, version 3</a> (or any later version of the License published by the <a href="http://fsf.org/"><em>Free Software Foundation</em></a>).
</p>

<p>
<a href="https://github.com/erlehmann/open-access-media-importer">The source code is hosted on <em>GitHub</em>.</a>
</p>
</blockquote>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/wissenswert-projekt-open-access-importer-fur-wikimedia-commons/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Privatheit contra WWW</title>
		<link>http://blog.dieweltistgarnichtso.net/privatheit-contra-www</link>
		<comments>http://blog.dieweltistgarnichtso.net/privatheit-contra-www#comments</comments>
		<pubDate>Mon, 05 Dec 2011 14:11:31 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Netzpolitik]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[googleplus]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[spackeria]]></category>
		<category><![CDATA[spackeriade0]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4190</guid>
		<description><![CDATA[Die Privacy-Checkbox ist eine Lüge Internetplattformen – maßgeblich Facebook und Google+ – vermitteln, Privatsphäre ließe sich durch das Setzen von Häkchen schützen. „Privat“ heißt dort: Inhalte sind nur für bestimmte Nutzer einsehbar. Plattform-Anbieter sammeln dennoch viele Nutzer-Informationen: Selbst wenn sie &#8230; <a href="http://blog.dieweltistgarnichtso.net/privatheit-contra-www">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h3 id="privacy-checkbox-lüge">Die Privacy-Checkbox ist eine Lüge</h3>

<p>
    Internetplattformen – maßgeblich <a href="http://de.wikipedia.org/wiki/Facebook"><i>Facebook</i></a> und <a href="http://de.wikipedia.org/wiki/Google%2B"><i>Google+</i></a> – vermitteln, Privatsphäre ließe sich durch das <span title="im Privatsphären-Einstellungsdialog">Setzen von Häkchen</span> schützen. „Privat“ heißt dort: Inhalte sind nur für bestimmte Nutzer einsehbar.
</p>

<p>
    Plattform-Anbieter sammeln dennoch viele Nutzer-Informationen: Selbst wenn sie sie nicht zu Werbezwecken benötigen, müssen sie immerhin die Zugangsbeschränkungen verwalten. Die so propagierte Privatheit hat mit Datenschutz wenig zu tun; für beteiligte Firmen und Regierungen sind die Daten <a href="http://yro.slashdot.org/story/11/11/10/2021215/judge-rules-twitter-data-fair-game-in-wikileaks-investigation">jederzeit zugänglich</a>.
</p>

<p>
    Die zur Durchsetzung der Privatphäre in sozialen Netzwerken angewandten Nutzergängelungen widersprechen jedoch den <a href="http://www.w3.org/DesignIssues/Principles.html">Prinzipien, die das Web erfolgreich gemacht haben</a> – maßgeblich <a href="http://de.wikipedia.org/wiki/Hyperlink">Hyperlinks</a> und einfacher Zugang zu dezentral gelagerter <span title="In HTML können etwa Überschriften oder Zitate maschinenlesbar markiert werden.">strukturierter Information</span>.
</p>

<span id="more-4190"></span>

<h3 id="halbtote-links">Halbtote Links</h3>

<p>
    <a href="http://de.wikipedia.org/wiki/Uniform_Resource_Locator"><abbr title="Uniform Resource Locator">URL</abbr>s</a> – Verweise auf Resourcen im Netzwerk – sind das Rückgrat des Webs. Sie erst ermöglichen den einfachen Austausch von Informationen und werden sowohl <i lang=en>online</i> als auch <i lang=en>offline</i> verwendet, um Artikel, Bilder, Audio, Video <abbr title="und Vieles mehr">u.V.m.</abbr> mit Anderen zu teilen.
</p>

<p>
    Zwangs-Anmeldungen und Leseverbote behindern diesen Austausch von Informationen enorm. Um <abbr title="Uniform Resource Locator">URL</abbr>s gegenüber plattform-internen Verweisen zu entwerten, werden sie unleserlich gemacht, etwa durch <a href="http://de.wikipedia.org/wiki/Kurz-URL-Dienst">Kürzung</a>. <i>Google+</i> lügt bei privaten Beiträgen sogar, sie würden nicht existieren und gibt <a href="https://de.wikipedia.org/wiki/HTTP-Statuscode#4xx_.E2.80.93_Client-Fehler">Fehler 404</a> zurück.
</p>

<h3 id="balkanisierung">Balkanisierung</h3>

<p>
    Wer private Resourcen teilen möchte, kann diese nun dennoch an andere Stellen kopieren, die weniger Beschränkungen bezüglich Anschauung <abbr title="beziehungsweise">bzw.</abbr> Kommentaren haben. Dann jedoch geht der bisherige Kontext verloren.
</p>

<p>
    Öffentlich zugängliche Diskussionen an verschiedenen Orten sind unproblematisch – Kontextverlust stört jedoch massiv. Durch ihn können etwa <a href="http://mobile.twitter.com/shiterlesays/status/142625347031142400">scherzhafte Bemerkungen</a> <a href="http://mobile.twitter.com/hanhaiwen/status/142641563472900096">als Vergewaltigungswitz interpretiert</a> oder <a href="http://de.wikipedia.org/wiki/Emser_Depesche">Kriege provoziert</a> werden.
</p>

<h3 id="datenfriedhoefe">Datenfriedhöfe</h3>

<p>
    Um zu erschweren, dass Nutzer Privatheits-Restriktionen umgehen, darf ein entsprechendes System (<abbr title="Digital Restrictions Management">DRM</abbr>) nicht interoperabel sein. Wären abgerufene Daten einfach ausles- und verwend-bar, untergrübe dies das Vertrauen in die Privatheits-Propaganda einer Plattform.
</p>

<p>
    Könnten etwa Nutzer von <i>Google+</i> zum Lesen <a href="http://de.wikipedia.org/wiki/Feedreader">Feedreader</a> benutzen, wäre es trivial, Informationen an anderer Stelle neu zu veröffentlichen. Die vorgeblich zum Schutz der Privatheit existierende Weitergabe-Einschränkung <a href="http://www.google.com/+/learnmore/#circles"><i>circles</i></a> wäre so weitgehend wertlos.
</p>

<p>
    Teils verhindern eine Weiterverarbeitung schon die erwähnten Zombie-Links und eingestreute <a href="http://de.wikipedia.org/wiki/CAPTCHA">Turing-Tests</a>. Dazu kommt die Veröffentlichung von Daten in nicht standardisierten Formaten – gerne mit dem Verweis, durch eine Offenlegung der Spezifikation stehe einer Nutzung nur <abbr title="Als ob.">vernachlässigbarer Implementations-Aufwand</abbr> im Wege.
</p>

<p>
    Zuletzt herrscht auch für Anwendungen Identifikations-Zwang: Web-Plattformen machen diese oft zur Bedingung zum Zugriff auf ihre <a href="http://de.wikipedia.org/wiki/Programmierschnittstelle">Programmierschnittstellen</a>.
</p>

<p>
    Im Ergebnis entstehen Software-Ökosysteme für einzelne Plattformen, in denen individuelle Anwendungen bei Missverhalten leicht ausgeschlossen werden. Anpassbarkeit durch Benutzer wird generell als Risiko für die Privatheit anderer angesehen.
</p>

<p>
    Eingespeiste Daten können von Plattformbetreibern, deren Geschäftspartnern, Ermittlungsbehörden, Geheimdiensten und deren Kollegen aus Übersee verwendet werden. Ob das effektiver Datenschutz ist, ist fraglich. Der Nutzen für die Öffentlichkeit ist jedoch beschränkt – begründet durch Privatheits-Propaganda.
</p>

<h3 id="fazit">Fazit</h3>

<p>
    Natürlich stehen derartige Nutzergängelungen nicht im Vakuum: Jedes der beschriebenen antisozialen Phänomene hat strategische Vorteile für die Betreiber entsprechender Plattformen; Schutz des Privaten ist nur eine weitere passende Ausrede für Maßnahmen, die früher <span title="Das glaubt heute allerdings niemand mehr.">mit Spam-Vermeidung gerechtfertigt wurden</span>.
</p>

<p>
    Nutzer müssen sich das jedoch nicht gefallen lassen: Es ist durchaus möglich, sich selbst und anderen den Umgang mit eigenen Inhalten zu erleichtern. Der Leitsatz dieser Maßnahmen lautet <a href="http://mobile.twitter.com/mspro/statuses/24194168839"><q cite="http://mobile.twitter.com/mspro/statuses/24194168839">Mehr Daten für alle!</q></a>.
</p>

<p>
    Am Einfachsten ist es, Öffentlichkeit zum Default zu erklären. Wer seine Artikel etwa mit <a href="http://de.wikipedia.org/wiki/WordPress"><i>WordPress</i></a> veröffentlicht, limitiert die Weiterverteilung seiner Daten nicht und geht zudem kein Risiko ein, aufgrund eines <a href="http://www.linkedin.com/pub/melanie-unbekannt/24/615/b31">nicht echt klingenden Benutzernamens</a> gelöscht zu werden.
</p>

<p>
    Wer selber Web-Anwendungen entwickelt, könnte diese sicher <a href="http://saschalobo.com/2011/10/16/die-abschaffung-der-ruckseite-des-blogs/">nutzerfreundlich gestalten</a>, <a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/Imageboards">Zugangsbeschränkungen vermeiden</a>, <a href="https://tools.ietf.org/html/rfc4287">Standardformate</a> nutzen und <a href="http://netzpolitik.org">Kommentare</a> <a href="http://spreeblick.com">ohne</a> <a href="http://saschalobo.com">Anmeldung</a> ermöglichen. All das <a href="http://www.4chan.org/blog/2005/11/09/in-response-to-anonymity/">fördert die Diskussionskultur</a> – vermutlich ist es schlicht profitabler, es nicht zu tun.
</p>

<p>
    Selbst einzelne Entwickler können ihren Teil dazu beitragen, Datenfriedhöfen die Bedeutung zu nehmen. Jedes <a href="https://scraperwiki.com/">Export-Skript</a>, das plattform-spezifische Daten in <a href="https://fsfe.org/projects/os/def.de.html">offene Standard-Formate</a> umwandelt, hilft Nutzern und beschädigt die Privatheits-Propaganda.
</p>

<p>
    <small>
        Der obige Text ist <i>erlehmann</i>s <a href="http://blog.spackeria.org/2011/11/30/call-for-papers-0-spackeriade/">Einreichung zur nullten Spackeriade</a>.
    </small>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/privatheit-contra-www/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weniger Programmieren ist mehr</title>
		<link>http://blog.dieweltistgarnichtso.net/weniger-programmieren-ist-mehr</link>
		<comments>http://blog.dieweltistgarnichtso.net/weniger-programmieren-ist-mehr#comments</comments>
		<pubDate>Tue, 08 Nov 2011 16:36:12 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[simplestthingthatworks]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=4127</guid>
		<description><![CDATA[Wenn ein Problem mit Hilfe eines Computerprogramms bearbeitet werden soll, ist es oft hilfreich, darüber nachzudenken, welcher Ansatz so einfach ist, dass er gerade so funktioniert. Eingeweihte nennen dies The Simplest Thing that Could Possibly Work. Diesem Paradigma folgende Lösungen &#8230; <a href="http://blog.dieweltistgarnichtso.net/weniger-programmieren-ist-mehr">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Wenn ein Problem mit Hilfe eines Computerprogramms bearbeitet werden soll, ist es oft hilfreich, darüber nachzudenken, welcher Ansatz so einfach ist, dass er <em>gerade so</em> funktioniert. <span title="Altschuchteln">Eingeweihte</span> nennen dies <a href="http://en.wikiquote.org/wiki/Ward_Cunningham#The_Simplest_Thing_that_Could_Possibly_Work"><i lang="en">The Simplest Thing that Could Possibly Work</i></a>.
</p>
<p>
Diesem Paradigma folgende Lösungen können selbst dann gut funktionieren, wenn sie auf den ersten Blick absurd wirken: Die Frage <a href="http://www.peterkroener.de/spamschutz-leichtgemacht/"><i>Was ist der Vorname von Franz Beckenbauer?</i> schützt gegen <i lang="en">spam</i></a> nämlich genau so gut wie ein <a href="http://de.wikipedia.org/wiki/Akismet">komplexes Analyse-<i>plugin</i></a>. Auch die Methode der <a href="http://riesenmaschine.de"><i>Riesenmaschine</i></a>, neue Kommentare gegen eine kurze Liste unerwünschter Wortbestandteile (etwa <i>!!</i>, <i>lugschei</i>) zu prüfen, kommt ohne komplizierte Filtermodelle aus.
</p>
<p>
<a href="http://lea.verou.me/2011/05/get-your-hash-the-bulletproof-way/">Wie es hingegen <em>nicht</em> geht, beschreibt Lea Verou</a> anhand der Aufgabe, das Doppelkreuz am Anfang von <abbr title="Uniform Resource Locator">URL</abbr>-Fragmenten zu entfernen. In einem Buch fand sie dazu den <i>JavaScript</i>-Schnipsel <code>location.hash.<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match">match</a>(/#(\w+)/)[1]</code>. Der enthält allerdings nicht nur einen unleserlichen <a href="http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck">regulären Ausdruck</a>, sondern funktioniert auch nicht; so produziert die Verarbeitung des <a href="http://mathiasbynens.be/notes/html5-id-class">gültigen Werts</a> <i>#♥</i> einen Fehler. Verous in jedem Fall funktionierende Alternative lautet schlicht <code>location.hash.<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring">substring</a>(1)</code>.
</p>
<p>
Um Fehler dieser Art zu verstehen, sollte man wissen, dass <a href="http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html">viele Programmierer nicht programmieren können</a>. Damit ist nicht gemeint, dass sie unfähig sind, lauffähigen Code zu produzieren – sie haben jedoch Schwierigkeiten, ein <a href="http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html">zutreffendes mentales Modell der Programmlogik</a> zu entwickeln. Hinzu kommt <a href="http://haacked.com/archive/2007/02/27/Why_Cant_Programmers._Read.aspx">mangelnde Lesekompetenz</a>: So lehnen Programme etwa <a href="http://www.jacobsen.no/anders/blog/archives/2002/08/24/email_addresses_with_a_are_valid.html">Email-Adressen mit Plus-Zeichen</a> ab, weil die Entwickler <a href="http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx">nicht wissen, welche Zeichen erlaubt sind</a> – und dennoch überzeugt sind, das Richtige zu tun.
</p>
<p>
Dass jemand einen Algorithmus oder eine Spezifikation missverstanden hat, ist jedoch für Außenstehende nicht auf den ersten Blick erkennbar, <a href="http://de.wikipedia.org/wiki/Dunning-Kruger-Effekt">für einen selber sogar noch weniger</a>. Unabhängig vom Ego gilt aber: Programme nach dem <i lang="en">Simplest Thing</i>-Prinzip zu schreiben reduziert das Risiko, etwas Unverständliches zu produzieren – selbst für <span title="Die BESTEN der BESTEN der BESTEN.">jene, die sich für besonders clever halten</span>. Als Fingerübung habe ich mir daher vorgenommen, so weit wie möglich auf reguläre Ausdrücke zu verzichten.
</p>
<p>
<i lang="en">The Simplest Thing that Could Possibly Work</i> muss übrigens nicht unbedingt aus eigenem Code bestehen: Spezialisierte Programmbibliotheken zu nutzen spart nicht nur Zeit, sondern reduziert ebenfalls die Fehlerrate. Faustregel: Wer komplexe Formate wie <abbr title="Hypertext Markup Language">HTML</abbr> parsen oder generieren möchte, sollte besser <a href="http://code.google.com/p/html5lib/">existierende Werkzeuge</a> benutzen, als sich selbst Gedanken zu machen – sonst besteht das Risiko, eine <a href="http://regex.info/blog/2006-09-15/247">beherrschte Technik in einem Bereich anzuwenden, für den sie vollkommen unpassend ist</a> (<a href="https://github.com/matthiasr/logformat/pull/4">Patch für Negativ-Beispiel</a>).
</p>
<p>
Gleich doppelt beleuchtet diese Kategorie <a href="https://github.com/juuso/BozoCrack"><i>BozoCrack</i></a> – ein Programm, das mit <a href="http://de.wikipedia.org/wiki/Md5"><abbr title="Message-Digest Algorithm 5">MD5</abbr></a> unkenntlich gemachte Passphrasen nicht selbst knackt, sondern Google bemüht (danke, <i>plomlompom</i>): Es benutzt nicht nur eine externe Resource, sondern zeigt auch, dass die <abbr title="Message-Digest Algorithm 5">MD5</abbr> nutzenden Entwickler nicht verstanden haben, <a href="http://codahale.com/how-to-safely-store-a-password/">wie Passwörter gespeichert werden sollten</a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/weniger-programmieren-ist-mehr/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
