<?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; Bastelei</title>
	<atom:link href="http://blog.dieweltistgarnichtso.net/category/bastelei/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>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>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>Stammbaum der Mandarinenähnlichen</title>
		<link>http://blog.dieweltistgarnichtso.net/stammbaum-der-mandarinenahnlichen</link>
		<comments>http://blog.dieweltistgarnichtso.net/stammbaum-der-mandarinenahnlichen#comments</comments>
		<pubDate>Fri, 25 Jan 2013 01:38:36 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Bilder]]></category>
		<category><![CDATA[mandarinenähnliche]]></category>
		<category><![CDATA[zalgo]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=7078</guid>
		<description><![CDATA[An einem ganz normalen Novembertag unterhielt ich mich mit foxitalic über Zitrusfrüchte. Ich vermutete, es gäbe nur wenige Arten von Zitruspflanzen mit regional unterschiedlichen Namen – wie etwa bei Apfelsine und Orange. Tatsächlich existieren jedoch sehr viele Z͂̏ͧ̈́ͪ̃ítrͨ̚us̎͂̅fŕ͌̂̐͝ü̓̿ͥͧ̏c̅h̽ͭ͂ͪ̄̏̄te͂ͦ͘ (Beweisbild) – &#8230; <a href="http://blog.dieweltistgarnichtso.net/stammbaum-der-mandarinenahnlichen">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
An einem ganz normalen Novembertag unterhielt ich mich mit <a href="http://foxitalic.de/"><i>foxitalic</i></a> über Zitrusfrüchte. Ich vermutete, es gäbe nur wenige Arten von Zitruspflanzen mit regional unterschiedlichen Namen – wie etwa bei <i>Apfelsine</i> und <i>Orange</i>. Tatsächlich existieren jedoch sehr viele Z͂̏ͧ̈́ͪ̃ítrͨ̚us̎͂̅fŕ͌̂̐͝ü̓̿ͥͧ̏c̅h̽ͭ͂ͪ̄̏̄te͂ͦ͘ (<a href="http://de.wikipedia.org/wiki/Datei:Anschn-citrus.jpg">Beweisbild</a>) – <a href="http://de.wikipedia.org/wiki/Zitruspflanzen#Interne_Systematik">Zͥ̒̚ïͥtͧ̍ͩ͂̃͂ṙ͋̓̇u͂s̃͋pͨ̿̒́ͣ̚f͌͛́́̑laͥͦ͆͛̑̏͊ǹͯ̃̓̽́̓z̈́ȇͯ̎̐͆̊ṅ̓ͨ̍ können beinahe beliebig gekreuzt werden</a>, viele stammen von <a href="http://de.wikipedia.org/wiki/Pampelmuse">P̪̤̹ͮ͒̏ä̼́͌̓m͙̣͛ͤ̆̃̊̃p̟̔͂͋̒͗̔ͤe͌l̤̻̥ͫ̐ͅmͫͪͩ͑̍ͮũ͚̦͈̮͉̽ͪṣ̞͇̹͜ͅe̱̻̦̽ͯͯ̚</a>, <a href="http://de.wikipedia.org/wiki/Mandarine">M̶ͩ̓͛̇͛̑aͩͪͨndͪͤ͜aͦͩ͆̈́͆͂̚r̽ͫ͑̏ͦ͛i̛̍̌͆n̎̇ͫ̊ȩ̊̔ͦ̿͊͒͑</a> und <a href="http://de.wikipedia.org/wiki/Zitronatzitrone">Z͈̭̲͉ͤ͜ĭ͇t̳ͫ̋ͫ͆ͧ̌ṙ͙̘͎̩ͥ̊oͬͨn̗̭̜̙ͫ̑a̐ṭ̛̠̺̼͗̐̈z̨͎̰͙̩̹͈͕͒͛ͦ͋̉i̛̥̪̺͇̳ť̛̏̆̂r̷͕͈̮̹̙ͫo̟̬͎͌͌n̞̼̠̯͕̯͢e̵̮͓ͩͮ</a> ab.
</p>
<p>
Den Rest des Tages verbrachte ich damit, sämtliche <i>Wikipedia</i>-Artikel über <a href="http://de.wikipedia.org/wiki/Mandarine#Mandarinen.C3.A4hnliche">M̐ͮͩ̄̒͑́ͥ͋͘a̸̔̒̍ͧ̐̍̽̐ͩ͘͟nͨ͑͛̀ͦ͟d͋̌̌̚͜͡aͨ̆̔ͥ̎ͩ̒̚r̸̵̔͊i̢ͥ̄ͩ̃̽͗n͂ͤͣ̔̾ͥ̍ę̶̐̈́̄ͥ̃͛̈́͠nͭͥͮ̔ͦ͆ͫͣä̑̌h̨ͪ̽͌ͩͦ̊̅̓͝n̢̎ͩ̈͊͢͝l͒̑ͤ͋͏̷͜i̾̎̃͗ͫ̈́ͯ͆͒c͒̊͛ͪ̓̇͘h͊̂ͮͣe</a> zu lesen. Mit der <a href="http://gramps-project.org/">Genealogiesoftware <i>Gramps</i></a> erstellte ich einen Stammbaum (<a href="http://daten.dieweltistgarnichtso.net/docs/mandarinen%c3%a4hnliche.gramps">Daten als <i>Gramps</i>-<abbr title="Extensible Markup Language">XML</abbr></a>); mit diesem lässt sich herausfinden, welche Kreuzungen bestimmten Z̸͙̪̫̬̻̗̥̤̯͇͎͚̤̜͘i͏̸̧̠͎̝̩̘͖͚͕̮̤ț̷̢̺̝̤͈̻̹̭͈̖̘̳̫̱̖̗͍͎̭͝r̶̵̛̫̘̳͖̭͕͎̼͓͖̜̱̜͠ṷ̩̯̰͙̱̩̬̕͜s̷̤̹̭̫͙̯͓̪̗̭̹̣̪͍͍̪̫̘̫̀̕͟p̛͎͕̦͙̩͕͖̩̲̬̙̭͔̘̤̟̫͢͝ͅf̴̴͙̗͈̰͕̱͜͝ļ̶̛̱̙̥̗͔̹̥̞͙͘͟a͏̝̩̬̬̘̹n̴̯̤̫͠z̸̶̛̼̮͚͍̲̞̼̗̙̼̘̕en̢ zugrundeliegen.
</p>
<figure>
<img src="//daten.dieweltistgarnichtso.net/pics/screenshots/gramps-fairchild-tangerine.png" alt="Vorfahren der Fairchild-Tangerine als Fächergrafik">
<figcaption>Vorfahren der <a href="http://en.wikipedia.org/wiki/Fairchild_tangerine">F̞͎̣̪̕͡a̵̗͔͙̪i̢̙̤͚̠͔̯ͅr̵̼̦̻̹̝͎̦͟c̣͕͔ͅh̩́͜i̵̛̭̞̫̙̝͢l̯͖̻̞͈͚̀͠d̜̥̠̻͚̺͉͟͢ͅ-̵͚̣̩͓̕͜T̨̥̪̞̹̻͉a̛̞͙̰̝̮͕n̝̳͕͟g̸̦̞e͇͕̦͙̪͉͓̺͜r̶̟̹̲̜̺̩̦̺̀i̻̝͚ń̙͍̦̭̙̟e</a> als <a href="http://www.gramps-project.org/wiki/index.php?title=De:Gramps_3.4_Wiki_Handbuch_-_Gramplets#F.C3.A4chergrafik_Gramplet">Fächergrafik</a></figcaption>
</figure>
<p>
<small>
Der <i>Metronaut</i> hat auch was zur <a href="http://www.metronaut.de/2012/11/die-pampelmuse-ist-keine-grapefruit-eine-kleine-zitrusfruchtkunde/">Verwandschaft von Z̷̢̛̆̂̉ͧ̅̓̓̈́̂͑̂͆ͥ͊̚i̛͒̍̾̊ͯͥ̊̈́̋͑͊͢t̡̛̃ͭ̒̒̎ͯͩ́̌͢͜r̂ͤͬ͐͋̕͢͜͜͞ų̨̈́ͧͮͤ͛ͣͫ̇ͣ͛̍̇ͩ́́͢s̸͂̓ͧ̓̔͂ͥ̈́͌̅̑̃͑́͗ͦ̎́ͨ͘͜f̶ͤ̆̀̔ͪ̊̀̀r̶̷̨̅ͦ͗ͥ̿̏ͧͩͨͪͨ͂̿̽ͬͨ̒̔ü̴̶̵̅ͬ̈ͪ̉̽̉̉́ͬ̆͂͜͝c̸ͤͧ̽̓ͣͥ̈́ͣ̂ͭͪ̌͊̎̅̇͢͝h̛ͣ͋́̍͋͛ͬ̀̽̀ͬͬ͡t̵͋͑̅ͦ̆͆͆͆̂ͫ̋ͩ̀͆̿͐͟͜ȩ̸̔̃ͮͤͤͯͤͥͤ͊͂̓͜͏̡n̴̷̎̉ͧ̿̀͜͠</a>.
</small>
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/stammbaum-der-mandarinenahnlichen/feed</wfw:commentRss>
		<slash:comments>3</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>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>Dreh am Rad!</title>
		<link>http://blog.dieweltistgarnichtso.net/dreh-am-rad</link>
		<comments>http://blog.dieweltistgarnichtso.net/dreh-am-rad#comments</comments>
		<pubDate>Thu, 14 Jun 2012 14:24:18 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Kunst]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[foxitalic]]></category>
		<category><![CDATA[rixtopia]]></category>
		<category><![CDATA[sameheads]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=5028</guid>
		<description><![CDATA[Am Freitag und Samstag präsentieren foxitalic und ich Kunst Spaß im sameheads. Dort, im interaktiven Kleindorf Rixtopia, steht nämlich unser Glücksrad – notdürftig geflickt mit Heißklebepistole, Dübeln und einer Menge Fantasie. Potentielle Glücksspieler seien hiermit gewarnt: Inwiefern die Gewinne als &#8230; <a href="http://blog.dieweltistgarnichtso.net/dreh-am-rad">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<img src="//daten.dieweltistgarnichtso.net/pics/fotos/wheel-of-fortune.jpg" alt="Ein Glücksrad, auf dem ein Stoffmännchen aufgebunden ist.">
<p>
Am Freitag und Samstag präsentieren <a href="http://foxitalic.de/"><i>foxitalic</i></a> und ich <del>Kunst</del> <ins>Spaß</ins> im <a href="http://www.sameheads.com/"><i>sameheads</i></a>. Dort, im interaktiven Kleindorf <a href="http://www.fortyeight.de/48stunden/2012/index.php?search=rixtopia"><i>Rixtopia</i></a>, steht nämlich unser <a href="http://foxitalic.de/2012/06/spin-the-wheel/">Glücksrad</a> – notdürftig geflickt mit Heißklebepistole, Dübeln und <a href="http://www.youtube.com/watch?v=5dJ2N24DXTM">einer Menge Fantasie</a>.
</p>
<p>
Potentielle Glücksspieler seien hiermit gewarnt: Inwiefern die Gewinne als Belohnung oder Bestrafung wahrgenommen werden, ist auch uns unklar. Für <a href="http://tvtropes.org/pmwiki/pmwiki.php/Main/NoodleImplements">Hundefutter, Zahnpasta, Toastbrot und Alleskleber</a> ist jedenfalls gesorgt.
</p>
<p>
<abbr title="Zu lang; nicht gelesen">ZL;NG</abbr>: <strong>Freitag, 15. Juni, 19 bis 1 Uhr</strong> und <strong>Samstag, 16. Juni, 14 bis <del datetime="2012-06-15T10:09:25+00:00">0</del> <ins datetime="2012-06-15T10:09:25+00:00">1</ins> Uhr</strong>; <a href="http://www.sameheads.com/"><i>sameheads</i></a>, Richardstraße 10, 12043 Berlin.
</p>
<p>
<small>
Bei <i>Rixtopia</i> gibt es übrigens auch andere Spielgelegenheiten; man munkelt, im Rahmen von <a href="http://de.wikipedia.org/wiki/48_Stunden_Neuk%C3%B6lln"><i>48h Neukölln</i></a> fänden sogar <a href="http://www.48-stunden-neukoelln.de/2012/">noch mehr Veranstaltungen</a> statt.
</small>
</p>
<ins datetime="2012-06-21T13:47:52+00:00">
<p>
<a href="http://www.alexandrajasper.com/">Alexandra Jasper</a> machte <a href="http://alexandrajasper.wordpress.com/2012/06/17/from-a-fucked-paradise-to-a-rixtopia/">Fotos von <i>Rixtopia</i></a>.
</p>
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/dreh-am-rad/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</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>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>Ich glaub, es hackt.</title>
		<link>http://blog.dieweltistgarnichtso.net/ich-glaub-es-hackt</link>
		<comments>http://blog.dieweltistgarnichtso.net/ich-glaub-es-hackt#comments</comments>
		<pubDate>Mon, 17 Oct 2011 16:18:43 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Netzkultur]]></category>
		<category><![CDATA[christopherlauer]]></category>
		<category><![CDATA[fefe]]></category>
		<category><![CDATA[satire]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3941</guid>
		<description><![CDATA[Christopher Lauer ist ja bekannt dafür, dass der schon immer für alle Vorschläge der Blogger-Mafia zu haben war. Und jetzt ratet mal, für wen der neuerdings Werbung macht. DA KOMMT IHR NIE DRAUF!!1 Nebenbei: Ich lese Fefe ja nur wegen &#8230; <a href="http://blog.dieweltistgarnichtso.net/ich-glaub-es-hackt">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<a href="http://de.wikipedia.org/wiki/Christopher_Lauer">Christopher Lauer</a> ist ja bekannt dafür, dass der schon immer für alle Vorschläge der Blogger-Mafia zu haben war. Und jetzt ratet mal, für wen der neuerdings Werbung macht. <strong><a href="https://mobile.twitter.com/schmidtlepp/status/125679794573688833">DA KOMMT IHR NIE DRAUF!!1</a></strong>
</p>
<img src="http://daten.dieweltistgarnichtso.net/pics/macros/fefe-lauer.png" alt="Ein Blog in C, mit dietlibc, libowfat, unter gatling laufend und mit tinyLDAP-Backend.">
<p>
Nebenbei: <a href="http://blog.fefe.de/?ts=b0658f8f">Ich lese Fefe</a> ja nur <span title="Geben Sie 200 g Butter in eine Pfanne oder einen Wok und erhitzen Sie sie vorsichtig. Schälen Sie nun drei weitere Blöcke Butter. Geben Sie sie zu der Butter in die Pfanne und rösten Sie sie unter Rühren etwa 1 bis 2 Minuten an. Bon Appetit.">wegen der leckeren Rezepte</span>.
</p>
<ins datetime="2011-10-17T17:46:34+00:00">
<p>
Für Alle, die Ähnliches vorhaben, gibt es <a href="http://daten.dieweltistgarnichtso.net/pics/macros/fefe-lauer.svg">das Bild auch als <abbr title="Scalable Vector Graphics">SVG</abbr>.</a>
</p>

</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/ich-glaub-es-hackt/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The IT Crowd Theme in C</title>
		<link>http://blog.dieweltistgarnichtso.net/the-it-crowd-theme-in-c</link>
		<comments>http://blog.dieweltistgarnichtso.net/the-it-crowd-theme-in-c#comments</comments>
		<pubDate>Fri, 14 Oct 2011 08:29:54 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Netzkultur]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[8bit]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[itcrowd]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3923</guid>
		<description><![CDATA[Inspired by VIznut, in the last few days I have experimented with music creation using a C compiler. This morning, I chose to write small program playing a melody not entirely unlike the theme of The IT Crowd when piped &#8230; <a href="http://blog.dieweltistgarnichtso.net/the-it-crowd-theme-in-c">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<a href="http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html">Inspired by <i>VIznut</i></a>, in the last few days I have experimented with <a href="https://github.com/erlehmann/algorithmic-symphonies">music creation using a <i>C</i> compiler</a>. This morning, I chose to write small program playing a melody not entirely unlike the <a href="http://www.youtube.com/watch?v=w5-_B-tKnZw">theme of <i>The IT Crowd</i></a> when piped to <i>/dev/dsp</i>. True to the spirit of the intro, it ends with a <a href="http://cache.ohinternet.com/images/a/a4/Chrono_Vortex.jpg">division by zero</a>.
</p>
<code>
#include &lt;stdio.h&gt;
main() {long int t;for(t=0;;t++) {fputc((int)(
(0/(128000-t))|(((t&lt;92000)*0xff)&#038;
(t%2000*("  $&#038;  %'  '%  %$"[t%32000/2000]-32)
|t%2000*("$$  %%  ''  %%  "[t%32000/2000]-32)/2)|
(t%2000*("'&#038;"[t%92000/2000]-32)&#038;(t&gt;92000&#038;&#038;t&lt;96000)*0xff)|
(t%4000*("'&#038;(&#038;*$,*   "[t%96000/4000]-32)&#038;(t&gt;96000)*0xff))
), stdout);}}
</code>
<audio controls>
<source src="//daten.dieweltistgarnichtso.net/audio/music/c/it-crowd.oga">
<source src="//daten.dieweltistgarnichtso.net/audio/music/c/it-crowd.mp3">
</audio>
<ins datetime="2011-10-14T08:30:23+00:00"><p>
Much smaller version that sounds even better:
</p>
<code>
#include &lt;stdio.h&gt;
main() {long int t;for(t=0;;t++) {fputc((int)((1/(128000-t))|(t>96e3)?t%4000*("'&#038;(&#038;*$,*"[t%96000/4000]-32):(t%2000*
("$$$&#038;%%%''''%%%'&#038;"[t%32000/2000]-32-(2*((t>28e3)&#038;(t<32e3)))))/(1+(t%8000<4e3))), stdout);}}
</code>
<audio controls>
<source src="//daten.dieweltistgarnichtso.net/audio/music/c/it-crowd-2.oga">
<source src="//daten.dieweltistgarnichtso.net/audio/music/c/it-crowd-2.mp3">
</audio>
</ins>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/the-it-crowd-theme-in-c/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>guttenviz reloaded</title>
		<link>http://blog.dieweltistgarnichtso.net/guttenviz-reloaded</link>
		<comments>http://blog.dieweltistgarnichtso.net/guttenviz-reloaded#comments</comments>
		<pubDate>Fri, 17 Jun 2011 18:14:17 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[guttenberg]]></category>
		<category><![CDATA[guttenplag]]></category>
		<category><![CDATA[guttenviz]]></category>
		<category><![CDATA[visualisierung]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3560</guid>
		<description><![CDATA[Die letzten beiden Tage habe ich ein bisschen an guttenviz gebastelt, einem interaktiven Überblick über die beim GuttenPlag-Wiki gelisteten Plagiatsfragmente in Karl-Theodor Freiherr zu Guttenbergs Dissertation. Zusammengehackt hatte ich den bereits im Februar – Netzpolitik.org berichtete und auch im 2. &#8230; <a href="http://blog.dieweltistgarnichtso.net/guttenviz-reloaded">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<a href="http://daten.dieweltistgarnichtso.net/src/guttenviz/"><img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/thumbs/guttenviz.png" alt="Bildschirmfoto: Barcode, darunter der Hinweis „5 Fragmente auf Seite 123“." /></a>
<p>
Die letzten beiden Tage habe ich ein bisschen an <a href="http://daten.dieweltistgarnichtso.net/src/guttenviz/"><i>guttenviz</i></a> gebastelt, einem interaktiven Überblick über die beim <a href="http://de.guttenplag.wikia.com/wiki/GuttenPlag_Wiki"><i>GuttenPlag</i>-Wiki</a> gelisteten Plagiatsfragmente in <a href="http://de.wikipedia.org/wiki/Plagiatsaff%C3%A4re_Guttenberg">Karl-Theodor Freiherr zu Guttenbergs Dissertation</a>. <span title="Diese Software wurde zu 70% in Unterwäsche geschrieben.">Zusammengehackt</span> hatte ich den bereits im Februar – <a href="http://www.netzpolitik.org/2011/neue-visualisierung-und-navigierung-fur-guttenplag-wiki/1"><i>Netzpolitik.org</i> berichtete</a> und auch im <a href="http://de.guttenplag.wikia.com/wiki/2._Zwischenbericht">2. Zwischenbericht von <i>GuttenPlag</i></a> wird <i>guttenviz</i> erwähnt.
</p>
<p>
Seitdem wurde die Schnittstelle zum <i>GuttenPlag</i>-Wiki allerdings abgeändert, bis <i>guttenviz</i> irgendwann nicht mehr funktionierte; die Fachwelt nennt so etwas <a href="http://www.catb.org/jargon/html/B/bit-rot.html"><i>bit rot</i></a>. Damit das nicht mehr passieren kann, wird die <a href="http://daten.dieweltistgarnichtso.net/src/guttenviz/guttenplag.csv">Liste der Fragmente</a> nun nicht mehr automatisch generiert: Sie liegt statt dessen als statische <a href="http://de.wikipedia.org/wiki/CSV_(Dateiformat)"><abbr title="Comma-Separated Value">CSV</abbr>-Datei</a> vor und kann somit auch vom Tabellenkalkulationsprogramm eurer Wahl geladen werden. Zudem hat die dargestellte Tabelle mehr Rand und weniger Spalten, sie sollte so etwas ordentlicher aussehen.
</p>
<p>
Der <a href="https://github.com/erlehmann/guttenviz"><i>guttenviz</i>-Quellcode</a> ist auf <i>GitHub</i> verfügbar; Dank an dieser Stelle an <a href="https://github.com/fiesh"><i>fiesh</i></a> und <a href="https://github.com/kahrl"><i>kahrl</i></a>, die den von ihnen geschriebenen PHP-Code unter der <a href="http://www.opensource.org/licenses/bsd-license.php">2-Klausel-<abbr title="Berkeley Software Distribution">BSD</abbr>-Lizenz</a> bereitstellen.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/guttenviz-reloaded/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minetest Δ – ein Minecraft-Klon</title>
		<link>http://blog.dieweltistgarnichtso.net/minetest-delta</link>
		<comments>http://blog.dieweltistgarnichtso.net/minetest-delta#comments</comments>
		<pubDate>Sat, 04 Jun 2011 19:02:28 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3494</guid>
		<description><![CDATA[Minetest Δ ist ein Computerspiel, das Minecraft nachempfunden ist: Die Spieler befinden sich in einer zufallsgenerierten 3D-Welt aus Blöcken mit etwa einem Meter Kantenlänge; diese lassen sich mittels verschiedener Werkzeuge abbauen, kombinieren und neu in der Welt verteilen. Eine irgendwie &#8230; <a href="http://blog.dieweltistgarnichtso.net/minetest-delta">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/games/minetest/minetest-cactii.png" alt="Screenshot von Minetest Δ: Kaktus am Strand" />
<p>
<span title="Für des Griechischen Unkundige: „Minetest Delta“."><i>Minetest Δ</i></span> ist ein Computerspiel, das <a href="http://de.wikipedia.org/wiki/Minecraft"><i>Minecraft</i></a> nachempfunden ist: Die Spieler befinden sich in einer zufallsgenerierten 3D-Welt aus Blöcken mit etwa einem Meter Kantenlänge; diese lassen sich mittels verschiedener Werkzeuge abbauen, kombinieren und neu in der Welt verteilen. Eine irgendwie geartete Handlung gibt es nicht: Tagsüber sucht man Rohstoffe, nachts verteidigt man sich gegen <a href="http://lurkmore.ru/Winged_Doom">komische Vögel</a>, zwischendurch gräbt man Tunnelsysteme oder baut Festungen über den Wolken.
</p>
<p>
Grundsätzlich ist es also virtuelles Lego – mit einigen Unterschieden: Erstens enthält die ca. 32000³ Blöcke große Welt <span title="Eine Größenordnung von 10¹³."><em>ziemlich</em> viel Material</span>, zweitens ist <i>Minetest Δ</i> <a href="http://www.gnu.org/philosophy/free-sw.de.html">frei lizenziert</a>: Neue Materialien, Werkzeuge usw. lassen sich hinzufügen, sofern man <a href="http://en.wikipedia.org/wiki/Cargo_cult_programming">halbwegs Ahnung von C++</span></a> hat – tatsächlich habe ich schon eineinhalb Nächte mit abwechselndem Spielen und Programmieren verbracht. Der bessere Vergleich wäre also eine virtuelle Legofabrik.
</p>
<p>
<i>Minetest Δ</i> basiert auf <a href="http://celeron.55.lt/~celeron55/minetest/"><i>Minetest-c55</i></a>, dessen Hauptentwickler Fremdbeiträge <a href="http://celeron.55.lt/blog/?p=232">eher vorsichtig handhabt</a>; <a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/games/minetest/">Bildschirmfotos gibt es hier</a>, der <a href="https://github.com/erlehmann/minetest-delta">Quellcode ist auf GitHub</a>. <strong style="whitespace: pre;">(ﾉﾟ-ﾟ)ﾉ CONTRIBUTE!</strong>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/minetest-delta/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fefesbook</title>
		<link>http://blog.dieweltistgarnichtso.net/fefesbook</link>
		<comments>http://blog.dieweltistgarnichtso.net/fefesbook#comments</comments>
		<pubDate>Tue, 19 Apr 2011 01:53:02 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fefe]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3273</guid>
		<description><![CDATA[Im Jahr 2011 gründet IT-Sicherheitsexperte Felix von Leitner, genannt Fefe, das Blog Fefesbook, nachdem er sich erfolglos an einigen anderen Internetprojekten versucht hatte. Fefesbook (dt. Fefes Buch) ist eine Website zum Erstellen und Verbreiten von Rants und Verschwörungstheorien. Die Plattform &#8230; <a href="http://blog.dieweltistgarnichtso.net/fefesbook">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/fefesbook.png"><img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/fefesbook.png" alt="Fefes Blog im Facebook-Stil" /></a>
<p>
Im Jahr 2011 gründet <abbr title="Informationstechnologie">IT</abbr>-Sicherheitsexperte Felix von Leitner, genannt <i>Fefe</i>, das Blog <a href="http://blog.fefe.de/?css=http://daten.dieweltistgarnichtso.net/src/fefesbook-css/fefesbook.css"><b>Fefesbook</b></a>, nachdem er sich erfolglos an <a href="http://www.fefe.de/fnord/">einigen</a> <a href="http://www.fefe.de/tinyldap/">anderen</a> <a href="http://www.fefe.de/gatling/">Internetprojekten</a> versucht hatte. <i>Fefesbook</i> (dt. Fefes Buch) ist eine Website zum Erstellen und Verbreiten von Rants und Verschwörungstheorien. Die Plattform ist im April 2011 erstmals zugänglich und wurde nach eigenen Angaben <q cite="http://blog.fefe.de/faq.html">in C gehackt, mit <i>dietlibc</i>, <i>libowfat</i>, unter <i>gatling</i> laufend und mit einem <i>tinyldap</i>-Backend</q>.
</p>
<p><small>
J.K. Rowling schreibt <a href="https://github.com/erlehmann/fefesbook-css">sieben Bücher</a> darueber, Stephen Spielberg <a href="http://blog.refefe.de/?css=http://daten.dieweltistgarnichtso.net/src/fefesbook-css/fefesbook.css">verfilmt</a> die Story schließlich. Prognostiziertes <abbr title="Internet Movie Database">IMDb</abbr>-Rating: 9.3/10
</small></p>
<ins datetime="2011-09-10T19:12:50+00:00">
<p>
Ich habe gerade zwei Bugs am Stylesheet gefixt. Einer ist schon in den Kommentaren erwähnt worden: Im aktuellen Chromium war <q cite="http://blog.dieweltistgarnichtso.net/fefesbook#comment-15327">der hintergrund komplett blau</q>. Das lag daran, dass Chromium den Selektor <code>html::before</code> wohl nicht richtig versteht und die Hintergrundfarbe des generierten <a href="http://www.w3.org/TR/css3-content/#pseudo-elements">Pseudoelements</a> auch auf das nachfolgende <code>html</code>-Element anwendet.
</p>
<p>
Die zweite Änderung hat ebenfalls mit Browserfersagen zu tun: Das Logo hatte zwar die gleiche blaue Hintergrundfarbe, die im Stylesheet verwendet wird – es gibt da aber <a href="http://hsivonen.iki.fi/png-gamma/">Unterschiede in der Gammakorrektur zwischen <abbr title="Portable Network Graphics">PNG</abbr> und <abbr title="Cascading Style Sheets">CSS</abbr></a>. Bei <i>Iceweasel</i> auf Debian fiel das besonders ins Auge; durch ein <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626537">falsches Farbprofil</a> sah das verwendete Blau eher lila aus. Der Logo-Hintergrund ist daher jetzt transparent.
</p>
</ins>
]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/fefesbook/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>aabeehijlpstz.</title>
		<link>http://blog.dieweltistgarnichtso.net/aabeehijlpstz</link>
		<comments>http://blog.dieweltistgarnichtso.net/aabeehijlpstz#comments</comments>
		<pubDate>Thu, 11 Nov 2010 03:26:50 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Bilder]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[boingboing]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[luminance]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3094</guid>
		<description><![CDATA[Inspiriert von einem Artikel auf BoingBoing habe ich ein bookmarklet geschrieben, das Text alphabetisch und Pixel nach Luminanz sortiert. Es befindet sich hinter diesem Link (alphabetize.js) und auf GitHub. Hier ein kurzer Vergleich mit der homepage von Bre Pettis: Von &#8230; <a href="http://blog.dieweltistgarnichtso.net/aabeehijlpstz">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Inspiriert von einem <a href="http://www.boingboing.net/2010/11/08/cut-up-artist-alphab.html">Artikel auf BoingBoing</a> habe ich ein <a href="http://de.wikipedia.org/wiki/Bookmarklet"><i lang="en">bookmarklet</i></a> geschrieben, das Text alphabetisch und Pixel nach <a href="http://de.wikipedia.org/wiki/Luminanz">Luminanz</a> sortiert. Es befindet sich <ins datetime="2010-11-11T16:26:14+00:00">hinter diesem Link (<strong><a href="javascript:function%20alphabetize(c)%7Breturn%20c.replace(%2F%20%2Fg%2C%22%22).split(%22%22).sort(asort).join(%22%5Cu200b%22)%7Dfunction%20asort(d%2Cf)%7Bif(d.charCodeAt(0)%3C%3D64)%7Bif(f.charCodeAt(0)%3C%3D64)%7Bif(d%3Ef)%7Breturn%201%7Dif(d%3Cf)%7Breturn%20-1%7D%7Dif(65%3C%3Df.charCodeAt(0)%3C%3D122)%7Breturn%201%7Dif(f.charCodeAt(0)%3E%3D123)%7Breturn%20-1%7D%7Dif(f.charCodeAt(0)%3C%3D64)%7Bif(65%3C%3Dd.charCodeAt(0)%3C%3D122)%7Breturn%20-1%7Dif(d.charCodeAt(0)%3E%3D123)%7Breturn%201%7D%7Dvar%20e%3DString(d).toUpperCase()%3Bvar%20c%3DString(f).toUpperCase()%3Bif(e%3Ec)%7Breturn%201%7Dif(e%3Cc)%7Breturn%20-1%7Dreturn%200%7Dvar%20xPathResult%3Ddocument.evaluate('.%2F%2Ftext()%5Bnormalize-space(.)%20!%3D%20%22%22%5D'%2Cdocument.body%2Cnull%2CXPathResult.ORDERED_NODE_SNAPSHOT_TYPE%2Cnull)%3Bfor(var%20i%3D0%2Cl%3DxPathResult.snapshotLength%3Bi%3Cl%3Bi%2B%2B)%7Bvar%20textNode%3DxPathResult.snapshotItem(i)%3Bif(textNode!%3Dnull)%7BtextNode.data%3Dalphabetize(textNode.data)%7D%7Dfunction%20luminance(c)%7Breturn((0.299*c%5B0%5D)%2B(0.587*c%5B1%5D)%2B(0.114*c%5B2%5D))*(1%2Fc%5B3%5D)%7Dfunction%20isort(d%2Cf)%7Bvar%20e%3Dluminance(d)%3Bvar%20c%3Dluminance(f)%3Bif(e%3Ec)%7Breturn%201%7Dif(e%3Cc)%7Breturn%20-1%7Dreturn%200%7Dfunction%20luminize(k)%7Bvar%20j%3Ddocument.createElement(%22canvas%22)%3Bvar%20m%3Dj.getContext(%222d%22)%3Bvar%20f%3Dk.width%3Bvar%20o%3Dk.height%3Bj.width%3Df%3Bj.height%3Do%3Bm.drawImage(k%2C0%2C0)%3Btry%7Bvar%20c%3Dm.getImageData(0%2C0%2Cf%2Co)%7Dcatch(n)%7Bvar%20j%3Ddocument.createElement(%22canvas%22)%3Bvar%20m%3Dj.getContext(%222d%22)%3Bj.width%3Df%3Bj.height%3Do%3Bvar%20c%3Dm.createImageData(f%2Co)%3Br%3DparseInt(Math.random()*256)%3Bg%3DparseInt(Math.random()*256)%3Bb%3DparseInt(Math.random()*256)%3Ba%3D256%3Bfor(y%3D0%3By%3Co%3By%2B%2B)%7Boutpos%3Dy*f*4%3Bfor(x%3D0%3Bx%3Cf%3Bx%2B%2B)%7Bif(Math.random()%3C0.00001)%7Br%3DparseInt(Math.random()*256)%3Bg%3DparseInt(Math.random()*256)%7Dif(Math.random()%3C0.00001)%7Bg%3DparseInt(Math.random()*256)%3Bb%3DparseInt(Math.random()*256)%7Dif(Math.random()%3C0.00001)%7Bb%3DparseInt(Math.random()*256)%3Br%3DparseInt(Math.random()*256)%7Dif(Math.random()%3C0.001)%7Ba%3DparseInt(Math.random()*256)%7Dc.data%5Boutpos%2B%2B%5D%3Dr-4%2BparseInt(Math.random()*4)%3Bc.data%5Boutpos%2B%2B%5D%3Dg-4%2BparseInt(Math.random()*4)%3Bc.data%5Boutpos%2B%2B%5D%3Db-4%2BparseInt(Math.random()*4)%3Bc.data%5Boutpos%2B%2B%5D%3Da-4%2BparseInt(Math.random()*4)%7D%7D%7Dvar%20h%3Dnew%20Array(0)%3Bfor(y%3D0%3By%3Co%3By%2B%2B)%7Binpos%3Dy*f*4%3Bfor(x%3D0%3Bx%3Cf%3Bx%2B%2B)%7Bvar%20d%3Dnew%20Array(4)%3Bd%5B0%5D%3Dc.data%5Binpos%2B%2B%5D%3Bd%5B1%5D%3Dc.data%5Binpos%2B%2B%5D%3Bd%5B2%5D%3Dc.data%5Binpos%2B%2B%5D%3Bd%5B3%5D%3Dc.data%5Binpos%2B%2B%5D%3Bh.push(d)%7D%7Dh%3Dh.sort(isort)%3Bfor(y%3D0%3By%3Co%3By%2B%2B)%7Boutpos%3Dy*f*4%3Bfor(x%3D0%3Bx%3Cf%3Bx%2B%2B)%7Bd%3Dh.pop()%3Bc.data%5Boutpos%2B%2B%5D%3Dd%5B0%5D%3Bc.data%5Boutpos%2B%2B%5D%3Dd%5B1%5D%3Bc.data%5Boutpos%2B%2B%5D%3Dd%5B2%5D%3Bc.data%5Boutpos%2B%2B%5D%3Dd%5B3%5D%7D%7Dm.putImageData(c%2C0%2C0%2C0%2C0%2Cc.width%2Cc.height)%3Breturn%20j.toDataURL()%7Dfunction%20luminizeDelayLoop()%7Bif(i%3Cimages.length)%7Bvar%20c%3Dimages%5Bi%5D%3Bif(c.src.slice(0%2C5)!%3D%22data%3A%22)%7Bc.src%3Dluminize(c)%7Di%2B%2B%3Bwindow.setTimeout(%22luminizeDelayLoop()%22%2C100)%7D%7Dvar%20images%3Ddocument.getElementsByTagName(%22img%22)%3Bvar%20i%3D0%3BluminizeDelayLoop()%3B">alphabetize.js</a></strong>) und</ins> <a href="https://github.com/erlehmann/alphabetize.js">auf GitHub</a>. Hier ein kurzer Vergleich mit der <a href="http://brepettis.com/"><i lang="en">homepage</i> von <i>Bre Pettis</i></a>:
</p>
<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/thumbs/brepettis.com.png" alt="unmodifiziertes Bildschirmfoto von http://brepettis.com" />
<img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/thumbs/brepettis.com-alphabetized.png" alt="mit alphabetizer.js modifiziertes Bildschirmfoto von http://brepettis.com" />
<p>
Von anderen <a href="http://de.wikipedia.org/wiki/Same_Origin_Policy"><i lang="en">origins</i></a> stammende oder per <abbr title="Cascading Style Sheets">CSS</abbr> eingebundene Bilder können leider nicht gefiltert werden. Für Erstere behelfe ich mir mit zufällig generierten Ersatzgrafiken, Zweitere lasse ich schlicht in Ruhe.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/aabeehijlpstz/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>3D-Anaglyph-Text mit CSS</title>
		<link>http://blog.dieweltistgarnichtso.net/3d-anaglyph-text-mit-css</link>
		<comments>http://blog.dieweltistgarnichtso.net/3d-anaglyph-text-mit-css#comments</comments>
		<pubDate>Thu, 07 Oct 2010 15:14:33 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[anaglyph]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fefe]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=3017</guid>
		<description><![CDATA[Bemüht man die Suchmaschine seiner Wahl, erhält man bisher exakt einen auf den ersten Blick brauchbaren Artikel zur Themenkombination „Anaglyph-Effekte und CSS“ (Demo). Die dort vorgestellte Methode ist allerdings aus mehreren Gründen unbrauchbar: Der zu dekorierende Text wird mittels generiertem &#8230; <a href="http://blog.dieweltistgarnichtso.net/3d-anaglyph-text-mit-css">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Bemüht man die Suchmaschine seiner Wahl, erhält man bisher exakt einen <span title="d.h. absolut nicht">auf den ersten Blick</span> brauchbaren <a href="http://line25.com/tutorials/how-to-create-a-cool-anaglyphic-text-effect-with-css">Artikel</a> zur Themenkombination „<a href="http://de.wikipedia.org/wiki/Anaglyphenbild">Anaglyph</a>-Effekte und <abbr title="Cascading Style Sheets">CSS</abbr>“ (<a href="http://line25.com/wp-content/uploads/2009/anaglyphic-text/demo/demo.html">Demo</a>). Die dort vorgestellte Methode ist allerdings aus mehreren Gründen unbrauchbar:
</p>
<ul>
	<li>Der zu dekorierende Text wird mittels <a href="http://www.w3.org/TR/CSS2/generate.html#content">generiertem Inhalt</a> in einem <a href="http://www.w3.org/TR/CSS2/selector.html#pseudo-elements">Pseudo-Element</a> dupliziert. Einfacher und semantisch sauberer wäre die Verwendung des CSS3-Attributes <a href="http://www.w3.org/TR/css3-text/#text-shadow"><i>text-shadow</i></a>.</li>
	<li>Die Glyphen sind nicht nur horizontal, sondern auch vertikal gegeneinander versetzt — man müsste den Kopf also stets schräg halten, um den gewünschten Effekt zu erzielen.</li>
	<li>Die verwendeten Farben sind Rot und Blau. Für Anaglyphendarstellungen werden heutzutage aber Rot und Cyan verwendet.</li>
</ul>
<p>
Nachdem <a href="http://twitter.com/discordianfish"><i>fish</i></a> mir eine Anaglyphenbrille überließ, habe ich mich heute morgen daran gemacht, ein eigenes <i>stylesheet</i> ohne diese Missstände zu erstellen. Umgesetzt habe ich das Ganze natürlich für unseren Lieblings-CSS-Sandkasten (<a href="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/fefe-anaglyph.png"><i>screenshot</i></a>) …
</p>
<a href="http://blog.fefe.de/?css=http://daten.dieweltistgarnichtso.net/src/fefe-anaglyph-css/anaglyph.css"><img src="http://daten.dieweltistgarnichtso.net/pics/screenshots/web/fefe-anaglyph-logo.png" alt="Fefes Blog" /></a>
<p>
Um den 3D-Effekt zu verstärken, wird der <i>:hover</i>-Status mittels <a href="http://www.w3.org/TR/css3-transitions/"><i>CSS Transitions</i></a> animiert; in aktuellen <i>WebKit</i>- und <i>Gecko</i>-Browsern (Chrome, Safari, Firefox ab Version 4.0) sollten diese problemlos funktionieren. Der Quellcode findet sich <a href="http://github.com/erlehmann/fefe-anaglyph-css">auf <i>GitHub</i></a>.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/3d-anaglyph-text-mit-css/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Knutschen für Streetview!</title>
		<link>http://blog.dieweltistgarnichtso.net/knutschen-fur-streetview</link>
		<comments>http://blog.dieweltistgarnichtso.net/knutschen-fur-streetview#comments</comments>
		<pubDate>Mon, 13 Sep 2010 09:40:28 +0000</pubDate>
		<dc:creator><![CDATA[erlehmann]]></dc:creator>
				<category><![CDATA[Bastelei]]></category>
		<category><![CDATA[Berlin]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Kunst]]></category>
		<category><![CDATA[Netzkultur]]></category>
		<category><![CDATA[Netzpolitik]]></category>
		<category><![CDATA[fsa10]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[knutschen]]></category>
		<category><![CDATA[stinkefinger]]></category>
		<category><![CDATA[streetview]]></category>

		<guid isPermaLink="false">http://blog.dieweltistgarnichtso.net/?p=2824</guid>
		<description><![CDATA[Als xbg, matthiasr, zeitrafferin und ich zur diesjährigen Freiheit-statt-Angst-Demo fuhren, um die mittlerweile in Bubble Streetview umbenannte Aktion durchzuziehen, guckten die Leute erstmal nur doof erstaunt. Auf der Rückfahrt begegnete man uns allerdings eher unfreundlich: Fast ein Dutzend Stinkefinger konnte &#8230; <a href="http://blog.dieweltistgarnichtso.net/knutschen-fur-streetview">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<img src="http://daten.dieweltistgarnichtso.net/pics/fotos/demo/fsa2010/streetview-brille.jpg" alt="Sonnenbrille auf der Ablage eines Autos, in der sich ein die Frontscheibe, Bäume und ein auf dem Dach befindlicher Kamera-Aufbau spiegeln"/>
<p>
Als <a href="http://twitter.com/xbg"><i>xbg</i></a>, <a href="http://rampke.de/"><i>matthiasr</i></a>, <a href="http://julia-seeliger.de"><i>zeitrafferin</i></a> und ich zur diesjährigen <a href="http://blog.freiheitstattangst.de/about/">Freiheit-statt-Angst</a>-Demo fuhren, um die mittlerweile in <a href="http://bubble-streetview.de/"><i>Bubble Streetview</i></a> umbenannte <a href="http://blog.dieweltistgarnichtso.net/coming-soon-prugel-street-view">Aktion</a> durchzuziehen, guckten die Leute erstmal nur <del>doof</del> <ins>erstaunt</ins>. Auf der Rückfahrt begegnete man uns allerdings eher unfreundlich: Fast ein Dutzend Stinkefinger konnte ich vom Potsdamer Platz bis zum Lagerraum im Wedding zählen. Kreativ reagierte allerdings ein Päärchen an der Friedrichstraße: Solange wir an der Ampel standen, <a href="http://twitter.com/matthiasr/status/24201261620">knutschten sie</a> — allein dafür hat sich der Aufwand definitv gelohnt.
</p>
<p>
<i>matthiasr</i> hat eine <a href="http://daten.dieweltistgarnichtso.net/docs/culture/bubble-streetview.html">Liste von Fotos und Videos</a> zu unserer Aktion zusammengestellt. Highlight der medialen Berichterstattung ist wohl die <a href="http://rbb-online.de/abendschau/archiv/archiv.media.!etc!medialib!rbb!rbb!abendschau!abendschau_20100911_demo.html">Erwähnung in der <i><abbr title="Rundfunk Berlin-Brandenburg">RBB</abbr>-Abendschau</i></a> (<a href="http://julia-seeliger.de/bubble-streetview/">via <i>zeitrafferin</i></a>, die noch einiges mehr erwähnt); <i>Heise Online</i> hingegen versteht leider <a href="http://www.heise.de/newsticker/meldung/Tausende-demonstrieren-fuer-Datenschutz-auf-Grossdemo-in-Berlin-1077549.html">überhaupt nichts</a>.
</p>
<p>
An dieser Stelle nochmal ein „Danke“ an alle, die mitgeholfen haben.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dieweltistgarnichtso.net/knutschen-fur-streetview/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
