<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Neuntoeter&#039;s Blog</title>
	<atom:link href="http://neuntoeter.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://neuntoeter.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 27 Dec 2011 14:57:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='neuntoeter.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/c77185de037315d0ea1a33adabdcafa8?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Neuntoeter&#039;s Blog</title>
		<link>http://neuntoeter.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://neuntoeter.wordpress.com/osd.xml" title="Neuntoeter&#039;s Blog" />
	<atom:link rel='hub' href='http://neuntoeter.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Einrichten eines  mit LUKS verschlüsselten Volumes unter (K)ubuntu</title>
		<link>http://neuntoeter.wordpress.com/2011/05/29/einrichten-eines-mit-luks-verschlusselten-volumes-unter-kubuntu/</link>
		<comments>http://neuntoeter.wordpress.com/2011/05/29/einrichten-eines-mit-luks-verschlusselten-volumes-unter-kubuntu/#comments</comments>
		<pubDate>Sun, 29 May 2011 17:14:06 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[ecryptfs]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[luks]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=231</guid>
		<description><![CDATA[Warum ich ecryptfs durch LUKS (Linux Unified Key Setup) ersetzt habe: Vor einiger Zeit habe ich wichtige Daten meines Heimatverzeichnisses verschlüsselt. Hierfür habe ich das mit ecryptfs verschlüsselte Private-Verzeichnis unter Kubuntu verwendet. Im Großen Ganzen war ich damit auch zufrieden. Es gab allerdings zwei Probleme mit denen ich immer wieder zu kämpfen hatte: Nach dem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=231&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Warum ich ecryptfs durch LUKS (<em>Linux Unified Key Setup</em>) ersetzt habe:</h3>
<p>Vor einiger Zeit habe ich wichtige Daten meines Heimatverzeichnisses verschlüsselt. Hierfür habe ich das mit ecryptfs verschlüsselte Private-Verzeichnis unter Kubuntu verwendet.<br />
Im Großen Ganzen war ich damit auch zufrieden. Es gab allerdings zwei Probleme mit denen ich immer wieder zu kämpfen hatte:</p>
<ul>
<li>Nach dem Ausloggen aus KDE wurde beim erneuten Einloggen das Private Verzeichnis nicht mehr gemountet (siehe auch: https://bugs.launchpad.net/ubuntu/+bug/779308)</li>
<li>Das Starten von digikam (&gt; 13000 Bilder) dauerte eine Ewigkeit ( ca. 5 Minuten).</li>
</ul>
<p>Die Digikam Performanceprobleme habe ich mit strace analysiert und dabei ist mir aufgefallen, dass Digikam bei jedem Start für jedes Foto ein stat64 Aufruf macht. Dies scheint unter ecryptfs sehr I/O Intensiv und damit langsam zu sein.</p>
<p>Aus dem oben genannten Gründen habe ich deshalb mein /home logical Volume über LUKS mit AES verschlüsselt.</p>
<h3>So richtet man unter Kubuntu die Verschlüsselung eines Volumes nachträglich ein</h3>
<p>Zunächst wird eine Partition bzw. ein Logical Volume benötigt. Im Beispiel verwende ich ein Logical Volume. Anlegen des Logical Volumes mit lvcreate:</p>
<blockquote>
<pre>root@kiste:/home/volker# lvcreate -n testcrypt -L 1G datavg</pre>
</blockquote>
<blockquote>
<pre>Logical volume "testcrypt" created</pre>
</blockquote>
<p>Anschließend muss das Logical Volume für die Verwendung mit LUKS initialisiert werden. Hierbei muss die Passphrase angegeben werden, die auch beim Entschlüsseln benötigt wird:</p>
<blockquote>
<pre>root@kiste:/home/volker# cryptsetup luksFormat /dev/datavg/testcrypt</pre>
</blockquote>
<blockquote>
<pre>WARNING!</pre>
</blockquote>
<blockquote>
<pre>========</pre>
</blockquote>
<blockquote>
<pre>This will overwrite data on /dev/datavg/testcrypt irrevocably.</pre>
</blockquote>
<blockquote>
<pre>Are you sure? (Type uppercase yes): YES</pre>
</blockquote>
<blockquote>
<pre>Enter LUKS passphrase:</pre>
</blockquote>
<blockquote>
<pre>Verify passphrase:</pre>
</blockquote>
<p>Um mit dem Volume arbeiten zu können muss dies nun geöffnet werden. Hierfür muss die oben angegeben Passphrase angegeben werden:</p>
<blockquote>
<pre>root@kiste:/home/volker# cryptsetup luksOpen /dev/datavg/testcrypt cryptedtest</pre>
</blockquote>
<blockquote>
<pre>Enter passphrase for /dev/datavg/testcrypt:</pre>
</blockquote>
<p>Unter /dev/mapper gibt es nun ein Gerät mit dem oben angegebenen Namen cryptedtest (falls nicht, dann evtl folgendes ausführen: /etc/init.d/cryptdisks reload):</p>
<blockquote>
<pre>root@kiste:/home/volker# ls -ltrs /dev/mapper/</pre>
</blockquote>
<blockquote>
<pre>total 0</pre>
</blockquote>
<blockquote>
<pre>0 crw------- 1 root root 10, 236 2011-05-29 18:38 control</pre>
</blockquote>
<blockquote>
<pre>0 lrwxrwxrwx 1 root root 7 2011-05-29 18:38 datavg-datalv -&gt; ../dm-1</pre>
</blockquote>
<blockquote>
<pre>0 lrwxrwxrwx 1 root root 7 2011-05-29 18:38 datavg-swaplv -&gt; ../dm-2</pre>
</blockquote>
<blockquote>
<pre>0 lrwxrwxrwx 1 root root 7 2011-05-29 19:00 cryptedtest -&gt; ../dm-7</pre>
</blockquote>
<p>Auf diesem Gerät kann nun ein Dateisystem erstellt werden:</p>
<blockquote>
<pre>root@kiste:/home/volker# mkfs.ext4 /dev/mapper/cryptedtest</pre>
</blockquote>
<blockquote>
<pre>mke2fs 1.41.14 (22-Dec-2010)</pre>
</blockquote>
<blockquote>
<pre>[...]</pre>
</blockquote>
<blockquote>
<pre>Writing inode tables: done</pre>
</blockquote>
<blockquote>
<pre>Creating journal (4096 blocks): done</pre>
</blockquote>
<blockquote>
<pre>Writing superblocks and filesystem accounting information: done</pre>
</blockquote>
<blockquote>
<pre>This filesystem will be automatically checked every 39 mounts or</pre>
</blockquote>
<blockquote>
<pre>180 days, whichever comes first. Use tune2fs -c or -i to override.</pre>
</blockquote>
<p>Und das Dateisystem kann nun gemountet werden:</p>
<blockquote>
<pre>root@kiste:/tmp# mkdir cryptmount</pre>
</blockquote>
<blockquote>
<pre>root@kiste:/tmp# mount /dev/mapper/cryptedtest cryptmount</pre>
</blockquote>
<blockquote>
<pre>root@kiste:/tmp# df -h /tmp/cryptmount</pre>
</blockquote>
<blockquote>
<pre>Filesystem Size Used Avail Use% Mounted on</pre>
</blockquote>
<blockquote>
<pre>/dev/mapper/cryptedtest</pre>
</blockquote>
<blockquote>
<pre>1007M 18M 939M 2% /tmp/cryptmount</pre>
</blockquote>
<p>Damit das Dateisystem nun beim Neustart automatisch gemountet wird, muss das logical Volume in der /etc/fstab und /etc/crypttab eingetragen werden.</p>
<p>/etc/crypttab</p>
<blockquote>
<pre># &lt;target name&gt; &lt;source device&gt; &lt;key file&gt; &lt;options&gt;</pre>
</blockquote>
<blockquote>
<pre>cryptedtest /dev/datavg/testcrypt none luks</pre>
</blockquote>
<p>/etc/fstab</p>
<blockquote>
<pre>/dev/mapper/cryptedtest /mnt/testmount ext4 defaults 1</pre>
</blockquote>
<p>Anschließend sollte die initial Ramdisk neu geschrieben werden (bin mir nicht 100% sicher ob das wirklich nötig ist &#8211; geschadet hats nicht)</p>
<blockquote>
<pre>root@kiste:/tmp# dpkg-reconfigure initramfs-tools</pre>
</blockquote>
<blockquote>
<pre>update-initramfs: Generating /boot/initrd.img-2.6.38-8-generic</pre>
</blockquote>
<p>Beim Reboot wird nun vor dem start des KDM / GDM nach der Passphrase für das LUKS Volume gefragt und dies anschließend gemountet.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=231&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2011/05/29/einrichten-eines-mit-luks-verschlusselten-volumes-unter-kubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>
	</item>
		<item>
		<title>Checkliste für die Lösung von Kerberos-Problemen</title>
		<link>http://neuntoeter.wordpress.com/2011/03/22/checkliste-fur-kerberos/</link>
		<comments>http://neuntoeter.wordpress.com/2011/03/22/checkliste-fur-kerberos/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 18:48:56 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AIX]]></category>
		<category><![CDATA[KDC]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=218</guid>
		<description><![CDATA[Die Konfiguration von Kerberos ist sehr komplex, insbesondere wenn es sich um eine heterogene Systemlandschaft handelt. Kleine Fehler schleichen sich leicht ein und können dazu führen, dass eine gerade noch funktionierende Kerberos Authentisierung plötzlich nicht mehr funktioniert. Die Fehlersuche ist recht schwierig, da aussagekräftige Fehlermeldungen im Kerberosumfeld die Ausnahme sind. Hinzu kommt, dass Fehler oft [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=218&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Die Konfiguration von Kerberos ist sehr komplex, insbesondere wenn es sich um eine heterogene Systemlandschaft handelt.<br />
Kleine Fehler schleichen sich leicht ein und können dazu führen, dass eine gerade noch funktionierende Kerberos Authentisierung plötzlich nicht mehr funktioniert.<br />
Die Fehlersuche ist recht schwierig, da aussagekräftige Fehlermeldungen im Kerberosumfeld die Ausnahme sind. Hinzu kommt, dass Fehler oft gar nicht auf die eigentliche Kerberoskonfiguration zurückzuführen sind, sondern z.B. auf die Namensauflösung oder die Systemzeit.</p>
<p>Um Fehler schneller lokalisieren und beheben zu können habe ich eine Checkliste erstellt, die vielleicht dem einen oder anderen etwas weiterhilft.</p>
<p>Die Checkliste beruht auf den Erfahrungen, die ich in der folgender Systemlandschaft gesammelt habe:</p>
<p>Kerberos Clients:</p>
<ul>
<li>Linux: Opensuse 11.3 (Apache Authentisierung)</li>
<li>AIX 6.1 (Samba, NFSv4)</li>
</ul>
<p>Kerberos Server:</p>
<ul>
<li>Microsoft Windows KDC (Windows 2003 DC + Windows 2008 DC)</li>
</ul>
<p><strong>Checkliste</strong></p>
<p><span style="text-decoration:underline;">Grundlegendes prüfen</span></p>
<ul>
<li>Systemzeit prüfen (Probleme sind zu erwarten bei einem Unterschied von mehr als 5 Minuten)</li>
<li>DNS Einträge prüfen (Vorwärts- und Rückwärtsauflösung der beteiligten Rechner)</li>
<li>Funktioniert ein kinit mit einem normalen Domänenbenutzer? <span style="font-family:'Courier New,courier';">kinit </span>userid
<ul>
<li>Falls nicht, dann ist evtl. <span style="font-family:'Courier New,courier';">/etc/krb5.conf</span> falsch konfiguriert (KDC / Realm / Verschlüsselung / &#8230; falsch?)</li>
</ul>
</li>
</ul>
<p><span style="text-decoration:underline;">Keytab überprüfen</span></p>
<ul>
<li>Dateiberechtigungen des Keytabfiles prüfen (z.B. kann Apachebenutzer (wwwrun) das Keytab-File lesen?)</li>
<li>Keytab anzeigen und prüfen: <span style="font-family:'Courier New,courier';">klist -e -k -t meine.keytab</span></li>
<li>KVNO auf Kerberosserver prüfen (muss mit KVNO in Keytab übereinstimmen): <span style="font-family:'Courier New,courier';">kvno HTTP/meinhost.</span>example.com</li>
<li>Keytab Authentisierung prüfen <span style="font-family:'Courier New,courier';">kinit -t meine.keytab -k </span><a href="mailto:HTTP/meinhost.dees.eberspaecher.com@DEES.EBERSPAECHER"><span style="font-family:'Courier New,courier';">HTTP/meinhost.example.com@EXAMPLE</span></a><span style="font-family:'Courier New,courier';">.COM</span></li>
</ul>
<p><span style="text-decoration:underline;">weitere Prüfungen:</span></p>
<ul>
<li>Auf KDC Server(n) im Eventlog nach Fehlern schauen
<ul>
<li>werden z.B. Fehler bzgl. doppelten Benutzer/Computerkonten gemeldet.</li>
</ul>
</li>
<li>Verschlüsselungsalgorithmen in der Kerberos Config überprüfen
<ul type="circle">
<li>Falls Keytab mit <span style="font-family:'Courier New,courier';">+DesOnly</span> angelegt wurde, dann in aktuellen OpenSuse Versionen in der krb5.conf <span style="font-family:'Courier New,courier';">allow_weak_crypto</span> auf <span style="font-family:'Courier New,courier';">true</span> setzen.</li>
<li>Ist in der Windows Domäne ein Windows 2008 KDC aufgenommen worden?
<ul>
<li>werden in der krb5.conf keine default-enctypes angegeben, dann versucht z.B. Opensuse 11.3 bei der Kommunikation mit einem Windows KDC (ab Windows 2008) die Daten mit AES256 zu verschlüsseln. Aufgrund von Inkompatibilitäten funktioniert dies leider nicht. Deshalb sollte in der krb5.conf im Linux sichergestellt werden, dass AES256 nicht verwendet wird. z.B. durch folgende Einträge:
<ul>
<li><span style="font-family:'Courier New,courier';">default_tkt_enctypes = arcfour-hmac des-cbc-md5 des-cbc-crc</span></li>
<li><span style="font-family:'Courier New,courier';">default_tgs_enctypes = arcfour-hmac des-cbc-md5 des-cbc-crc</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Prüfen ob Service/Host Principal mit einem Windowskonto verknüpft ist (auf dem KDC): <span style="font-family:'Courier New,courier';">setspn -L HTTP/meinhost.</span>example.com</li>
</ul>
<p><span style="text-decoration:underline;">letzter Ausweg:</span></p>
<ul>
<li>Pakete mit tcpdump mitschneiden und analysieren.<span style="text-decoration:underline;"><br />
</span></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=218&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2011/03/22/checkliste-fur-kerberos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>
	</item>
		<item>
		<title>Kalender und Kontakt-Synchronisierung zwischen Android Smartphone und KDE Akonadi PIM-Framework</title>
		<link>http://neuntoeter.wordpress.com/2010/12/10/kalender-und-kontakt-synchronisierung-zwischen-android-smartphone-und-kde-akonadi-pim-framework/</link>
		<comments>http://neuntoeter.wordpress.com/2010/12/10/kalender-und-kontakt-synchronisierung-zwischen-android-smartphone-und-kde-akonadi-pim-framework/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 17:09:49 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Akonadi]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[akonadi]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[pim]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=209</guid>
		<description><![CDATA[Ich habe mir vor kurzem ein Android Smartphone zugelegt (HTC Magic). Standardmäßig gibt es nur die Möglichkeit Kontakte oder Kalenderdaten über Gmail (bzw. über einen Exchange Server) zu syncen. Aus Datenschutzgründen kam das für mich nicht in Frage. Ich habe mich deshalb nach Möglichkeiten umgesehen wie ich meine Daten zwischen KDE und Android auf andere [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=209&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir vor kurzem ein Android Smartphone zugelegt (HTC Magic). Standardmäßig gibt es nur die Möglichkeit Kontakte oder Kalenderdaten über Gmail (bzw. über einen Exchange Server) zu syncen.</p>
<p>Aus Datenschutzgründen kam das für mich nicht in Frage.</p>
<p>Ich habe mich deshalb nach Möglichkeiten umgesehen wie ich meine Daten zwischen KDE und Android auf andere Weise syncen kann und das Problem mit einem lokalen Funambol Server gelöst.</p>
<p>Folgende Softwarekomponenten habe ich hierfür verwendet:</p>
<p>Linux Laptop mit Kubuntu 10.10</p>
<ul>
<li>KDE 4.5.1 (akonadi / kontact / korganizer)</li>
<li>Funambol Server 8.7.0</li>
<li>Akunambol 0.2.1</li>
</ul>
<p>HTC Magic</p>
<ul>
<li>Android 2.2.1</li>
<li>CyanogenMod 6.1.0 RC1</li>
<li>Funambol Android Sync 9.0.0 (Snapshot 20100830)</li>
</ul>
<h2>Installation des Funambol Servers</h2>
<p>Das Installationspaket des Funambol Servers kann hier heruntergeladen werden: https://www.forge.funambol.org/download/</p>
<p>Anschließend muss das Installationsprogramm gestartet werden (Der Server kann mit einem normalen Benutzer installiert und betrieben werden):</p>
<p><code>volker@kiste:~/download/funambol$ ./funambol-8.7.0.bin </code></p>
<p><code>Do you agree to the above license terms? [yes or no] </code></p>
<p><code>yes</code></p>
<p><code>Directory to extract Funambol [/opt] &lt;return to accept&gt;? </code></p>
<p><code>/home/volker/Private</code></p>
<p><code>Directory to extract Funambol [/home/volker/Private] &lt;return to accept&gt;? </code></p>
<p><code>Unpacking...</code></p>
<p><code>Do you want to start the server? [yes or no] </code></p>
<p><code>yes</code></p>
<p>Nach der Installation lauscht der Server standardmäßig auf Port 8080.</p>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/funambol.png?w=450" alt="" /></p>
<p>Der Funambol Server lässt sich manuell folgendermaßen starten und stoppen:</p>
<p><code>cd &lt;INSTALL_DIR&gt;/bin</code></p>
<p><code>./funambol [start|stop]</code></p>
<h2>Konfiguration des Funambol Servers</h2>
<p>Für die Administration des Funambol Servers gibt es einen speziellen Admin Client, den man folgendermaßen startet &lt;INSTALL_DIR&gt;/admin/bin/funamboladmin.</p>
<p>Nach dem Starten des Administrations Tools sollte man erst einmal das Administrator Passwort ändern und einen Benutzer für das Syncen von Daten anlegen:</p>
<ul>
<li>Starten des Administrations Tools</li>
<li>Im linken Fensterteil Doppelklick auf &#8220;Funambol Administrations Tool&#8221;</li>
<li>Im Login Fenster einfach auf Login klicken</li>
<li>Nun unter Server Settings-&gt; Users das Passwort des admin Users ändern</li>
<li>Nun Admin Tool beenden und neu einloggen (war bei mir nötig) und anschließend einen neuen &#8220;normalen&#8221; Benutzer mit der Rolle &#8220;User&#8221; anlegen.</li>
</ul>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/funambol2.png?w=450" alt="" /></p>
<h2>Installation des Funambol Clients für Android</h2>
<p>Wichtig: Falls Kalenderdaten gesynct werden sollen, dann auf jeden Fall die Version 9 des Clients verwenden (dies ist allerdings eine Entwicklerversion).</p>
<p>Der Client (apk-Paket) kann auf folgender Seite heruntergeladen werden: https://android-client.forge.funambol.org/ ( Documents &amp; files -&gt; Releases -&gt; Funambol Sync Client v 9.0.0 (snapshot))</p>
<p>Das apk Paket wie gewohnt auf dem Android Smartphone installieren.</p>
<p>Nach dem Starten von &#8220;Funambol Sync&#8221; auf dem Android Smartphone muss man nun den zuvor installierten (und hoffentlich vom Android netzwerkmäßig erreichbaren) Funambol Server angeben.</p>
<ul>
<li>Username / Password: Hier den angelegten Benutzer mit &#8220;User&#8221; Rolle angeben</li>
<li>Server Ulr: http://&lt;funambol_server&gt;:8080/funambol/ds</li>
</ul>
<p>Anschließend sollte sich der Sync Client mit dem Server verbinden und sich die Kontakte und Kalenderdaten auf den Funambolserver syncen lassen.</p>
<h2>KDE PIM Daten mit Funambol Server syncen</h2>
<p>Für den Abgleich der Daten zwischen akonadi und dem Funambol Server wird das akunambol Tool benötigt.</p>
<p>Für die Installation unter Kubuntu 10.10 habe ich in der /etc/apt/sources.list folgende Einträge hinzugefügt:</p>
<p><code># funambol client kde</code></p>
<p><code>deb http://ppa.launchpad.net/akunambol/ppa/ubuntu maverick main </code></p>
<p><code>deb-src http://ppa.launchpad.net/akunambol/ppa/ubuntu maverick main </code></p>
<p>Anschließend kann man die Software mit <code>apt-get install akunambol</code> installieren.</p>
<p>Nun kann man akunambol starten und konfigurieren:</p>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/akunambol1.png?w=450" alt="" /></p>
<p>Wichtig ist, dass die Remote URIs richtig angegeben sind, sonst schlägt der Sync fehl. Bei den Remote URIs müssen die SyncSources aus dem Funambol Server angegeben werden. Diese kann man sich über das Administration Tool des Funambol Servers angezeigen lassen. Siehe folgender Screenshot:</p>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/syncsource.png?w=450" alt="" /></p>
<p>Nun sollte die Akonadi Konfiguration im KDE überprüft werden. Hierfür kann man z.B. Akonaditray verwenden.</p>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/akonadi1.png?w=450" alt="" /></p>
<p>Wichtig ist, dass Akonadi die angegebenen Resourcen auch ändern kann (Doppenklick auf eine Ressource und ggf. Read-only Haken entfernen).</p>
<p>Außerdem wichtig ist, dass die PIM eurer Wahl (bei mir Kontact und Korganizer) auch die Akonadi Ressourcen verwendet (bzw. Akonadi und Kontact/Korganizer die selben Ressourcen verwenden).</p>
<p>Ist dies gewährleisten dann kann nun versucht werden mit akunambol die Daten zwischen dem Funambol Server und Akonadi zu syncen.</p>
<p><img src="http://neuntoeter.files.wordpress.com/2010/12/akunambol2.png?w=450" alt="" /></p>
<p>War der Sync erfolgreich, dann müssten nun die Kontakte und Kalenderdaten vom Andoid in Kontact/Korganizer sichtbar sein.</p>
<p><strong>Update:</strong></p>
<p>Achtung: Der Funambol Android Sync 9.0.0 hat wohl noch Probleme ganztägige Termine zu syncen.<strong></strong></p>
<p><strong><br />
Update 2:</strong></p>
<p>Nach dem Update auf KDE 4.6.2 ist akunambol beim Syncen immer gecrashed.<br />
Nach dem manuellen kompilieren von akunambol funktioniert es auch unter kde 4.6.2. (siehe auch: http://old.nabble.com/-Bug-264585&#8211;New%3A-Akunambol-crash-on-KDE-4.6.0-while-sync-Contacts-td30784318.html#a30790886)<strong></strong></p>
<p><strong><br />
Update 3:</strong></p>
<p><strong></strong>das manuelle kompilieren war wohl doch nicht auf Dauer erfolgreich&#8230; Ich habe inzwischen den Funambol Server auf Version 9.0 aktualisiert und erneut das aktuellste akunambol kompiliert. Jetzt scheint der Kalender wieder gesynct zu werden, aber die Kontakte lassen sich nicht syncen (akunambol(8421): 17:36:01 ERROR More than one address book, we need a way to pick one).</p>
<p>Wer selber kompilieren möchte:</p>
<pre>wget -c http://anongit.kde.org/akunambol/akunambol-latest.tar.gz
cd akunambol
./initrepo.sh
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIRS -DCMAKE_BUILD_TYPE=debugfull ..
make
make install or su -c 'make install'</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=209&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2010/12/10/kalender-und-kontakt-synchronisierung-zwischen-android-smartphone-und-kde-akonadi-pim-framework/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/funambol.png" medium="image" />

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/funambol2.png" medium="image" />

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/akunambol1.png" medium="image" />

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/syncsource.png" medium="image" />

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/akonadi1.png" medium="image" />

		<media:content url="http://neuntoeter.files.wordpress.com/2010/12/akunambol2.png" medium="image" />
	</item>
		<item>
		<title>Auflisten von POIs aus Openstreetmap mit XAPI und XSL</title>
		<link>http://neuntoeter.wordpress.com/2010/08/24/pois-aus-openstreetmap-mit-xapi-und-xsl/</link>
		<comments>http://neuntoeter.wordpress.com/2010/08/24/pois-aus-openstreetmap-mit-xapi-und-xsl/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 18:20:48 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Openstreetmap]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=184</guid>
		<description><![CDATA[Vor einiger Zeit wurde ich auf das Schorndorfer Stadtwiki Schopedia aufmerksam, dass von ein paar Freiwilligen betreut wird. Mir fiel auf, dass im Wiki einige Seiten mit Listen von z.B. Gastätten oder Museen angelegt wurden. Als aktiver Openstreetmap Mapper habe ich mich natürlich gleich gefragt, ob es nicht möglich wäre die Daten einfach aus Openstreetmap [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=184&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit wurde ich auf das Schorndorfer Stadtwiki <a href="http://www.schopedia.de">Schopedia</a> aufmerksam, dass von ein paar Freiwilligen betreut wird. Mir fiel auf, dass im Wiki einige Seiten mit Listen von z.B. Gastätten oder Museen angelegt wurden.</p>
<p>Als aktiver Openstreetmap Mapper habe ich mich natürlich gleich gefragt, ob es nicht möglich wäre die Daten einfach aus Openstreetmap auszulesen, da diese dort größtenteils schon vorhanden sind. Damit könnte man sich das aufwendige Pflegen der Daten im Wiki sparen.</p>
<p>Für die Abfragen von POIs aus Openstreetmap kann man die <a href="http://wiki.openstreetmap.org/wiki/Xapi">XAPI</a> verwenden. An die API-Server kann man über http sehr leicht Anfragen schicken. Als Antwort erhält man die gewünschten Daten im XML Format.</p>
<p>Beispiel:</p>
<p>Folgender Link liefert alle Nodes vom Typ amenity=restaurant im XML-Format zurück. Die bounding box (bbox) schränkt das Gebiet auf Schorndorf ein:</p>
<pre><a href="http://xapi.openstreetmap.org/api/0.6/node[amenity=restaurant][bbox=9.4908142,48.7810801,9.5660019,48.8387351]">http://xapi.openstreetmap.org/api/0.6/node[amenity=restaurant][bbox=9.4908142,48.7810801,9.5660019,48.8387351]</a>
</pre>
<p>Hier ein Ausschnitt aus den zurückgelieferten Daten:</p>
<pre>&lt;?xml version='1.0' standalone='no'?&gt;
&lt;osm version='0.6' generator='xapi: OSM Extended API 2.0' xmlns:xapi='http://www.informationfreeway.org/xapi/0.6' xapi:uri='/api/0.6/node[amenity=restaurant|fast_food|pub|cafe][bbox=9.4908142,48.7810801,9.5660019,48.8387351]' xapi:planetDate='20100824' xapi:copyright='2010 OpenStreetMap contributors' xapi:license='Creative commons CC-BY-SA 2.0' xapi:bugs='For assistance or to report bugs contact 80n80n@gmail.com' xapi:instance='zappyOsm'&gt;
 &lt;node id='721241970' lat='48.830856' lon='9.5116892' user='mabe75' timestamp='2010-05-04T19:01:28Z' uid='260302' version='1' changeset='4607010'&gt;
 &lt;tag k='amenity' v='restaurant'/&gt;
 &lt;tag k='name' v='Lamm'/&gt;
 &lt;/node&gt;
 &lt;node id='392682646' lat='48.8315734' lon='9.5468864' user='MattGPS' timestamp='2010-05-11T19:00:20Z' uid='12973' version='3' changeset='4671372'&gt;
 &lt;tag k='amenity' v='restaurant'/&gt;
 &lt;tag k='name' v='Gasthaus an der Wieslauf'/&gt;
 &lt;/node&gt;
 &lt;node id='319597380' lat='48.8277913' lon='9.5477029' timestamp='2008-12-17T21:13:15Z' version='1' changeset='444629'&gt;
 &lt;tag k='amenity' v='restaurant'/&gt;
 &lt;tag k='name' v='Gasthaus zur Linde'/&gt;
 &lt;/node&gt;
[...]</pre>
<p>Nun haben wir die Daten im XML Format. Die Daten lassen sich nun mit Hilfe einer XSL Transformation (XSLT) z.B. in ansprechenden HTML-Code umwandeln.</p>
<p>Hierfür habe ich ein einfaches XSL Stylesheet (nodes.xsl) erstellt. Dieses erzeugt eine einfache HTML-Datei, die eine Openlayer Karte und eine Tabelle mit allen gefundenen Nodes enthält. Für jede Node befindet sich in der Karte ein Marker. Ich verwende zum Durchführen der XSL-Transformation die Anwendung xsltproc.</p>
<pre>wget 'http://xapi.openstreetmap.org/api/0.6/node[amenity=restaurant][bbox=9.4908142,48.7810801,9.5660019,48.8387351]'
xsltproc nodes.xsl nodes.xml  &gt; nodes.html</pre>
<p><a href="http://neuntoeter.files.wordpress.com/2010/08/screenshot_xsl.png"><img class="alignnone size-full wp-image-190" title="screenshot_xsl" src="http://neuntoeter.files.wordpress.com/2010/08/screenshot_xsl.png?w=450&#038;h=396" alt="" width="450" height="396" /></a></p>
<p>Den Quellcode für das XSL Stylesheet gibts hier als PDF: <a href="http://neuntoeter.files.wordpress.com/2010/08/nodes-xsl.pdf">nodes.xsl</a>.</p>
<p>Doku über die XAPI von Openstreetmap findet ihr hier: <a href="http://wiki.openstreetmap.org/wiki/Xapi">http://wiki.openstreetmap.org/wiki/Xapi</a></p>
<p>Hier ist ein einfaches Beispiel zum Anzeigen einer Karte mit Markern (wird auch in meinem XSL Code verwendet): <a href="http://wiki.openstreetmap.org/wiki/OpenLayers_Marker">http://wiki.openstreetmap.org/wiki/OpenLayers_Marker</a></p>
<p><strong>Update:</strong> <a href="http://neuntoeter.ne.ohost.de/xslt/clientload.html">Inzwischen gibt es hier eine Demo Seite mit obigem Beispiel</a></p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:513px;width:1px;height:1px;overflow:hidden;">&lt;?xml version=&#8217;1.0&#8242; standalone=&#8217;no&#8217;?&gt;<br />
&lt;osm version=&#8217;0.6&#8242; generator=&#8217;xapi: OSM Extended API 2.0&#8242; xmlns:xapi=&#8217;http://www.informationfreeway.org/xapi/0.6&#8242; xapi:uri=&#8217;/api/0.6/node[amenity=restaurant|fast_food|pub|cafe][bbox=9.4908142,48.7810801,9.5660019,48.8387351]&#8216; xapi:planetDate=&#8217;20100824&#8242; xapi:copyright=&#8217;2010 OpenStreetMap contributors&#8217; xapi:license=&#8217;Creative commons CC-BY-SA 2.0&#8242; xapi:bugs=&#8217;For assistance or to report bugs contact 80n80n@gmail.com&#8217; xapi:instance=&#8217;zappyOsm&#8217;&gt;<br />
&lt;node id=&#8217;721241970&#8242; lat=&#8217;48.830856&#8242; lon=&#8217;9.5116892&#8242; user=&#8217;mabe75&#8242; timestamp=&#8217;2010-05-04T19:01:28Z&#8217; uid=&#8217;260302&#8242; version=&#8217;1&#8242; changeset=&#8217;4607010&#8242;&gt;<br />
&lt;tag k=&#8217;amenity&#8217; v=&#8217;restaurant&#8217;/&gt;<br />
&lt;tag k=&#8217;name&#8217; v=&#8217;Lamm&#8217;/&gt;<br />
&lt;/node&gt;<br />
&lt;node id=&#8217;392682646&#8242; lat=&#8217;48.8315734&#8242; lon=&#8217;9.5468864&#8242; user=&#8217;MattGPS&#8217; timestamp=&#8217;2010-05-11T19:00:20Z&#8217; uid=&#8217;12973&#8242; version=&#8217;3&#8242; changeset=&#8217;4671372&#8242;&gt;<br />
&lt;tag k=&#8217;amenity&#8217; v=&#8217;restaurant&#8217;/&gt;<br />
&lt;tag k=&#8217;name&#8217; v=&#8217;Gasthaus an der Wieslauf&#8217;/&gt;<br />
&lt;/node&gt;<br />
&lt;node id=&#8217;319597380&#8242; lat=&#8217;48.8277913&#8242; lon=&#8217;9.5477029&#8242; timestamp=&#8217;2008-12-17T21:13:15Z&#8217; version=&#8217;1&#8242; changeset=&#8217;444629&#8242;&gt;<br />
&lt;tag k=&#8217;amenity&#8217; v=&#8217;restaurant&#8217;/&gt;<br />
&lt;tag k=&#8217;name&#8217; v=&#8217;Gasthaus zur Linde&#8217;/&gt;<br />
&lt;/node&gt;</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=184&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2010/08/24/pois-aus-openstreetmap-mit-xapi-und-xsl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/08/screenshot_xsl.png" medium="image">
			<media:title type="html">screenshot_xsl</media:title>
		</media:content>
	</item>
		<item>
		<title>Verschlüsselte Backups über das Internet</title>
		<link>http://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/</link>
		<comments>http://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 11:27:10 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[backup]]></category>
		<category><![CDATA[ecryptfs]]></category>
		<category><![CDATA[encfs]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=112</guid>
		<description><![CDATA[Warum Online Backups? Ich bin schon eine ganze Weile unzufrieden mit dem Backup meiner privaten Daten. Bisher habe ich in mehr oder weniger regelmäßigen Abständen die Daten auf eine externe USB-Platte gesichert. Die Sicherung auf Platte hat aber vor allem zwei Nachteile: Das Backup lässt sich schlecht automatisieren (da die Platte jedesmal manuell angeschlossen werden [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=112&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Warum Online Backups?</h2>
<p>Ich bin schon eine ganze Weile unzufrieden mit dem Backup meiner privaten Daten. Bisher habe ich in mehr oder weniger regelmäßigen Abständen die Daten auf eine externe USB-Platte gesichert. Die Sicherung auf Platte hat aber vor allem zwei Nachteile:</p>
<ul>
<li>Das Backup lässt sich schlecht automatisieren (da die Platte jedesmal manuell angeschlossen werden muss)</li>
<li>Das Backup ist nicht räumlich getrennt von den Originaldaten. Bei z.B. einem Wohnungsbrand wären im Zweifel alle Daten verloren</li>
</ul>
<p>Aus diesem Grund habe ich mir vorgenommen die wichtigsten meiner Daten zusätzlich über das Internet zu sichern.</p>
<p>Ich nehme an, dass auch aundere Leute sich Gedanken um Online Backups machen und habe deshalb einige Informationen zu dem Thema hier zusammengestellt. Der Artikel beschäftig sich auschließlich mit Backups unter Linux.</p>
<h2>Welcher Anbieter?</h2>
<p>In der <a href="http://en.wikipedia.org/wiki/List_of_online_backup_services">Wikipedia</a> gibt es eine ganz gut Übersicht über Anbieter von Online Backup Diensten.</p>
<p>Ich habe mir einige dieser Anbieter angesehen und mich letztendlich für einen ganz anderen entschieden. Und zwar für den Dienst <a href="http://www.strato.de/hidrive/media/index.html">Strato HiDrive</a>. Ausschlaggebend waren für mich folgende Punkte:</p>
<ul>
<li>Strato ist ein deutscher Anbieter und muss sich an die vergleichsweise strengen Datenschutzgesetzte in Deutschland halten. Zum anderen kann man bei dem Dienst einfach per Bankeinzug bezahlen.</li>
<li>Es werden sehr viele Protokolle unterstützt: smb, ftp, sftp, scp, webdav und was entscheidend war:  rsync!</li>
<li>Ein nettes Feature ist außerdem das Anlegen von Snapshots (z.B. tägliche Snapshots oder manuelle Snapshots), die sich komplett wiederherstellen lassen.</li>
<li>Meiner Meinung nach sind die Preise angemessen ( 3,90€ /Monat für 100 GB: Stand 28.07.2010)</li>
</ul>
<p>Da es sich bei den Backups um sehr private Daten handelt ist es mir besonders wichtig, dass kein Unbefugter Zugang zu den Daten erhalten kann &#8211; auch kein Administrator von Strato. Deshalb müssen die Daten zuverlässig verschlüsselt werden.</p>
<h2><strong>Welche Verschlüsselungssoftware?<br />
</strong></h2>
<p>Für die Verschlüsselung kommen zwei grundlegend verschiedene Ansätze in Frage:</p>
<ul>
<li>Verwendung von verschlüsselten Partitionen oder Containern (TrueCrypt, dm-crypt, LUKS&#8230;)</li>
<li>Verwendung verschlüsselter Verzeichnisse (Ecryptfs, Encfs)</li>
</ul>
<p>Für Backups über das Internet (geringe Bandbreite) haben Ecryptfs und Encfs einen entscheidenden Vorteil. Beide verschlüsseln auf Dateiebene, und können deshalb einfach per rsync inkrementell gesichert werden.</p>
<p>Bei den anderen Verfahren ist das regelmäßige Sichern ganzer Container oder Partitionen über das Internet nicht praktikabel.</p>
<p>Aus diesen Gründen betrachte ich im Folgenden nur Ecryptfs und Encfs.</p>
<h3><strong>Ecryptfs</strong></h3>
<p>Ecryptfs wird in Ubuntu verwendet, um das ~/Private Verzeichnis zu verschlüsseln (<a href="http://wiki.ubuntuusers.de/ecryptfs-utils">http://wiki.ubuntuusers.de/ecryptfs-utils</a>). Dies hab ich bisher eingesetzt und war damit auch zufrieden (warum ich zu encfs wechseln musste ist in den Hinweisen erläutert).</p>
<p>Unter ~/.Private werden die Daten verschlüsselt im Dateisystem gespeichert. &#8211; Dieses Verzeichnis wird dann unter ~/Private automatisch beim Anmelden gemountet. Über ~/Private kann man dann auf die entschlüsselten Daten zugreifen.</p>
<pre>dummy@kiste:~$ ls -l .Private/
insgesamt 524
-rw-r--r-- 1 dummy dummy 466944 2009-12-03 19:12 ECRYPTFS_FNEK_ENCRYPTED.FWaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.HFD.GpjHXV7a.C2D3i2O7qU--
drwxr-xr-x 4 dummy dummy   4096 2009-12-03 19:10 ECRYPTFS_FNEK_ENCRYPTED.FWaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.HhcjptJ1jpHpq4RE-u5OhsU--
drwxr-xr-x 2 dummy dummy   4096 2009-12-03 19:10 ECRYPTFS_FNEK_ENCRYPTED.FWaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.H-lZjo5RNNFHOWf99S1D1kk--
-rw-r--r-- 1 dummy dummy  36864 2009-12-03 19:12 ECRYPTFS_FNEK_ENCRYPTED.FWaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.HT801TN.uzYWjul6XOl8aV---
-rw-r--r-- 1 dummy dummy  12288 2009-12-03 19:11 ECRYPTFS_FNEK_ENCRYPTED.FWaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.HVTkqLq-yXshQD95aNOrFAk--
-rw-r--r-- 1 dummy dummy  12288 2009-12-03 19:10 ECRYPTFS_FNEK_ENCRYPTED.FXaDK6X0QtKq3-RPjKXYmPiXaVkmO5fqpZ.HEVmJJE8T6yffoA1K.YJlARuB-EoEoA0QRZIHuG1Ji0g-

dummy@kiste:~$ ls -ltrs Private/
insgesamt 512
 4 drwxr-xr-x 2 dummy dummy   4096 2009-12-03 19:10 dosdevices
 4 drwxr-xr-x 4 dummy dummy   4096 2009-12-03 19:10 drive_c
 12 -rw-r--r-- 1 dummy dummy   2461 2009-12-03 19:11 userdef.reg
 36 -rw-r--r-- 1 dummy dummy  27631 2009-12-03 19:12 user.reg
456 -rw-r--r-- 1 dummy dummy 454968 2009-12-03 19:12 system.reg</pre>
<p><strong>Achtung</strong>: Dateinamen werden erst in aktuellen Ubuntu Versionen verschlüsselt (fnek Option). Wurde ein ~/Private Verzeichnis in einer älteren Version erstellt, dann kann es sein dass die Dateinamen nicht verschlüsselt sind (nur der Dateiinhalt).</p>
<h3><strong>Encfs</strong></h3>
<p>Encfs unterscheidet sich von Ecryptfs nur unwesentlich. Die Einrichtung kann unter Ubuntu allerdings etwas komplizierter sein. Wer einfach nur ein verschlüsseltes Verzeichnis irgendwo anlegen möchte, ohne dass dieses beim anmelden automatisch zur Verfügung steht, dem empfehle ich das Programm cryptkeepter (Installationn unter Ubuntu: apt-get install cryptkeeper). Dieses bietet eine einfache grafische Oberfläche zum Anlegen und Mounten der verschlüsselten Verzeichnisse. Sollen encfs Verzeichnisse beim Anmelden automatisch gemounted werden, dann muss manuell pam_encfs konfiguriert werden (eine gute Anleitung gibts hier: <a href="https://help.ubuntu.com/community/FolderEncryption">https://help.ubuntu.com/community/FolderEncryption</a>).</p>
<p>Bei Encfs gibt es auch ein Verzeichnis mit den verschlüsselten Daten und einen Pfad über den auf die entschlüsselten Daten zugegriffen werden kann:</p>
<pre>user@kiste:~$ ls -l .crypted_encfs
insgesamt 0
-rw-r--r-- 1 user user 0 2010-07-28 21:33 3Hghvpu,JQrhuovq-,v1bnmv
-rw-r--r-- 1 user user 0 2010-07-28 21:33 fOm83vxkl3Iq0yXMa0d5zFvl
-rw-r--r-- 1 user user 0 2010-07-28 21:33 ,jhvvli6Ex2oxNtYZndhd-Iu
-rw-r--r-- 1 user user 0 2010-07-28 21:33 Pdhw2u-z4SgVDmNauXNARteH
user@kiste:~$ ls -l crypted/
insgesamt 0
-rw-r--r-- 1 user user 0 2010-07-28 21:33 aaa
-rw-r--r-- 1 user user 0 2010-07-28 21:33 bbb
-rw-r--r-- 1 user user 0 2010-07-28 21:33 cc
-rw-r--r-- 1 user user 0 2010-07-28 21:33 ddddd</pre>
<h2>Welche Dateien müssen bei Encfs und Ecryptfs gesichert werden</h2>
<p>Beim Backup ist darauf zu achten,  dass alle relevanten Verzeichnisse gesichert werden, die für das entschlüsseln benötigt werden. Sonst steht man später mit einem Backup da, mit dem man nichts mehr anfangen kann.</p>
<p>Bei Ecryptfs sollten folgende Verzeichnisse gesichert werden:</p>
<ul>
<li>~/.Private (enthält die verschlüsselten Daten und kann natürlich auch anders benannt sein)</li>
<li>~/.ecryptfs (enthält die verschlüsselte Passphrase)</li>
</ul>
<p>Das .ecryptfs Verzeichnis ist nicht zwingend notwendig. Wenn man sich die Passphrase gemerkt hat, können die Daten auch ohne dieses Verzeichnis wiederhergestellt werden.<br />
<strong>Achtung: </strong>wird das ~/.ecryptfs Verzeichnis mitgesichert, dann ist die Verschlüsselung der Daten nur so gut wie das Anmeldepasswort (mit dem die Passphrase verschlüsselt wurde). Jemand der euer Anmeldepasswort errät kann eure Daten entschlüsseln. Für Paranoide Leute empfiehlt es sich daher das ~/.ecryptfs Verzeichnis nicht mitzusichern und sich die Passphrase gut (!) zu merken!</p>
<p>Bei Encfs sollte das verschlüsselte Verzeichnis gesichert werden:</p>
<ul>
<li>also z.B. ~/.crypted_encfs (enthält sowohl die verschlüsselten Daten, als auch den verschlüsselten Schlüssel, der für das Entschlüsseln benötigt wird)</li>
</ul>
<p><strong>Achtung: </strong>Die Verschlüsselung der Daten ist nur so gut wie das verwendete Passwort! Für Paranoide Anwender besteht die Möglichkeit die Datei ~/.crypted_encfs/encfs6.xml aus der Sicherung auszuschließen und getrennt aufzubewahren. Aber Vorsicht! Ohne diese Datei sind die Daten nicht mehr zu entschlüsseln.</p>
<h2>Verschlüsselte Daten sichern oder Backup neu verschlüsseln?</h2>
<h3>Beim Backup verschlüsseln</h3>
<p>Sind die Daten, die zu sichern sind, noch nicht verschlüsselt, dann können diese mit Hilfe von Encfs oder Ecryptfs auf dem Backupmedium (Webdav-Order, CIFS-Share, etc.) beim Durchführen des Backups verschlüsselt werden. Dies bietet sich auch an, wenn z.B. komplett (mit dm-crypt, TrueCrypt,&#8230;) verschlüsselte Partitionen gesichert werden sollen.</p>
<h5>Beispiel:</h5>
<p>Zu sicherndes (unverschlüsseltes) Verzeichnis</p>
<ul>
<li>/home/dummy/private_daten</li>
</ul>
<p>Das Backupmedium ist per webdav (mit fusedav bzw. davfs)  gemountet unter:</p>
<ul>
<li>/tmp/backup</li>
</ul>
<p>Unter /tmp/backup wird nun ein verschlüsseltes Encfs Verzeichnis angelegt:</p>
<pre>dummy@kiste:~$ encfs /tmp/backup/.encrypted /tmp/backup/encrypted
Das Verzeichnis "/tmp/backup/.encrypted/" existiert nicht. Soll es angelegt werden? (y,n) y
Das Verzeichnis "/tmp/backup/encrypted" existiert nicht. Soll es angelegt werden? (y,n) y
Neues verschlüsselter Datenträger wird angelegt.
Bitte wählen Sie eine der folgenden Optionen:
 "x" für den Experten-Modus,
 "p" für den vorkonfigurierten Paranoia-Modus,
 etwas anderes oder eine Leerzeile wählt den Standard-Modus.
?&gt; p

Paranoide Konfiguration gewählt.

Konfiguration abgeschlossen. Das angelegte Dateisystem hat die
folgenden Eigenschaften:

[...]

Neues EncFS-Passwort:
EncFS-Passwort bestätigen: 

dummy@kiste:~$ mount | grep encfs
encfs on /tmp/backup/encrypted type fuse.encfs
(rw,nosuid,nodev,default_permissions,user=dummy)</pre>
<p>Das Verzeichnis ~/private_daten wird nun in das gemountete Encfs Verzeichnis gesichert:</p>
<pre>dummy@kiste:~$ rsync -a --delete --inplace private_daten/ /tmp/backup/encrypted/</pre>
<p>Die Daten liegen nun unter /tmp/backup/.encrypted in verschlüsselter Form vor:</p>
<pre>dummy@kiste:/tmp/backup$ ls -l /tmp/backup/.encrypted/
insgesamt 12
drwxr-xr-x 2 dummy dummy 4096 2010-07-30 18:22 2xHGT,wzYomV7fDlREiINoJI
drwxr-xr-x 2 dummy dummy 4096 2010-07-30 18:22 JCbv-Pbw6EbZuy281XfNJxnL
-rw-r--r-- 1 dummy dummy    8 2010-07-30 18:27 prihQ3d,GP-gZ8n4vwR,RF-i</pre>
<p>Die Sicherung ist nun komplett und die Verzeichnisse können wieder abgehängt werden:</p>
<pre>dummy@kiste:~$ fusermount -u /tmp/backup/unencrypted/
dummy@kiste:~$ fusermount -u /tmp/backup</pre>
<p><strong>Hinweis:</strong> Bis Version 1.6 von encfs (in Ubuntu 10.04 ist erst 1.5.2 enthalten) gibt es einen Bug, der bewirkt, dass beim Verschieben einer Datei die verschobene Datei einen aktuellen Zeitstempel erhält.<br />
Sollen regelmäßige inkrementelle Backups per Rsync durchgeführt werden, dann sollte beim syncen die Option &#8211;inplace verwendet werden. Rsync kann sonst beim Syncen von schon existierenden Dateien nicht den Zeitstempel erhalten. Die Folge ist, dass bei jedem Rsync alle Dateien übertragen werden.</p>
<h3>Schon verschlüsselte Daten sichern</h3>
<p>Sind die Daten auf dem Rechner schon mit Ecryptfs oder Encfs verschlüsselt, dann kann man sich das erneute Verschlüsseln auf dem Backupmedium sparen. Im Prinzip müssen nur noch die verschlüsselten Verzeichnisse auf das Backupmedium kopiert werden</p>
<h5>Beispiel A (über Webdav):</h5>
<p>Zu sicherndes, mit ecryptfs verschlüsseltes Verzeichnis</p>
<ul>
<li>/home/dummy/.Private ist unter /home/dummy/Private gemountet</li>
</ul>
<p>Das Backupmedium ist per webdav (mit fusedav bzw. davfs)  gemountet unter:</p>
<ul>
<li>/tmp/backup</li>
</ul>
<p>Das verschlüsselte Verzeichnis kann nun einfach per rsync kopiert werden:</p>
<pre>dummy@kiste:~$ rsync -a --delete .Private /tmp/backup/</pre>
<p>Paranoide Leute sollten jetzt wegschauen (und sich die ecryptfs Passphrase <strong>sehr</strong> gut merken):</p>
<pre>dummy@kiste:~$ rsync -a --delete .ecryptfs /tmp/backup/</pre>
<h5>Beispiel B (direkt über Rsync)</h5>
<p>Zu sicherndes, mit ecryptfs verschlüsseltes Verzeichnis</p>
<ul>
<li>/home/dummy/.encrypted ist unter /home/dummy/encrypted gemountet</li>
</ul>
<p>Gesichert wird auf das per rsync erreichbare HiDrive von Strato:</p>
<pre>dummy@kiste:~$ rsync -vxrltDz --delete --progress -e ssh /home/dummy/.encrypted \
stratouser@rsync.hidrive.strato.com:/users/stratouser/backup/</pre>
<p>Um später für einen <strong>Restore</strong> wieder an die Daten zu gelangen, können diese per Webdav gemountet werden. Anschließend kann dann das encfs Verzeichnis vom Backup gemountet werden:</p>
<pre>dummy@kiste:~$ fusedav -u stratouser -o ro \
https://stratouser.webdav.hidrive.strato.com /tmp/backup/

Realm 'User Auth' requires authentication.
Password: 

dummy@kiste:~$ encfs /tmp/backup/.encrypted /tmp/encrypted
EncFS-Passwort:</pre>
<p>Von /tmp/encrypted können nun die gewünschten Dateien wiederhergestellt werden.</p>
<h2>Hinweise</h2>
<ul>
<li>Auf webdav und cifs Verzeichnisse können u.U.  keine symbolischen links gesichert werden. Ggf. kann man vor der Sicherung ein Tar-File mit allen symbolischen links erzeugen und dieses dann mitsichern:</li>
</ul>
<pre>dummy@kiste:~$ find /home/dummy/ -xdev -type l  &gt; list_of_links.txt
dummy@kiste:~$ tar -cT list_of_links.txt -f link.tar</pre>
<ul>
<li>Der Rsync Server von Strato HiDrive hat scheinbar Probleme mit sehr langen Dateinamen (wie sie z.B. ecryptfs bei Verwendung der fnek Option erzeugt). Der Rsync bricht nach dem Start sofort mit folgender Fehlermeldung ab &#8211; Bei Encfs tritt das Problem nicht auf  (deshalb verwende für die Strato Backups Encfs und nicht Ecryptfs):</li>
</ul>
<pre>dummy@kiste:~$ rsync -vrltDzr --dry-run -e "ssh" .Private \
stratouser@rsync.hidrive.strato.com:/users/stratouser/backup/

stratouser@rsync.hidrive.strato.com's password:
sending incremental file list
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error allocating core memory buffers (code 22) at io.c(601) [sender=3.0.7]</pre>
<ul>
<li><strong>Update: </strong>Encfs scheint Probleme in Zusammenhang mit KDE zu verursachen (in .xsession-errors erscheint folgende Fehlermeldung: <em>couldn’t lock local file</em>.). Bei mit hat insbesondere Choqok Probleme sich gelesene Tweets zu merken. <a href="http://www.korbinian-pauli.de/kde-und-verschlusseltes-encfs-home-verzeichnis-mogen-sich-nicht-558">Hier gibt es ein Blogpost zu dem Thema.</a> <a href="https://bugs.kde.org/show_bug.cgi?id=238530">Hier ist der zugehörige KDE-Bug report.</a> Als Workaround habe ich nur kritische Daten unterhalb von .kde ins Verschlüsselte Encfs Verzeichnis verlinkt (z.B. .kde/share/apps/kmail und.kde/share/apps/kwallet) &#8211; Ich werde aber wohl wieder auf ecryptfs umstellen (ohne fnek wegen oben genannter rsync Probleme bei Strato).</li>
<li><span style="color:#ff0000;"><strong>Update 2: Eine sehr elegante Möglichkeit der Sicherung ist mit encfs &#8211;reverse möglich. Ist dem oben Beschriebenen deutlich überlegen: Hier gibts eine tolle Doku</strong></span>: <a href="http://www.thequietroom.de/wiki/index.php?title=Verschl%C3%BCsseltes_Backup_auf_Strato_HiDrive">http://www.thequietroom.de/wiki/index.php?title=Verschl%C3%BCsseltes_Backup_auf_Strato_HiDrive</a></li>
</ul>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:148px;width:1px;height:1px;overflow:hidden;">Da es sich bei den Backups um sehr private Daten handelt ist es mir besonders wichtig, dass kein Unbefugter Zugang zu den Daten erhalten kann &#8211; auch kein Administrator von Strato. Deshalb müssen die Daten zuverlässig verschlüsselt werden.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=112&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>
	</item>
		<item>
		<title>Cool new window features in KDE 4.4 RC1</title>
		<link>http://neuntoeter.wordpress.com/2010/01/17/cool-window-features-in-kde-4-4-rc1/</link>
		<comments>http://neuntoeter.wordpress.com/2010/01/17/cool-window-features-in-kde-4-4-rc1/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 11:13:07 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=98</guid>
		<description><![CDATA[I just updated KDE to 4.4 RC1 in Kubuntu 9.10. The new window features are really great! Tabbed Windows You like tabs in browsers? Then you will like the new window tabs in KDE, that will allow you to group together different windows. Here is how it looks like: First add a window to another [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=98&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just updated KDE to 4.4 RC1 in Kubuntu 9.10. The new window features are really great!</p>
<p><strong>Tabbed Windows</strong></p>
<p>You like tabs in browsers? Then you will like the new window tabs in KDE, that will allow you to group together different windows. Here is how it looks like:</p>
<ul>
<li>First add a window to another existing window</li>
</ul>
<p><a href="http://neuntoeter.files.wordpress.com/2010/01/group_window.png"><img class="alignnone size-full wp-image-99" title="group_window" src="http://neuntoeter.files.wordpress.com/2010/01/group_window.png?w=450&#038;h=151" alt="" width="450" height="151" /></a></p>
<ul>
<li>Afterwards you can switch between the windows with the new window tabs</li>
</ul>
<p><a href="http://neuntoeter.files.wordpress.com/2010/01/window_tabs.png"><img class="alignnone size-full wp-image-100" title="window_tabs" src="http://neuntoeter.files.wordpress.com/2010/01/window_tabs.png?w=450&#038;h=42" alt="" width="450" height="42" /></a></p>
<p>This is very usable if you are working with lots of windows and want to group together windows that are e.g. used for a single task.</p>
<p><strong>Position windows so that they share the screen equally</strong></p>
<p>If you have a screen with a high resolution, then it is sometimes very useful to have two windows open next to each other. I like to have e.g. documentation open in one window and in another a config file. Of course you can arrange the windows manually, so that the two windows together use the whole screen. But in KDE 4.4 you just have to move one window to the left or the right screen edge and the window will automatically be resized to half of the screen size.</p>
<p><a href="http://neuntoeter.files.wordpress.com/2010/01/share_window_1.png"><img class="alignnone size-medium wp-image-102" title="share_window_1" src="http://neuntoeter.files.wordpress.com/2010/01/share_window_1.png?w=300&#038;h=187" alt="" width="300" height="187" /></a></p>
<p><strong>Selecting windows with the task manager preview</strong></p>
<p>If you have enabled desktop effects in KDE 4.X the task manager shows previews of windows by default. In KDE 4.4 it is now possible to click on a preview of a window to switch to the window.</p>
<p><a href="http://neuntoeter.files.wordpress.com/2010/01/window_preview.png"><img class="alignnone size-full wp-image-103" title="window_preview" src="http://neuntoeter.files.wordpress.com/2010/01/window_preview.png?w=450&#038;h=160" alt="" width="450" height="160" /></a></p>
<p><strong>Thanks to the KDE team &#8211; You are doing a great job!</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=98&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2010/01/17/cool-window-features-in-kde-4-4-rc1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/01/group_window.png" medium="image">
			<media:title type="html">group_window</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/01/window_tabs.png" medium="image">
			<media:title type="html">window_tabs</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/01/share_window_1.png?w=300" medium="image">
			<media:title type="html">share_window_1</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2010/01/window_preview.png" medium="image">
			<media:title type="html">window_preview</media:title>
		</media:content>
	</item>
		<item>
		<title>Device notifier script for updating OSM map on Garmin device</title>
		<link>http://neuntoeter.wordpress.com/2009/12/30/device-notifier-script-for-updating-osm-map-on-garmin-device/</link>
		<comments>http://neuntoeter.wordpress.com/2009/12/30/device-notifier-script-for-updating-osm-map-on-garmin-device/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 14:54:08 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Openstreetmap]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[OSM]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=83</guid>
		<description><![CDATA[I am regularly mapping things in Openstreetmap with my Garmin Nüvi 205 and a second GPS Tracker (iBlue 747a+). It is very usefull to have a current version of the OSM map on the Garmin device, so that you see what is actually missing in the map when you are in the field. I used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=83&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am regularly mapping things in Openstreetmap with my Garmin Nüvi 205 and a second GPS Tracker (iBlue 747a+).</p>
<p>It is very usefull to have a current version of the OSM map on the Garmin device, so that you see what is actually missing in the map when you are in the field.</p>
<p>I used to manually download the map file from <a href="http://dev.openstreetmap.de/aio/" target="_blank">http://dev.openstreetmap.de/aio/</a> and then uncompressing it to the garmin device. But I was getting tired of doing this repetitive task and so I wrote a script for this&#8230;.</p>
<p>The script can be executed via the device notifier in KDE4 (more infos about device notifier can be found in an older blogpost of mine: <a title="Permanent Link: Adding actions to the Device Notifier widget in KDE 4.3" rel="bookmark" href="../2009/11/05/adding-actions-to-the-device-notifier-widget-in-kde-4-3/">Adding actions to the Device Notifier widget in KDE 4.3</a>).</p>
<p><a href="http://neuntoeter.files.wordpress.com/2009/12/device_notifier_garmin.png"><img class="alignnone size-medium wp-image-86" title="device_notifier_garmin" src="http://neuntoeter.files.wordpress.com/2009/12/device_notifier_garmin.png?w=285&#038;h=300" alt="" width="285" height="300" /></a><a href="http://neuntoeter.files.wordpress.com/2009/12/device_notifier_garmin.png"><br />
</a></p>
<p>After selecting &#8220;Update OSM map on Garmin device&#8221; in the device notifier the script downloads the map and shows a progressbar.</p>
<p><a href="http://neuntoeter.files.wordpress.com/2009/12/downloading1.png"><img class="alignnone size-full wp-image-88" title="downloading" src="http://neuntoeter.files.wordpress.com/2009/12/downloading1.png?w=450" alt=""   /></a><a href="http://neuntoeter.files.wordpress.com/2009/12/downloading.png"></a></p>
<p>When it is finished a pop-up appears and the device can be removed via device notifier.</p>
<p><a href="http://neuntoeter.files.wordpress.com/2009/12/finished.png"><img class="alignnone size-medium wp-image-89" title="finished" src="http://neuntoeter.files.wordpress.com/2009/12/finished.png?w=300&#038;h=90" alt="" width="300" height="90" /></a></p>
<p>I have attached the script (<em>update_map.sh</em>)  and the device notifier config (<em>update_map.desktop</em>) to this post.</p>
<p>The script needs the package &#8220;pv&#8221; (pipe viewer). It can be installed in kubuntu with &#8220;<em>apt-get install pv</em>&#8220;.</p>
<p><strong>update_map.sh </strong>(place it in <em>/usr/local/bin</em>)<strong><br />
</strong></p>
<blockquote><p>#!/bin/bash</p>
<p>url=http://dev.openstreetmap.de/aio/germany/gmapsupp.img.bz2<br />
path=$1<br />
target_dir=$path/Garmin<br />
target_file=$target_dir/gmapsupp.img</p>
<p>progressfile=/tmp/progress_$$<br />
echo 0 &gt; $progressfile</p>
<p>function watch_progress {<br />
dbusRef=$1<br />
while [ true ]<br />
do<br />
sleep 1<br />
# check if dbus object exists<br />
qdbus $dbusRef 1&gt;/dev/null 2&gt;&amp;1<br />
if [ "$?" -ne "0" ]<br />
then<br />
# dbus Object does not exist (anymore)<br />
exit 0<br />
fi</p>
<p># read current progress<br />
progress=`tail -n1 $progressfile`</p>
<p># set progress to progressbar<br />
qdbus $dbusRef Set &#8220;&#8221; &#8220;value&#8221; $progress<br />
done</p>
<p>}</p>
<p>if [ ! -d $target_dir ]<br />
then<br />
kdialog &#8211;msgbox &#8220;$target_dir does not exist!&#8221;<br />
exit 1<br />
fi</p>
<p>kdialog &#8211;yesno &#8220;Update OSM Map on $target_dir ?&#8221;<br />
ret=$?</p>
<p>if [ "$ret" -eq "0" ]<br />
then</p>
<p># get file size<br />
size=`curl -sI $url | grep Content-Length | cut -d &#8216; &#8216; -f 2 | sed &#8220;s/[^0-9]//g&#8221;`<br />
kbsize=$((size/1024))k</p>
<p>dbusRef=`kdialog &#8211;progressbar &#8220;Downloading OSM Map&#8221; 100`<br />
watch_progress &#8220;$dbusRef&#8221; &amp;</p>
<p>wget -qO- $url | pv -s $kbsize -n 2&gt;$progressfile | bunzip2 &gt; $target_file<br />
sync<br />
sync</p>
<p>qdbus $dbusRef close<br />
rm -f $progressfile</p>
<p>error=0<br />
#check return codes in pipe<br />
for rc in ${PIPESTATUS[*]}<br />
do</p>
<p>if [ "$rc" -ne "0" ]<br />
then<br />
error=1<br />
fi<br />
done</p>
<p>if [ "$error" -ne "0" ]<br />
then<br />
kdialog &#8211;msgbox &#8220;There was an error updating the map&#8221;;<br />
else<br />
kdialog &#8211;msgbox &#8220;The map was updated successfully &#8211; You may now disconnect the device&#8221;;<br />
fi</p>
<p>else<br />
kdialog &#8211;msgbox &#8220;cancelled&#8230;&#8221;<br />
fi</p></blockquote>
<p><strong>update_map.desktop </strong>(place it in e.g. <em>/usr/share/kde4/apps/solid/actions</em>)</p>
<blockquote><p>[Desktop Entry]<br />
X-KDE-Solid-Predicate=[[ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] OR [ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ]]<br />
Type=Service<br />
Actions=open;</p>
<p>[Desktop Action open]<br />
Name=Update OSM map on Garmin device<br />
Exec=/usr/local/bin/update_map.sh %f<br />
Icon=system-file-manager<br />
X-Ubuntu-Gettext-Domain=desktop_kdebase-workspace</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=83&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2009/12/30/device-notifier-script-for-updating-osm-map-on-garmin-device/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/12/device_notifier_garmin.png?w=285" medium="image">
			<media:title type="html">device_notifier_garmin</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/12/downloading1.png" medium="image">
			<media:title type="html">downloading</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/12/finished.png?w=300" medium="image">
			<media:title type="html">finished</media:title>
		</media:content>
	</item>
		<item>
		<title>Openstreetmap event calendar on a map</title>
		<link>http://neuntoeter.wordpress.com/2009/11/18/openstreetmap-event-calendar-on-a-map/</link>
		<comments>http://neuntoeter.wordpress.com/2009/11/18/openstreetmap-event-calendar-on-a-map/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 18:30:44 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[openlayers]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=62</guid>
		<description><![CDATA[As someone who is interested in Openstreetmap I&#8217;d like to know when an OSM-event takes place somewhere near me. There is an event calendar on the OSM wiki where people publish the dates of OSM mapping parties and other osm meetings. It is nice that there is a central place where to look for such [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=62&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As someone who is interested in Openstreetmap I&#8217;d like to know when an OSM-event takes place somewhere near me.</p>
<p>There is an <a title="OSM event calendar" href="http://wiki.openstreetmap.org/wiki/Current_events">event calendar</a> on the OSM wiki where people publish the dates of OSM mapping parties and other osm meetings.</p>
<p><a href="http://neuntoeter.files.wordpress.com/2009/11/osm_event_list.png"><img class="alignnone size-medium wp-image-65" title="osm_event_list" src="http://neuntoeter.files.wordpress.com/2009/11/osm_event_list.png?w=208&#038;h=300" alt="" width="208" height="300" /></a></p>
<p>It is nice that there is a central place where to look for such meetings. The problem with this list is however, that events all around the world are shown there and it is not easy to find events that take place in a specific region.</p>
<p>The only way to limit the events by a region is to use an iCal feed for a specific region. The region must be supplied in coordinates (http://www.openstreetmap.org.uk/events.ics?bbox=-0.589,51.278,0.251,51.745)  and you need a client to display the ics data. Most people won&#8217;t use this feature.</p>
<p>In my opinion the best place for this OSM event calendar would be an OSM map. So I decided to put the events as markers on an OSM map. Displaying maps and adding markers is really easy thanks to <a href="http://www.openlayers.org">openlayers.org</a>. All you need is a bit of javascript and a text file containing the markers.</p>
<p>The hard thing is to get the coordinates of the events. For this task I coded the following in perl.<br />
The events in the calendar usually only contain short descriptions of the events and a link to a more detailed page (e.g. Nov 17 München monthly meeting). I first tried to get the coordinates from the city names. Such a feature is provided by  <a href="http://nominatim.openstreetmap.org/">nominatim</a>. You can query the service by http GET requests and the answer can be return in JSON format (e.g. <a href="http://nominatim.openstreetmap.org/?q=München+Germany&amp;format=json">http://nominatim.openstreetmap.org/?q=München+Germany&amp;format=json</a>). This worked quite well with names that are unique, but it is impossible to decide which coordinates are correct if multiple results are returned.<br />
To get the coordinates anyway I did a trick. Each event usually links to a page in the OSM wiki where more details to this event are displayed. Usually these wiki pages contain maps showing the region where the event takes place. In the soucecode of the wiki page you find the coordinate of the region by searching for the strings &#8220;lon=&#8221; and &#8220;lat=&#8221;.</p>
<p>This is how the map looks like:</p>
<p><a href="http://neuntoeter.ne.ohost.de/"><img class="alignnone size-medium wp-image-69" title="event_map" src="http://neuntoeter.files.wordpress.com/2009/11/event_map.png?w=300&#038;h=240" alt="" width="300" height="240" /></a></p>
<p><a href="http://neuntoeter.ne.ohost.de/">A working version of the map can be found here</a></p>
<p>I know that the map is not perfect. It is just hacked together in a couple of hours. There probably a lot of bugs in the map (e.g. special characters are not shown correct,&#8230;) and not all coordinates are correct. But I think you get a nice overview of where events take place and which of the events are in the near future.</p>
<p>I hope this example shows that it would be nice to have this feature in the OSM wiki or maybe even on the official map (to get more people in touch with the OSM community). This could be implemented very easily if all events would have been provided with coordinates. Maybe a good way to implement this would be via <a href="http://www.georss.org/Main_Page">GeoRSS</a>. An example can be found at the<a href="http://openlayers.org/dev/examples/georss.html"> openlayers website</a>.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:342px;width:1px;height:1px;">
<h2><span class="mw-headline">iCal feed</span></h2>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=62&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2009/11/18/openstreetmap-event-calendar-on-a-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/osm_event_list.png?w=208" medium="image">
			<media:title type="html">osm_event_list</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/event_map.png?w=300" medium="image">
			<media:title type="html">event_map</media:title>
		</media:content>
	</item>
		<item>
		<title>Adding actions to the Device Notifier widget in KDE 4.3</title>
		<link>http://neuntoeter.wordpress.com/2009/11/05/adding-actions-to-the-device-notifier-widget-in-kde-4-3/</link>
		<comments>http://neuntoeter.wordpress.com/2009/11/05/adding-actions-to-the-device-notifier-widget-in-kde-4-3/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 19:23:40 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[device notifier]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=33</guid>
		<description><![CDATA[The default behaviour The KDE device notifier is a widget that can be used to managed plugged-in devices like e.g. usb pen-drives. In a default Kubuntu installation this is shown as an icon in the taskbar. When clicking on it it shows e.g. all partitions of plugged in devices. When you click on a partition [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=33&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>The default behaviour</strong></p>
<p>The KDE device notifier is a widget that can be used to managed plugged-in devices like e.g. usb pen-drives. In a default Kubuntu installation this is shown as an icon in the taskbar. When clicking on it it shows e.g. all partitions of plugged in devices.</p>
<p><img class="alignnone size-full wp-image-35" title="device_notifier_taskbar" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_taskbar.png?w=450" alt="device_notifier_taskbar"   /></p>
<p>When you click on a partition it offers a couple of actions that can be started for that particular partition (e.g. downloading pictures to digikam or open the drive in dolphin).</p>
<p><img class="alignnone size-full wp-image-34" title="device_notifier_default" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_default.png?w=450" alt="device_notifier_default"   /></p>
<p><strong>Why I needed an additional action</strong></p>
<p>A task I have to do every day is to move downloaded podcast on a usb pen-drive, so I listen to the podcasts on my car radio. In the beginning I moved the files manually to the drive and then I wrote a script that did this job for me.<br />
The Script created a directory in the format ddmmyyyy (e.g. /media/disk/05112009) on the pen-drive and moved the files in there. Afterwards it did a sync to ensure that all data had been flushed to the drive.</p>
<p>As I always used the device notifier to mount the drive, I wanted to have my script as an action in there.</p>
<p><strong>Where do I find the actions in the filesystem?<br />
</strong></p>
<p>The actions of the device notifier are placed in the directory /usr/share/kde4/apps/solid/actions. There is one file for each action.<br />
Custom actions for a specific user can be placed in ~/.kde/share/apps/solid/.</p>
<p>There are a couple of paramterers that describe the action e.g.:</p>
<ul>
<li><em>X-KDE-Solid-Predicate</em> determines for which devices the action should be available</li>
<li><em>Name</em> is the label of the action shown in the device notifier</li>
<li><em>Exec </em>is the command that will be executed.</li>
</ul>
<p>There are some variables that can be passed to the exec-command (there might be more):</p>
<ul>
<li>%f gives StorageAccess.filePath</li>
<li>%d gives Block.device</li>
<li>%i gives UDI</li>
</ul>
<p><strong>Adding an action to device notifier</strong></p>
<p>To execute my mp3 moving script I created the file /usr/share/kde4/apps/solid/actions/movemp3.desktop:</p>
<blockquote><p>[Desktop Entry]<br />
X-KDE-Solid-Predicate=[[ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] OR [ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ]]<br />
Type=Service<br />
Actions=open;</p>
<p>[Desktop Action open]<br />
Name=Move MP3 files<br />
Exec=/usr/local/bin/copy_mp3_files.sh %f<br />
Icon=system-file-manager<br />
X-Ubuntu-Gettext-Domain=desktop_kdebase-workspace</p></blockquote>
<p>After restarting KDE the device notifier now contains a new entry:</p>
<p><img class="alignnone size-full wp-image-43" title="device_notifier_new" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_new.png?w=450" alt="device_notifier_new"   /></p>
<p>Formerly I started the script from the terminal, but now I start it from the gui. Therefor I added some gui interaction to the script to make it more comfortable:</p>
<p><img class="alignnone size-full wp-image-44" title="device_notifier_move1" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move1.png?w=450" alt="device_notifier_move1"   /></p>
<p><img class="alignnone size-full wp-image-45" title="device_notifier_move2" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move2.png?w=450" alt="device_notifier_move2"   /></p>
<p><img class="alignnone size-full wp-image-46" title="device_notifier_move3" src="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move3.png?w=450&#038;h=138" alt="device_notifier_move3" width="450" height="138" /></p>
<p>Just in case anyone is interested in the simple script:</p>
<blockquote><p>path=$1<br />
mp3path=/home/$USER/pod<br />
datum=`date +&#8221;%d%m%y&#8221;`<br />
newpath=$path/$datum</p>
<p>kdialog &#8211;yesno &#8220;Move MP3-files to drive ($newpath)?&#8221;<br />
ret=$?</p>
<p>if [ "$ret" -eq "0" ]<br />
then</p>
<p>kdialog &#8211;yesno &#8220;Delete old files? ( `ls $path/[0-9][0-9][0-9][0-9][0-9][0-9]` )&#8221;<br />
if [ "$?" -eq "0" ]<br />
then<br />
rm -r $path/[0-9][0-9][0-9][0-9][0-9][0-9]<br />
fi<br />
mkdir -p $newpath<br />
mv $mp3path/*mp3 $newpath/<br />
sync<br />
sync<br />
sync<br />
kdialog &#8211;msgbox &#8220;Files were moved, you may now disconnect the drive by device notifier!&#8221;</p>
<p>else<br />
kdialog &#8211;msgbox &#8220;cancelled&#8230;&#8221;<br />
fi</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=33&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2009/11/05/adding-actions-to-the-device-notifier-widget-in-kde-4-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_taskbar.png" medium="image">
			<media:title type="html">device_notifier_taskbar</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_default.png" medium="image">
			<media:title type="html">device_notifier_default</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_new.png" medium="image">
			<media:title type="html">device_notifier_new</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move1.png" medium="image">
			<media:title type="html">device_notifier_move1</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move2.png" medium="image">
			<media:title type="html">device_notifier_move2</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/device_notifier_move3.png" medium="image">
			<media:title type="html">device_notifier_move3</media:title>
		</media:content>
	</item>
		<item>
		<title>Digikam 1.0.0-beta5 verwendet Openstreetmap Karten</title>
		<link>http://neuntoeter.wordpress.com/2009/11/03/digikam-1-0-0-beta5-verwendet-openstreetmap-karten/</link>
		<comments>http://neuntoeter.wordpress.com/2009/11/03/digikam-1-0-0-beta5-verwendet-openstreetmap-karten/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:14:01 +0000</pubDate>
		<dc:creator>neuntoeter</dc:creator>
				<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Openstreetmap]]></category>
		<category><![CDATA[9.10]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[foto]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[OSM]]></category>

		<guid isPermaLink="false">http://neuntoeter.wordpress.com/?p=18</guid>
		<description><![CDATA[Digikam kann schon ein ganze Weile Fotos auf einer Karte darstellen. Hierfür gibt es die Geolocation Ansicht, welche auf marble aufsetzt. Bisher wurde an dieser Stelle eine ungenaue und wenig detailierte Karte angezeigt. In der aktuellen Version können die Fotos nun auch auf der Openstreetmap Karte dargestellt werden. Beim herauszoomen aus der Karte werden nebeneinander [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=18&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Digikam kann schon ein ganze Weile Fotos auf einer Karte darstellen. Hierfür gibt es die Geolocation Ansicht, welche auf marble aufsetzt. Bisher wurde an dieser Stelle eine ungenaue und wenig detailierte Karte angezeigt. In der aktuellen Version können die Fotos nun auch auf der Openstreetmap Karte dargestellt werden.</p>
<p><img class="alignnone size-full wp-image-20" title="digikam_with_osm" src="http://neuntoeter.files.wordpress.com/2009/11/digikam_with_osm.png?w=450&#038;h=375" alt="digikam_with_osm" width="450" height="375" /></p>
<p>Beim herauszoomen aus der Karte werden nebeneinander liegende Bilder zu einem einzelnen zusammengefasst. Auf diesem wird wiederum die Anzahl der zusammengefassten Bilder angezeigt.  Somit wirkt die Karte auch dann nicht überladen, wenn sehr viele Fotos in einem kleinen Gebiet geschossen wurden.</p>
<p>Besonders praktisch finde ich, dass man das Feature mit der digikam Suche kombinieren kann. So kann man sich ganz einfach anzeigen lassen, wo man an einem bestimmten Tag gewandert ist (siehe Screenshot) oder sich z.B. alle mit &#8220;Strand&#8221; getaggten Fotos auf der Karte anzeigen lassen.</p>
<p><img class="alignnone size-full wp-image-24" title="digikam_osm_search" src="http://neuntoeter.files.wordpress.com/2009/11/digikam_osm_search.png?w=450&#038;h=389" alt="digikam_osm_search" width="450" height="389" /></p>
<p>Ein Feature vermisse ich leider noch in der Kartenansicht: Praktisch fände ich es, wenn beim Klick auf ein Foto in der Karte das Foto vergrößert dargestellt würde. Leider passiert beim Klicken auf ein Bild im Moment gar nichts.<br />
Ich werde gleich mal auf kde.org einen Feature Request eintragen (<a href="http://bugs.kde.org/show_bug.cgi?id=212967">http://bugs.kde.org/show_bug.cgi?id=212967</a>).</p>
<p><strong> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neuntoeter.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neuntoeter.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neuntoeter.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neuntoeter.wordpress.com&amp;blog=10255689&amp;post=18&amp;subd=neuntoeter&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neuntoeter.wordpress.com/2009/11/03/digikam-1-0-0-beta5-verwendet-openstreetmap-karten/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8641d5d4629210e97f3073894bc96120?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">neuntoeter</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/digikam_with_osm.png" medium="image">
			<media:title type="html">digikam_with_osm</media:title>
		</media:content>

		<media:content url="http://neuntoeter.files.wordpress.com/2009/11/digikam_osm_search.png" medium="image">
			<media:title type="html">digikam_osm_search</media:title>
		</media:content>
	</item>
	</channel>
</rss>
