<?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>Daten&#124;teiler</title>
	<atom:link href="http://www.datenteiler.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.datenteiler.de</link>
	<description>Kopieren als Kulturtechnik</description>
	<lastBuildDate>Thu, 11 Mar 2010 19:11:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Xubuntu und PulseAudio</title>
		<link>http://www.datenteiler.de/xubuntu-und-pulseaudio/</link>
		<comments>http://www.datenteiler.de/xubuntu-und-pulseaudio/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 18:46:15 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3935</guid>
		<description><![CDATA[In meinem Posting Das Hercules EC-800 und Xubuntu 3 habe ich mich noch gefragt, warum Audacious2 nicht mit dem PulseAudio-Plugin zusammenarbeitet, und man unter Einstellungen -> Audio (Strg + P) als aktives Ausgabe-Plugin ALSA wählen muss. Die Lösung liegt mal wieder irgendwie auf der Hand: PulseAudio ist unter Xubuntu nicht standardmäßig installiert. Die Installation von [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem Posting <a href="http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-3/">Das Hercules EC-800 und Xubuntu 3</a> habe ich mich noch gefragt, warum Audacious2 nicht mit dem <em>PulseAudio-Plugin</em> zusammenarbeitet, und man unter <strong>Einstellungen -> Audio (Strg + P)</strong> als aktives Ausgabe-Plugin ALSA wählen muss. <a href="http://www.ubuntu-center.de/1488/umstieg-auf-xubuntu/">Die Lösung</a> liegt mal wieder irgendwie auf der Hand: PulseAudio ist unter Xubuntu nicht standardmäßig installiert. Die Installation von PulseAudio kann man aber im Terminal nachholen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> pulseaudio gstreamer0.10-pulseaudio pulseaudio-utils gnome-media</pre></div></div>

<p>Wenn <em>Gnome-Media</em> zusätzlich installiert wird, hat man noch den Vorteil, dass ein neues Icon von PulseAudio im Benachrichtigungsfeld erscheint, mit dem die Lautstärke flexibler gesteuert werden kann. Das alte Lautsprecher-Icon von XFCE kann dann entfernt werden. In Audacious2 sollte man von ALSA wieder auf das PulseAusio-Plugin umgeschwenken.</p>
<p>Die kleinen schwarzen Popups rechts oben, auch <em>notify-osd</em> genannt, stören jetzt beim Lauter und Leiser stellen vor allem auf so kleinen Bildschirmen wie dem vom <a href="http://www.amazon.de/gp/product/B001DMS79K?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=B001DMS79K">Hercules</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=B001DMS79K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> extrem. Wenn man sie so wie ich ins Jenseits schicken möchte, tippt man folgenden Befehl ins Terminal ein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>dbus-<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>services<span style="color: #000000; font-weight: bold;">/</span>org.freedesktop.Notifications.service <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>dbus-<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span>services<span style="color: #000000; font-weight: bold;">/</span>org.freedesktop.Notifications.service.disabled</pre></div></div>

<p>Nach dem nächsten Neustart sind sie dann verschwunden und bedecken nicht mehr den halben Bildschirm, wenn man etwas an der Lautstärke dreht.</p>
<p>Außerdem sollte man darauf achten, dass unter <strong>Einstellungen -> Audio (Strg + P)</strong> der <a href="http://blog.atari-frosch.de/2010/03/07/alsa-als-cpu-fresser/">Sampling Rate Converter nicht aktiv ist</a>, da er sehr viel CPU verbraucht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/xubuntu-und-pulseaudio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobiles Python III &#8211; ein simpler Vokabeltrainer</title>
		<link>http://www.datenteiler.de/mobiles-python-iii-ein-simpler-vokabeltrainer/</link>
		<comments>http://www.datenteiler.de/mobiles-python-iii-ein-simpler-vokabeltrainer/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 11:30:41 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3821</guid>
		<description><![CDATA[Mit Python auf einem Nokia-Handy mit S60-Plattform herumzuspielen, macht einfach Spaß. Außerdem kann man sich damit gut die Zeit vertreiben, wenn es an der Supermarktkasse wieder etwas länger dauert, oder man untätig in der  Bahn sitzt. Vor gut 3 Jahren habe ich im ersten Teil beschrieben, wie man Python auf dem Handy installiert. Geändert [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Python auf einem Nokia-Handy mit S60-Plattform herumzuspielen, macht einfach Spaß. Außerdem kann man sich damit gut die Zeit vertreiben, wenn es an der Supermarktkasse wieder etwas länger dauert, oder man untätig in der  Bahn sitzt. Vor gut 3 Jahren habe ich im <a href="http://www.datenteiler.de/mobiles-python/">ersten Teil</a> beschrieben, wie man Python auf dem Handy installiert. Geändert hat sich an der Installation seit damals nicht viel (s.u. &#8220;Exkurs: Installation von PyS60&#8243;), außer dass <em>Python for S60</em> mittlerweile in der Version 1.4.5 vorliegt, aber immer noch Python 2.2.2 verwendet wird, und ich mittlerweile ein <a href="http://www.amazon.de/gp/product/B001CZJHGU?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=B001CZJHGU">Nokia E71</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=B001CZJHGU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> habe. Im <a href="http://www.datenteiler.de/mobiles-python-ii/">zweiten Teil</a> habe ich beschrieben, wie man die Bluetooth-Konsole unter Gnu/Linux einrichtet. Der Vorteil von der Bluetooth-Konsole ist, dass man in der Python-Shell seines Gnu/Linux-Rechners arbeitet und die Anweisungen per Funk an das Telefon weitergereicht und dort ausgeführt werden. Doch was nützt die schönste Spielerei, wenn man nicht ein kleines Projekt hat?</p>
<p><span id="more-3821"></span></p>
<p><strong>Die Voraussetzung</strong></p>
<p>Zur Zeit probiere ich etwas mit der relationalen Datenbank herum, die über das Modul <code>anydbm</code> eingebunden werden. Dabei ist <a href="http://docs.python.org/library/anydbm.html"><code>anydbm</code></a> nur eine Fassade, eine Schnittstelle zu verschiedenen Varianten von DBM-artigen Datenbanksystemen. Sollte dabei kein Datenbank-Modul verfügbar sein, wird das etwas langsame Modul <code>dumbdbm</code> benutzt. Bei PyS60 verbirgt sich hinter der Fassade das Modul <code><a href="http://wiki.forum.nokia.com/index.php/Database_in_PyS60">e32dbm</a></code>, welches man auch direkt laden könnte, allerdings auf Kosten der Plattformunabhängigkeit.</p>
<p>Ein Datenbankobjekt erzeugt man mit der Funktion <code>open()</code>, das man wie ein <a href="http://docs.python.org/tutorial/datastructures.html">Dictionary</a> verwenden kann, allerdings gibt es Einschränkungen:</p>
<ul>
<li>Schlüssel und zugeordneter Wert dürfen nur vom Typ <em>String</em> sein,</li>
<li>außerdem sind nur wenige Dictionary-Methoden wie <code>keys()</code>, <code>values()</code>, <code>iteritems()</code> verfügbar.</li>
</ul>
<p>Ein kleines Beispiel in der Python-Shell, um das Ganze zu veranschaulichen:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">anydbm</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'c'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Mond'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'moon'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Sonne'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'sun'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Erde'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'earth'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Nachdem das Modul <code>anydbm</code> importiert ist, erzeugt man das Datenbankobjekt <em>db</em> und legt eine Datenbank mit dem Namen <em>test.db</em> auf der Speicherkarte im Verzeichnis <em>e:\</em> an. Das <em>c</em> bedeutet übrigens <em>create</em>; man erstellt eine neue Datenbank, anstatt eine bereits vorhandene zu öffnen. Möchte man eine existierende Datenbank zum Lesen und Schreiben öffnen, schreibt man ein <em>w</em> für <em>write</em> und nur zum Lesen ein <em>r</em> für <em>read</em>. Anschließend werden die Schlüsselpaare eingetragen, dabei muss der Schlüssel als String in eckigen Klammern stehen, der Wert kann einfach als String eingetragen werden. Dass es sich um Strings, also Zeichenketten handelt, zeigen die einfachen Anführungszeichen, welche die Inhalte umschließen. Zum Schluss wird der neue Inhalt gespeichert, indem die Datenbank mit der <em>close()</em>-Methode geschlossen wird. </p>
<p>Mit einer for-Schleife kann man nach schauen, ob die Einträge auch alle vorhanden sind. Vorher muss man die Datenbank wieder öffnen, dieses mal nur, um sie zu lesen:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">for</span> key, value <span style="color: #ff7700;font-weight:bold;">in</span> db.<span style="color: black;">iteritems</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
...    <span style="color: #ff7700;font-weight:bold;">print</span> key, value
...
<span style="color: black;">Erde</span> earth
Mond moon
Sonne sun
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Um Schlüsselpaare der Datenbank hinzuzufügen, muss man sie im Lese- und Schreibmodus öffnen:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Sterne'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'stars'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">for</span> key, value <span style="color: #ff7700;font-weight:bold;">in</span> db.<span style="color: black;">iteritems</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
...    <span style="color: #ff7700;font-weight:bold;">print</span> key, value
...
<span style="color: black;">Erde</span> earth
Mond moon
Sonne sun
Sterne stars
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Solange die Datenmenge noch überschaubar ist, wie in diesem Beispiel, kann man die Datenbank wie ein schönes praktisches Dictionary verwenden. Man sollte aber bedenken, dass es kein Dictionary ist. Schlüssel- und Wertepaare werden von <code>anydbm</code> nur im Bedarfsfall in den Hauptspeicher geladen. Sollte die Datenmenge auf so viele Einträge wachsen, dass sie vielleicht gar nicht mehr komplett in den Hauptspeicher des Telefons passt, sollte man folgende <a href="http://books.google.de/books?id=vfzazxfQScYC&#038;pg=PA483&#038;lpg=PA483&#038;dq=anydbm+python&#038;source=bl&#038;ots=8pN1GU6KZK&#038;sig=6bX1AjbDkM1-LD2Q12r3CeNKNH0&#038;hl=de&#038;ei=-5yFS-StG9TfsAaGyMlE&#038;sa=X&#038;oi=book_result&#038;ct=result&#038;resnum=2&#038;ved=0CAgQ6AEwAQ#v=onepage&#038;q=anydbm%20python&#038;f=false">&#8220;Todsünden&#8221;</a>, die Farid Hajji im <a href="http://www.amazon.de/gp/product/3827325439?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=3827325439">Python-Praxisbuch</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=3827325439" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> zusammenfasst, beim Arbeiten mit <code>anydbm</code> auf jeden Fall vermeiden: Statt der Dictionary-Methoden <code>keys()</code> und <code>items()</code>, die eine riesige Liste von Schlüsseln aus der Datenbank laden, die eventuell die Grenzen des Hauptspeichers sprengen würde, sollte man besser <code>iterkeys()</code> und <code>iteritems()</code> in einer Schleife aufrufen, damit Schlüssel- und Wertepaare auch weiter nur im Bedarfsfall in den Hauptspeicher geladen werden.</p>
<p>Das zeigt gleichzeitig den Nachteil von <code>anydbm</code>: Einträge können z.B. nur im Nachhinein sortiert werden, wenn  die gesamte Schlüsselliste in den Hauptspeicher geladen wurde:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> liste = db.<span style="color: black;">keys</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> liste.<span style="color: black;">sort</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> liste
<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Erde'</span>, <span style="color: #483d8b;">'Mond'</span>, <span style="color: #483d8b;">'Sonne'</span>, <span style="color: #483d8b;">'Sterne'</span><span style="color: black;">&#93;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Die Spielerei mit <code>anydbm</code> hat mich auf die Idee gebracht, einen kleinen Vokabeltrainer für <em>Python for S60</em> zu schreiben. Sicher, es gibt Programme wie <a href="http://code.google.com/p/pyask/downloads/list">pyAsk2</a>, allerdings wurde die letzte Aktualisierung am Code im April 2008 vorgenommen. Außerdem legt <em>pyAsk2</em> die Vokabeln in einer Textdatei ab, was Probleme mit Unicode-Zeichen nach sich zieht. Es klappt einfach nicht, Sonderzeichen wie Umlaute, spanische Buchstaben wie &ntilde; oder Buchstaben mit Akzent in die Textdatei zu schreiben, ohne dass dabei das ganze Programm abstürzt. Da gefällt mir eine Datenbanklösung mit <code>anydbm</code> bzw. <code>e32dbm</code> besser: So wie man die Wörter und Buchstaben hinein wirft, bekommt man sie auch wieder heraus:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Bär'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'bear'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'at sign @'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'At-Zeichen @'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'British pound £'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'Britisches Pfund £'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">for</span> key, value <span style="color: #ff7700;font-weight:bold;">in</span> db.<span style="color: black;">iteritems</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
...    <span style="color: #ff7700;font-weight:bold;">print</span> key, value
...
<span style="color: black;">British</span> pound £ Britisches Pfund £
Erde earth
Mond moon
at sign @ At-Zeichen @
Bär bear
Sonne sun
Sterne stars
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Mit der Anweisung <code>del</code> für Dictionaries kann man übrigens Schlüsselpaare leicht wieder entfernen:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">del</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Bär'</span><span style="color: black;">&#93;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">del</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'at sign @'</span><span style="color: black;">&#93;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">del</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'British pound £'</span><span style="color: black;">&#93;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Ein weiterer Vorteil ist, dass man mit Hilfe der <code>split()</code>-Methode für Strings einen Datensatz in weitere Felder zerlegen kann, um z.B. weitere Informationen anzuhängen:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> db=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\t</span>est.db'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Erde'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'earth|the third planet in order of distance from the sun'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Sterne'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'stars|the fixed bodies in the sky, which are really distant suns'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Sonne'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'sun|the round body in the sky that gives light and heat to the earth'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> db<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Mond'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">'moon|Spacemen landed on the moon'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">for</span> key, value <span style="color: #ff7700;font-weight:bold;">in</span> db.<span style="color: black;">iteritems</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
...    <span style="color: black;">value</span>, definition=db<span style="color: black;">&#91;</span>key<span style="color: black;">&#93;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'|'</span><span style="color: black;">&#41;</span>
...    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'De: '</span>, key, <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #483d8b;">'En: '</span>, value, <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #483d8b;">'    '</span>, definition, <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
... 
<span style="color: black;">De</span>:  Erde 
En:  earth 
     the third planet <span style="color: #ff7700;font-weight:bold;">in</span> order of distance <span style="color: #ff7700;font-weight:bold;">from</span> the sun 
...</pre></div></div>

<p>Das kann ja nicht nur eine Definition sein, wie in dem Beispiel, sonder auch ein Punktesystem, um einen Karteikasten abzubilden: Je höher die Punktezahl, desto weiter rutscht die Karte im Kasten nach hinten und wird weniger abgefragt. </p>
<p><strong>Zarte Anfänge</strong></p>
<p>Es folgt nun ein erster Entwurf des simplen Vokabeltrainers <code>smpltrainr.py</code>, wobei ich aber dazu sagen muss, dass ich noch nicht weit gekommen bin und auch noch nicht alle Ideen eingeflossen sind, die ich weiter oben besprochen habe:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">anydbm</span>, <span style="color: #dc143c;">os</span>
&nbsp;
path = <span style="color: #483d8b;">'e:<span style="color: #000099; font-weight: bold;">\\</span>dicts<span style="color: #000099; font-weight: bold;">\\</span>'</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> dir_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot; create dir of dict if it is not there &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        <span style="color: #dc143c;">os</span>.<span style="color: black;">listdir</span><span style="color: black;">&#40;</span>path<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span>:
        <span style="color: #dc143c;">os</span>.<span style="color: black;">mkdir</span><span style="color: black;">&#40;</span>path<span style="color: black;">&#41;</span>  
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> open_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot; open dict or create one &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">global</span> <span style="color: #008000;">dict</span>
    name = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Open dictionary: '</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        <span style="color: #008000;">dict</span>=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>path + name, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">except</span>:
        <span style="color: #008000;">dict</span>=<span style="color: #dc143c;">anydbm</span>.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>path +name, <span style="color: #483d8b;">'c'</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> write_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot; write into dict &quot;&quot;&quot;</span>
    x = <span style="color: #483d8b;">' '</span>
    <span style="color: #ff7700;font-weight:bold;">while</span> x <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">'Q'</span>:
        word = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Word: '</span><span style="color: black;">&#41;</span>
        meaning = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Meaning: '</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">dict</span><span style="color: black;">&#91;</span>word<span style="color: black;">&#93;</span> = meaning
        x = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Press Q for quit? '</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> ask_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot; ask from dict &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> word, meaning <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">dict</span>.<span style="color: black;">iteritems</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
        ask = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span>word + <span style="color: #483d8b;">' means '</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> ask == meaning:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Correct'</span>
        <span style="color: #ff7700;font-weight:bold;">else</span>:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Wrong. '</span> + word + <span style="color: #483d8b;">' means '</span> + meaning 
&nbsp;
dir_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> 
open_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
x = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Do you want to (A)sk from or to (W)rite into the dictionary? '</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">if</span> x == <span style="color: #483d8b;">'W'</span>:
    write_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">if</span> x == <span style="color: #483d8b;">'A'</span>:
    ask_dict<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #008000;">dict</span>.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Wie man sieht, findet die Interaktion zwischen User und Programm noch in der Python-Shell statt. Das wird natürlich noch durch das UI Framework <code>appuifw</code> ersetzt, damit für die Interaktion native GUI-Elemente wie in Symbian verwendet werden. Außerdem ist der Funktionsumfang des Programms auch noch sehr klein. Da werde ich aber noch weiter dran arbeiten.</p>
<p><strong><em>Exkurs:</em> Installation von PyS60</strong></p>
<p>Für die Installation auf einem Gerät mit der Plattform <em>S60 3rd Edition</em>, wie dem E71, benötigt man die Datei <a href="http://sourceforge.net/projects/pys60/files/pys60/1.4.5/PythonForS60_1_4_5_3rdEd.sis/download">PythonForS60_1_4_5_3rdEd.sis</a>, für die <em>2ed Edition</em> entsprechend <a href="http://sourceforge.net/projects/pys60/files/pys60/1.4.5/PythonForS60_1_4_5_2ndEd.SIS/download">PythonForS60_1_4_5_2ndEd.SIS</a> vom <a href="http://sourceforge.net/projects/pys60/files/">PyS60-Projekt</a>. Dazu ist die Datei <a href="http://sourceforge.net/projects/pys60/files/pys60/1.4.5/PythonScriptShell_1_4_5_3rdEd.SIS/download">PythonScriptShell_1_4_5_3rdEd.SIS</a> bzw. <a href="http://sourceforge.net/projects/pys60/files/pys60/1.4.5/PythonScriptShell_1_4_5_2ndEd.SIS/download">PythonScriptShell_1_4_5_2ndEd.SIS</a> noch ganz hilfreich, damit man zum Start einen Python-Shell mit Beispiel-Skripten zur Verfügung hat. Die Endung <em>.sis</em> zeigt bei Symbian übrigens immer an, dass die Datei noch auf dem Gerät installiert werden muss. Bei der Installation ist es wichtig, dass Python in den Telefonspeicher installiert wird, und nicht auf die Speicherkarte. Diese Shell benutze ich allerdings schon gar nicht mehr, sondern die in <a href="http://code.google.com/p/ped-s60/">Ped</a>. <em>Ped</em> ist eine sehr komfortable integrierte Entwicklungsumgebung (IDE) für Python auf Nokias S60-Plattform, mit der man Python-Code direkt im Telefon schreiben und, dank einer integrierten Python-Shell, auch ausführen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/mobiles-python-iii-ein-simpler-vokabeltrainer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein Loop im Loop</title>
		<link>http://www.datenteiler.de/ein-loop-im-loop/</link>
		<comments>http://www.datenteiler.de/ein-loop-im-loop/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 12:25:05 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Haustechnik]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3801</guid>
		<description><![CDATA[In Wordpress wird der Loop dazu benutzt, Beiträge wie Artikel oder Seiten im Weblog anzuzeigen. Der klassische Loop ist meist Teil der Datei index.php, dem Hauptindex-Template, und sieht &#8212; stark vereinfacht &#8212; folgendermaßen aus:

&#60;?php if &#40;have_posts&#40;&#41;&#41; : while &#40;have_posts&#40;&#41;&#41; : the_post&#40;&#41;; ?&#62;
&#60;?php the_content&#40;&#41;; ?&#62;
&#160;
 &#60;?php endwhile; else: ?&#62;
 &#60;p&#62;&#60;?php _e&#40;'Verzeihung, aber was Sie suchen, ist [...]]]></description>
			<content:encoded><![CDATA[<p>In Wordpress wird der <a href="http://doku.wordpress-deutschland.org/Der_Loop">Loop</a> dazu benutzt, Beiträge wie Artikel oder Seiten im Weblog anzuzeigen. Der klassische Loop ist meist Teil der Datei <em>index.php</em>, dem Hauptindex-Template, und sieht &mdash; stark vereinfacht &mdash; folgendermaßen aus:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
 <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">else</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
 &lt;p&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> _e<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Verzeihung, aber was Sie suchen, ist nicht hier.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;
 <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Benutzt man WordPress mehr als Content-Management-System (CMS) und weniger als Weblog, hat man häufig eine statische Seite als Startseite gewählt. Möchte man auf dieser Seite dann den aktuellsten Beitrag aus der ersten Kategorie veröffentlichen, könnte man folgenden Loop auf der statischen Seite unterbringen:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> query_posts<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cat=1&amp;showposts=1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span>have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;p id=&quot;post-<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_ID<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;&lt;strong&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/strong&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/p&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Damit PHP-Code innerhalb einer statischen Seite oder eines Artikels funktioniert, muss allerdings das <a href="http://bluesome.net/post/2005/08/18/50/">Exec-PHP-Plugin</a> installiert sein. Nun hat man das Problem, das WordPress diese beiden Loops nicht unterscheiden kann und sie daher zweimal ausführt. Wenn also, wie im Beispiel, der aktuellste Artikel auf der Seite stehen soll, wird er einmal vom Loop in der Datei <em>index.php</em> und einmal vom Loop in der statischen Seite ausgegeben. Das heißt, der selbe Artikel erscheint zweimal auf dieser Seite.</p>
<p><a href="http://dynamicinternet.eu/blog/2008-06-17/ein-zweiter-loop-in-wordpress/">Die Lösung</a> in diesem Fall heißt, dass man ein neues Query-Objekt erstellt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$myQuery</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> WP_Query<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'showposts=1&amp;cat=3'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$myQuery</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">have_posts</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$myQuery</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">the_post</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;p id=&quot;post-<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_ID<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;&lt;strong&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/strong&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/p&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Die Funktion <a href="http://codex.wordpress.org/Function_Reference/WP_Query">WP_Query</a> dient zum Auffinden verschiedenster Beiträge in der Datenbank und kann analog zu <a href="http://doku.wordpress-deutschland.org/Template_Tags/query_posts">Query_posts</a> verwendet werden. Damit kann man kontrollieren, welche Beiträge in einem Loop angezeigt werden und beide Loops voneinander unterscheiden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/ein-loop-im-loop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Das Hercules EC-800 und Xubuntu 3</title>
		<link>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-3/</link>
		<comments>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-3/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 09:31:38 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3776</guid>
		<description><![CDATA[Ich bin weiter dabei, das installierte Xubuntu auf meinem Hercules EC-800 zu verschlanken. Als Musikplayer ist Exaile vorinstalliert, den habe ich aber aus diesem Grund zu Gunsten des kleinen und schlanken Audacious ersetzt. Nach der Installation weigerte sich der Player allerdings, Musik abzuspielen. Im Terminal gestartet hat er diese Fehlermeldung angezeigt:

christian@Unaha-Closp:~$ audacious2 
madplug: open_audio failed: [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin weiter dabei, das <a href="http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu/">installierte Xubuntu</a> auf meinem <a href="http://www.amazon.de/gp/product/B001DMS79K?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=B001DMS79K">Hercules EC-800</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=B001DMS79K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> zu <a href="http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-2/">verschlanken</a>. Als Musikplayer ist <a href="http://wiki.ubuntuusers.de/Exaile">Exaile</a> vorinstalliert, den habe ich aber aus diesem Grund zu Gunsten des kleinen und schlanken <a href="http://wiki.ubuntuusers.de/Audacious">Audacious</a> ersetzt. Nach der Installation weigerte sich der Player allerdings, Musik abzuspielen. Im Terminal gestartet hat er diese Fehlermeldung angezeigt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">christian<span style="color: #000000; font-weight: bold;">@</span>Unaha-Closp:~$ audacious2 
madplug: open_audio failed: XMMS reverse compatibility output plugin.</pre></div></div>

<p>Aus irgendeinem Grund will Audacious nicht mit dem <em>PulseAudio Output Plugin</em> zusammenarbeiten. Damit man doch Musik hören kann, kann man in den Einstellungen auf das <em>Alsa Output Plugin</em> wechseln. Einfach mit Rechtsklick die <em>Preferences</em> auswählen, oder mit der Tastenkombination <strong>Strg+P</strong>. Unter &#8220;Aktives Ausgabe-Plugin&#8221; dann <em>Alsa Output Plugin</em> anstelle von <em>PulseAusio Output Plugin</em> wählen:</p>
<p><a href="http://www.datenteiler.de/wp-content/uploads/2010/02/ALSA-Audacious.png"><img src="http://www.datenteiler.de/wp-content/uploads/2010/02/ALSA-Audacious-300x192.png" alt="" title="ALSA-Audacious" width="300" height="192" class="aligncenter size-medium wp-image-3779" /></a></p>
<p>Danach spielt der Player Musik. Warum er das Ausgabe-Plugin von PulseAudio unter Xubuntu auf dem Hercules nicht akzeptiert, kann ich allerdings nicht nachvollziehen. Unter Ubuntu auf meinem Acer Aspire 2920 funktioniert es mit PulseAudio tadellos. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wer tötet den Rock&#8217;n&#039;Roll?</title>
		<link>http://www.datenteiler.de/wer-toetet-den-rocknroll/</link>
		<comments>http://www.datenteiler.de/wer-toetet-den-rocknroll/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 19:40:00 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Publikationen]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3763</guid>
		<description><![CDATA[In der Onlinezeitung The Huffington Post, ein Polit-Weblog mit Links zu verschiedensten Nachrichtenquellen und -kolumnisten, die von Lesern kommentiert werden können, hat Nathan Harden in einem Artikel den Rock&#8217;n'Roll zu Grabe getragen. Es geht dabei um die alte Leier, dass das Herunterladen von Musik die Musikindustrie zerstört und Pop-Musikern ihre Lebensgrundlage entzieht.
Dem Kommentar von Coco [...]]]></description>
			<content:encoded><![CDATA[<p>In der Onlinezeitung <a href="http://www.huffingtonpost.com/">The Huffington Post</a>, ein Polit-Weblog mit Links zu verschiedensten Nachrichtenquellen und -kolumnisten, die von Lesern kommentiert werden können, hat Nathan Harden <a href="http://www.huffingtonpost.com/nathan-harden/the-generation-that-kille_b_444428.html">in einem Artikel</a> den Rock&#8217;n'Roll zu Grabe getragen. Es geht dabei um die alte Leier, dass das Herunterladen von Musik die Musikindustrie zerstört und Pop-Musikern ihre Lebensgrundlage entzieht.</p>
<p>Dem Kommentar von Coco Bryce kann ich nicht zustimmen, da ich nicht denke, dass Nathan meinen Artikel <a href="http://www.datenteiler.de/texte-und-artikel/die-verlorene-generation-der-musikindustrie/">Die verlorene Generation der Musikindustrie</a> kopiert hat. Offensichtlich wurde er noch nicht einmal von ihm inspiriert, da ich ja gegen die Propaganda der Musikindustrie halte und sage, dass sich die Form des Musikkonsums ändert und sich die Produzenten wohl oder übel anpassen müssen. Doch darauf will ich gar nicht hinaus, sondern eher auf die schöne Analogie im Kommentar von yeahyeahyeahyeahyeah:</p>
<blockquote><p>
Consider the demise of classical music&#8217;s popularity, which began about 100 years ago. Then, as now with pop music, technology was the culprit. Electricity begat the phonograph, which took the dissemination music out of the gatekeeping hands of the publishing industry and the actual musicians who could translate these manuscripts into music. With the advent of recording technology, non-notational music could then be distributed and it turned out that the buying public greatly preferred jazz and other musics to classical. The art form became increasingly reliant on the existing repertoire, partially as a consequence.</p>
<p>Change a few crucial nouns in that paragraph and you get the story of what&#8217;s going on today.
</p></blockquote>
<p>Neue Technologien tragen nicht die Schuld am Untergang von Kulturgütern und veralteter Industriezweige, sondern wirken eher wie ein Katalysator: Sie beeinflussen die Reaktionsgeschwindigkeit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/wer-toetet-den-rocknroll/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mein Planet</title>
		<link>http://www.datenteiler.de/mein-planet/</link>
		<comments>http://www.datenteiler.de/mein-planet/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:15:49 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Haustechnik]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3754</guid>
		<description><![CDATA[Da ich gerne erfahre, was meine Lieblings-Bloggerinnen und -Blogger neben Freie Software, Gnu/Linux und anderen nerdigen Themen noch so treiben, habe ich mir einen eigenen Planeten gebastelt. Sicher gibt es viele Überschneidungen mit den Planeten von Ubuntuusers und Debianforum, aber im wesentlichen soll mein Planet meine Blogroll &#8220;ersetzen&#8221;. Daher werden dort auch Weblogs einziehen, die [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich gerne erfahre, was meine Lieblings-Bloggerinnen und -Blogger neben Freie Software, Gnu/Linux und anderen nerdigen Themen noch so treiben, habe ich mir einen <a href="http://planet.datenteiler.de/">eigenen Planeten</a> gebastelt. Sicher gibt es viele Überschneidungen mit den Planeten von <a href="http://planet.debianforum.de/">Ubuntuusers</a> und <a href="http://planet.debianforum.de/">Debianforum</a>, aber im wesentlichen soll mein Planet meine Blogroll &#8220;ersetzen&#8221;. Daher werden dort auch Weblogs einziehen, die in diesen Planeten keinen Platz hätten.</p>
<p>Meinen Planeten habe ich so ähnlich realisiert, wie es <a href="http://www.dunkelangst.org/">Dunkelangst</a> in seinem Blog <a href="http://www.dunkelangst.org/2010/planet-durchgeladen/">beschreibt</a>. Neben dem Plugin <a href="http://wordpress.org/extend/plugins/feedwordpress/">FeedWordPress</a> habe ich ebenfalls die Plugins <a href="http://wordpress.org/extend/plugins/simplepie-core/">SimplePie Core</a> und <a href="http://wordpress.org/extend/plugins/simplepie-plugin-for-wordpress/">SimplePie for WordPress</a> installiert. Außerdem braucht man die Plugins <a href="http://wordpress.org/extend/plugins/evermore/">Evermore</a> und <a href="Auto Delete Posts">Auto Delete Posts</a>. Ersteres schneidet zu lange Beiträge ab (was ich aber zur Zeit noch deaktiviert habe), letzteres löscht alle Posts aus der Datenbank, die älter als eine bestimmte Anzahl an Tagen sind. Schließlich will ich diese Blogs ja nicht archivieren. </p>
<p>Ursprünglich hatte ich vor, den Planeten in meine bestehende Wordpress-Installation zu integrieren, und die Beiträge aus dem Planeten in einem gesonderten Loop anzeigen zu lassen. Das war mir aber zu aufwendig. Also habe ich einfach ein neues Weblog aufgesetzt und das angepasste Theme kopiert. Dadurch konnte ich auch einstellen, dass der Planet nicht von Suchmaschinen besucht wird. Die ganze Werbung habe ich übrigens herausgenommen, damit sich niemand gestört fühlt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/mein-planet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Delicious Bookmarklets und Midori</title>
		<link>http://www.datenteiler.de/delicious-bookmarklets-und-midori/</link>
		<comments>http://www.datenteiler.de/delicious-bookmarklets-und-midori/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 18:15:35 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3704</guid>
		<description><![CDATA[Bei dem kleinen, schlanken und schnellen Web-Browser Midori mag man zwar die Geschwindigkeit, ärgert sich aber vielleicht, dass es kaum Plug-ins gibt, um den Browser zu erweitern. Doch es gibt Abhilfe: Wenn man zum Beispiel gerne Delicious benutzt, kann man Midori mit Bookmarklets erweitern, um Lesezeichen anzulegen.  Im Gegensatz zu den anderen Browsern, die [...]]]></description>
			<content:encoded><![CDATA[<p>Bei dem kleinen, schlanken und schnellen Web-Browser <a href="http://de.wikipedia.org/wiki/Midori_(Browser)">Midori</a> mag man zwar die Geschwindigkeit, ärgert sich aber vielleicht, dass es kaum Plug-ins gibt, um den Browser zu erweitern. Doch es gibt Abhilfe: Wenn man zum Beispiel gerne <a href="http://delicious.com/">Delicious</a> benutzt, kann man Midori mit <a href="http://delicious.com/help/bookmarklets">Bookmarklets</a> erweitern, um Lesezeichen anzulegen.  Im Gegensatz zu den anderen Browsern, die auf WebKit beruhen, wie Safari oder Chrome, kann man das kleine in JavaScript geschriebene Makro nicht so einfach per Drag and Drop in die Lesezeichenleiste ziehen. Aber es gibt <a href="http://wapreview.com/blog/?p=255">Abhilfe</a>.</p>
<p>Einfach auf einen der beiden Links unten klicken und warten, bis <a href="http://o.yeswap.com/">die Seite</a> neu geladen ist. Danach die Seite inklusive des Java-Script-Anhangs als Lesezeichen abspeichern.</p>
<p><a href="http://www.datenteiler.de/wp-content/uploads/2010/01/Midori4.png"><img src="http://www.datenteiler.de/wp-content/uploads/2010/01/Midori4-300x163.png" alt="" title="Midori4" width="300" height="163" class="aligncenter size-medium wp-image-3719" /></a></p>
<p>Anschließend den Link editieren, indem man den Part <code>http://o.yeswap.com/?</code> löscht und nur den JavaScript-Teil stehen lässt.</p>
<p><a href="http://www.datenteiler.de/wp-content/uploads/2010/01/Midori2.png"><img src="http://www.datenteiler.de/wp-content/uploads/2010/01/Midori2-300x244.png" alt="" title="Midori2" width="300" height="244" class="aligncenter size-medium wp-image-3720" /></a></p>
<p>Danach das Lesezeichen einfach hinzufügen. Aber nun zu den Links:</p>
<ul>
<li><a href="http://o.yeswap.com/?javascript:location.href='http://del.icio.us/post?v=4;url='+encodeURIComponent(location.href)+';title='+encodeURIComponent(document.title)">Post to Delicious</a> ist die standardmäßige Form, um Delicious-Bookmarks hinzuzufügen. </li>
<li><a href="http://o.yeswap.com/?javascript:location.href='https://api.del.icio.us/v1/posts/add?description='+encodeURIComponent(document.title.length?document.title:'Mobile%20Post')+'&#038;url='+window.location.href;">Quick Delicious Post</a> fügt die aktuelle Seite Delicious als Bookmark hinzu, ohne Tags, aber auch keine Form, die man ausfüllen muss.</li>
</ul>
<p>Es gibt noch weitere <a href="http://de.wikipedia.org/wiki/Bookmarklet">Bookmarklets</a> von anderen Web2.0-Diensten. Eine kleine Auswahl findet man auf <a href="http://o.yeswap.com/">YesWAP.com</a>. Das klappt übrigens auch mit anderen Browsern, zum Beispiel mit dem <a href="http://www.opera.com/mobile/">Opera Mobile</a>, den es für verschiedene Smartphones gibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/delicious-bookmarklets-und-midori/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Wave und Gnu/Linux</title>
		<link>http://www.datenteiler.de/google-wave-und-gnu-linux/</link>
		<comments>http://www.datenteiler.de/google-wave-und-gnu-linux/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 18:46:30 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3683</guid>
		<description><![CDATA[Nach einem kurzen Blick in die Suchmaschine von Google, scheint die Auswahl an Software für Google Wave noch nicht so groß zu sein und für Gnu/Linux im Besonderen schon mal gar nicht. Es gibt einen Google Wave Notifier für Windows, ansonsten ein Add-on für Firefox und eine Extension für Chrome.
Außerdem kann man Google Wave in [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einem kurzen Blick in die <a href="http://www.google.de/#hl=de&#038;source=hp&#038;q=google+wave+notifier&#038;btnG=Google-Suche&#038;meta=&#038;aq=0&#038;oq=google+wave+no&#038;fp=f6ac4f2ff50ba745">Suchmaschine</a> von Google, scheint die Auswahl an Software für Google Wave noch nicht so groß zu sein und für Gnu/Linux im Besonderen schon mal gar nicht. Es gibt einen <a href="http://wave-notify.sourceforge.net/index.php">Google Wave Notifier</a> für Windows, ansonsten ein <a href="https://addons.mozilla.org/en-US/firefox/addon/14973">Add-on für Firefox</a> und eine <a href="https://chrome.google.com/extensions/detail/aphncaagnlabkeipnbbicmcahnamibgb">Extension für Chrome</a>.</p>
<p>Außerdem kann man <a href="http://www.fixmbr.de/google-wave-in-thunderbird-nutzen/">Google Wave in Thunderbird nutzen</a>:</p>
<ul>
<li>Fehlerkonsole öffnen (Reiter Extras – Fehlerkonsole)</li>
<li>Diesen Code einfügen:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Components.classes<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'@mozilla.org/appshell/window-mediator;1'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>.getService<span style="color: #7a0874; font-weight: bold;">&#40;</span>Components.interfaces.nsIWindowMediator<span style="color: #7a0874; font-weight: bold;">&#41;</span>.getMostRecentWindow<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;mail:3pane&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.document.getElementById<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;tabmail&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.openTab<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;contentTab&quot;</span>, <span style="color: #7a0874; font-weight: bold;">&#123;</span>contentPage: <span style="color: #ff0000;">&quot;https://wave.google.com/wave/?nouacheck&quot;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;</pre></div></div>

</li>
</ul>
<p>Inwieweit es praktikabel ist, eine Wave in ein E-Mail-Programm einzubinden, kann ich nicht sagen. Aber immerhin ist es machbar. Habe ich vielleicht noch eine Software übersehen, mit der man Wave unter Gnu/Linux einbinden bzw. benutzen kann, außer im Browser?</p>
<p>Wer mit Google Wave und den damit verbunenen Möglichkeiten bislang wenig bis gar nichts anfangen kann, dem hilft vielleicht folgendes Video weiter:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/xcxF9oz9Cu0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=de_DE&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/xcxF9oz9Cu0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=de_DE&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
<p><strong>Update:</strong> Im Kommentar weist Mogli mich auf das in Python geschriebene Programm <a href="http://googsystray.sourceforge.net/">GoogSysTray</a> hin, das ich gleich mal ausprobiert habe. Das Programm ist ein kleines App für die Taskleiste und läuft unter Windows und Gnu/Linux; zumindest unter den Gnu/Linux-Betriebssystemen mit Desktop, der eine Taskleiste vorweisen kann. Die Installation ist unter Ubuntu recht simpel, solange man das Paket  <strong>python-gtk2 (Pygtk2)</strong> als Abhängigkeit installiert hat:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> python-gtk2</pre></div></div>

<p>Anschließend lädt man <a href="http://sourceforge.net/projects/googsystray/files/googsystray-1.1.4/googsystray-1.1.4.tar.gz/download">das Archiv</a> herunter, entpackt es und wechselt in das Verzeichnis mit den Python-Dateien, um die Installation durchzuführen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> python .<span style="color: #000000; font-weight: bold;">/</span>setup.py <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Der Befehl <code>googsystray</code> startet das Programm dann aus dem Terminal heraus. Möchte man es bei jedem Systemstart automatisch laden, trägt man es am Besten unter <strong>System -> Einstellungen -> Startprogramme</strong> ein. Der Programmpfad ist übrigens <code>/usr/local/bin/googsystray</code>.</p>
<p>Zum Schluss schreibt man noch die eigenen Zugangsdaten zu Google in die Einstellungen und hat dann alle Aktivitäten seines Kontos für Google Voice, Google Mail, Google Calendar, Google Reader und Google Wave auf einen Blick. Wenn etwas neues passiert wird man durch ein akustisches Signal benachrichtigt und man kann simple Aufgaben damit schnell erledigen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/google-wave-und-gnu-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Übersetzung von Windows 7 Sünden ist fertig</title>
		<link>http://www.datenteiler.de/uebersetzung-von-windows-7-suenden-ist-fertig/</link>
		<comments>http://www.datenteiler.de/uebersetzung-von-windows-7-suenden-ist-fertig/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:00:47 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>
		<category><![CDATA[Freie Software]]></category>
		<category><![CDATA[FSF]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3660</guid>
		<description><![CDATA[Es ist endlich geschafft: Die Übersetzung von Windows 7 Sins in den 8 verschiedenen Sprachen arabisch, französisch, italienisch, russisch, spanisch und deutsch ist fertig. Die deutsche Übersetzung habe ich maßgeblich mit Felix zusammen gemacht, der besonders beim Endspurt sehr viel Arbeit investiert hat. Vielen Dank nochmal dafür, Felix. 
Um aus der von mir übersetzten Presseerklärung [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://de.windows7sins.org/"><img src="http://windows7sins.org/i/widget.png" style="float:right; margin-left:25px;  margin-bottom:10px" alt="Windows 7 Sins" /></a>Es ist endlich geschafft: Die Übersetzung von <a href="http://en.windows7sins.org/">Windows 7 Sins</a> in den 8 verschiedenen Sprachen arabisch, französisch, italienisch, russisch, spanisch und <a href="http://de.windows7sins.org/">deutsch</a> ist fertig. Die deutsche Übersetzung habe ich maßgeblich mit Felix zusammen gemacht, der besonders beim Endspurt sehr viel Arbeit investiert hat. Vielen Dank nochmal dafür, Felix. </p>
<p>Um aus der von mir übersetzten Presseerklärung zu zitieren: &#8220;Die Windows 7 Sünden-Kampagne umfasst sieben Hauptbereiche in denen proprietäre Software im Allgemeinen und Microsoft Windows im Besonderen Computernutzer schadet: Eindringen in die Privatsphäre, Vergiftung von Bildung, Computernutzer in Abhängigkeiten halten, Standards zu missbrauchen, Monopolstellung zum eigenen Vorteil zu nutzen, digitales Rechtemanagement (DRM) zu fördern und die Sicherheit von Computernutzern zu gefährden. [...] &#8220;Indem wir die Windows 7 Sünden-Kampagne in so viele Sprachen wie möglich übersetzen, machen wir sie zu einer internationalen Kampagne für die Freiheit von Computernutzern,&#8221; sagte Matt Lee, Kampagnen-Manager der FSF.&#8221;</p>
<p>Ganz fertig sind wir mit der Übersetzung aber noch nicht: Die Seiten müssen noch Korrektur gelesen werden, und außerdem sind wir mit der Verwendung von &#8220;Du&#8221; und &#8220;Sie&#8221; etwas durcheinander gekommen. Aber das werden wir in den nächsten Tagen noch korrigieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/uebersetzung-von-windows-7-suenden-ist-fertig/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Das Hercules EC-800 und Xubuntu 2</title>
		<link>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-2/</link>
		<comments>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-2/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 21:43:37 +0000</pubDate>
		<dc:creator>Christian Imhorst</dc:creator>
				<category><![CDATA[Gnu/Linux]]></category>

		<guid isPermaLink="false">http://www.datenteiler.de/?p=3618</guid>
		<description><![CDATA[Nachdem man Xubuntu 9.10 auf dem Hercules EC-800 installiert hat, ob nun mit der Live- oder der Alternate-CD, wird man feststellen, dass die Bildschirmauflösung bei 800×600 liegt, anstatt der gewünschten 800×480. Dafür gibt es aber eine Lösung, die Albrecht in seinem Blog präsentiert: Eine eigens für den EC-800 erstellte xorg.conf. Die Datei kopiert man in [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem man Xubuntu 9.10 auf dem <a href="http://www.amazon.de/gp/product/B001DMS79K?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=B001DMS79K">Hercules EC-800</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=B001DMS79K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> installiert hat, ob nun mit der Live- oder der Alternate-CD, wird man feststellen, dass die Bildschirmauflösung bei 800×600 liegt, anstatt der gewünschten 800×480. Dafür gibt es aber <a href="http://blogs.fsfe.org/alge/?p=12">eine Lösung</a>, die Albrecht <a href="http://blogs.fsfe.org/alge/">in seinem Blog</a> präsentiert: Eine eigens für den EC-800 erstellte <a href="http://www.datenteiler.de/wp-content/uploads/2009/12/xorg.conf">xorg.conf</a>. Die Datei kopiert man in das Verzeichnis <code>/etc/X11</code> und meldet sich anschließend aus Xfce, dem Desktop von Xubunt, ab. Dabei muss man aber darauf achten, dass das Häkchen bei &#8220;Speichere Sitzung für weitere Logins&#8221; im Abmeldefenster <em>nicht</em> gesetzt ist. Ansonsten merkt sich Xfce die Einstellung 800&#215;600 und wählt sie beim nächsten Start automatisch wieder. Will man statt 800&#215;480 lieber 1024&#215;600 Pixel verwenden, muss man in der Datei <code>xorg.conf</code> nach folgendem Eintrag suchen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Modeline <span style="color: #ff0000;">&quot;800x480&quot;</span>   <span style="color: #000000;">33.45</span> <span style="color: #000000;">800</span> <span style="color: #000000;">840</span> <span style="color: #000000;">968</span> <span style="color: #000000;">1056</span> <span style="color: #000000;">480</span> <span style="color: #000000;">490</span> <span style="color: #000000;">492</span> <span style="color: #000000;">525</span> <span style="color: #660033;">-hsync</span> <span style="color: #660033;">-vsync</span>
<span style="color: #666666; font-style: italic;"># Modeline &quot;1024x600&quot; 48.96  1024 1064 1168 1312  600 601 604 622 -hsync +vsync</span></pre></div></div>

<p>Das Kommentarzeichen (#) wird in der zweiten Zeile gelöscht und dafür in die erste Zeile gesetzt. Nach einem Neustart des X-Server hat man dann die neue Auflösung.</p>
<p><span id="more-3618"></span></p>
<p><a href="http://www.datenteiler.de/wp-content/uploads/2009/12/xubunt1.png"><img src="http://www.datenteiler.de/wp-content/uploads/2009/12/xubunt1-300x222.png" alt="xubunt" title="xubunt" width="300" height="222" class="aligncenter size-medium wp-image-3633" /></a></p>
<p>Ich fand den Fenstermanager von Xfce, Xfwm4, allerdings ein bisschen zu langsam für den EC-800 und habe ihn durch Openbox ersetzt. An Xfce selbst ändert sich dabei nicht soviel, ausgenommen vielleicht die Fensterdeko. Um Openbox einzusetzen, muss man den Fenstermanager erstmal installieren:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> openbox</pre></div></div>

<p>Danach startet man eine normale Xfce-Sitzung und führt folgenden Befehl im Terminal aus:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">killall</span> xfwm4; openbox <span style="color: #660033;">--replace</span></pre></div></div>

<p>Anschließend muss man sich aus Xfce ab- und wieder anmelden. Diesmal muss man aber darauf achten, dass das Häkchen bei &#8220;Speichere Sitzung für weitere Logins&#8221; im Abmeldefenster auf jeden Fall gesetzt ist, damit die Sitzung beim Abmelden auch gespeichert wird. Sonst wird beim Anmelden wieder Xfwm4 gestartet.</p>
<p>Als Browser verzichte ich auf Firefox zu Gunsten von Opera, da Opera 10 einfach schneller ist und ein Feature wie Datenkomprimierung als &#8220;Opera Turbo&#8221; anbietet. Um <a href="http://www.datenteiler.de/opera-10-ist-da/">Opera 10 unter Xubunt zu installieren</a> benötigt man die Paketquellen von Debian</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">deb http:<span style="color: #000000; font-weight: bold;">//</span>deb.opera.com<span style="color: #000000; font-weight: bold;">/</span>opera<span style="color: #000000; font-weight: bold;">/</span> stable non-free</pre></div></div>

<p>und man muss eventuell noch einen Schlüssel installieren:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> - http:<span style="color: #000000; font-weight: bold;">//</span>deb.opera.com<span style="color: #000000; font-weight: bold;">/</span>archive.key <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-key</span> add -</pre></div></div>

<p>Ist das erledigt, sollte die Installation von Opera reibungslos funktionieren:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> opera</pre></div></div>

<p><strong>Update:</strong> Mittlerweile habe ich Opera und Firefox zugunsten von <a href="http://www.datenteiler.de/delicious-bookmarklets-und-midori/">Midori</a> deinstalliert. </p>
<p>Was aber auf dem EC-800 nicht so gut im Browser klappt, ist das Gucken von YouTube-Videos. Bekanntermaßen erzeugt der Flashplayer von Adobe unter Gnu/Linux eine hohe CPU-Last. Abhilfe schaffen <a href="http://www.be-jo.net/de/2009/12/minitube-youtube-ohne-flash/">Minitube</a> oder das YouTube-Plugin von Totem. Totem ist unter Xubuntu schon installiert. Unter <strong>Bearbeiten -> Plugins &#8230;</strong> kann man das Plugin installieren, indem man ein Häkchen davor setzt. Ansonsten klappt das Abspielen von Videos mit Totem oder das Fernsehen gucken über <a href="http://www.datenteiler.de/dvb-t-mit-mplayer/">DVB-T mit MPlayer</a> ganz gut.</p>
<p><strong>Fazit</strong></p>
<p>Trotz seiner schwachen Hardware hat das <a href="http://www.amazon.de/gp/product/B001DMS79K?ie=UTF8&#038;tag=imhorstnet-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=B001DMS79K">Hercules EC-800</a><img src="http://www.assoc-amazon.de/e/ir?t=imhorstnet-21&#038;l=as2&#038;o=3&#038;a=B001DMS79K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> auch ein paar Vorteile: Der Akku hält mehr als drei Stunden, es wiegt weniger als 1 kg, dadurch, dass es keinen Lüfter hat, ist es wirklich sehr leise. Ob das den Nachteil der wirklich schwachen Hardware aufhebt, muss jeder für sich selbst entscheiden. Was mich an meinem EC-800 nervt, ist ein sehr hohes Pfeifen, wenn ich es im Betrieb auflade. Das Pfeifen ist nicht da, wenn ich es ausgeschaltet auflade. Ob das bei anderen Modellen auch der Fall ist, kann ich aber nicht sagen. Außerdem ist die Reichweite der W-LAN-Karte sehr begrenzt.</p>
<p>Für mich ist das Netbook definitiv ein Spielzeug, um mal Abends im Bett zu surfen, oder um meine Musiksammlung zu einer Party mitzunehmen, wofür ich sonst mein gutes Notebook mit schleppen müsste, ich kann damit an der Anlage in der Küche Podcasts oder <a href="http://www.datenteiler.de/radio-hoeren-mit-mplayer/">Internetradio</a> hören, kurz: Ich kann es für all die Kleinigkeiten einsetzen, für die mein Notebook schon zu groß ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.datenteiler.de/das-hercules-ec-800-und-xubuntu-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
