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

<channel>
	<title>Tobis Blog</title>
	<atom:link href="http://blog.aditu.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.aditu.de</link>
	<description>Alles rund um Webentwicklung, Fotografie, PHP und weitere interessante Themen</description>
	<lastBuildDate>Sun, 22 Apr 2012 16:32:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Baldurs Gate Enhanced Edition für iOS</title>
		<link>http://blog.aditu.de/2012/04/22/baldurs-gate-enhanced-edition-fur-ios/</link>
		<comments>http://blog.aditu.de/2012/04/22/baldurs-gate-enhanced-edition-fur-ios/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 16:32:31 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programme]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=1038</guid>
		<description><![CDATA[Seit einiger Zeit gibt es eine Neuigkeit, die ich meinen Blogleser nicht vorenthalten will: Im Sommer diesen Jahres soll Baldurs Gate für das iPad kommen. Für mich ein absoluter Klassiker und nachdem das iPad mittlerweile meine bevorzugte Spieleplattform ist, werde ich mich wohl im Sommer für ein paar Tage im Keller verkriechen und zocken. Weitere [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einiger Zeit gibt es eine Neuigkeit, die ich meinen Blogleser nicht vorenthalten will: Im Sommer diesen Jahres soll Baldurs Gate für das iPad kommen. Für mich ein absoluter Klassiker und nachdem das iPad mittlerweile meine bevorzugte Spieleplattform ist, werde ich mich wohl im Sommer für ein paar Tage im Keller verkriechen und zocken. Weitere Infos findet ihr auf <a title="Baldurs Gate" href="http://www.baldursgate.com/">baldursgate.com</a>. Scheinbar soll es auch eine Mac Version geben. Man munkelt auch, dass eventuell Baldurs Gate 2 und Icewind Dale neu aufgelegt werden sollen. Allerdings nur, wenn der Remake des ersten Teils erfolgreich ist. Overhaul Games schließt auch einen dritten Teil nicht aus.</p>
<p><a href="http://www.baldursgate.com/news/2012/03/21/baldurs-gate-enhanced-edition-fur-ipad/"><img class="alignnone size-full wp-image-1039" title="Baldurs Gate auf dem iPad" src="http://blog.aditu.de/wp-content/uploads/2012/04/sc1.jpg" alt="" width="511" height="341" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/04/22/baldurs-gate-enhanced-edition-fur-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rsslounge Android App 0.1</title>
		<link>http://blog.aditu.de/2012/02/06/rsslounge-android-app-0-1/</link>
		<comments>http://blog.aditu.de/2012/02/06/rsslounge-android-app-0-1/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 20:30:48 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[rsslounge]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=1025</guid>
		<description><![CDATA[François Tessier hat sich die Arbeit gemacht und eine Android App für rsslounge erstellt. Sie befindet sich zwar in der frühen Version 0.1, erlaubt es aber bereits alle aktuellen Einträge recht komfortabel abzurufen. Bisher bietet rsslounge ja keine Oberfläche für mobile Endgeräte. So ist die App eine willkommene Erleichterung.   Links rsslounge Android Webseite SourceForge [...]]]></description>
			<content:encoded><![CDATA[<p><a title="François Tessier" href="http://www.francoistessier.info">François Tessier</a> hat sich die Arbeit gemacht und eine <a title="Homepage rsslounge Android App" href="http://www.francoistessier.info/rssLoungeAndroid/">Android App</a> für <a title="rsslounge" href="http://rsslounge.aditu.de">rsslounge</a> erstellt. Sie befindet sich zwar in der frühen Version 0.1, erlaubt es aber bereits alle aktuellen Einträge recht komfortabel abzurufen. Bisher bietet rsslounge ja keine Oberfläche für mobile Endgeräte. So ist die App eine willkommene Erleichterung.</p>
<p><a href="http://blog.aditu.de/wp-content/uploads/2012/02/rsslounge1.png"><img class="alignnone size-medium wp-image-1030" title="rsslounge app screenshot" src="http://blog.aditu.de/wp-content/uploads/2012/02/rsslounge1-180x300.png" alt="" width="180" height="300" /></a> <a href="http://blog.aditu.de/wp-content/uploads/2012/02/rsslounge2.png"><img class="alignnone size-medium wp-image-1031" title="rsslounge app screenshot" src="http://blog.aditu.de/wp-content/uploads/2012/02/rsslounge2-180x300.png" alt="" width="180" height="300" /></a></p>
<h3>Links</h3>
<ul>
<li><a title="rsslounge android webseite" href="http://www.francoistessier.info/rssLoungeAndroid/">rsslounge Android Webseite</a></li>
<li><a title="rsslounge android app auf sourceforge" href="http://sourceforge.net/projects/rsslounge-droid/">SourceForge Seite mit dem Quellcode der App</a></li>
<li><a title="Blogeintrag von Francois Tessier" href="http://www.francoistessier.info/blog/2012/02/03/rsslounge-for-android-v0-1-is-out/">Blogeintrag von François Tessier (auf französisch)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/02/06/rsslounge-android-app-0-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Filtern und Bereinigen von HTML mit jsoup</title>
		<link>http://blog.aditu.de/2012/01/25/filtern-und-bereinigen-von-html-mit-jsoup/</link>
		<comments>http://blog.aditu.de/2012/01/25/filtern-und-bereinigen-von-html-mit-jsoup/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 17:30:38 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Cross Site Scripting]]></category>
		<category><![CDATA[HTML Purifier]]></category>
		<category><![CDATA[htmLawed]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Validierung]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=1013</guid>
		<description><![CDATA[Immer wieder stößt man auf den Anwendungsfall, dass Benutzereingaben, die HTML enthalten dürfen, bereinigt werden müssen. Besonders hinsichtlich dem Schutz vor XSS Angriffen führt kein Weg an einem solchen Schritt vorbei. In PHP gibt es hierfür mehrere Bibliotheken wie HTML Purifier Bibliothek oder htmLawed. Besteht die Anforderung, dass bestimmte HTML Eingaben erlaubt sein sollen, so [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder stößt man auf den Anwendungsfall, dass Benutzereingaben, die HTML enthalten dürfen, bereinigt werden müssen. Besonders hinsichtlich dem Schutz vor XSS Angriffen führt kein Weg an einem solchen Schritt vorbei. In PHP gibt es hierfür mehrere Bibliotheken wie <a href="http://htmlpurifier.org/">HTML Purifier Bibliothek</a> oder <a href="http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/">htmLawed</a>.</p>
<p>Besteht die Anforderung, dass bestimmte HTML Eingaben erlaubt sein sollen, so ist der Einsatz einer Bibliothek an dieser Stelle unbedingt notwendig. Es gibt <a href="http://ha.ckers.org/xss.html">zahlreiche Angriffsmöglichkeiten</a>, mit der ein Filter zurecht kommen muss und so kann man nur davon abraten selbst etwas zu bauen (z.b. Textersetzung mittels Regulären Ausdrücken).</p>
<p>Für Java habe ich eine sehr einfache und gute Bibliothek gefunden, die ich an dieser Stelle nur weiterempfehlen kann. <a href="http://jsoup.org">jsoup</a> heißt die schlanke Library, die unter der MIT Lizenz zur Verfügung steht und auch für die Manipulation von HTML Dokumenten zahlreiche Funktionen mit bringt. Zudem wird HTML5 und auch invalides HTML unterstützt.</p>
<p>Die Funktionsweise ist schnell erklärt. Will man jegliches HTML entfernen, so geschieht das mit folgenden Aufruf</p>
<pre class="brush: java; title: ; notranslate">
String userText = &quot;Beispieltext &lt;script&gt;alert('xyz');
        &lt;/script&gt; Beispieltext&quot;;
String cleanText = Jsoup.clean(userText, Whitelist.none());
// cleanText == &quot;Beispieltext  Beispieltext&quot;
</pre>
<p>Wie man sieht, dient ein Whitelist Objekt zur Definition, was erlaubt ist und was nicht. So kann man genau festlegen, welche Tags und welche Attribute zugelassen werden und welche nicht. Folgendes Beispiel erlaubt nur &lt;i&gt; und &lt;b&gt; Tags:</p>
<pre class="brush: java; title: ; notranslate">
String userText = &quot;&lt;a href='beispiel.de'&gt;xyz&lt;/a&gt;
          Bla &lt;i&gt;Blub&lt;/i&gt; Bl&lt;b&gt;ub&lt;/b&gt;&quot;;
String[] allowedTags = {&quot;i&quot;,&quot;b&quot;};
Whitelist whitelist = new Whitelist();
whitelist.addTags(allowedTags);
String cleanText = Jsoup.clean(userText, whitelist);
// cleanText == &quot;xyz Bla &lt;i&gt;Blub&lt;/i&gt; Bl&lt;b&gt;ub&lt;/b&gt;&quot;
</pre>
<p>Die Dokumentation und das JAR File sind auf der Webseite von jsoup zu finden:<br />
<a href="http://jsoup.org">jsoup Website</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/01/25/filtern-und-bereinigen-von-html-mit-jsoup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verschlüsselung von Java Streams mit AES und RSA</title>
		<link>http://blog.aditu.de/2012/01/20/verschlusselung-von-streams-mit-aes-und-rsa-java/</link>
		<comments>http://blog.aditu.de/2012/01/20/verschlusselung-von-streams-mit-aes-und-rsa-java/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 19:36:00 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[CipherInputStream]]></category>
		<category><![CDATA[CipherOutputStream]]></category>
		<category><![CDATA[InputStream]]></category>
		<category><![CDATA[OutputStream]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Streams]]></category>
		<category><![CDATA[Verschlüsselung]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=999</guid>
		<description><![CDATA[Als sicherheitsparanoider Nerd sicherheitsbewusster Entwickler kommt man um das Thema Verschlüsselung nicht herum. Besonders RSA in Kombination mit AES ist hier ein bewährtes Mittel um performant für eine sichere Verschlüsselung zu sorgen. Glücklicherweise bringt Java eine komfortable Kryptographie-Bibliothek mit, die eine einfache Integration in das Konzept der Java IO Stream bietet (mithilfe der mitgelieferten Klassen CipherInputStream [...]]]></description>
			<content:encoded><![CDATA[<p>Als <del>sicherheitsparanoider Nerd</del> sicherheitsbewusster Entwickler kommt man um das Thema Verschlüsselung nicht herum. Besonders <a title="Wikipedia RSA" href="http://de.wikipedia.org/wiki/RSA-Kryptosystem">RSA</a> in Kombination mit <a title="Wikipedia AES" href="http://de.wikipedia.org/wiki/Advanced_Encryption_Standard">AES</a> ist hier ein bewährtes Mittel um performant für eine sichere Verschlüsselung zu sorgen. Glücklicherweise bringt Java eine komfortable Kryptographie-Bibliothek mit, die eine einfache Integration in das Konzept der Java IO Stream bietet (mithilfe der mitgelieferten Klassen <code>CipherInputStream</code> bzw. <code>CipherOutputStream</code>). So kann ein beliebiger Stream verschlüsselt und entschlüsselt werden. Unabhängig davon, ob es sich um eine Netzwerkkommunikation, einen Dateizugriff oder das Verschlüsseln von serialisierter Objekte handelt: alles wird mit diesen Streams abgedeckt.</p>
<p>Das Vorgehen ist einfach: Ein OutputStream wird an den konfigurierten CipherOutputStream übergeben und alle darüber liegenden Schichten, welche den CipherOutputStream nutzen, profitieren implizit von der Verschlüsselung, ohne sich weiter darum Gedanken machen zu müssen.</p>
<p>Wer bereits mit RSA gearbeitet hat weiß, dass es sehr performancelastig ist, damit zu verschlüsseln. Trotzdem benötigt man oft eine Architektur mit asymmetrischen Schlüsseln (z.B. für Kommunikationsvorgänge). Daher werden die eigentlichen Daten mit einem zufällig erzeugten AES Schlüssel verschlüsselt und lediglich der AES Schlüssel wird mit RSA verschlüsselt und an den Empfänger übermittelt. Dieser entschlüsselt zuerst den AES Schlüssel mit dem RSA Algorithmus und kann dann im Anschluss mit dem weitaus effizienteren AES Algorithmus die eigentlichen Daten entschlüsseln.</p>
<p>Um das Vorgehen zu demonstrieren, habe ich ein kleines Java Beispiel geschrieben, dass einen kurzen Text verschlüsselt in einer Datei speichert und anschließend wieder ausliest. Erst den Quellcode, dann die Erklärung:</p>
<pre class="brush: java; title: ; notranslate">
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class EncryptionTest {

    /**
     * Zwischengespeichertes Schluesselpaar
     */
    private static KeyPair keyPair;

    /**
     * Erzeugt ein RSA Schluesselpaar
     *
     * @return RSA Schluesselpaar
     * @throws Exception
     */
    public static KeyPair getKeyPair() throws Exception {
        if (keyPair == null) {
            KeyPairGenerator kpg;
            try {
                kpg = KeyPairGenerator.getInstance(&quot;RSA&quot;);
                kpg.initialize(2048);
                keyPair = kpg.generateKeyPair();
            } catch (NoSuchAlgorithmException e) {
                throw new Exception(
                        &quot;Fehler beim Erzeugen des Schluesselpaars: &quot;
                                + e.getMessage());
            }
        }

        return keyPair;
    }

    /**
     * Wrapped einen OutputStream in einen verschlüsselnden CipherOutputStream
     *
     * @param os
     *            OutputStream
     * @return verschlüsselter OutputStream
     * @throws Exception
     */
    public static OutputStream encryptOutputStream(OutputStream os)
            throws Exception {
        try {
            // temporaeren AES Key erzeugen
            KeyGenerator keygen = KeyGenerator.getInstance(&quot;AES&quot;);
            SecureRandom random = new SecureRandom();
            keygen.init(random);
            SecretKey key = keygen.generateKey();

            // mit RSA verschluesseln und an Empfaenger senden
            Cipher cipher = Cipher.getInstance(&quot;RSA&quot;);
            cipher.init(Cipher.WRAP_MODE, getKeyPair().getPublic());
            byte[] encryptedAesKey = cipher.wrap(key);
            os.write(encryptedAesKey);

            // eigentliche Nachricht mit AES verschluesseln
            cipher = Cipher.getInstance(&quot;AES&quot;);
            cipher.init(Cipher.ENCRYPT_MODE, key);
            os = new CipherOutputStream(os, cipher);
        } catch (Exception e) {
            throw new Exception(&quot;Fehler beim Verschluesseln: &quot; + e.getMessage());
        }

        return os;
    }

    /**
     * Liest den Inhalt einer Datei aus.
     *
     * @param file
     *            Dateiname
     * @return Dateiinhalt (erste Zeile)
     * @throws Exception
     */
    public static String readFile(String file) throws Exception {
        InputStream is = new FileInputStream(file);
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader isrb = new BufferedReader(isr);
        return isrb.readLine();
    }

    /**
     * Wrapped einen InputStream in einen entschlüsselnden CipherInputStream
     *
     * @param is
     *            InputStream
     * @return entschlüsselnder Inputstream
     * @throws Exception
     */
    public static InputStream decryptInputStream(InputStream is)
            throws Exception {
        try {
            // AES Key lesen
            byte[] wrappedKey = new byte[256];
            is.read(wrappedKey, 0, 256);

            // AES Key mit RSA entschluesseln
            Cipher cipher = Cipher.getInstance(&quot;RSA&quot;);
            cipher.init(Cipher.UNWRAP_MODE, getKeyPair().getPrivate());
            Key key = cipher.unwrap(wrappedKey, &quot;AES&quot;, Cipher.SECRET_KEY);

            // Daten mit AES entschluesseln
            cipher = Cipher.getInstance(&quot;AES&quot;);
            cipher.init(Cipher.DECRYPT_MODE, key);

            is = new CipherInputStream(is, cipher);
        } catch (Exception e) {
            throw new Exception(&quot;Fehler beim Entschluesseln: &quot; + e.getMessage());
        }

        return is;
    }

    /**
     * Beispiel für Verschlüsselung mit CipherInputStream und CipherOutputStream
     *
     * @param args
     */
    public static void main(String... args) {
        try {

            String file = &quot;c:/tmp/test.txt&quot;;
            String plain = &quot;test bla bla&quot;;
            System.out.println(&quot;Klartext: &quot; + plain);

            // verschlüsseln
            OutputStream os = new FileOutputStream(file);
            os = encryptOutputStream(os);
            OutputStreamWriter osw = new OutputStreamWriter(os);
            osw.write(plain);
            osw.close();

            // verschlüsselten Text ausgeben
            String secret = readFile(file);
            System.out.println(&quot;verschluesselter Text: &quot; + secret);

            // entschlüsseln
            InputStream is = new FileInputStream(file);
            is = decryptInputStream(is);
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader isrb = new BufferedReader(isr);
            String decryptedPlain = isrb.readLine();
            isrb.close();
            System.out.println(&quot;entschluesselter Text: &quot; + decryptedPlain);

        } catch (Exception e) {
            System.err.println(e.getMessage());
        }

    }

}
</pre>
<p>Zuerst wird ein <code>FileOutputStream</code> instanziiert und die Zieldatei angegeben. Dann wird  mit <code>encryptOutputStream</code> dieser an einen <code>CipherOutputStream</code> übergeben. <code>encryptOutputStream</code> holt sich den privaten RSA Schlüssel aus dem Schlüsselpaar (das wird im Beispiel erst erzeugt), erzeugt einen zufälligen AES Schlüssel, verschlüsselt diesen AES Schlüssel mit RSA und sendet ihn über den gegebenen <code>OutputStream</code> (in diesem Fall ein <code>FileOutputStream</code>). Anschließend wird der <code>CipherOutputStream</code> mit dem AES Algorithmus instanziiert. Dieser <code>CipherOutputStream</code> kann dann genutzt werden, ohne dass man sich weiter mit Verschlüsselung auseinandersetzen muss (hier verwendet der <code>OutputStreamWriter</code> den <code>CipherOutputStream</code> wie einen gewöhnlichen <code>OutputStream</code>.</p>
<p>Analog läuft es mit dem <code>decryptInputStream</code>, der zuerst den AES Key ausliest, mit RSA entschlüsselt und anschließend den <code>CipherInputStream</code> mit dem AES Algorithmus erzeugt.</p>
<p>Entfernt man die <code>encryptOutputStream</code> und <code>decryptInputStream</code> Aufrufe, so entfällt die Verschlüsselung und alles läuft ohne wie gewohnt. Ähnlich einfach kann man diese Funktionen in bestehende Applikationen einfügen (natürlich muss man sich um eine Verteilung der Schlüssel noch kümmern, was allerdings nicht besonders schwer ist).</p>
<p>Ich hoffe, das Stück Code hilft den ein oder anderen weiter, der gerne Verschlüsselung einsetzen will, bisher aber die Mühen gescheut hat.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/01/20/verschlusselung-von-streams-mit-aes-und-rsa-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wallpaper home</title>
		<link>http://blog.aditu.de/2012/01/08/wallpaper-home/</link>
		<comments>http://blog.aditu.de/2012/01/08/wallpaper-home/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 13:26:14 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[desktop wallpaper]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=990</guid>
		<description><![CDATA[Nach langer Zeit gibts mal wieder ein Wallpaper von mir. Wer für das neue Jahr also seinen Desktophintergrund erneuern will, kann hier zuschlagen. Downloads Download Desktop Wallpaper (2560&#215;1600, 1920&#215;1200, 1680&#215;1050, 1440&#215;900, 1280&#215;800) 9 MB Download iPad Wallpaper (1024&#215;1024) 1,2 MB]]></description>
			<content:encoded><![CDATA[<p>Nach langer Zeit gibts mal wieder ein Wallpaper von mir. Wer für das neue Jahr also seinen Desktophintergrund erneuern will, kann hier zuschlagen.</p>
<p><a title="Download Wallpaper Home" href="http://blog.aditu.de/wp-content/uploads/2012/01/wallpaper_home_desktop.zip"><img class="alignnone size-full wp-image-994" title="preview wallpaper home" src="http://blog.aditu.de/wp-content/uploads/2012/01/preview.jpg" alt="" width="500" height="583" /></a></p>
<h2>Downloads</h2>
<ul>
<li><a title="Wallpaper home desktop download" href="http://blog.aditu.de/wp-content/uploads/2012/01/wallpaper_home_desktop.zip">Download Desktop Wallpaper (2560&#215;1600, 1920&#215;1200, 1680&#215;1050, 1440&#215;900, 1280&#215;800) 9 MB</a></li>
<li><a title="Wallpaper home iPad download" href="http://blog.aditu.de/wp-content/uploads/2012/01/wallpaper_home_ipad.zip">Download iPad Wallpaper (1024&#215;1024) 1,2 MB</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/01/08/wallpaper-home/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>selfoss android app</title>
		<link>http://blog.aditu.de/2012/01/05/selfoss-android-app/</link>
		<comments>http://blog.aditu.de/2012/01/05/selfoss-android-app/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 19:43:42 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[selfoss]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jquery mobile]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=981</guid>
		<description><![CDATA[Über die Feiertage habe ich mich mal rangesetzt und für selfoss eine Android App geschrieben. Die App dient als Frontend und lädt im Hintergrund natürlich die Daten von der eigenen selfoss Installation. Daher muss beim Start der Applikation die URL, sowie die Zugangsdaten (sofern vorhanden) angegeben werden. Im Gegensatz zum WebFrontend, dass ja auch eine [...]]]></description>
			<content:encoded><![CDATA[<p>Über die Feiertage habe ich mich mal rangesetzt und für <a title="selfoss website" href="http://selfoss.aditu.de">selfoss</a> eine <a title="selfoss android app" href="https://market.android.com/details?id=de.aditu.selfoss">Android App</a> geschrieben. Die App dient als Frontend und lädt im Hintergrund natürlich die Daten von der eigenen selfoss Installation. Daher muss beim Start der Applikation die URL, sowie die Zugangsdaten (sofern vorhanden) angegeben werden. Im Gegensatz zum WebFrontend, dass ja auch eine mobile Variante bietet, ist die App allerdings für die Bandbreite schonender (es werden lediglich die Daten via JSON übertragen) und in der Bedienung komfortabler.</p>
<p><a href="http://blog.aditu.de/wp-content/uploads/2012/01/screenshot5.jpg"><img class="alignnone size-medium wp-image-984" title="screenshot5" src="http://blog.aditu.de/wp-content/uploads/2012/01/screenshot5-200x300.jpg" alt="" width="200" height="300" /></a> <a href="http://blog.aditu.de/wp-content/uploads/2012/01/screenshot6.jpg"><img class="alignnone size-medium wp-image-985" title="screenshot6" src="http://blog.aditu.de/wp-content/uploads/2012/01/screenshot6-200x300.jpg" alt="" width="200" height="300" /></a></p>
<p>Die App basiert auf <a title="phonegap" href="http://www.phonegap.com/">phonegap</a> und <a title="jQuery Mobile" href="http://jquerymobile.com/">jQuery Mobile</a> und ist natürlich auch wieder OpenSource unter <a title="selfoss auf github" href="https://github.com/SSilence/selfoss">github</a> zu finden. Wen also die Umsetzung interessiert, der kann einen Blick darauf werden. Nachdem phonegap ja plattformunabhängig ist, könnte man sie auch ohne großen Aufwand für iOS, Windows Phone, usw. kompilieren. Allerdings benötigt man dazu einen iOS Entwickler Zugang und einen Mac. Wer also über beides verfügt, kann sich gerne bei mir melden.</p>
<p>Im Augenblick ist die App allerdings noch beta. Feedback und Fehler also bitte an mich weitergeben. Überhaupt interessiert mich eure Meinung zu selfoss und alles was dazu gehört. Über Rückmeldungen bin ich also sehr dankbar!</p>
<p>Zur Android App im Google Appstore: <a href="https://market.android.com/details?id=de.aditu.selfoss">https://market.android.com/details?id=de.aditu.selfoss</a></p>
<p>Oder zum direkten Download der .apk Datei: <a href="http://selfoss.aditu.de/">http://selfoss.aditu.de/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/01/05/selfoss-android-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>deviantArt Feature 2011</title>
		<link>http://blog.aditu.de/2012/01/01/deviantart-feature-2011/</link>
		<comments>http://blog.aditu.de/2012/01/01/deviantart-feature-2011/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 12:39:05 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[deviantArt]]></category>
		<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=936</guid>
		<description><![CDATA[Na ist doch klar, dass auch diesmal das deviantArt Feature nicht fehlen darf. Deshalb gibts wie gewohnt die schönsten Bilder des Jahres 2011. In diesem Sinne wünsche ich euch allen ein erfolgreiches und schönes neues Jahr.                   ]]></description>
			<content:encoded><![CDATA[<p>Na ist doch klar, dass auch diesmal das deviantArt Feature nicht fehlen darf. Deshalb gibts wie gewohnt die schönsten Bilder des Jahres 2011. In diesem Sinne wünsche ich euch allen ein erfolgreiches und schönes neues Jahr.</p>
<p><a href="http://oer-wout.deviantart.com/art/Autumn-Mantra-269813515"><img title="Autumn Mantra" src="http://blog.aditu.de/wp-content/uploads/2012/01/autumn-mantra.jpg" alt="Autumn Mantra" /></a> <a href="http://aleksandra88.deviantart.com/art/789655-275213837"><img title="789655" src="http://blog.aditu.de/wp-content/uploads/2012/01/789655.jpg" alt="789655" /></a> <a href="http://roblfc1892.deviantart.com/art/abbaye-de-senanque-259943216"><img title="...abbaye de senanque..." src="http://blog.aditu.de/wp-content/uploads/2012/01/abbaye-de-senanque.jpg" alt="...abbaye de senanque..." /></a></p>
<p><a href="http://leaningblossom.deviantart.com/art/Dirty-violet-267373881"><img title="dirty violet" src="http://blog.aditu.de/wp-content/uploads/2012/01/dirty-violet.jpg" alt="dirty violet" /></a> <a href="http://xavierjamonet.deviantart.com/art/Another-night-in-Paradise-203851139"><img title="another night in paradise" src="http://blog.aditu.de/wp-content/uploads/2012/01/another-night-in-paradise.jpg" alt="another night in paradise" /></a> <a href="http://w1ndkh.deviantart.com/art/523-271713131"><img title="523" src="http://blog.aditu.de/wp-content/uploads/2012/01/523.jpg" alt="523" /></a></p>
<p><a href="http://burning-liquid.deviantart.com/art/Behind-the-Sun-265570291"><img title="behind the sun" src="http://blog.aditu.de/wp-content/uploads/2012/01/behind-the-sun.jpg" alt="behind the sun" /></a> <a href="http://pacsaman.deviantart.com/art/Fade-To-Black-273751940"><img title="fade to black" src="http://blog.aditu.de/wp-content/uploads/2012/01/fade-to-black.jpg" alt="fade to black" /></a> <a href="http://lucasgraciano.deviantart.com/art/Absinthe-Fairy-193544653"><img title="Absinthe Fairy" src="http://blog.aditu.de/wp-content/uploads/2012/01/absinthe-fairy.jpg" alt="Absinthe Fairy" /></a></p>
<p><a href="http://zefisheye.deviantart.com/art/Evening-storm-207040157"><img title="evening storm" src="http://blog.aditu.de/wp-content/uploads/2012/01/evening-storm.jpg" alt="evening storm" /></a> <a href="http://nikosalpha.deviantart.com/art/Caroline-271158827"><img title="caroline" src="http://blog.aditu.de/wp-content/uploads/2012/01/caroline.jpg" alt="caroline" /></a> <a href="http://r3novatio.deviantart.com/art/Foggy-Secrets-186126956"><img title="foggy secrets" src="http://blog.aditu.de/wp-content/uploads/2012/01/foggy-secrets.jpg" alt="foggy secrets" /></a></p>
<p><a href="http://flex-flex.deviantart.com/art/Ferlin-266798656"><img title="ferlin" src="http://blog.aditu.de/wp-content/uploads/2012/01/ferlin.jpg" alt="ferlin" /></a> <a href="http://lukeaustin.deviantart.com/art/Ethereal-194555900"><img title="ethereal" src="http://blog.aditu.de/wp-content/uploads/2012/01/ehtereal.jpg" alt="ethereal" /></a> <a href="http://tahra.deviantart.com/art/funeral-202004584"><img title="funeral" src="http://blog.aditu.de/wp-content/uploads/2012/01/funeral.jpg" alt="funeral" /></a> <a href="http://sakimichan.deviantart.com/art/Where-did-all-the-Angels-Go-213460750"><img title="where dir all the angels go" src="http://blog.aditu.de/wp-content/uploads/2012/01/where-did-all-the-angels-go.jpg" alt="where did all the angels go" /></a></p>
<p><a href="http://sandara.deviantart.com/art/hades-and-persephone-2-210920648"><img title="hades and persephone 2" src="http://blog.aditu.de/wp-content/uploads/2012/01/hades-and-persephone-2.jpg" alt="hades and persephone 2" /></a> <a href="http://micmojo.deviantart.com/art/miles-high-275254245"><img title="miles high" src="http://blog.aditu.de/wp-content/uploads/2012/01/miles-high.jpg" alt="miles high" /></a> <a href="http://ineedchemicalx.deviantart.com/art/Man-of-the-Sun-196792689"><img title="man of the sun" src="http://blog.aditu.de/wp-content/uploads/2012/01/man-of-the-sun.jpg" alt="man of the sun" /></a></p>
<p><a href="http://kirliancamera.deviantart.com/art/Meteora-Monastery-255851651"><img title="meteora monastery" src="http://blog.aditu.de/wp-content/uploads/2012/01/meteora-monastery.jpg" alt="meteora monastery" /></a>  <a href="http://bohomaz13.deviantart.com/art/Morning-dew-210582985"><img title="morning dew" src="http://blog.aditu.de/wp-content/uploads/2012/01/morning-dew.jpg" alt="morning dew" /></a> <a href="http://mariesturges.deviantart.com/art/Jaune-for-Desktop-211582680"><img title="jaune for desktop" src="http://blog.aditu.de/wp-content/uploads/2012/01/jaune-for-desktop.jpg" alt="jaune-for-desktop" /></a></p>
<p><a href="http://hougaard.deviantart.com/art/Nightfall-265914222"><img title="nightfall" src="http://blog.aditu.de/wp-content/uploads/2012/01/nightfall.jpg" alt="nightfall" /></a> <a href="http://karil.deviantart.com/art/Out-Of-The-Darkness-198308673"><img title="out of the darkness" src="http://blog.aditu.de/wp-content/uploads/2012/01/out-of-the-darkness.jpg" alt="out of the darkness" /></a> <a href="http://lavaspawn.deviantart.com/art/Precious-Mornings-260951275"><img title="precious mornings" src="http://blog.aditu.de/wp-content/uploads/2012/01/precious-mornings.jpg" alt="precious mornings" /></a></p>
<p><a href="http://hyrith.deviantart.com/art/quai-n-24-270546388"><img title="quai n.24" src="http://blog.aditu.de/wp-content/uploads/2012/01/quai-n-24.jpg" alt="quai n.24" /></a> <a href="http://artgerm.deviantart.com/art/Salem-s-Daughter-1-207493209"><img title="salems daughter" src="http://blog.aditu.de/wp-content/uploads/2012/01/salems-daughter-1.jpg" alt="salems daughter 1" /></a> <a href="http://xadrial.deviantart.com/art/Snow-Queen-204726069"><img title="snow queen" src="http://blog.aditu.de/wp-content/uploads/2012/01/snow-queen.jpg" alt="snow queen" /></a></p>
<p><a href="http://artgerm.deviantart.com/art/Windrunner-DotA2-271963231"><img title="WIndrunner DotA2" src="http://blog.aditu.de/wp-content/uploads/2012/01/windrunner.jpg" alt="windrunner" /></a> <a href="http://vanerich.deviantart.com/art/the-city-lights-152148064"><img title="the city lights" src="http://blog.aditu.de/wp-content/uploads/2012/01/the-city-lights.jpg" alt="the city lights" /></a> <a href="http://monavx.deviantart.com/art/The-Forest-272940901"><img title="the forest" src="http://blog.aditu.de/wp-content/uploads/2012/01/the-forest.jpg" alt="the forest" /></a></p>
<p><a href="http://xavierjamonet.deviantart.com/art/Symphony-of-the-fall-192812837"><img title="symphony of the fall" src="http://blog.aditu.de/wp-content/uploads/2012/01/symphony-of-the-fall.jpg" alt="symphony of the fall" /></a> <a href="http://aditya777.deviantart.com/art/Untitled-5-267082884"><img title="untitled 5" src="http://blog.aditu.de/wp-content/uploads/2012/01/untitled-5.jpg" alt="untitled 5" /></a> <a href="http://johnperi.deviantart.com/art/Untitled-1011-211786931"><img title="untitled 1011" src="http://blog.aditu.de/wp-content/uploads/2012/01/untitled-1011.jpg" alt="untitled 1011" /></a></p>
<p><a href="http://nikosalpha.deviantart.com/art/wreathe-220068545"><img title="wreathe" src="http://blog.aditu.de/wp-content/uploads/2012/01/wreathe.jpg" alt="wreathe" /></a> <a href="http://autumn-ethereal.deviantart.com/art/Withstand-The-Fall-Of-Time-197245469"><img title="Withstand the fall of time" src="http://blog.aditu.de/wp-content/uploads/2012/01/withstand-the-fall-of-time.jpg" alt="withstand the fall of time" /></a> <a href="http://twistedclocks.deviantart.com/art/Third-Time-s-The-Charm-257200948"><img title="third times the charm" src="http://blog.aditu.de/wp-content/uploads/2012/01/third-times-the-charm.jpg" alt="third times the charm" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2012/01/01/deviantart-feature-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hintergründe zu selfoss</title>
		<link>http://blog.aditu.de/2011/12/09/hintergrunde-zu-selfoss/</link>
		<comments>http://blog.aditu.de/2011/12/09/hintergrunde-zu-selfoss/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:44:38 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[selfoss]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=934</guid>
		<description><![CDATA[In einem Gastbeitrag bei phphatesme schreibe ich über selfoss. Dort stelle ich auch die verschiedenen Bibliotheken vor, die ich für den RSS Reader verwende. Also für Interessierte: schaut einfach rein. Herzlichen Dank an Nils, dass er mir die Möglichkeit gegeben hat, selfoss in seinem Blog vorzustellen.]]></description>
			<content:encoded><![CDATA[<p>In einem <a title="selfoss phphatesme" href="http://www.phphatesme.com/blog/tools/tobias-zeisings-selfoss/">Gastbeitrag bei phphatesme</a> schreibe ich über <a title="selfoss" href="http://selfoss.aditu.de">selfoss</a>. Dort stelle ich auch die verschiedenen Bibliotheken vor, die ich für den RSS Reader verwende. Also für Interessierte: schaut einfach rein.</p>
<p>Herzlichen Dank an Nils, dass er mir die Möglichkeit gegeben hat, selfoss in seinem Blog vorzustellen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2011/12/09/hintergrunde-zu-selfoss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neueste Fotos &#124; 3</title>
		<link>http://blog.aditu.de/2011/12/04/neueste-fotos/</link>
		<comments>http://blog.aditu.de/2011/12/04/neueste-fotos/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 15:16:37 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[deviantArt]]></category>
		<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[500px.com]]></category>
		<category><![CDATA[feature]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=905</guid>
		<description><![CDATA[Die aktuellsten Fotos von mir im Überblick. Ich habe noch einige in der Queue. Es kommen also in Kürze noch mehr.      ]]></description>
			<content:encoded><![CDATA[<p>Die aktuellsten Fotos von mir im Überblick. Ich habe noch einige in der Queue. Es kommen also in Kürze noch mehr.</p>
<p><a title="early light" href="http://500px.com/photo/3544166"><img class="alignnone size-full wp-image-907" title="early light" src="http://blog.aditu.de/wp-content/uploads/2011/12/early-light.jpg" alt="" /></a> <a title="the hidden path" href="http://500px.com/photo/3548752"><img class="alignnone size-full wp-image-912" title="the-hidden-path" src="http://blog.aditu.de/wp-content/uploads/2011/12/the-hidden-path.jpg" alt="" width="200" height="200" /></a></p>
<p><a title="windsock" href="http://500px.com/photo/3059935"><img class="alignnone size-full wp-image-915" title="windsock" src="http://blog.aditu.de/wp-content/uploads/2011/12/windsock.jpg" alt="" width="200" height="200" /></a> <a title="yellow" href="http://500px.com/photo/2931281"><img class="alignnone size-full wp-image-916" title="yellow" src="http://blog.aditu.de/wp-content/uploads/2011/12/yellow.jpg" alt="" width="200" height="200" /></a></p>
<p><a title="the tunnel" href="http://500px.com/photo/2874281"><img class="alignnone size-full wp-image-914" title="the tunnel" src="http://blog.aditu.de/wp-content/uploads/2011/12/the-tunnel.jpg" alt="" width="200" height="200" /></a> <a title="farewell" href="http://500px.com/photo/3047690"><img class="alignnone size-full wp-image-908" title="farewell" src="http://blog.aditu.de/wp-content/uploads/2011/12/farewell.jpg" alt="" width="200" height="200" /></a></p>
<p><a title="the meeting" href="http://500px.com/photo/2934656"><img class="alignnone size-full wp-image-913" title="the meeting" src="http://blog.aditu.de/wp-content/uploads/2011/12/the-meeting.jpg" alt="" width="200" height="200" /></a> <a title="something so strong" href="http://500px.com/photo/3444290"><img class="alignnone size-full wp-image-911" title="something so strong" src="http://blog.aditu.de/wp-content/uploads/2011/12/something-so-strong.jpg" alt="" width="200" height="200" /></a></p>
<p><a title="morning dew" href="http://500px.com/photo/2837785"><img class="alignnone size-full wp-image-910" title="morning dew" src="http://blog.aditu.de/wp-content/uploads/2011/12/morning-dew.jpg" alt="" width="200" height="200" /></a> <a title="morgenleuchten" href="http://500px.com/photo/2983162"><img class="alignnone size-full wp-image-909" title="morgenleuchten" src="http://blog.aditu.de/wp-content/uploads/2011/12/morgenleuchten.jpg" alt="" width="200" height="200" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2011/12/04/neueste-fotos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>selfoss 1.1</title>
		<link>http://blog.aditu.de/2011/11/25/selfoss-1-1/</link>
		<comments>http://blog.aditu.de/2011/11/25/selfoss-1-1/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 20:14:39 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[selfoss]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=900</guid>
		<description><![CDATA[Nach dem erfolgreichen Release von selfoss gibts heute auch schon das erste Update. Folgendes hat sich geändert: Passwörter werden jetzt als Hash in der config.ini gespeichert. In der config.ini kann dazu ein salt gesetzt werden. Ein Passwort kann dann unter der URL: http://your_selfoss_url.com/password erzeugt werden. Dieses muss dann in der config.ini abgelegt werden. alle JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>Nach dem erfolgreichen Release von selfoss gibts heute auch schon das erste Update. Folgendes hat sich geändert:</p>
<ul>
<li>Passwörter werden jetzt als Hash in der config.ini gespeichert. In der config.ini kann dazu ein <a href="http://de.wikipedia.org/wiki/Salt_(Kryptologie)">salt</a> gesetzt werden. Ein Passwort kann dann unter der URL: http://your_selfoss_url.com/password erzeugt werden. Dieses muss dann in der config.ini abgelegt werden.</li>
<li>alle JavaScript Dateien werden jetzt zu einer all.js zusammengefasst und minimiert. Analog für alle CSS Stylesheets.</li>
<li>die Apache Konfiguration enthält nun Optionen für ein Caching und für eine Kompression der Dateien.</li>
<li>Code wurde nochmal aufgeräumt und ein paar unnütze Dinge entfernt.</li>
</ul>
<div>Selfoss gibts wie gewohnt hier zum Download: <a href="http://selfoss.aditu.de/">http://selfoss.aditu.de/</a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2011/11/25/selfoss-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

