<?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>Steffens Noteblog &#187; Linux</title>
	<atom:link href="http://www.steffenvogel.de/category/software/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.steffenvogel.de</link>
	<description>technology, electronics, music, coding and more</description>
	<lastBuildDate>Sat, 30 Jul 2011 18:08:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>github Migration</title>
		<link>http://www.steffenvogel.de/2011/07/30/github-migration/</link>
		<comments>http://www.steffenvogel.de/2011/07/30/github-migration/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 18:08:09 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Umzug]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1506</guid>
		<description><![CDATA[Heute habe ich meine 27 git Repositories auf github umgezogen. Ich habe mich entschlossen sie so einer größeren Öffentlichkeit zugänglich zu machen und als zusätzliches Backup auf meinem Server zu spiegeln. Seit kurzem hat github seine neue API v3 veröffentlicht. Auf dieser aufbauend habe ich ein PHP Script geschrieben, welches existierende Repositories einfach auf github [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2011/07/octocat_construction.gif"><img class="alignright size-thumbnail wp-image-1507" title="octocat_construction" src="http://static.steffenvogel.de/wp-content/uploads/2011/07/octocat_construction-150x150.gif" alt="" width="150" height="150" /></a>Heute habe ich meine 27 git Repositories auf <a href="https://github.com/stv0g">github</a> umgezogen. Ich habe mich entschlossen sie so einer größeren Öffentlichkeit zugänglich zu machen und als zusätzliches Backup auf <a href="http://web.git.0l.de">meinem Server</a> zu spiegeln.</p>
<p>Seit kurzem hat github seine <a href="https://github.com/blog/879-api-v3-190-methods-to-build-on">neue API v3</a> veröffentlicht. Auf dieser aufbauend habe ich ein <a href="https://0l.de/cgit/snippets.git/tree/php_scripts/github.php">PHP Script</a> geschrieben, welches existierende Repositories einfach auf github erstellt und hochläd:</p>
<ol>
<li>Das Script in das Wurzelverzeichnis aller Repositories ablegen</li>
<li>github Username und Passwort im Skript anpassen</li>
<li><code>php github.php</code></li>
</ol>
<p>Ein paar Features:</p>
<ul>
<li>Es wird automatisch ein entsprechende <em>github</em> Remote im Repository hinzugefügt</li>
<li>Alle in der Datei <em>gitweb.projects</em> gelisteten Repositories werden als öffentlich markiert</li>
<li>Befindet sich im Repository eine Datei <em>description</em> wird deren Inhalt übernommen</li>
<li>Per Exclude-Filter können bestimmte Repositories ausgeschlossen werden</li>
</ul>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2011/07/30/github-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>transcode</title>
		<link>http://www.steffenvogel.de/2011/07/16/transcode/</link>
		<comments>http://www.steffenvogel.de/2011/07/16/transcode/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 00:20:07 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Assembler]]></category>
		<category><![CDATA[avr-gcc]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[MMI]]></category>
		<category><![CDATA[RWTH]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1377</guid>
		<description><![CDATA[Ich sitze im Zug nach Hause. Komme von der letzten Vorlesung des 2. Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-&#8221;Ferien&#8221;, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2011/07/assembler.png"><img class="alignright size-thumbnail wp-image-1482" title="assembler" src="http://static.steffenvogel.de/wp-content/uploads/2011/07/assembler-150x150.png" alt="" width="150" height="150" /></a>Ich sitze im Zug nach Hause. Komme von der letzten Vorlesung des 2. Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-&#8221;Ferien&#8221;, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters.<br />
Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus.<br />
Mein Beitrag zum <em>Students Englightment Award</em> ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.</p>
<p>Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler. Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen. Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU etc..).</p>
<p><strong><em><a title="http://t0.0l.de/transcode" href="http://t0.0l.de/transcode" rel="nofollow">transcode</a></em></strong> kompiliert/assembliert ANSI C und Assembler in Maschinencode und umgekehrt. Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt. Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt. Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal &amp; hexadezimaler Form wählen.</p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2011/07/schaltnetz-e1310774501908.png"><img class="aligncenter size-full wp-image-1484" title="schaltnetz" src="http://static.steffenvogel.de/wp-content/uploads/2011/07/schaltnetz-e1310774501908.png" alt="" width="531" height="134" /></a>Ziel des Tools ist es die Arbeitsweise des Compilers und dessen Optimierungen tiefer zu verstehen. <a href="http://t0.0l.de/transcode/"><em>transcode</em></a> ist im Rahmen der Vorlesung Grundlagen der Informatik 2 von Prof. Roßmann als Beitrag für den Fellow Student Enlightment Award entstanden.</p>
<p>Zum Tool gehts <strong><a href="http://t0.0l.de/transcode/">hier</a></strong>.</p>
<p>Der Sourcecode ist wie immer im git <strong><a href="http://web.git.0l.de/transcode.git/">verfügbar</a></strong>.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2011/07/16/transcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MantisBT SourceIntegration with GitHub</title>
		<link>http://www.steffenvogel.de/2011/03/02/mantisbt-sourceintegration-with-github/</link>
		<comments>http://www.steffenvogel.de/2011/03/02/mantisbt-sourceintegration-with-github/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 17:33:23 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[BugTracker]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Mantis]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1328</guid>
		<description><![CDATA[leetcode.net has written an excellent GitHub integration plugin for the Mantis BugTracker. It allows you to reference issues by their #id in your commit message. You can close an issue simple by adding &#8220;fixed #35&#8243; in your git commit message. Unfortunatly there is only poor documentation for the GitHub integration. I also had some problems [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://leetcode.net/blog/2009/01/integrating-git-svn-with-mantisbt/">leetcode.net</a> <a href="http://git.mantisforge.org/w/source-integration.git">has written</a> an excellent GitHub integration plugin for the <a href="http://www.mantisbt.org/">Mantis BugTracker</a>. It allows you to reference issues by their #id in your commit message. You can close an issue simple by adding &#8220;fixed #35&#8243; in your git commit message.</p>
<div id="attachment_1335" class="wp-caption aligncenter" style="width: 510px"><a href="http://static.steffenvogel.de/wp-content/uploads/2011/03/source_integration-e1299086699183.png"><img class="size-full wp-image-1335" title="source_integration" src="http://static.steffenvogel.de/wp-content/uploads/2011/03/source_integration-e1299086699183.png" alt="" width="500" height="223" /></a><p class="wp-caption-text">Verknüpfung des Bugtracker Eintrags mit dem GitHub Commit</p></div>
<p>Unfortunatly there is only poor documentation for the GitHub integration. I also had some problems with the &#8220;MantisBT&#8221; post commit hook on the GitHub repository configuration. So, I did some code analysis and added a &#8220;Post-Receive-URL&#8221; to my GitHub repo:</p>
<p><code>http://&lt;server&gt;/&lt;path_to_mantis&gt;/plugin.php?page=Source/import&amp;id=&lt;repository_id&gt;</code></p>
<div id="attachment_1332" class="wp-caption aligncenter" style="width: 510px"><a href="http://static.steffenvogel.de/wp-content/uploads/2011/03/github_conf.png"><img class="size-full wp-image-1332" title="github_conf" src="http://static.steffenvogel.de/wp-content/uploads/2011/03/github_conf-e1299085997304.png" alt="" width="500" height="324" /></a><p class="wp-caption-text">GitHub Configuration</p></div>
<p>To allow remote imports of new commits, you have to set the following checkboxes and IP addresses in your MantisBT configuration.</p>
<div id="attachment_1333" class="wp-caption aligncenter" style="width: 510px"><a href="http://static.steffenvogel.de/wp-content/uploads/2011/03/mantis_conf.png"><img class="size-full wp-image-1333" title="mantis_conf" src="http://static.steffenvogel.de/wp-content/uploads/2011/03/mantis_conf-e1299085954883.png" alt="" width="500" height="195" /></a><p class="wp-caption-text">MantisBT Configuration</p></div>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2011/03/02/mantisbt-sourceintegration-with-github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>volkszaehler.org Zählerbox</title>
		<link>http://www.steffenvogel.de/2011/01/25/volkszaehler-org-zahlerbox/</link>
		<comments>http://www.steffenvogel.de/2011/01/25/volkszaehler-org-zahlerbox/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 08:22:40 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Erfassen]]></category>
		<category><![CDATA[Hutschiene]]></category>
		<category><![CDATA[Messen]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[S0]]></category>
		<category><![CDATA[Smart Meter]]></category>
		<category><![CDATA[Stromzähler]]></category>
		<category><![CDATA[Verbrauch]]></category>
		<category><![CDATA[volkszaehler.org]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1252</guid>
		<description><![CDATA[Das volkszaehler.org Projekt nähert sich mit großen Schritten seiner ersten stabilen Version und damit dem ersten Release. Ich möchte hier nur einen kurzen Überblick über den aktuellen Stand geben. Du kennst das Projekt noch gar nicht? Weiß nicht was Smartmeter sind? Da steigst du besser auf unsere Projekt Website ein! Für die Entwicklung am Projekt [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2011/01/DSC00364.jpg"><img class="alignright size-thumbnail wp-image-1256" title="DSC00364" src="http://static.steffenvogel.de/wp-content/uploads/2011/01/DSC00364-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://static.steffenvogel.de/wp-content/uploads/2011/01/favicon.png"><img class="size-thumbnail wp-image-1262 alignleft" title="volkszaehler.org Logo" src="http://static.steffenvogel.de/wp-content/uploads/2011/01/favicon-150x150.png" alt="" width="62" height="62" /></a> Das <a href="http://volkszaehler.org">volkszaehler.org Projekt</a> nähert sich mit großen Schritten seiner ersten stabilen Version und damit dem ersten Release.</p>
<p><strong>Ich möchte hier nur einen kurzen Überblick über den aktuellen Stand geben. Du kennst das Projekt noch gar nicht? Weiß nicht was Smartmeter sind? Da steigst du besser auf unsere <a href="http://volkszaehler.org">Projekt Website</a> ein!</strong></p>
<p>Für die Entwicklung am Projekt habe ich mir eine kleine Hutschienenbox gebaut. Sie eignet sich perfekt für den mobilen Einsatz und zum Testen neuer Firmware und Funktionen. Mal schnell den Verbrauch des eigenen Kühlschranks zu erfassen ist kein Problem. Derzeit ist mein Schreibtisch an die Box angeschlossen und liefert so aktuelle Daten für die <a href="http://volkszaehler.org/demo/frontend/?uuid=6836dd20-00d5-11e0-bab1-856ed5f959ae">Demo Installation</a> des Projektes.</p>
<p>Die Box enthält folgende Komponenten:</p>
<ul>
<li>~230V Eingang über Kaltgerätestecker (geerdet, max. 10 Ampere)</li>
<li>~230V Ausgang über Schukostecker (geerdet, max. 16 Ampere)</li>
<li>Sicherungsautomat (Ein-/Ausschalter)</li>
<li>B&amp;G E-Tech DRS-154D S0-Zähler (einphasig, 2000 Impulse/kWh)</li>
<li><a href="http://wiki.volkszaehler.org/hardware/controllers/s0_server">Udo&#8217;s S0-Server</a> (basierend auf ATMEL AVR&#8217;s &amp; <a href="http://ethersex.de">ethersex</a>, 10 Mbit/s Ethernet, TFTP Bootloader)</li>
<li>Knopf zum manuellen Triggern von Impulsen</li>
<li>externer Anschluss von Zählern</li>
</ul>
<h3>Aktueller Stand</h3>
<p>Der alte Prototyp wurde nun durch ein flexibleres und modulares System ersetzt. Praktisch jede Kombination von Sensoren, Zählern, Controllern und Frontends ist möglich. Hier sind keine Grenzen mehr gesetzt.</p>
<p>Du kannst das Projekt zum Erfassen des eigenen Strom-/Wasser-/Gasverbrauchs ebenso benutzen wie zur Abrechnung eines ganzen Studentenwohnheims.</p>
<p>Zur Visualisierung bist du nicht mehr an das Browser basierte Web-Frontend gebunden. Durch den modularen Aufbau können viele Frontends gleichzeitig verwendet werden: Smartphone, Laptop etc.. Gleiches gilt für die Sensoren/Zähler. Hier kannst du beliebig viele gleichzeitig auswerten. Sie müssen noch nicht einmal am gleichen Ort installiert sein.</p>
<p>So schwebt derzeit die Idee im Raum ein Sensornetzwerk von Geigerzählern zur verteilten Strahlunsmessung aufzubauen.</p>
<div id="attachment_1274" class="wp-caption aligncenter" style="width: 310px"><a href="http://static.steffenvogel.de/wp-content/uploads/2011/01/frontend_screenshot_2.png"><img class="size-medium wp-image-1274 " title="Screenshot des Frontends" src="http://static.steffenvogel.de/wp-content/uploads/2011/01/frontend_screenshot_2-300x228.png" alt="" width="300" height="228" /></a><p class="wp-caption-text">Screenshot des Frontends</p></div>
<div id="attachment_1258" class="wp-caption aligncenter" style="width: 310px"><a href="http://static.steffenvogel.de/wp-content/uploads/2011/01/DSC00370.jpg"><img class="size-medium wp-image-1258 " title="DSC00370" src="http://static.steffenvogel.de/wp-content/uploads/2011/01/DSC00370-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Die Zählerbox</p></div>
<h3>Ausblick</h3>
<p>Die Ideen sprudeln nur so aus unser heraus. Es ist ein Jammer, dass ich gerade nicht mehr Zeit in das Projekt invertieren kann. Aber mein Studium hält mich derzeit sehr in Atem. Nach den Klausuren geht es dann wieder etwas schneller weiter.</p>
<p>Unsere Agenda ist endlos:</p>
<ul>
<li>erste stablie Version veröffentlichen</li>
<li>Betriebsstundezähler unterstützen</li>
<li>weitere Controller, wie den Flukso und &#8220;offizielle&#8221; Smartmeter unterstützen</li>
<li>Radioaktivität messen</li>
<li>Visualisierung für Smartphones</li>
<li>Visualisierung über Moodlights</li>
<li>Installation vereinfachen</li>
</ul>
<p>Hast du weitere Ideen, Anregungen, möchtest etwas verbessern oder eigene Features hinzufügen? Dann bist du immer auf unsere <a href="https://volkszaehler.org/mailman/listinfo/volkszaehler-dev">Mailingliste</a> willkommen! Wir freuen uns über jeden fleißigen Helfer <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2011/01/25/volkszaehler-org-zahlerbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conway&#8217;s Game of Life</title>
		<link>http://www.steffenvogel.de/2010/12/01/conways-game-of-life/</link>
		<comments>http://www.steffenvogel.de/2010/12/01/conways-game-of-life/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 00:33:01 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[conway]]></category>
		<category><![CDATA[game of life]]></category>
		<category><![CDATA[libncurses]]></category>
		<category><![CDATA[RWTH]]></category>
		<category><![CDATA[spiel des lebens]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1213</guid>
		<description><![CDATA[Als Übung für meine Informatik Vorlesung an der RWTH Aachen habe ich diese C Implementation von Conways Game of Life geschrieben. Dieses simple &#8220;zero player&#8221; Game wird komplett im Terminal ausgeführt. Mit Mausunterstützung und Farben wurden mit libncurses realisiert. Den Quelltext findet ihr sammt Makefile in meinem Git-Repository. Hints &#38; Shortcuts &#8220;p&#8221; pausiert das Spiel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/12/conway.png"><img class="alignright size-thumbnail wp-image-1214" title="conway" src="http://static.steffenvogel.de/wp-content/uploads/2010/12/conway-150x150.png" alt="" width="150" height="150" /></a>Als Übung für meine Informatik Vorlesung an der RWTH Aachen habe ich diese C Implementation von<a href="http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens"> Conways Game of Life</a> geschrieben.</p>
<p>Dieses simple &#8220;<strong>zero player</strong>&#8221; Game wird komplett im Terminal ausgeführt. Mit Mausunterstützung und Farben wurden mit libncurses realisiert.</p>
<p>Den Quelltext findet ihr sammt Makefile in meinem <strong><a href="https://0l.de/cgit/rwth-info1.git/tree/src/conway.c">Git-Repository</a></strong>.</p>
<h3>Hints &amp; Shortcuts</h3>
<ul>
<li>&#8220;<strong>p</strong>&#8221; pausiert das Spiel</li>
<li>&#8220;<strong>q</strong>&#8221; beendet das Spiel</li>
<li>&#8220;<strong>c</strong>&#8221; leert das Spielfeld</li>
<li>die <strong>Leertaste</strong> setzt eine Zelle</li>
<li>die <strong>Pfeiltasten</strong> bewegen den Cursor</li>
<li>die <strong>Maus</strong> kann zum Bewegen des Cursors genutzt werden</li>
<li>&#8220;<strong>0</strong>&#8221; fügt ein chaotisches Anfangsmuster ein</li>
<li>&#8220;<strong>1</strong>&#8221; fügt einen Glider in das Spielfeld ein</li>
<li>&#8220;<strong>2</strong>&#8221; fügt einen Segler in das Spielfeld ein</li>
<li>&#8220;<strong>3</strong>&#8221; fügt einen Buffer in das Spielfeld ein</li>
<li>&#8220;<strong>+</strong>&#8221; erhöht die Anzahl der Generationen pro Sekunde (frames per second)</li>
<li>&#8220;<strong>-</strong>&#8221; erniedrigt die Anzahl der Generationen pro Sekunde (frames per second)</li>
</ul>
<p><a href="http://www.steffenvogel.de/2010/12/01/conways-game-of-life/"><em>Click here to view the embedded video.</em></a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/12/01/conways-game-of-life/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BASH script collection</title>
		<link>http://www.steffenvogel.de/2010/11/14/bash-script-collection/</link>
		<comments>http://www.steffenvogel.de/2010/11/14/bash-script-collection/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 10:27:38 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1204</guid>
		<description><![CDATA[In den letzten Jahren als Linux User hat sich bei mir eine kleine Toolbox aus BASH (Bourne Again Shell)  Skripten angesammelt. Einige habe ich bereits in Blog-Posts vorgstellt. Jetzt habe ich sie mal in einem git-Repository zusammengefasst. Viel Spaß damit!]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/11/300px-Bash1.jpg"><img class="alignright size-thumbnail wp-image-1205" title="300px-Bash1" src="http://static.steffenvogel.de/wp-content/uploads/2010/11/300px-Bash1-150x150.jpg" alt="" width="150" height="150" /></a>In den letzten Jahren als Linux User hat sich bei mir eine kleine Toolbox aus BASH (Bourne Again Shell)  Skripten angesammelt. Einige habe ich bereits in Blog-Posts vorgstellt. Jetzt habe ich sie mal in einem <a href="https://0l.de/cgit/snippets.git/"><strong>git-Repository</strong></a> zusammengefasst.</p>
<p>Viel Spaß damit!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/11/14/bash-script-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fnordlicht vu meter</title>
		<link>http://www.steffenvogel.de/2010/11/12/fnordlicht-vu-meter/</link>
		<comments>http://www.steffenvogel.de/2010/11/12/fnordlicht-vu-meter/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 00:13:37 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[fnordlicht]]></category>
		<category><![CDATA[level]]></category>
		<category><![CDATA[peak]]></category>
		<category><![CDATA[vu meter]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1190</guid>
		<description><![CDATA[Last time, I showed you my new fnordlicht&#8217;s. Today, I&#8217;ve a little gift for you: I&#8217;ve written a small c program to control the lights according to the current peak level. The software analyses the audio signal of my system (Ubuntu 10.10 with pulseaudio). So you can dance to everything that can play audio.. Update: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.steffenvogel.de/2010/11/12/fnordlicht-vu-meter/"><em>Click here to view the embedded video.</em></a></p>
<p><a href="http://www.steffenvogel.de/2010/10/31/visualize-your-power-consumption-with-fnordlichter/">Last time</a>, I showed you my new <a href="http://wiki.lochraster.org/wiki/Fnordlichtmini">fnordlicht&#8217;s</a>. Today, I&#8217;ve a little gift for you: I&#8217;ve written a small c program to control the lights according to the current peak level.</p>
<p>The software analyses the audio signal of my system (Ubuntu 10.10 with pulseaudio). So you can dance to everything that can play audio.. <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Update:</strong> As preparation for a exam, I added a discrete fourier analysis (DFT). Unfortunatly the serial bus is to slow to visualize the audio spectrogram in real time <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  The bars are colored with their complex phase-&gt;hue (HSV) aquivalent.</p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/11/fnordlicht_fft.png"><img class="aligncenter size-full wp-image-1326" title="fnordlicht_fft" src="http://static.steffenvogel.de/wp-content/uploads/2010/11/fnordlicht_fft.png" alt="" width="420" height="235" /></a></p>
<p>The software uses and is distributed together with my fnlib (fnordlicht library) available under: <a title="http://web.git.0l.de/libfn.git/tree/fnvum" dir="ltr" href="http://web.git.0l.de/libfn.git" rel="nofollow" target="_blank">http://web.git.0l.de/libfn.git</a></p>
<h3>Some technical details (in german):</h3>
<p>Ich benutze <a href="http://pulseaudio.org/">PulseAudio</a> um mich in die Soundkarte des Systems einzuklingen. Das Programm tarnt sich als Recording-Tool. Und kann dadurch den kompletten Audio-Output oder nur bestimmte Programme visualisieren. Sogar das Mikrofon kann ich benutzen :p</p>
<p>PulseAudio liefert mir einen einfachen PCM Stream (44,1kHz Samplingrate, Mono &amp; 16-Bit signed Integers). Derzeit addiere ich immer nur x Werte dieses Bytestreams und mittele diese Summe dann über einen kurzen Zeitraum.</p>
<p>Geplant ist noch eine FFT-Analyse um  die Amplituden verschiedener Frequenzen gemäß der &#8220;Ohrkurve&#8221;, der Empfindlichkeit des menschlichen Gehörs, gewichten zu können. Der Schritt zur Spektraldarstellung (jedes meiner 10 fnordlichter als VU-Meter für ein bestimmtes Frequenzband) ist dann hoffentlich auch nicht mehr so weit.</p>
<div id="attachment_1196" class="wp-caption aligncenter" style="width: 510px"><a href="http://static.steffenvogel.de/wp-content/uploads/2010/11/Ohrkurve.gif"><img class="size-full wp-image-1196" title="Ohrkurve" src="http://static.steffenvogel.de/wp-content/uploads/2010/11/Ohrkurve.gif" alt="" width="500" height="281" /></a><p class="wp-caption-text">Ohrkurve</p></div>
<h4>Hints (for me)</h4>
<ul>
<li>FFT lib to use: <a href="http://www.fftw.org">http://www.fftw.org</a></li>
<li>Approximation for &#8220;Ohrkurve&#8221;</li>
</ul>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/11/12/fnordlicht-vu-meter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>simple mounting of encrypted partitions with encrypted keyfiles</title>
		<link>http://www.steffenvogel.de/2010/11/02/simple-mounting-of-encrypted-partitions-with-encrypted-keyfiles/</link>
		<comments>http://www.steffenvogel.de/2010/11/02/simple-mounting-of-encrypted-partitions-with-encrypted-keyfiles/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 03:35:13 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[LUKS]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[Verschlüsselung]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1134</guid>
		<description><![CDATA[My external HDDs are encrypted with LUKS. The keyfiles to decrypt these partitions are encrypted by GnuPG with a private key which is stored on a smartcard. To easily mount my external HDDs I use this small bash script: #!/bin/bash gpg -d /media/usbstick/.secret/luks.key.enc &#124; pmount -p - $1 $2 Tutorial Thats a quite simple tutorial. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/10/lock.png"><img class="alignright size-full wp-image-1135" title="lock" src="http://static.steffenvogel.de/wp-content/uploads/2010/10/lock.png" alt="" width="118" height="102" /></a>My external HDDs are encrypted with <a href="http://wiki.ubuntuusers.de/LUKS">LUKS</a>. The keyfiles to decrypt these partitions are encrypted by <a href="http://wiki.ubuntuusers.de/GnuPG">GnuPG</a> with a private key which is stored on a <a href="http://wiki.fsfe.org/FellowshipSmartCard">smartcard</a>.</p>
<p>To easily mount my external HDDs I use this small <a href="https://0l.de/cgit/snippets.git/tree/bash_scripts/mountcrypt">bash script</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
gpg <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>usbstick<span style="color: #000000; font-weight: bold;">/</span>.secret<span style="color: #000000; font-weight: bold;">/</span>luks.key.enc <span style="color: #000000; font-weight: bold;">|</span> pmount <span style="color: #660033;">-p</span> - <span style="color: #007800;">$1</span> <span style="color: #007800;">$2</span></pre></div></div>

<h3>Tutorial</h3>
<p>Thats a quite simple tutorial. Most steps have been described in others howtos. Feel free to link them in the comments.</p>
<h4>Setup</h4>
<ol>
<li>Create a PGP keypair</li>
<li>Generate a keyfile for the LUKS partition</li>
<li>Make a copy  of your PGP keyring and the LUKS keyfile and safe them in a safe location</li>
<li>Move your keys to your smartcard and replace your private keys by stubs</li>
<li>Create your LUKS partition</li>
<li>Add the keyfile to a LUKS key slot</li>
<li>Encrypt the LUKS keyfile</li>
<li>Move the encrypted keyfile to an USB stick</li>
<li>Add the script from above to your USB stick</li>
</ol>
<h3>Usage</h3>
<ol>
<li>Insert your smartcard, USB stick and the LUKS encrypted harddisk</li>
<li>Call the script from above from your USB stick</li>
<li>Enter your smartcard pin</li>
<li>Enjoy!</li>
</ol>
<p>Have fun!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/11/02/simple-mounting-of-encrypted-partitions-with-encrypted-keyfiles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>git SCM</title>
		<link>http://www.steffenvogel.de/2010/08/17/git-scm/</link>
		<comments>http://www.steffenvogel.de/2010/08/17/git-scm/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:45:01 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=1002</guid>
		<description><![CDATA[Ich gehe mit der Zeit und wechsele mein Source Code Management System. Obwohl SVN weiterhin entwickelt und gepflegt wird wurde es von git überholt. Das Design, die Idee, der dezentrale Ansatz von git ist SVN weit überlegen. Nun verwalte ich meinen Quelltext mit git. Alle Projekte und Code-Schnipsel befinden sich in meinen git-Repositories: http://web.git.0l.de Ich [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/08/git.png"><img class="alignright size-full wp-image-1004" title="git" src="http://static.steffenvogel.de/wp-content/uploads/2010/08/git.png" alt="" width="129" height="47" /></a>Ich gehe mit der Zeit und wechsele mein <strong>S</strong>ource <strong>C</strong>ode<strong> M</strong>anagement System.</p>
<p>Obwohl <a href="http://subversion.apache.org/"><strong>SVN</strong> </a>weiterhin entwickelt und gepflegt wird wurde es von <a href="http://git-scm.com/"><strong>git</strong></a> überholt. Das Design, die Idee, der dezentrale Ansatz von <strong>git</strong> ist <strong>SVN</strong> weit überlegen.</p>
<p>Nun verwalte ich meinen Quelltext mit <strong>git</strong>. Alle Projekte und Code-Schnipsel befinden sich in meinen git-Repositories:</p>
<p><a href="http://web.git.0l.de">http://web.git.0l.de</a></p>
<p>Ich habe alle Verweise im Blog nun auf das neue <strong>git Repository</strong> aktualisiert worden.</p>
<p>Jedem der sich auch mit dem Thema beschäftigen möchte, empfehle ich diese Lektüre:</p>
<p style="text-align: center;"><a href="http://oreilly.com/catalog/9780596520137"><img class="aligncenter size-medium wp-image-1005" title="lrg" src="http://static.steffenvogel.de/wp-content/uploads/2010/08/lrg-228x300.jpg" alt="" width="228" height="300" />O&#8217;Reilly</a></p>
<p style="text-align: center;">(bei Interesse bitte bei mir melden <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/08/17/git-scm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>volkszaehler.org</title>
		<link>http://www.steffenvogel.de/2010/07/02/volkszaehler-org/</link>
		<comments>http://www.steffenvogel.de/2010/07/02/volkszaehler-org/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 10:27:52 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Sensoren]]></category>
		<category><![CDATA[Smart Meter]]></category>
		<category><![CDATA[Stromzähler]]></category>
		<category><![CDATA[volkszaehler.org]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=923</guid>
		<description><![CDATA[volkszaehler.org ist ein freier Smart Meter (hier: intelligenter Stromzähler) im Selbstbau. Die anfallenden Stromprofile bleiben dabei unter der Kontrolle des Nutzers. Seit dem 1.1.2010 müssen Stromversorger ihren Kunden für Neubauten so genannte &#8220;intelligente Stromzähler&#8221; (Smart Meter) anbieten. Der Kunde soll dadurch seinen Stromverbrauch analysieren und optimieren können. Die dabei anfallenden Daten (&#8220;Stromverbrauchsprofil&#8221;) erlauben einen sehr [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://volkszaehler.org">volkszaehler.org</a> ist ein freier Smart Meter (hier: intelligenter Stromzähler) im Selbstbau. Die anfallenden Stromprofile bleiben dabei unter der Kontrolle des Nutzers.</p></blockquote>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/06/logo.png"><img class="alignright size-full wp-image-917" title="logo" src="http://static.steffenvogel.de/wp-content/uploads/2010/06/logo.png" alt="" width="168" height="168" /></a><br />
Seit dem 1.1.2010 müssen Stromversorger ihren Kunden für Neubauten so genannte &#8220;intelligente Stromzähler&#8221; (Smart Meter) anbieten. Der Kunde soll dadurch seinen Stromverbrauch analysieren und optimieren können.</p>
<p>Die dabei anfallenden Daten (&#8220;Stromverbrauchsprofil&#8221;) erlauben einen sehr detallierten Einblick in den Tagesablauf des Nutzers (wann steht er auf? wann geht er in&#8217;s Bett? wann kocht er? wie oft verwendet er seine Spülmaschine? verändert sich sein Verhalten? &#8230;). Darum sollten die Daten ausschließlich für den Nutzer selbst zur Verfügung stehen &#8211; und das geht nur, wenn man sich den Smart Meter selbst baut. Mit einem Materialeinsatz von ca. EUR 100, etwas Geschick und Zeit lässt sich das mit Hilfe eines Standard-µC-Moduls aufbauen.</p>
<p>Auf der <a href="http://events.ccc.de/sigint/2010/wiki/Hauptseite">SIGINT 2010</a> konnte ich mir den <a href="http://events.ccc.de/sigint/2010/wiki/Fahrplan/events/3862.de.html">Vortrag </a>von Justin Otherguy über das noch recht junge Projekt anhören und fand anschließen die Gelegenheit mit ihm über das Projekt zu sprechen. Schnell war für mich klar, dass ich hier helfen möchte.</p>
<p>Bisher gibt es nur einen funktionsfähigen Prototypen. In den letzten Wochen habe ich mit ein paar weiteren Entwicklern begonnen den Code des Prototypen neu aufzubauen. Volkzaehler.org ist dreigeteilt:</p>
<ol>
<li><strong>Die Controller und Sensor Ebene</strong><br />
erfasst  mithilfe eines Mikrocontrollers die Daten leitet sie an den Backendserver weiter.</li>
<li><strong>Der Backendserver<br />
<span style="font-weight: normal;">besteht aus einem PHP-Skript und einer Datenbank. Hier werden die Daten weiter verarbeitet und ausgewertet. Er kommuniziert ausschließlich über eine standardisierte JSON API.</span></strong></li>
<li><strong>Das Frontend<br />
<span style="font-weight: normal; font-size: small;">stellt die Daten für den Benutzer übersichtlich dar und ist für die Ausgabe der Analysen verantwortlich.</span></strong></li>
</ol>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/07/overview.png"><img class="aligncenter size-large wp-image-929" title="overview" src="http://static.steffenvogel.de/wp-content/uploads/2010/07/overview-1024x724.png" alt="" width="400" /></a></p>
<p><span>Diese Darstellung verrät uns auch, dass nur der Stromverbrauch erfasst werden kann. Geplant sind sämtliche Messgrößen (Temperatur, Luftdruck, Luftfeuchtigkeit, Strahlung, Niederschlag etc&#8230;).</span></p>
<p><span>Bisher gibt es noch keine stabile, lauffähige Version des Quellcodes. Im </span><a href="http://de.volkszaehler.wikia.com/wiki/Volkszaehler.org_Wiki">Wiki</a><span>, der </span><a href="mailto:volkszaehler-dev-subscribe@lists.volkszaehler.org">Mailing-Liste</a><span> und </span><a href="http://github.com/volkszaehler/volkszaehler.org">GitHub</a><span> findet ihr weitere Informationen zu meinem neuen Projekt.</span></p>
<p><span>Wir freuen uns über jede Unterstüzung <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Besonders Entwickler mit PHP und Javascript Kenntnissen wären hilfreich <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </span></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/07/02/volkszaehler-org/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Traktor Pro unter Linux</title>
		<link>http://www.steffenvogel.de/2010/03/24/traktor-pro-unter-linux/</link>
		<comments>http://www.steffenvogel.de/2010/03/24/traktor-pro-unter-linux/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 22:37:28 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Musik]]></category>
		<category><![CDATA[DJ]]></category>
		<category><![CDATA[Mixen]]></category>
		<category><![CDATA[Native Instruments]]></category>
		<category><![CDATA[Traktor Pro]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Workstation]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=750</guid>
		<description><![CDATA[Es läuft! Nachdem ich über Google &#38; Co nicht weitergekommen bin, habe ich selber mal etwas experimentiert. Die sonst üblichen Methoden über Wine, Cedega und CrossOver brachten mich leider nicht weiter. Das Zauberwort lautet &#8220;VMWare Workstation&#8220;. Erstaunlicherweise ist eine virtualisierte Maschine schnell genug um Traktor akzeptabel nutzen zu könnten. Jedoch muss man bei internen Soundkarten [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/03/vmware_logo3.png"><img class="alignright size-thumbnail wp-image-753" title="vmware_logo3" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/vmware_logo3-150x150.png" alt="" width="150" height="150" /></a>Es läuft! Nachdem ich über Google &amp; Co nicht weitergekommen bin, habe ich selber mal etwas experimentiert. Die sonst üblichen Methoden über <a href="http://www.winehq.org/">Wine</a>, <a href="http://www.transgaming.com/">Cedega</a> und <a href="http://www.codeweavers.com/">CrossOver</a> brachten mich leider nicht weiter.</p>
<p>Das Zauberwort lautet &#8220;<a href="http://www.vmware.com/de/products/ws/">VMWare Workstation</a>&#8220;. Erstaunlicherweise ist eine virtualisierte Maschine schnell genug um <a href="http://www.native-instruments.com/#/de/products/dj/traktor-pro/">Traktor</a> akzeptabel nutzen zu könnten. Jedoch muss man bei internen Soundkarten mit einer höheren Latenz rechnen. Mit meinem neuen <a href="http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/">Audio-Interface</a> konnte ich die Latenz  durch <a href="http://de.wikipedia.org/wiki/Audio_Stream_Input/Output">ASIO-Treiber</a> und die direkte Anbindung per USB noch deutlich senken. Der Anschluss über sorgt dafür, dass das die Ansteuerung in der vritualisierten Maschine erfolgt. Es ist kein Umweg mehr über das Linux Soundsystem (ALSA) nötig. Es wird nur der Windows Treiber benötigt.</p>
<p>Um das ganze stabil nutzen zu können solltet ihr jedoch schon einen aktuellen Rechner mit ausreichend RAM (&gt; 2GB) und mindestens zwei CPU-Kernen haben. Für den Produktiveinsatz kann ich es nur bedingt empfehlen, da ich zwischenzeitlich ein paar Performance Probleme hatte. Es kommt mal zum stottern etc&#8230; Aber diesem Fall kann man natürlich auch mal Windows booten :-/<a href="http://static.steffenvogel.de/wp-content/uploads/2010/03/wave.png"><img class="aligncenter size-full wp-image-751" title="wave" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/wave.png" alt="" width="480" height="83" /></a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/03/24/traktor-pro-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USB Audiointerfaces für Linux</title>
		<link>http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/</link>
		<comments>http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 13:55:31 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Alsa]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Musonik]]></category>
		<category><![CDATA[PHASE 26]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[Roland]]></category>
		<category><![CDATA[Terratec]]></category>
		<category><![CDATA[UA-1G]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=725</guid>
		<description><![CDATA[Musik ist meine Freizeitbeschäftigung. Mittlerweile höre ich sie eigentlich in jeder Lebenslage. Zuhause, beim Laufen, Fahrrad fahren, auf der Arbeit und in der Bahn. Man könnte fast sagen ich bin süchtig geworden :-/ Die Qualität der Onboard-Soundkarte meines Dell Latitude ist einfach nur miserabel. Von dem Mikrofoneingang ganz zu schweigen. Ganz klar hier muss was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/03/Shitdisco.jpg"><img class="alignright size-thumbnail wp-image-744" title="Shitdisco" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/Shitdisco-150x150.jpg" alt="" width="150" height="150" /></a>Musik ist meine Freizeitbeschäftigung. Mittlerweile höre ich sie eigentlich in jeder Lebenslage. Zuhause, beim Laufen, Fahrrad fahren, auf der Arbeit und in der Bahn. Man könnte fast sagen ich bin süchtig geworden :-/ Die Qualität der Onboard-Soundkarte meines <a href="/2008/05/12/dell-latitude-d630-ist-da/">Dell Latitude</a> ist einfach nur miserabel. Von dem Mikrofoneingang ganz zu schweigen. Ganz klar hier muss was besseres her.</p>
<p>Vorne weg: ich habe das <a href="http://www.musonik.com/index.php/terratec-phase-26-usb.html">Terratec PHASE 26 USB</a> und das <a href="http://www.cakewalk.com/Products/UAUM/UA1G.asp">Cakewalk UA-1G</a> getestet und mich schließlich für das Terratec entschieden. Meine Entscheidung habe ich nicht nach keinem bestimmten Gesichtspunkt getroffen. Hauptsächlich nutze ich das Interface aber zur Wiedergabe. Vielleicht gibt es demnächst auch mal wieder einen Audiobeitrag von mir <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Kriterien waren neben der Linux-Unterstützung ein digitaler Ausgang, ein Mikrofon- und Line-Eingang sowie herausragende Audioqualität.<br />
Preislich habe ich mir eine Grenze von 100€ gesetzt.<br />
<span id="more-725"></span></p>
<h2>Der Vergleich</h2>
<p>Beginnen wir mit den Gemeinsamkeiten: beide Interfaces, die ich hier getestet habe, werden durch die verfügbaren Alsa-Treiber von aktuellen Linux-Distributionen gut unterstützt. Ich habe sie auf einer aktuellen Ubuntu 9.10 mit dem aktuellsten <a href="http://kernel.ubuntu.com/~kernel-ppa/mainline/">Mainline Kernel</a> (2.6.33) getestet.<br />
Auch Windows und Mac User haben hier keine Probleme. Für beide Geräte sind <a href="http://www.cakewalk.com/Support/Interface/DriverUA.aspx?Prod=UA-1G">aktuelle</a> <a href="http://www.musonik.com/downloads/TerraTec_Producer/PHASE_26_USB/">Treiber</a> (auch 64bit) verfügbar.</p>
<p>Die Interfaces besitzten beide einen USB 1.1 (USB 2.0 kompatibel) Anschluss und eine maximale Samplerate von 96khz bei einer Auflösung von 24bit. Zum Vergleich: herkömmliche <a href="http://de.wikipedia.org/wiki/Compact_Disc_Digital_Audio">Audio-CD</a>s besitzen eine Samplerate von 44,1khz bei 16 Bit. Zugegebenermaßen bedarf es schon eines ziemlich guten Gehörs um diesen Unterschied heraus zu hören. Im Vergleich zur Onboard-Soundkarte ist dieser aber sofort bemerkbar.<br />
Der USB 1.1 Anschluss stellt sich bei allen Einsteigermodellen als Bottleneck dar. Die Bandbreite des Anschlusses ist zu gering synchron 24bit/96khz aufzunehmen und wiederzugeben. Daher muss man je nach Anwendung hier zwischen verschiedenen Modi wechseln. Beide Geräte haben hierfür Schalter am Gehäuse.</p>
<div style="text-align: center;">
<table style="margin: 0 auto; border-collapse: collapse; text-align: center;">
<tbody>
<tr>
<td style="border-bottom: 1px solid black;"><strong>Terratec</strong></td>
<td style="border-bottom: 1px solid black;"><strong>ch</strong></td>
<td style="border-bottom: 1px solid black;"><strong>Cakewalk</strong></td>
<td style="border-bottom: 1px solid black;"><strong>ch</strong></td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;">24/96 In</td>
<td style="border-bottom: 1px solid black;">&#8212;</td>
<td style="border-bottom: 1px solid black;">24/96 In</td>
<td style="border-bottom: 1px solid black;">&#8212;</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;">24/96 Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
<td style="border-bottom: 1px solid black;">24/96 Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;">24/48 In/Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
<td style="border-bottom: 1px solid black;">24/48 In/Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;">16/48 In/Out</td>
<td style="border-bottom: 1px solid black;">6ch</td>
<td style="border-bottom: 1px solid black;">24/44,1 In/Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;"></td>
<td style="border-bottom: 1px solid black;"></td>
<td style="border-bottom: 1px solid black;">16/48 In/Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;"></td>
<td style="border-bottom: 1px solid black;"></td>
<td style="border-bottom: 1px solid black;">16/44,1 In/Out</td>
<td style="border-bottom: 1px solid black;">2ch</td>
</tr>
<tr>
<td></td>
<td></td>
<td>16/32 In/Out</td>
<td>2ch</td>
</tr>
</tbody>
</table>
<address>Tabelle: Übertragungs-Modi<br />
mit Anzahl der Ausgangskanäle<br />
</address>
</div>
<p>Über diesen Anschluss werden beide Geräte auch mit Strom versorgt. Sollte der Laptop jedoch etwas schwach auf der Brust sein bietet die Terratec Karte noch die Möglichkeit eine externe Stromquelle anzuschließen.</p>
<p>Gerade zum Mixen und Auflegen sind die 6 Ausgänge der Terratec ein echtes Plus gegenüber dem Cakewalk-Adapter.<br />
So kann man wahlweise intern per Software mixen oder beide Decks mit Hilfe eines externen Mixer mischen.<br />
Besonders interessant finde ich die Möglichkeit Tracks vor zuhören oder getrennte Räumen unterschiedlich zu beschallen.<br />
Dazu bietet sich ein Abspielprogramm wie <a href="http://www.native-instruments.com/#/de/products/dj/traktor-pro/">Traktor</a> von <a href="http://www.native-instruments.com/">Native Instruments</a> an. Alternativ kann man sich auch mit dem kostenlosen (OpenSource) <a href="http://www.mixxx.org/">Mixxx</a> begnügen.</p>
<p>Zum Recording empfiehlt es sich in einen der Modi mit besserer Qualität zu schalten. Zwar stehen einem dann unter Umständen keine oder weniger Ausgänge zu Verfügung, dafür wird man aber mit einer erstklassigen Qualität belohnt.<br />
Für Live-Auftritte und Aufnahmen, die sowohl einen Ausgang und einen Eingang benötigen sollte man unter Windows den ASIO Treiber nutzen.<br />
Die Terratec Karte besitzt hierfür einen extra Modus. Der <a href="http://de.wikipedia.org/wiki/Audio_Stream_Input/Output">ASIO</a> Treiber ermöglicht es die Latenzen, die durch die Signalverarbeitung entstehen, möglichst gering zu halten.<br />
So kann man das Interface in Verbindung mit entsprechenden Programmen auch als Effektgerät oder zum schrittweisen Aufnehmen eines ganzen Tracks nutzen.</p>
<p>Ein Mikrofon- sowie ein Line-Eingang mit Studiopegel gehört zum Standard der Interfaces. Wie bei allen semi-professionellen Interfaces ist auch bei meinen beiden Kandidaten nur der Mikrofoneingang über einen Poti am Gehäuse regelbar.</p>
<h2>Cakewalk UA-1G</h2>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/03/UA-1G.jpg"><img class="alignright size-medium wp-image-729" title="UA-1G" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/UA-1G-300x201.jpg" alt="" width="218" height="145" /></a>Beim Cakewalk ist das kleine Gehäuse hervorzuheben. Das Interface lässt sich leicht mal schnell in die Jackentasche stecken. Leider besitzt es nur optische Digitalanschlüsse, die über die 3,5 mm Klinkenbuchsen erreichbar sind. Diese werden jedoch gleichzeitig auch für den Kopfhörer und das Mikrofon benutzt.</p>
<p>Eine Besonderheit des Cakewalk Gerätes ist der &#8220;Advanced Mode&#8221;. Dieser Modus benötigt für Windows einen speziellen Treiber und ist für die 24bit Auflösung und 96khz nötig.</p>
<h2>Terratec PHASE 26 USB</h2>
<p><a href="http://www.terratec.de">Terrat</a><a href="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC00094.jpg"><img class="alignleft size-medium wp-image-732" title="DSC00094" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC00094-300x225.jpg" alt="" width="176" height="132" /></a><a href="http://www.terratec.de">ec</a> geht hier einen anderen Weg. Die digitalen Ein- und Ausgänge sind separat mit je einem optischen und koaxialen Stecker verfügbar. Auch Mikrofon- und Kopfhörerbuchsen sind separat mit einer großen 6,35 mm Klinke erreichbar.<br />
Diese Vielfalt an vergoldeten Anschlüssen fordert jedoch auch ein größeres Gehäuse. Dieses Metallgehäuse macht einen sehr robusten Eindruck. Im Gegensatz um Cakewalk UA-1G ist hier auch das USB Kabel für den Transport abnehmbar.</p>
<p>Das PHASE 26 Interface kann auch als Zuspieler für ein Surround-System fungieren.<br />
Die dafür nötige Unterstüzung im Alsa-Treiber ist vorhanden. Auch ein AC3 SPDIF-Passthrough wird mit entsprechenden Abspielprogrammen unterstützt.</p>
<p>Im Cakewalk-Treiber habe ich dazu leider keine Möglichkeit gefunden. Dieser unterscheidet nicht zwischen analogen und digitalen Kanälen. Inzwischen wurden der Vertrieb und die Entwicklung aktueller Treiber (auch Windows 7 und 64 bit) vom Zweithändler <a href="http://www.musonik.com">musonik</a> übernommen.</p>

<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/ua-1g/' title='UA-1G'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/UA-1G-150x150.jpg" class="attachment-thumbnail" alt="UA-1G" title="UA-1G" /></a>
<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/dsc00091/' title='DSC00091'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC00091-e1269267975111-150x150.jpg" class="attachment-thumbnail" alt="DSC00091" title="DSC00091" /></a>
<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/dsc00094/' title='DSC00094'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC00094-150x150.jpg" class="attachment-thumbnail" alt="DSC00094" title="DSC00094" /></a>
<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/dsc00091-2/' title='DSC00091'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC000911-e1269267960489-150x150.jpg" class="attachment-thumbnail" alt="DSC00091" title="DSC00091" /></a>
<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/dsc00097/' title='DSC00097'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/DSC00097-150x150.jpg" class="attachment-thumbnail" alt="DSC00097" title="DSC00097" /></a>
<a href='http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/shitdisco/' title='Shitdisco'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2010/03/Shitdisco-150x150.jpg" class="attachment-thumbnail" alt="Shitdisco" title="Shitdisco" /></a>

<h2>Fazit</h2>
<p>Das recht neue Cakewalk UA-1G von Roland besticht durch seine sehr getreue Klangwiedergabe. Es ist super kompakt und ist durch den integrierten Gitarrenverstärker auch mobil für spontanen Gitarren-Sessions geeignet.<br />
Die schon in die Tage gekommene Terratec PHASE 26 ist klanglich mit seinem Konkurrenten vergleichbar. Kann jedoch beim Funktionsumfang besser punkten. Gerade für DJs oder das kleine Homestudio ist diese Karte besser geeignet. Der integrierte Schallplatten-PreAmp macht es auch für Liebhaber von Vinyls interessant. DJs können ihn nutzen um ihre MP3s mit Hilfe von FinalScratch und Co. stilgerecht aufzulegen.<br />
Preislich liegt die PHASE 26 USB ca. 25€ über der Cakewalk Karte, die mit 77€  bei dieser Qualität ein echtes Schnäppchen ist.<br />
Neben dem Einsatz im Homestudio kann man beide Karten problemlos auch zum Filmegucken (AC3 und DolbyDigital) und Spielen nutzen. Hier muss man jedoch auf die Funktionen der Consumergeräte (<a href="http://de.wikipedia.org/wiki/Environmental_Audio_Extensions">EAX</a> und <a href="http://de.wikipedia.org/wiki/THX">THX</a>) und eine Klickie-Buntie Treiberoberfläche verzichten.</p>
<p>Kaufen kann man beide Interfaces über den Online-Shop von <a href="http://www.thomann.de/">Thomann</a> oder im <a href="http://www.musicstore.de">Kölner MusicStore</a>, der ebenfalls einen Online-Shop besitzt.<br />
Besonders hervorzuheben ist der MusicStore durch seine Geld-Zurück Garantie und die manchmal recht günstigen Angebote von Retourware.<br />
Solltet ihr mal in Köln sein, lohnt sich der Besuch auf jeden Fall (mich dürft ihr natürlich auch gerne mal besuchen <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<p>Ohje jetzt ist das ganze schon wieder viel zu lang geworden :-S Das nächste mal wird es wieder kürzer. Versprochen!﻿</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/03/22/usb-audiointerfaces-fur-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>deviantART Wallpapers</title>
		<link>http://www.steffenvogel.de/2010/02/08/deviantart-wallpapers/</link>
		<comments>http://www.steffenvogel.de/2010/02/08/deviantart-wallpapers/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:30:13 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Cron]]></category>
		<category><![CDATA[deviantART]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=585</guid>
		<description><![CDATA[Gelangweilt von meinem alten Wallpaper habe ich ein kleines Bash-Skript geschrieben, welches mir die aktuell populärsten Fotografien von deviantart.com herunterlädt und automatisch als Wallpaper einsetzt. Per Cron-Job wird es alle 10 Minuten gestartet. So bekomme ich regelmäßig ein neues Wallpaper Das Skript benötigt die Programme: wget, xargs, grep, tail, head und gconftool-2 welche bei einer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/326px-DeviantART_Logo.svg_.png"><img class="alignright size-medium wp-image-587" title="326px-DeviantART_Logo.svg" src="http://static.steffenvogel.de/wp-content/uploads/2009/11/326px-DeviantART_Logo.svg_-300x116.png" alt="326px-DeviantART_Logo.svg" width="194" height="75" /></a>Gelangweilt von meinem alten Wallpaper habe ich ein kleines Bash-Skript geschrieben, welches mir die aktuell populärsten Fotografien von <a href="http://deviantart.com">deviantart.com</a> herunterlädt und automatisch als Wallpaper einsetzt. Per Cron-Job wird es alle 10 Minuten gestartet. So bekomme ich regelmäßig ein neues Wallpaper <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Das Skript benötigt die Programme: wget, xargs, grep, tail, head und gconftool-2 welche bei einer normalen Linuxdistribution alle enthalten sein sollten. Das Ersetzten des Wallpaper funktioniert hier nur mit einem Gnome Desktop. Solltest du eine andere Desktopumgebung benutzten, musst du die letzte Zeile für dein System anpassen.<span id="more-585"></span></p>
<p><span style="text-decoration: underline;"><strong>UPDATE:</strong></span> Nach einigen kleinen Problemen habe ich das Bash Script nocheinmal überarbeitet. Probleme mit Cron dürften nun behoben sein. Durch das Einrrichten eines Shortcuts (via &#8216;gnome-keybinding-properties&#8217;) kann der Hintergrund noch schneller gewechselt werden:</p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/deviantkey.png"><img class="aligncenter size-medium wp-image-669" title="deviantkey" src="http://static.steffenvogel.de/wp-content/uploads/2009/11/deviantkey-300x149.png" alt="" width="300" height="149" /></a>Hier das benötigte <a href="https://0l.de/cgit/snippets.git/tree/bash_scripts/deviantbg">Script</a>. Einfach in eine Textdatei einfügen und mit chmod +x deviant-background-changer ausführbar machen.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Deviant Background Changer 1.1</span>
<span style="color: #666666; font-style: italic;"># by Steffen Vogel (info@steffenvogel.de)</span>
<span style="color: #666666; font-style: italic;"># http://www.steffenvogel.de/2009/11/28/deviantart-wallpapers/</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Path to save downloaded images</span>
<span style="color: #007800;">BG_PATH</span>=<span style="color: #ff0000;">&quot;/home/steffen/backgrounds&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># RSS Feed to fetch images from</span>
<span style="color: #007800;">RSS</span>=<span style="color: #ff0000;">&quot;http://backend.deviantart.com/rss.xml?q=boost%3Apopular+in%3Aphotography+max_age%3A8h&amp;amp;type=deviation&amp;amp;offset=0&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># random pool size</span>
<span style="color: #007800;">POOL_SIZE</span>=<span style="color: #000000;">10</span>
&nbsp;
<span style="color: #007800;">GCONF_URL</span>=<span style="color: #ff0000;">&quot;/desktop/gnome/background/picture_filename&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># checks if window manager is running</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">ps</span> <span style="color: #660033;">-U</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">whoami</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #660033;">-F</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> gnome-terminal <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> -l<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
&nbsp;
 <span style="color: #666666; font-style: italic;"># get dbus socket address</span>
 <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DBUS_SESSION_BUS_ADDRESS</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-z</span> <span style="color: #007800;">DBUS_SESSION_BUS_ADDRESS</span>= <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>$<span style="color: #7a0874; font-weight: bold;">&#40;</span>pgrep <span style="color: #660033;">-u</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(whoami)</span>&quot;</span> gnome-session<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">/</span>environ <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/DBUS_SESSION_BUS_ADDRESS=//'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
 <span style="color: #666666; font-style: italic;"># fetch images</span>
 <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">--user-agent</span> Mozilla<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">4.0</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-O</span> - <span style="color: #ff0000;">&quot;<span style="color: #007800;">$RSS</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">''</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-E</span> <span style="color: #660033;">-o</span> <span style="color: #660033;">-m</span> <span style="color: #000000;">5</span> <span style="color: #ff0000;">&quot;http://.*.(jpg|png|jpeg|gif)&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-q</span> <span style="color: #660033;">-N</span> <span style="color: #660033;">-P</span>  <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BG_PATH</span>&quot;</span> <span style="color: #660033;">--user-agent</span> Mozilla<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">4.0</span>
&nbsp;
 <span style="color: #666666; font-style: italic;"># get old image</span>
 <span style="color: #007800;">OLD_BG</span>=<span style="color: #000000; font-weight: bold;">`</span>gconftool-<span style="color: #000000;">2</span> <span style="color: #660033;">--get</span> <span style="color: #007800;">$GCONF_URL</span><span style="color: #000000; font-weight: bold;">`</span>
 <span style="color: #007800;">NEW_BG</span>=<span style="color: #007800;">$OLD_BG</span>
&nbsp;
 <span style="color: #000000; font-weight: bold;">until</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$OLD_BG</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #007800;">$NEW_BG</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #666666; font-style: italic;"># choose new image</span>
  <span style="color: #007800;">NEW_BG</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$BG_PATH</span>/<span style="color: #780078;">`ls -tr1 $BG_PATH | tail -$POOL_SIZE | head -$((($RANDOM%($POOL_SIZE-1))+1)) | tail -1`</span>&quot;</span>
 <span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
 <span style="color: #666666; font-style: italic;"># set new image</span>
 gconftool-<span style="color: #000000;">2</span> <span style="color: #660033;">--type</span> String <span style="color: #660033;">--set</span> <span style="color: #007800;">$GCONF_URL</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$NEW_BG</span>&quot;</span>
 <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$NEW_BG</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Mit &#8216;crontab -e&#8217; kannst du dann noch einen Cron Job hinzufügen, der dein Bild alle 10 Minuten wechselt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">SHELL</span>=<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span>
<span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
&nbsp;
<span style="color: #666666; font-style: italic;"># m h  dom mon dow   command</span>
<span style="color: #000000; font-weight: bold;">*/</span><span style="color: #000000;">10</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> deviant-background-changer</pre></div></div>

<p>Viel Spaß und nie mehr Langeweile! <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/From_my_memory_____1_by_my_shots.jpg"><img class="aligncenter size-full wp-image-588" title="From_my_memory_____1_by_my_shots" src="http://static.steffenvogel.de/wp-content/uploads/2009/11/From_my_memory_____1_by_my_shots.jpg" alt="From_my_memory_____1_by_my_shots" width="485" height="179" /></a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/02/08/deviantart-wallpapers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tiny DNS &amp; URL aka SDDNS</title>
		<link>http://www.steffenvogel.de/2010/01/25/sddns/</link>
		<comments>http://www.steffenvogel.de/2010/01/25/sddns/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:20:07 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[0l.de]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Domain Name System]]></category>
		<category><![CDATA[DynDNS]]></category>
		<category><![CDATA[eta.li]]></category>
		<category><![CDATA[Nameserver]]></category>
		<category><![CDATA[SDDNS]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Tiny]]></category>
		<category><![CDATA[TinyURL]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=552</guid>
		<description><![CDATA[Zusammen mit Micha besuchte ich Ende letzten Jahres das U23 des C4 in Köln. Dort habe ich viel über die Techniken des Internets gelernt. Unter anderem ging es hier auch um das Domain Name System, das für die Namensauflösung im Internet verantwortlich ist. Mittlerweile betreibe ich einen eigenen DNS Server für meine beiden Domains: 0l.de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.steffenvogel.de/wp-content/uploads/2010/01/favicon.ico.gzip"><img class="alignright size-full wp-image-649" title="favicon" src="http://static.steffenvogel.de/wp-content/uploads/2010/01/favicon.ico.gzip" alt="" width="115" height="115" /></a>Zusammen mit Micha besuchte ich Ende letzten Jahres das <a href="http://koeln.ccc.de/u23">U23 </a>des <a href="http://koeln.ccc.de/">C4 in Köln</a>.<br />
Dort habe ich viel über die Techniken des Internets gelernt. Unter anderem ging es hier auch um das <a href="http://de.wikipedia.org/wiki/Domain_Name_System">Domain Name System</a>, das für die Namensauflösung im Internet verantwortlich ist.</p>
<p>Mittlerweile betreibe ich einen eigenen DNS Server für meine beiden Domains: <a href="http://0l.de">0l.de</a> und <a href="http://eta.li">eta.li</a>. Rekursives Auflösen ist über diesen Server ebenso möglich. Ihr könnt ihn also geren auch benutzen: 83.169.1.58</p>
<p>Zudem biete ich euch <strong>kostenloses DNS Hosting</strong>. Gerne übernehme ich auch die DNS Administration eurer Domains. Jedoch könnt ihr sicherlich verstehen, dass ich euch dafür dann nichts garantieren kann.</p>
<p>Mit der Zeit habe ich ein Webinterface für den DNS Server Bind entwickelt auf das nun jeder Zugriff hat. Ihr könnt eigene Subdomains registrieren, Records setzen und URL Weiterleitungen einrichten. <strong>DynDns</strong> ist ebenso möglich.</p>
<p>Es ist auch möglich <strong>URLs zu verkürzen</strong> und so beispielsweise die URL:<br />
<a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=100237997621038330776.000468b0a95f89721a96e&amp;ll=18.646245,15.820313&amp;spn=120.933723,198.632813&amp;z=3">http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=100237997621038330776.000468b0a95f89721a96e&amp;ll=18.646245,15.820313&amp;spn=120.933723,198.632813&amp;z=3</a><br />
auf<br />
<a href="http://a.0l.de">http://a.0l.de</a></p>
<p>abzukürzen.  Das ist vergleichbar mit dem Service von <a href="http://tinyurl.com">TinyURL</a>. Jedoch sind meine URLs dann um 7 Zeichen kürzer <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Im Gegensatz TinyURL sind meine URLs auch nur über die Subdomains erreichbar. Eine direkte Unterscheidung zwischen eigenem DNS Record und einer simplen URL Weiterleitung ist also nicht möglich.</p>
<h1 style="text-align: center;"><a href="http://d.0l.de ">Service</a> &#8211; <a href="http://0l.de/projects/sddns/">Projekt Wiki</a></h1>
<p><span id="more-552"></span></p>
<h2>Bedienung</h2>
<p>Der Dienst besitzt ein <a href="http://0l.de/projects/sddns/usage">dokumentiertes</a> <a href="http://de.wikipedia.org/wiki/Programmierschnittstelle">API</a>. Durch ein <a href="http://d.0l.de/simple">einfaches Webinterface</a> ist es auch Anfängern möglich das Script zu bediehnen. Ein <a href="http://d.0l.de/expert">Expertenmodus</a> bietet dann noch fortgeschrittenen Usern den kompletten Zugriff auf das API.</p>
<p>Die Schnittstelle ist auch kompatibel zu den Update Clients des Marktführers <a href="http://dyndns.org/">DynDns.org</a>.</p>
<p>Das Verkürzen einer URL ist mit diesem einfachen <strong>Bookmarklet</strong> möglich:</p>
<p style="text-align: center;"><a href="javascript:u='http://d.0l.de/add.html?type=URL&#038;rdata='+encodeURIComponent(location.href);h=encodeURIComponent(window.getSelection().toString().replace(/[sx21x22x23x24x25x26x27x28x29x2Ax2Bx2Cx2Ex2Fx3Ax3Bx3Cx3Dx3Fx40x5Bx5Cx5Dx5Ex5Fx60x7Bx7Cx7Cx7Dx7E]+/gi,'-').replace(/^-+/,'').replace(/-+$/,''));if(!h){h=prompt('Subdomain','');}if(h){u+='&#038;host='+h;}location.href=u"><img class="size-full wp-image-650 aligncenter" title="bookmarklet" src="http://static.steffenvogel.de/wp-content/uploads/2009/12/bookmarklet.png" alt="" width="98" height="24" /></a></p>
<h2 style="text-align: left;">Technik</h2>
<p>Das komplette System besteht aus einem Webserver (Apache) mit PHP, einem Datenbankserver (MySQL) und dem DNS-Server (Bind9). Das PHP Script sorgt für die Syncronisation zwischen Datenbank und Nameserver. Dazu benutzt es das Kommandozeilen Tool &#8220;nsupdate&#8221; von Bind. Cron-Jobs sorgen regelmäßig für das Löschen von veralteten Records und URLs sowie die Konsistenz der Daten.</p>
<p>Das komplette System wurde nach modernen Paradigmen entworfen und ist vollständig objektorientiert implementiert. Das MVC Design-Pattern ermöglicht das einfache Erweitern um neue Komponenten.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2010/01/25/sddns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UNI-TREND UT61E Digital Multimeter</title>
		<link>http://www.steffenvogel.de/2009/11/29/uni-trend-ut61e-digital-multimeter/</link>
		<comments>http://www.steffenvogel.de/2009/11/29/uni-trend-ut61e-digital-multimeter/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 09:00:50 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Datenlogger]]></category>
		<category><![CDATA[DMM]]></category>
		<category><![CDATA[GNUplot]]></category>
		<category><![CDATA[Logger]]></category>
		<category><![CDATA[Messen]]></category>
		<category><![CDATA[Optokopler]]></category>
		<category><![CDATA[Plotter]]></category>
		<category><![CDATA[UNI-TREND]]></category>
		<category><![CDATA[UT61E]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=594</guid>
		<description><![CDATA[Seit ein paar Wochen habe ich schon nun mein neues Multimeter: ein UT61E von UNI-TREND. Bisher bin ich rundum zufrieden damit. Gekauft habe ich es über das Internet bei Pinsonne-Elektronik. Lieferung und Bezahlung verlief schnell und problemlos. Den Laden kann ich also nur weiterempfehlen. Ein besonderes Highlight der neuen Messgeräte ist die RS232 Schnittstelle für [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_598" class="wp-caption alignright" style="width: 209px"><a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/DSC00102.JPG"><img class="size-medium wp-image-598" title="DSC00102" src="http://static.steffenvogel.de/wp-content/uploads/2009/11/DSC00102-300x225.jpg" alt="Der Testaufbau" width="199" height="149" /></a><p class="wp-caption-text">Der Testaufbau</p></div>
<p>Seit ein paar Wochen habe ich schon nun mein neues Multimeter: ein <a href="http://www.pinsonne-elektronik.de/pi2/pd58.html">UT61E</a> von<a href="http://www.uni-trend.com/"> UNI-TREND</a>. Bisher bin ich rundum zufrieden damit. Gekauft habe ich es über das Internet bei <a href="http://www.pinsonne-elektronik.de/">Pinsonne-Elektronik</a>. Lieferung und Bezahlung verlief schnell und problemlos. Den Laden kann ich also nur weiterempfehlen.</p>
<p>Ein besonderes Highlight der neuen Messgeräte ist die RS232 Schnittstelle für die Auswertung am Rechner. Über diese per Optokopler isolierte Schnittstelle ist es möglich in aktuelle Messergebnisse am Rechner auszuwerten und weiter zu verarbeiten.</p>
<p>Leider haben die in China ansässigen Hersteller die Linux-Gemeinde aber mal wieder vergessen. Nach einigen Recherchen und etlichen Stunden später habe ich es dann jedoch geschafft ein kleines Tool für Linux zu entwickeln, welches mir die Messergebnisse im CSV Format liefert. In diesem Format kann ich sie nun in Open Office, MatLab und vielen anderen Programmen öffnen und auswerten.</p>
<p>Als besonderes Gimmick habe ich auch noch ein kleines Script geschrieben, das mit Hilfe <a href="http://www.gnuplot.info/">gnuplot </a>Graphen der Messergebnisse zeichnet. Diese werden dann 1-2 in der Sekunde aktualisiert. Mit einem Oszilloskop ist das jedoch lange noch nicht vergleichbar. Aber für Langzeit-Messungen durchaus sehr praktisch.</p>
<div id="attachment_595" class="wp-caption aligncenter" style="width: 310px"><a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/screenshot.png"><img class="size-medium wp-image-595" title="screenshot" src="http://static.steffenvogel.de/wp-content/uploads/2009/11/screenshot-300x192.png" alt="Die Live-Darstellung der Messergebnisse mit gnuplot" width="300" height="192" /></a><p class="wp-caption-text">die Live-Darstellung der Messergebnisse mit gnuplot</p></div>
<p>Ich bedanke mich bei <a href="http://www-user.tu-chemnitz.de/~heha/">Henrik Haftmann</a> für <a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/UT61E.txt.gzip">die detaillierte Beschreibung des Protokolls</a>, welche mir beim Entwickeln dieses Tools unheimlich geholfen hat.</p>
<p><strong>Update: </strong>Ich habe das Datenblatt es verwendeten IC&#8217;s gefunden. Es enthält auch eine Spezifikation des serielle Protokolls. <a href="/2011/01/25/inner-workings-of-uni-trend-ut61e-digital-multimeter/">Hier</a> geht es zum neuen Eintrag mit Bildern des Chips und der restlichen Platine.</p>
<p>Das Tool sowie das gnuplot Script habe ich hier <a href="http://static.steffenvogel.de/wp-content/uploads/2009/11/dmmut61e-0.01.tar.gz">in einem Archiv zusammengefasst</a>. Die Installation ist sicherlich nicht die einfachste. Aber die nötigen Kenntnisse setzte ich bei dieser Zielgruppe einfach mal voraus :p</p>
<p><strong>Achtung:</strong> Das Binary, das ich im Archiv beigelegt habe, ist für 64bit Linuxe kompiliert. Benötigt dafür aber keine weiteren dynamischen libs.</p>
<p>Anregungen, Patches und Bugreports sind per Mail immer willkommen.</p>
<p>Hier noch ein kleines Beispiel wie die Daten von meinem Tool ausgegeben werden. Für das Verständnis hilft sicherlich ein Blick in den Quelltext.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">1;0.0589;0.0589;0;0.0589;V;AC;Manual
2;0.07184;0.07184;0;0.06537;V;AC;Manual
3;0.12869;0.12869;0;0.0864767;V;AC;Manual
4;0.07876;0.12869;0;0.0845475;V;AC;Manual
5;0.06458;0.12869;0;0.080554;V;AC;Manual
6;0.09626;0.12869;0;0.0831717;V;AC;Manual
7;0.17355;0.17355;0;0.0960829;V;AC;Manual
8;0.17487;0.17487;0;0.105931;V;AC;Manual
9;0.13565;0.17487;0;0.109233;V;AC;Manual
10;0.10726;0.17487;0;0.109036;V;AC;Manual
11;0.16506;0.17487;0;0.114129;V;AC;Manual
12;0.14415;0.17487;0;0.116631;V;AC;Manual
13;0.15238;0.17487;0;0.119381;V;AC;Manual
14;0.17396;0.17487;0;0.123279;V;AC;Manual
15;0.11834;0.17487;0;0.12295;V;AC;Manual
16;0.2117;0.2117;0;0.128497;V;AC;Manual
17;0.18906;0.2117;0;0.132059;V;AC;Manual
18;0.17674;0.2117;0;0.134542;V;AC;Manual
19;0.08354;0.2117;0;0.131857;V;AC;Manual
20;0.053;0.2117;0;0.127915;V;AC;Manual
21;0.0688;0.2117;0;0.1251;V;AC;Manual
22;0.12796;0.2117;0;0.12523;V;AC;Manual
23;0.14954;0.2117;0;0.126287;V;AC;Manual
24;0.17535;0.2117;0;0.128331;V;AC;Manual
25;0.1381;0.2117;0;0.128722;V;AC;Manual
26;0.1588;0.2117;0;0.129878;V;AC;Manual
27;0.13258;0.2117;0;0.129979;V;AC;Manual
28;0.097;0.2117;0;0.128801;V;AC;Manual
29;0.04637;0.2117;0;0.125958;V;AC;Manual
30;0.06749;0.2117;0;0.124009;V;AC;Manual
31;0.09002;0.2117;0;0.122913;V;AC;Manual
32;0.07575;0.2117;0;0.121439;V;AC;Manual
33;0.0711;0.2117;0;0.119914;V;AC;Manual</pre></div></div>

<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2009/11/29/uni-trend-ut61e-digital-multimeter/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Live SVN &amp; Revision im Footer</title>
		<link>http://www.steffenvogel.de/2009/07/24/live-svn-revision-im-footer/</link>
		<comments>http://www.steffenvogel.de/2009/07/24/live-svn-revision-im-footer/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 02:13:17 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[checkout]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[post commit]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[revision]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=471</guid>
		<description><![CDATA[In diesem Post möchte ich euch mal kurz meinen Entwicklungsprozess am Beispiel der TuS Handball Website vorstellen. Fast alle meine Projekte befinden sich auf meinem eigenen SVN Server. Mittlerweile sind wir zu git gewechselt. Auch wenn ich meistens nur alleine an einem Projekt arbeite, bietet mir die Versionsverwaltung einige Vorteile: Entwicklungsfortschritt wird dokumentiert Backup der [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Post möchte ich euch mal kurz meinen Entwicklungsprozess am Beispiel der <a href="http://www.handball.griesm.de">TuS Handball Website</a> vorstellen.</p>
<p><del datetime="2010-08-17T12:38:46+00:00">Fast alle meine Projekte befinden sich auf meinem eigenen <a href="http://svn.griesm.de">SVN Server</a>.</del> Mittlerweile sind wir zu git <a href="http://www.steffenvogel.de/2010/08/17/git-scm/">gewechselt</a>.</p>
<p>Auch wenn ich meistens nur alleine an einem Projekt arbeite, bietet mir die Versionsverwaltung einige Vorteile:</p>
<ul>
<li>Entwicklungsfortschritt wird dokumentiert</li>
<li>Backup der Daten</li>
<li>Einfaches Auschecken der neuesten Version auf einem anderen Rechner</li>
<li>Wiederherstellen einer älteren Version (Revision)</li>
</ul>
<p>Auch das lästige Hochladen und Veröffentlichen der neusten Version auf dem Webserver wird überflüssig.</p>
<p>Mit einem &#8220;post-commit&#8221; Skript, welches im &#8220;hooks&#8221; Verzeichnis des SVN Repositories abgelegt werden muss, kann nach jedem Commit die aktuellste Version in ein vom WWW aus zugänglichen Ordner geupdated werden. Es ist nur einmalig nötig eine Version in das Webserververzeichnis auszuchecken:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>projectdir
<span style="color: #c20cb9; font-weight: bold;">svn</span> up</pre></div></div>

<p>Ein weiteres kleines Gimmick ist die Anzeige der aktuellen Revision im Footer der Website. Das lässt sich am einfachsten mit SVN Keywords bewerkstelligen. Diese Keywords werden beim Committen durch die aktuelle Revisionsnr, das Datum oder den User ersetzt. Mithilfe einer Regular Expression können die Keywords auf ihre wesentliche Information gekürzt werden:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(\d+)/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'$Revision: 4 $'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rev</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\((.*)\)/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'$Date: 2009-07-24 03:47:35 +0200 (Fr, 24 Jul 2009) $'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'CMS Revision: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$rev</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">' ('</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$date</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">')'</span><span style="color: #339933;">;</span></pre></div></div>

<p>Um das Ersetzen der Keywords zu aktivieren, müssen die entsprechenden SVN Properties gesetzten sein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> propset <span style="color: #c20cb9; font-weight: bold;">svn</span>:keywords <span style="color: #ff0000;">&quot;Date Revision&quot;</span> footer.php</pre></div></div>

<p><del datetime="2010-08-17T12:38:46+00:00">Das ganze könnt ihr in Aktion auf der TuS Handball Website betrachten!</del> Viel Spaß! Die Seite ist leider nicht mehr verfügbar.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2009/07/24/live-svn-revision-im-footer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenStreetMap &amp; N810</title>
		<link>http://www.steffenvogel.de/2008/12/21/openstreetmap-n810/</link>
		<comments>http://www.steffenvogel.de/2008/12/21/openstreetmap-n810/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 12:40:51 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Maemo Mapper]]></category>
		<category><![CDATA[N810]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=327</guid>
		<description><![CDATA[Vor ca. einem halben Monat berichtete ich euch bereits vom OpenStreetMap Projekt. Nun 18 Tage später war ich schon ein paar mal in Griesheim unterwegs und habe fleißig gemappt: Mittlerweile habe ich durch die Kälte und den ganzen Weihnachtsstress keine Zeit mehr gefunden. In ein paar Wochen werde ich dann der glückliche Besitzter eines Nokia [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ca. einem halben Monat <a href="../2008/12/03/openstreetmap/" target="_blank">berichtete ich euch bereits</a> vom OpenStreetMap Projekt.</p>
<p>Nun 18 Tage später war ich schon ein paar mal in Griesheim unterwegs und habe fleißig gemappt:</p>
<p style="text-align: center;">
<div id="attachment_625" class="wp-caption aligncenter" style="width: 310px"><a href="http://static.steffenvogel.de/wp-content/uploads/2008/12/griesheim.png"><img class="size-medium wp-image-625" title="griesheim" src="http://static.steffenvogel.de/wp-content/uploads/2008/12/griesheim-300x225.png" alt="Griesheim im OSM Mapper von ITO" width="300" height="225" /></a><p class="wp-caption-text">Griesheim im OSM Mapper von ITO</p></div>
<p style="text-align: left;">Mittlerweile habe ich durch die Kälte und den ganzen Weihnachtsstress keine Zeit mehr gefunden.</p>
<p style="text-align: left;"><span style="text-decoration: line-through;">In ein paar Wochen werde ich dann der glückliche Besitzter eines <a href="http://www.nokia.de/link?cid=PLAIN_TEXT_608497" target="_blank">Nokia N810</a> sein. Damit kann ich dann erstmals <a href="http://www.gnuite.com/nokia770/maemo-mapper/" target="_blank">unterwegs mappen</a> <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Die Funktionsvielfalt dieses kleinen Internet Tablet ist unbeschreiblich. Praktisch ist es ein fast kompletter Linux PC. Aber darüber werde ich aber später noch genug berichten können <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</span></p>
<p><strong>UPDATE</strong>:  Seit einer Woche bin ich ein stolzer Besitzer eines Nokia N810 Internet Tablet. Basierend auf einer Armel Architektur bietet dieser Winzling alle Features eines Linux PCs. Von der Leistung mal abgesehen. Das N810 verfügt auch über ein integriertes GPS und genug Speicher um alle nötigen Karten darauf zu speichern. So kann man es als Navi, Stadtführer usw. benutzen.</p>
<p>Das mittlerweile dritte Internet Tablet von Nokia benutzt wie seine Vorgänger das von Nokia unterstütze quelloffene Maemo als Betriebssystem. Der komplette Quellcode des Betriebsystems ist offen verfügbar.  Jeder kann daran mitarbeiten, Fehler fixen und neue Features hinzufügen.</p>
<p>Eine Warnung noch: Da das N810 auf Debian/Linux basiert ist es nicht ganz pflegeleicht <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Man sollte sich schon etwas mit Linux auskennen. Erst dann kann man auch den vollen Funktionsumfang ausnutzen, eigene Programme coden oder portieren.</p>
<p style="text-align: left;">Und noch eine kleine Anmerkung am Rande: seit ca. 1/2 Stunde läuft mein Blog mit der neuesten WP Version 2.7. Bis jetzt bin ich begeistert. Mit meinem N810 kann ich dann sogar <a href="http://maemo-wordpy.garage.maemo.org/" target="_blank">mobil bloggen</a>!</p>
<p style="text-align: left;">Ihr merkt sicher, ich bin über die dreiwöchigen Weihnachtsferien beschäftigt. Leider steht aber auch bald mein ABI an. Also werde ich wohl oder übel auch noch etwas pauken müssen <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/12/21/openstreetmap-n810/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radio Beitrag: Swing Jugend (Musik)</title>
		<link>http://www.steffenvogel.de/2008/09/22/radio-beitrag-swing-jugend-musik/</link>
		<comments>http://www.steffenvogel.de/2008/09/22/radio-beitrag-swing-jugend-musik/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 15:54:07 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Schule]]></category>
		<category><![CDATA[Audacity]]></category>
		<category><![CDATA[Benny Goodman]]></category>
		<category><![CDATA[günter discher]]></category>
		<category><![CDATA[Jazz]]></category>
		<category><![CDATA[RaDar]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[radio darmstadt]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[Swing Kids]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=252</guid>
		<description><![CDATA[Für unser derzeitiges Musikthema sollten wir einen Radiobeitrag zum Thema Jazz produzieren. Bastian Hauk und ich entschieden uns erst für den Jazz im 3. Reich. Nach einiger Recherchen spezialisierten wir uns auf die Swing Jugend. Zeitzeugen zu finden war schwer. Schließlich stießen wir auf den Swing Experten und Zeitzeugen Günter Discher, der früher in Hamburg [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-253" href="/2008/09/22/radio-beitrag-swing-jugend-musik/entartete_musik/"><img class="alignright size-medium wp-image-253" title="Entartete Musik" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/entartete_musik-201x300.jpg" alt="" width="119" height="178" /></a><a rel="attachment wp-att-254" href="/2008/09/22/radio-beitrag-swing-jugend-musik/swing_tanzen_verboten/"><img class="size-medium wp-image-254 alignleft" title="tanzen verboten" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/swing_tanzen_verboten-300x149.jpg" alt="" width="127" height="63" /></a>Für unser derzeitiges Musikthema sollten wir einen Radiobeitrag zum Thema Jazz produzieren.<br />
Bastian Hauk und ich entschieden uns erst für den Jazz im 3. Reich. Nach einiger Recherchen spezialisierten wir uns auf die <a href="http://de.wikipedia.org/wiki/Swingjugend">Swing Jugend</a>. Zeitzeugen zu finden war schwer. Schließlich stießen wir auf den Swing Experten und Zeitzeugen Günter Discher, der früher in Hamburg selbst Teil der Swing Jugend war. Leider bekamen wir kein Intervier und mussten so auf vorhandene Interviews auf CDs ausweichen. Insgesammt hat unser Kurs ca. 6 Interviews produziert, die wir nun an andere Schulen schicken wollen. Wenn rechtlich alles in Ordnung ist werden die Beiträge auch von <a href="http://www.radiodarmstadt.de/">Radio Darmstadt</a> gesendet <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2008/09/swing-jugend.mp3">Swing Jugend (Radio Beitrag (MP3 VBR))</a></p>
<p><span id="more-252"></span></p>
<p>Hier der Aufbau und Sprechtext:</p>
<blockquote><p>Radiobeitrag zum Thema Swing Jugend</p>
<p>von Basti Hauk und Steffen Vogel</p>
<p>1. Intro: Swing Kids original soundtrack &#8211; Shout And Feel It<br />
(0:00 &#8211; 0:36)<br />
2. Sprechtext 1 (Basti)<br />
(0:36 &#8211; 0:52)<br />
3. Sprechtext 2 (Steffen)<br />
(0:52 &#8211; 1:04)<br />
4. Swing Kids original soundtrack &#8211; Sing, Sing, Sing (With A Swing)<br />
(1:04 &#8211; 2:12)<br />
5. Sprechtext 3a (Basti)<br />
(2:12 &#8211; 2:28)<br />
6. Kommentar von Günter Discher zu Benny Goodman<br />
(2:28 &#8211; 3:05)<br />
7. Sprechtext 3b (Steffen)<br />
(3:05 &#8211; 3:36)<br />
8. Benny Goodman &#8211; Flat Foot Floogee<br />
(3:36 &#8211; 3:51)<br />
9. Überleitung zum Kommentar (Basti)<br />
(3:51 &#8211; 3:55)<br />
10. Kommentar von Günter Discher zu seinem Lieblingsong<br />
(3:55 &#8211; 4:17)<br />
11. Sprechtext 4 (Steffen)<br />
(4:17 &#8211; 4:37)<br />
12. Sprechtext 5 (Basti)<br />
(4:37 &#8211; 5:05)<br />
13. Outro: Benny Goodman &#8211; Goodnight, My Love<br />
(5:05 &#8211; 5:37)</p>
<p>Total: 5:37                   Justus-Liebig Gymnasium, Darmstadt, 22. September 2008</p>
<p>Sprechtexte:</p>
<p>1. Sie hörten Jazz, tanzten und feierten. Sie fragen sich um wen es geht?<br />
Na klar &#8211; um die Swing-Jugend. Diese Jugend suchte im amerikanischen &#8211; englischen Lebenstil eine<br />
Ausdrucksmöglichkeit, mit der sie ihre Unabhänigkeit während der NS-Zeit ausdrücken konnten.</p>
<p>2. Die Jugendlichen wollten auffallen und auch provozieren. Deswegen trugen die Jungen karrierte,<br />
weite und lange Sakkos, Anzüge und Mäntel.<br />
Das Outfit sollte schick und elegant wirken. Unverzichtbar waren die Accessoires Hut und Regenschirm.</p>
<p>3a. Dies war ein Song, wie man ihn auch auf Swing Parties hörte. Besonders beliebt waren Platten<br />
von Louis Amstrong, Ella Fitzgerald, Duke Ellington und Benny Goodman.<br />
Sie hören nun ein Statement von Günter Discher, einem Swing-Experten und Zeitzeugen aus Hamburg.</p>
<p>3b. Dazu tanzte man nach einem neuen, eigenen Stil. Viele Jugendliche musizierten auch selbst.<br />
Ihre Liebe zum Jazz war groß die Freude am Tanzen und Musizieren noch größer.<br />
Sie feierten rauschende Feste, auf denen bis zum Morgen getanzt wurde.<br />
Später waren es nur noch Parties im kleineren Rahmen. Für die Swing-Jugend<br />
bedeutete die Musik Unabhängikeit und Freiheit &#8211; grenzenlose Freiheit.<br />
Es war nicht einfach nur Musik, sondern ein Lebensgefühl.</p>
<p>Überleitung.<br />
Dies war der Lieblingsong von Günter Discher. Nun ein Kommentar dazu.</p>
<p>4. Das politische Deutschland veränderte sich seit 1933 radikal.<br />
Die Swing-Jugend blieb zunächst unpolitisch. Sie wollten sich lediglich abgrenzen.<br />
Abgrenzen von der Nationalsozialistischen Gesellschaft.<br />
Ihren Widerspruch drückten sie durch zivilem Ungehorsam aus. &#8220;Swing-Heil&#8221; wurde von manchen Jugendlichen in der Hitlerzeit<br />
als ironischer Gruß verwendet.</p>
<p>5. Die Swingmusik galt immer mehr als &#8220;entartete&#8221; und &#8220;undeutsche&#8221; Musik.<br />
Daran störten sich aber nicht viele Swing Jugendliche. Sie tanzten weiter, jetzt eben im privaten Rahmen.<br />
Die Liebe zum Swing sowie die offene Ausdrucksform ihres Lebenstils wurde zunehmend zum Verhängnis der Jugendlichen.<br />
Verbote, Verfolgungen und auch Deportationen waren die Folge.<br />
Viele Jugendliche verloren ihr Leben für ihre Liebe zum Jazz und der Swingmusik.</p></blockquote>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/09/22/radio-beitrag-swing-jugend-musik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://static.steffenvogel.de/wp-content/uploads/2008/09/swing-jugend.mp3" length="9027937" type="audio/mpeg" />
		</item>
		<item>
		<title>DIY &#8211; world smallest passive ethernet tap</title>
		<link>http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/</link>
		<comments>http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 15:32:32 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[Ethernet]]></category>
		<category><![CDATA[MITM]]></category>
		<category><![CDATA[sniffing]]></category>
		<category><![CDATA[tap device]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=205</guid>
		<description><![CDATA[Hello folks, this is my first english blog entry. Excuse me for my hopefully not so bad english During my reverse engeneering on the Terratec Noxon 2 Audio (read the past two blog posts) i had to sniff the network traffic between the Noxon and the Internet. First i just sniffed the wireless traffic with [...]]]></description>
			<content:encoded><![CDATA[<p>Hello folks,</p>
<p>this is my first english blog entry. Excuse me for my hopefully not so bad english <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>During my reverse engeneering on the Terratec Noxon 2 Audio (read the past two blog posts) i had to sniff the network traffic between the Noxon and the Internet.</p>
<p>First i just sniffed the wireless traffic with a simple ARP spoofing attack in my switched network.</p>
<p>But i couldn&#8217;t be sure wheather I sniffed the whole traffic or if I just missed some &#8220;intranet&#8221; traffic in my net.</p>
<p>After some internet research, i decided to build my own passive ethernet tap to do a MITM (man in  the middle) attack.</p>
<p><a href="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00035.jpg"><img class="aligncenter size-medium wp-image-208" title="dsc00035" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00035-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><span id="more-205"></span></p>
<p><a href="http://www.snort.org/docs/tap/">Snort</a> and <a href="http://geekslunch.com/glivh/ethernet_taps.html">Geekslunch</a> have excellent instructions for this. Geekslunch hosts also a very good <a href="http://geekslunch.com/glivh/ethernet_taps.html">paper</a> about receive only UTP calbes. Have a look on this!</p>
<p><strong>Note that you can only receive data from the connection. Injection is impossible with a passive tap!</strong></p>
<p>If you want do modify or inject packets you should use two network interfaces as a bridge.</p>
<p>For my tap I used two screened two-port RJ-45 connectors which I soldered together.</p>
<p>Finally here some pictures of my tap. It&#8217;s the smallest i found on the internet! It has a size of 4*3*1 centimeters!</p>

<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00030/' title='dsc00030'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00030-150x150.jpg" class="attachment-thumbnail" alt="dsc00030" title="dsc00030" /></a>
<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00034/' title='dsc00034'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00034-150x150.jpg" class="attachment-thumbnail" alt="dsc00034" title="dsc00034" /></a>
<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00035/' title='dsc00035'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00035-150x150.jpg" class="attachment-thumbnail" alt="dsc00035" title="dsc00035" /></a>
<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00036/' title='dsc00036'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00036-150x150.jpg" class="attachment-thumbnail" alt="dsc00036" title="dsc00036" /></a>
<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00037/' title='dsc00037'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00037-150x150.jpg" class="attachment-thumbnail" alt="dsc00037" title="dsc00037" /></a>
<a href='http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/dsc00038/' title='dsc00038'><img width="150" height="150" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/dsc00038-150x150.jpg" class="attachment-thumbnail" alt="dsc00038" title="dsc00038" /></a>

<p>At last a small tip if you want two sniff in both directions simultaneaously. For this you need two NICs. Link them together with the &#8220;bonding&#8221; kernel module. <a href="http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt">Here</a> is a little howto and the documentation.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/09/16/diy-world-smallest-passive-ethernet-tap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Noxon 2 Audio Interna</title>
		<link>http://www.steffenvogel.de/2008/09/12/noxon-2-audio-interna/</link>
		<comments>http://www.steffenvogel.de/2008/09/12/noxon-2-audio-interna/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 21:12:52 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[interna]]></category>
		<category><![CDATA[noxon]]></category>
		<category><![CDATA[protokoll]]></category>
		<category><![CDATA[sniffing]]></category>
		<category><![CDATA[Terratec]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=169</guid>
		<description><![CDATA[Nachdem ich mich im vorherigen Beitrag über die Verwendung des Noxons als Last.fm Client ausgelassen habe, werde ich mich diesmal tiefer in die Interna des Streaming Clients wagen. Genauer geht es um das Ersetzten / Erweitern der vTuner Stationsliste und das Hinzufügen eigener Services in das &#8220;My NOXON&#8221; bzw. &#8220;Podcasts&#8221; Menü. Firmwareimage Bei der Analyse [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich mich im vorherigen Beitrag über die Verwendung des Noxons als Last.fm Client ausgelassen habe, werde ich mich diesmal tiefer in die Interna des Streaming Clients wagen.</p>
<p>Genauer geht es um das Ersetzten / Erweitern der vTuner Stationsliste und das Hinzufügen eigener Services in das &#8220;My NOXON&#8221; bzw. &#8220;Podcasts&#8221; Menü.</p>
<p><a rel="attachment wp-att-194" href="/2008/09/12/noxon-2-audio-interna/noxon/"><img class="aligncenter size-full wp-image-194" title="noxon" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/noxon.gif" alt="" width="300" height="149" /></a> <span id="more-169"></span></p>
<h2>Firmwareimage</h2>
<p>Bei der Analyse des <a href="ftp://ftp.terratec.net/HomeEntertainment/NOXON2/">Firmwareimages</a> mit dem Hexeditor bin ich auf einige URLs gestoßen (Offset 3962E4). Diese scheinen zum Update der Stationslisten und Favoriten vorgesehen zu sein.</p>
<p><a rel="attachment wp-att-195" href="/2008/09/12/noxon-2-audio-interna/firmware/"><img class="aligncenter size-medium wp-image-195" title="firmware" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/firmware-300x187.jpg" alt="" width="300" height="187" /></a></p>
<p>Dabei scheint es zwei verschiedene Typen von URLs zu geben (dazu gleich mehr):</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">RadioNativeEntries
RadioNative01
	RootName Podcasts
	RootUrl http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/navXML.asp?gofile=S-ByLocation
	LoginUrl http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/loginXML.asp?token=0
	RetrieveFavsURL http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/FavXML.asp?empty=&amp;amp;sFavName=My%5F%5FFavorites
&nbsp;
RadioNative02
	RootName My NOXON
	RootUrl http://gatekeeper.my-noxon.net/RadioNative.php
	LoginUrl http://gatekeeper.my-noxon.net/RadioNativeLogin.php
	RetrieveFavsURL http://gatekeeper.my-noxon.net/RadioNativeFavorites.php
&nbsp;
RadioNative03
	RootName StarXed Services
	RootUrl http://starxed.homelinux.org/radionative-multi/index.xml
	LoginUrl http://noxonserver.de/RadioNativeLogin.php
	RetrieveFavsURL http://starxed.homelinux.org/radionative-multi/favs.php
&nbsp;
MultiRadioStationDB
MRSDB01
	UserFriendlyName Internet Radio
	url0 http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.asp</pre></div></div>

<p>Hier eine Kurze Beschreibung der zwei Typen:</p>
<ul>
<li>Es gibt eine dynamische Variante. Hier wird bei jedem Verzeichniswechsel innerhalb der &#8220;My NOXON&#8221; &amp; &#8220;Podcasts&#8221; Ordnerstruktur ein neuer Request für die untergeordnete Ordnerstruktur gesendet (RadioNativeEntries). Der dritte Service &#8220;StarXed Services&#8221; scheint deaktiviert worden zu sein. Die <a href="http://starxed.homelinux.org">URL</a> zeigt auf einen DynDns Account von Manfred Dreese, der Entwickler des Noxons.</li>
<li>Und es gibt die statische Stationsliste von <a href="http://vtuner.com/">vtuner.com</a> die etwa 10000 Stationen enthällt und meistens nur manuell geupdatet wird. Alle 10000 Stationen werden aufeinmal gesendet (ca. 5 MB). Die Stationen werden hierbei im Noxon gespeichert (MultiRadioStationDB).</li>
</ul>
<p>Jeder Service besitzt auch eine Backup URL die benutzt wird, falls der standart URL nicht erreichbar ist.</p>
<h2>Sniffing</h2>
<p>Ein Mitsniffen des Netzwerkverkehrs des Noxon 2 Audio via ARP Poisoning konnte meine Vermutungen bestätigen. Das Noxon sendet je nach dem in welchem Menü man sich befindet zu dem jeweiligen Server einen HTTP-GET Request. Daraufhin erhällt es eine XML codierte Anwort die, die Stationen oder SubDirectories enthällt. An die URL werden per GET einige User spezifische Daten gehängt (hier am Beispiel der statischen Liste):</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.asp
?mac=001b9e******				&amp;lt;= MAC Adresse des Clients
&amp;uid=C089E7AE6153F372B20EB7A5********
&amp;ver=EMPTY
&amp;xml=2.0
&amp;mime=audio/mpeg-url
&amp;sw=24.6392					&amp;lt;= Firmware Version
&amp;bl=6166					&amp;lt;= Bootloader Version
&amp;hw=158.0					&amp;lt;= Hardware Revision
&amp;up=13693
&amp;lang=ger					&amp;lt;= Sprache
&amp;st=15167
&amp;rel=0</pre></div></div>

<p>Die Antworten dieser beider Typen unterscheiden sich. Hier zwei Kurze Beispiele:</p>
<p>RadioNativeEntry (dynamische Services):</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;iso-8859-1&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;listofitems<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;itemtype<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Display<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/itemtype<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;display<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Your Streaming device is unknown! Please register at www.besonic.com!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/display<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;itemtype<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Dir<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/itemtype<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Demo playlists<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;urldir<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://gatekeeper.my-noxon.net/RadioNative.php?service=1<span style="color: #ddbb00;">&amp;node=playlist&amp;token=215385555997023&lt;/urldir&gt;</span>
<span style="color: #ddbb00;">		&lt;noaudiocontent&gt;true&lt;/noaudiocontent&gt;</span>
<span style="color: #ddbb00;">		&lt;urldirbackup&gt;&lt;/urldirbackup&gt;</span>
<span style="color: #ddbb00;">		&lt;bookmarkshow&gt;&lt;/bookmarkshow&gt;</span>
<span style="color: #ddbb00;">	&lt;/item&gt;</span>
<span style="color: #ddbb00;">	&lt;item&gt;</span>
<span style="color: #ddbb00;">		&lt;itemtype&gt;Station&lt;/itemtype&gt;</span>
<span style="color: #ddbb00;">		&lt;stationid&gt;&lt;/stationid&gt;</span>
<span style="color: #ddbb00;">		&lt;stationname&gt;Ellen_Klinghammer - Mess - live *sample*&lt;/stationname&gt;</span>
<span style="color: #ddbb00;">		&lt;stationurl&gt;http://webservices.besonic.com/audio/00-1b-9e-22-e9-ec/124122.mp3&lt;/stationurl&gt;</span>
<span style="color: #ddbb00;">		&lt;stationdesc&gt;&lt;/stationdesc&gt;</span>
<span style="color: #ddbb00;">		&lt;stationformat&gt;&lt;/stationformat&gt;</span>
<span style="color: #ddbb00;">		&lt;stationlocation&gt;&lt;/stationlocation&gt;</span>
<span style="color: #ddbb00;">		&lt;stationbandwidth&gt;&lt;/stationbandwidth&gt;</span>
<span style="color: #ddbb00;">		&lt;stationmime&gt;&lt;/stationmime&gt;</span>
<span style="color: #ddbb00;">		&lt;bookmark&gt;http://gatekeeper.my-noxon.net/RadioNative.php?service=10002&amp;node=21cb40ef2acb0b15e2eea1c731de4472&amp;token=08920a9358128a9&lt;/bookmark&gt;</span>
<span style="color: #ddbb00;">	&lt;/item&gt;</span>
<span style="color: #ddbb00;">&lt;/listofitems&gt;</span></pre></div></div>

<p>MultiRadioStationDB (statische Stationsliste):</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;iso-8859-1&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;station_db</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2008-09-10T11:00:50Z&quot;</span> <span style="color: #000066;">format_version</span>=<span style="color: #ff0000;">&quot;2.0&quot;</span> <span style="color: #000066;">station_count</span>=<span style="color: #ff0000;">&quot;11337&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;database_info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;format_version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/format_version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>vTuner<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;server_url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.asp<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/server_url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>PREMIUM<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/database_info<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;station_list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;station<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;station_name</span> <span style="color: #000066;">size_limit</span>=<span style="color: #ff0000;">&quot;off&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Last.fm Proxy<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/station_name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Just a Proxy for the Social Music Network Last.fm<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bw<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>96<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bw<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://87.230.33.74:[port]/lastfm.mp3?pw=[pw]<span style="color: #ddbb00;">&amp;amp;</span>user=[user]<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mime_type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>m3u<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mime_type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/station<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/station_list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;directory_list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dir</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Internet Radio&quot;</span> <span style="color: #000066;">subdir_count</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">station_count</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dir<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;dir</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Dir&quot;</span> <span style="color: #000066;">subdir_count</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">station_count</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dir<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;dir</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Subdir&quot;</span> <span style="color: #000066;">subdir_count</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">station_count</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
					<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;station<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/station<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dir<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/directory_list<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/station_db<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h2>Stations Liste modifizieren</h2>
<p>Die Antwort der statischen Liste besitzt jedoch im Zweig &lt;station_db&gt; -&gt; &lt;database_info&gt; ein Element &lt;server_url&gt; das die URL des Requests enthällt.</p>
<p>Durch DNS Spoofing ist es mir gelungen die Anfrage an <a href="http://www.radio579.com ">www.radio579.com </a>auf einen eigenen Server umzuleiten und so eine eigene Stationsliste ins Noxon zu laden. Ändert man in der eigenen Antwort den Inhalt des &lt;server_url&gt; Elements wird das DNS Spoofing für künftige Updatevorgänge überflüssig. Das Noxon speichert die empfange Server URL intern und greift später wieder darauf zurück, wenn es die Liste wieder updaten möchte. Erst nach einem Firmwareupdate / Reset wird wieder vom vTuner Server geupdated.</p>
<h2>Service hinzufügen</h2>
<p>Die URL der drei &#8220;RadioNative&#8221;-Eintrage lassen sich ohne Firmwaremodifikation nicht so einfach ändern. Die Verwaltung der Einträge im &#8220;Podcasts&#8221;-Menü läuft wieder über vTuner. Die Einträge im &#8220;my NOXON&#8221;-Menü werden über die <a href="http://www.my-noxon.net">my-noxon.net Website</a> geupdated und verwaltet. Manfred Dreese, der Entwickler des Noxons, hat auf seiner <a href="http://dreese.de/raw2/Projekte/page18/page18.html">Website</a> ein inoffizielles Projekt für die Integration des Ampache Medienservers ins Noxon Menü veröffentlicht. Die in diesem Projekt enthaltene PHP Klasse lassen sich durch entsprechende Modifikationen auch für die Integration eigener Menüs verwenden. Die angesprochene Klasse trägt den eigenen Service mit einer entsprechenden URL auf der my-noxon.net Webseite ein. Alles was innerhalb des eigenen Services angezeigt wird, läuft über die eigene URL.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/09/12/noxon-2-audio-interna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://webservices.besonic.com/audio/00-1b-9e-22-e9-ec/124122.mp3" length="0" type="audio/mpeg" />
		</item>
		<item>
		<title>Last.fm &amp; Noxon Audio 2</title>
		<link>http://www.steffenvogel.de/2008/09/12/lastfm-noxon-audio-2/</link>
		<comments>http://www.steffenvogel.de/2008/09/12/lastfm-noxon-audio-2/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 15:07:51 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[noxon]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[Terratec]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=156</guid>
		<description><![CDATA[Anlässlich meines 8000. &#8220;gescrobbeltetn&#8221; Tracks auf www.last.fm habe ich mich entschlossen mal etwas über dieses Social-Music Netzwerk zu berichten. Die Philosophie und der Aufbau von Last.fm ist in Wikipedia näher beschrieben. Meistens höre ich die Radio Streams von Last.fm über mein Terratec Noxon 2 Audio. Dieser Hardware Audiostreaming Client bietet standardmäßig keine Möglichkeit das proprietäre [...]]]></description>
			<content:encoded><![CDATA[<p>Anlässlich meines 8000. &#8220;gescrobbeltetn&#8221; Tracks auf <a href="http://www.last.fm" target="_blank">www.last.fm</a> habe ich mich entschlossen mal etwas über dieses Social-Music Netzwerk zu berichten.</p>
<div id="attachment_157" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-157" href="/2008/09/12/lastfm-noxon-audio-2/lastfm/"><img class="size-medium wp-image-157" title="Last.fm Profil" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/lastfm-300x177.jpg" alt="mein Last.fm Profil vom 9.9.08" width="300" height="177" /></a><p class="wp-caption-text">mein Last.fm Profil vom 9.9.08</p></div>
<div id="attachment_200" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-200" href="/2008/09/12/lastfm-noxon-audio-2/p1020675/"><img class="size-medium wp-image-200" title="p1020675" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/p1020675-300x200.jpg" alt="Last.fm auf dem Noxon 2 Audio" width="300" height="200" /></a><p class="wp-caption-text">Last.fm auf dem Noxon 2 Audio</p></div>
<p>Die Philosophie und der Aufbau von Last.fm ist in Wikipedia <a href="http://de.wikipedia.org/wiki/Last.fm">näher</a> beschrieben.</p>
<p>Meistens höre ich die Radio Streams von Last.fm über mein <a href="http://www.terratec.net/de/produkte/noxon.html">Terratec Noxon 2 Audio</a>.<br />
Dieser Hardware Audiostreaming Client bietet standardmäßig keine Möglichkeit das proprietäre Streamingformat von Last.fm wiederzugeben. Dazu ist eigentlich der Last.fm Player nötig.<br />
Dieser ist für diverse Plattformen verfügbar (Mac, Linux, iPhone und Windows).<br />
<span id="more-156"></span><br />
Um den Stream auf einen Standard Streaming Client zu senden ist der <a href="http://vidar.gimp.org/lastfmproxy/">Last.fm Proxy</a> von Vidar Madsen nötig. Dieser dient als Gateway zu den Last.fm Servern. Er wandelt den Stream in einen MP3 Stream und sendet in an das Noxon oder auch jeden anderen Hardware Streaming Client.<br />
Über ein Webinterface lässt sich der Stream steuern. Aktuelle Titelinformationen werden über den Stream übertragen und auf dem Webinterface angezeigt.</p>
<p>Um nun den Stream auch mit ausgeschaltetem PC hören zu können ist ein externer Server nötig, der als Proxy für den Audiostream fungiert. Dazu benutzte ich einfach meinen VServer. Dieser besitzt bei weitem genug Rechenleistung. Und solange man nur alleine den Proxy benutzt hält sich auch der Traffic in Grenzen (jeweils ca. 150 kbit/s für den up und down Stream). Eine weitere Verteilung der Inhalte an Dritte ist auch durch die Nutzungsbedingungen von Last.fm nicht gestattet. Deswegen habe ich meinen Stream etwas versteckt und noch zusätzlich mit einem Passwort geschützt.</p>
<p>Dazu habe ich einen kleinen <a href="http://static.steffenvogel.de/wp-content/uploads/2008/09/http_basic_auth_mainpy.patch">Patch</a> erstellt. Leider habe ich erst nach dem Anpassen des Codes festgestellt, dass mein Noxon die HTTP Basic Authentifizierung nach <a href="http://tools.ietf.org/html/rfc2617">RFC 2617</a> nicht unterstützt. Auch die sonst übliche Schreibweise:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">user:passwort@host</pre></div></div>

<p>wurde nicht akzeptiert. Schade Terratec das ist leider wieder ein Minuspunkt <img src='http://static.steffenvogel.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p><a rel="attachment wp-att-193" href="/2008/09/12/noxon-2-audio-interna/startproxy/"><img class="aligncenter size-full wp-image-193" title="startproxy" src="http://static.steffenvogel.de/wp-content/uploads/2008/09/startproxy.jpg" alt="" width="500" height="104" /></a></p>
<p>So habe ich den Patch gleich erweitert. Nun ist die Authentifizierung per RFC 2617 oder über die zwei GET Parameter &#8220;pw&#8221; und &#8220;user&#8221; möglich. Hier noch eine Beispiel URL:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">http://[Proxy IP]:[Proxy Port]/lastfm.mp3?pw=[last.fm Passwort]&amp;amp;user=[last.fm User]</pre></div></div>

<p>Da sind wir aber auch schon beim nächsten Problem gelandet. Das Webinterface vom Noxon akzeptiert die zusätzlichen GET Parameter nicht. Sie werden einfach stillschweigend abgeschnitten. Die Lösung ist aber nicht weit: Das Webfrontend auf <a href="http://www.radio567.com">www.radio567.com</a> akzeptiert sie.</p>
<p>Zusätzlich zu dem Passwortschutz könnt ihr den Proxy auch auf einem anderen Port laufen lassen. Dazu müsst ihr einfach die Konfigurationsdatei des Proxies anpassen.</p>
<p>Viel Spaß beim Streamen!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/09/12/lastfm-noxon-audio-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Neue IP für die Fritz Box</title>
		<link>http://www.steffenvogel.de/2008/05/25/neue-ip-fur-die-fritz-box/</link>
		<comments>http://www.steffenvogel.de/2008/05/25/neue-ip-fur-die-fritz-box/#comments</comments>
		<pubDate>Sun, 25 May 2008 11:36:49 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[7270]]></category>
		<category><![CDATA[AVM]]></category>
		<category><![CDATA[Box]]></category>
		<category><![CDATA[DECT]]></category>
		<category><![CDATA[Fon]]></category>
		<category><![CDATA[Fritz]]></category>
		<category><![CDATA[UPNP]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=79</guid>
		<description><![CDATA[Vor ein paar Wochen veröffentlichte ich erst den letzten Eintrag zu diesem Thema. Damals aber noch zu unserem ZyXel Router, der mittlerweile den Geist aufgegeben hat. Also musste schleunigst ein neuer Router her. Wir entschieden uns für die neue FRITZ!Box Fon WLAN 7270. Dieser Router übernahm auch gleich die Funktion unserer alten DECT Telefonanlage. Aber [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Wochen veröffentlichte ich erst den <a href="/2007/11/19/neue-ip-fur-zyxel-router-mit-curl/">letzten Eintrag</a> zu diesem Thema. Damals aber noch zu unserem ZyXel Router, der mittlerweile den Geist aufgegeben hat.</p>
<p>Also musste schleunigst ein neuer Router her. Wir entschieden uns für die neue <a href="http://www.avm.de/de/Produkte/FRITZBox/FRITZ_Box_Fon_WLAN_7270/index.html">FRITZ!Box Fon WLAN 7270</a>. Dieser Router übernahm auch gleich die Funktion unserer alten DECT Telefonanlage.</p>
<p>Aber nun zu dem Skript. Die Fritz Box lässt sich leichter zu einer neuen IP Adresse bewegen. Hier genügt eine einfache UPNP Anfrage:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
curl <span style="color: #ff0000;">&quot;http://fritz.box:49000/upnp/control/WANIPConn1&quot;</span> <span style="color: #660033;">-H</span> <span style="color: #ff0000;">'Content-Type: text/xml; charset=&quot;utf-8&quot;'</span> <span style="color: #660033;">-H</span> <span style="color: #ff0000;">'SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination'</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">'     '</span></pre></div></div>

<p>Dieses Script funktioniert mit der Fritz Box 7270 und wahrscheinlich auch anderen Fritz Boxen.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/05/25/neue-ip-fur-die-fritz-box/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My perfect coding setup</title>
		<link>http://www.steffenvogel.de/2008/05/25/my-perfect-coding-setup/</link>
		<comments>http://www.steffenvogel.de/2008/05/25/my-perfect-coding-setup/#comments</comments>
		<pubDate>Sun, 25 May 2008 11:15:00 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Setup]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=71</guid>
		<description><![CDATA[Irgendwie komme ich einfach nicht zum Programmieren. Die vielen Konfigurationsmöglichkeiten und Plugins von Eclipse faszinieren mich einfach zu sehr. Die letzten Tage habe ich damit verbracht mir ein schönes IDE zusammenzustellen. Zusammen mit meinem VServer ist daraus ein ziemlich komfortables und hoffentlich produktives System entstanden. Hier ein kurzer Überblick über die eingesetzte Software: Eclipse (Europa): [...]]]></description>
			<content:encoded><![CDATA[<p>Irgendwie komme ich einfach nicht zum Programmieren. Die vielen Konfigurationsmöglichkeiten und Plugins von Eclipse faszinieren mich einfach zu sehr.</p>
<p>Die letzten Tage habe ich damit verbracht mir ein schönes IDE zusammenzustellen. Zusammen mit meinem VServer ist daraus ein ziemlich komfortables und hoffentlich produktives System entstanden.</p>
<p>Hier ein kurzer Überblick über die eingesetzte Software:</p>
<p>Eclipse (Europa):</p>
<ul>
<li> Subversive</li>
<li>AVR-Eclipse</li>
<li>Mylyn</li>
<li>PDT</li>
<li>WST</li>
<li>JST</li>
<li>QT</li>
<li>CDT</li>
<li>JSEclipse</li>
<li>DTP</li>
<li>JDT</li>
<li>RSE</li>
<li>SQL Explorer</li>
<li>Clay Database</li>
</ul>
<p>Server:</p>
<ul>
<li>Trac 10.3</li>
<li>SVN 1.4</li>
</ul>
<p>Anfangs benutzte ich noch Zend Studio zum Programmieren. Nachdem auch Zend nun ihre IDE auf dem Eclipse Framework aufbaut (Zend Neon) habe ich mich entschieden auch auf ein Eclipse und damit Open Source basiertes System zu wechseln.</p>
<p>Nun habe ich alles unter einem Hut und eine immense Funktionsvielfalt. Früher musste ich für 2-3 verschiedenen IDEs die Bedienung und Shortcuts lernen. Nun ist alles einheitlich.</p>
<p>Besonders beindruckt bin ich von der Teamfähigkeit von Eclipse mit Mylyn, SVN &amp; CVS wird das Entwickeln im Team zum Kinderspiel.</p>
<p>Auch wenn ich meistens alleine an einem Projekt arbeite, haben Tools wie SVN, CVS und Mylyn extrem viele Vorteile, die ich nur zu gerne mal im Team nutzen würde.</p>
<p><strong>Update:</strong> Mittlerweile sind wir zu git <a href="../2010/08/17/git-scm/">gewechsel</a>.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/05/25/my-perfect-coding-setup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dell Latitude D630 ist da!</title>
		<link>http://www.steffenvogel.de/2008/05/12/dell-latitude-d630-ist-da/</link>
		<comments>http://www.steffenvogel.de/2008/05/12/dell-latitude-d630-ist-da/#comments</comments>
		<pubDate>Mon, 12 May 2008 01:38:32 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Neu]]></category>
		<category><![CDATA[RAM]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/?p=72</guid>
		<description><![CDATA[In den vergangenen Osterferien habe ich jeden Tag um die Ankunft meines neuen Laptops gefiebert. Als er dann sechs Tage verfrüht bei mir auf dem Tisch lag freute ich mich riesig. Hier ein Kompliment an Dell. Diese pessimistische Lieferzeiteinschätzung ist wirklich eine gute Marketing Strategie. Meine ersten Erfahrungen mit dem D630 unter Debian Etch waren [...]]]></description>
			<content:encoded><![CDATA[<p>In den vergangenen Osterferien habe ich jeden Tag um die Ankunft meines neuen Laptops gefiebert. Als er dann sechs Tage verfrüht bei mir auf dem Tisch lag freute ich mich riesig. Hier ein Kompliment an Dell. Diese pessimistische Lieferzeiteinschätzung ist wirklich eine gute Marketing Strategie.</p>
<p>Meine ersten Erfahrungen mit dem D630 unter Debian Etch waren grauenvoll. Anfange lief gar nichts. Erst nach mehreren Stunden konnte ich die wichtigsten Komponenten zum Laufen bringen.</p>
<p>Meine Rettung war die neue LTS (Long Term Support) Version von Ubuntu, Hardy Heron. die fast zeitgleich mit dem Eintreffen meines Laptops veröffentlicht wurde.</p>
<p><strong>Zu Ubuntu gibt es nicht viel zu sagen: Es läuft einfach alles!</strong></p>
<p>Und das nach ca. 20 minütiger Installation, ohne weitere Konfiguration.</p>
<p><span id="more-72"></span></p>
<p>Nachdem sich dieser Eintrag nun schon ein paar Wochen im Entwurfsstadium befand, kann ich euch auch gleich meine Empfehlung/Kritik verkünden.</p>
<p>Insgesamt bin ich sehr zufrieden mit dem Laptop. Die Hardware ist super verarbeitet und sehr robust. Für Spiele-Fans und Multimedia-Junkies ist er aber sicherlich ungeeignet. Eine schwache Grafikkarte sowie die fehlenden Multimediaanschlüsse (DVI, SPDIF, S-Video, FBAS) weisen ihn hier als reinen Business-Laptop aus, der sich im Alltag eines Schülers/Student aber recht gut beweisen kann. Leider wurde der Preis eigentlich nur durch die großzügigen Angebote gerechtfertigt.</p>
<p>Die Kompatibilität unter Linux ist sehr gut. Bis auf das Kabelmodem wird alles unterstützt. Auch Details wir die Hintergrundbeleuchtung wurden gut implementiert. ACPI wird voll unterstützt und integriert sich unter Ubuntu Linux gut ins System.</p>
<p style="text-align: center;"><a href="http://static.steffenvogel.de/wp-content/uploads/2008/05/energie.jpg"><img class="alignnone size-medium wp-image-73 aligncenter" title="Energie Diagramm" src="http://static.steffenvogel.de/wp-content/uploads/2008/05/energie-300x175.jpg" alt="Gnome ACPI Unterstützung des Dell D630" width="300" height="175" /></a></p>
<p>Die Aufrüstung des RAM von 1GB auf 2GB war problemlos möglich. Bestellt man den D630 bei Dell mit nur einem Speicherriegel, so verbaut Dell diesen unter die Tastatur. Der Slot für den zweiten Riegel befindet sich auf der Unterseite des Laptops und ist dort ziemlich leicht zu erreichen.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2008/05/12/dell-latitude-d630-ist-da/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>neue IP für Zyxel Router mit curl</title>
		<link>http://www.steffenvogel.de/2007/11/19/neue-ip-fur-zyxel-router-mit-curl/</link>
		<comments>http://www.steffenvogel.de/2007/11/19/neue-ip-fur-zyxel-router-mit-curl/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 16:43:12 +0000</pubDate>
		<dc:creator>Steffen Vogel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Freehoster]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[reset]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[Zyxel]]></category>

		<guid isPermaLink="false">http://www.steffenvogel.de/2007/11/19/neue-ip-fur-zyxel-router-mit-curl/</guid>
		<description><![CDATA[Einige dürften das Problem gut genug kennen: Viele Filehoster begrenzen den Downloadtraffic einer IP auf wenige hundert Megabytes pro Tag. Um diese Begrenzung zu umgehen bedarf es einer neuen IP. Hier zeigt sich der wohl einzigste Vorteil der dynamischen IP Adressen für Privatkunden. Die begrenzte Verfügbarkeit von IP Adressen zwingt die Accessprovider die IP Adressen [...]]]></description>
			<content:encoded><![CDATA[<p>Einige dürften das Problem gut genug kennen: Viele Filehoster begrenzen den Downloadtraffic einer IP auf wenige hundert Megabytes pro Tag. Um diese Begrenzung zu umgehen bedarf es einer neuen IP. Hier zeigt sich der wohl einzigste Vorteil der dynamischen IP Adressen für Privatkunden. Die begrenzte Verfügbarkeit von IP Adressen zwingt die Accessprovider die IP Adressen dynamisch aus einem Pool an die Router zu verteilen. Bei einem erzwungenen Reconnect ändert sich die IP Adresse dann mindestens jeden Tag einmal. Diese Dauer ist aber nur nach oben begrenzt. Prinzipiell wäre es möglich seine IP Adresse jede 10 Minuten zu ändern. Oder wenn das Downloadlimit des Filehosters erreicht wurde. Dazu bedarf es normalerweise ein paar Klicks im Adminmenü des Routers. Für das &#8220;Arcor-DSL WLAN-Modem 100&#8243; hinter dem sich ein Zyxel Prestige HW660 verbirgt habe ich folgendes Bashscript geschrieben.</p>
<p><span id="more-52"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">IP</span>=192.168.1.1
<span style="color: #007800;">USER</span>=admin
<span style="color: #007800;">PW</span>=<span style="color: #7a0874; font-weight: bold;">&#91;</span>passwort<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
<span style="color: #007800;">OLD_IP</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>checkip.dyndns.org<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-O</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>stdout <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">&quot;s/.*Current IP Address: \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Alte IP: <span style="color: #007800;">$OLD_IP</span>&quot;</span>
curl http:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #007800;">$USER</span>:<span style="color: #007800;">$PW</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #007800;">$IP</span><span style="color: #000000; font-weight: bold;">/</span>Forms<span style="color: #000000; font-weight: bold;">/</span>DiagADSL_1 <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;LineInfoDisplay=&amp;amp;DiagDSLDisconnect=PPPoE+Trennung&quot;</span>
<span style="color: #007800;">NEW_IP</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>checkip.dyndns.org<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-O</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>stdout <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">&quot;s/.*Current IP Address: \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Neue IP: <span style="color: #007800;">$NEW_IP</span>&quot;</span></pre></td></tr></table></div>

<p>In dem Bashscript muss noch das Routerpasswort angepasst werden. Eventuell muss auch noch die IP Adresse und der User korrigiert werden. Für einen vorkonfigurierten Router sind die Angaben bereits korrekt. Das ganze habe ich mir dann noch mit einem Starter ins Gnomemenü gelegt.</p>
<p>Für andere Routertypen gibt es hier ähnliche Scripts: <a href="http://www.paehl.de/reconnect/">http://www.paehl.de/reconnect/</a>.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.steffenvogel.de/2007/11/19/neue-ip-fur-zyxel-router-mit-curl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: www.steffenvogel.de @ 2012-02-07 14:56:53 by W3 Total Cache -->
