<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Benjamins Blog</title>
    <link>http://www.benjamin-erb.de/</link>
    <description>byte, pixel &amp; sneaker</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Tue, 01 Jun 2010 14:01:33 GMT</pubDate>

    <image>
        <url>http://www.benjamin-erb.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Benjamins Blog - byte, pixel &amp; sneaker</title>
        <link>http://www.benjamin-erb.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Kurzpräsentation – Node.js</title>
    <link>http://www.benjamin-erb.de/archives/275-Kurzpraesentation-Node.js.html</link>
            <category>Web</category>
    
    <comments>http://www.benjamin-erb.de/archives/275-Kurzpraesentation-Node.js.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=275</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=275</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Auf dem gestrigen &lt;a href=&quot;http://webmontag.de/location/ulm/index&quot;&gt;Webmontag in Ulm&lt;/a&gt; habe ich &lt;a href=&quot;http://nodejs.org/&quot;&gt;Node.js&lt;/a&gt; vorgestellt, ein Framework für &lt;i&gt;serverseitiges JavaScript für skalierbare Netzwerkanwendungen&lt;/i&gt;. Dabei hat es sich um eine eher kurze und oberflächliche Präesentation gehandelt, die die Grundidee des asynchroner I/O Operationen betonen sollte. Detailliertere Beiträge zu Node.js wird es aber in Kürze auf &lt;a href=&quot;http://www.ioexception.de/&quot;&gt;IOException.de&lt;/a&gt; geben.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;width:700px&quot; id=&quot;__ss_4373046&quot;&gt;&lt;object id=&quot;__sse4373046&quot; width=&quot;700&quot; height=&quot;500&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nodejs-100601020938-phpapp01&amp;stripped_title=nodejs-4373046&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse4373046&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nodejs-100601020938-phpapp01&amp;stripped_title=nodejs-4373046&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;700&quot; height=&quot;500&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;  
    </content:encoded>

    <pubDate>Tue, 01 Jun 2010 16:01:33 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/275-guid.html</guid>
    <category>coding</category>
<category>javascript</category>
<category>ulm</category>
<category>web</category>
<category>web 2.0</category>

</item>
<item>
    <title>LRU-Cache in Java</title>
    <link>http://www.benjamin-erb.de/archives/274-LRU-Cache-in-Java.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/274-LRU-Cache-in-Java.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=274</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=274</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Caches dienen in der Informatik als Methode, Zugriffe auf bestimmte Daten zu beschleunigen, in dem diese vorgelagert/gepuffert werden. Sie sind in verschiedensten Bereichen zu finden, unter anderem auf Prozessoren, in Festplatten, aber auch in Technologien wie dem Web. Verschiedene Verdrängungsstrategien ermöglichen es, die beschränkte Kapazität eines Caches zu berücksichtigen, so dass nur wichtige Werte im Cache gelagert werden. Least Recently Used (LRU), ist eine solche Strategie, die häufig angewandt wird. Sie sortiert die Werte im Cache nach der letzten Nutzung. Wird auf ein Element über einen längeren Zeitraum nicht mehr zugegriffen, so wird es aus dem Cache verdrängt.&lt;br /&gt;
&lt;br /&gt;
In Java lässt sich ein solcher LRU-Cache besonders einfach implementieren, da die &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/util/LinkedHashMap.html&quot;&gt;Klasse&lt;/a&gt; &lt;code&gt;java.util.LinkedHashMap&lt;/code&gt; bereits die wesentlichen Mechanismen unterstützt. Eine &lt;code&gt;HashMap&lt;/code&gt; ist eine Hash-Tabelle, die Zugriffe auf Werte über ihre Schlüssel regelt. Zusätzlich verkettet die &lt;code&gt;LinkedHashMap&lt;/code&gt; aber die Werte noch in einer Liste, womit auch eine Traversierung in Einfügereihenfolge ermöglicht wird. Mithilfe eines Flags in einem der Konstruktoren kann dieses Verhalten geändert werden, so dass bei jedem Zugriff das angesprochene Element neu in diese Liste eingereiht wird. Damit verwaltet die Liste die Zugriffe und ist Basis für die LRU-Strategie.&lt;br /&gt;
&lt;br /&gt;
Die Methode &lt;code&gt;removeEldestEntry()&lt;/code&gt; der &lt;code&gt;LinkedHashMap&lt;/code&gt; wird bei jedem Schreibezugriff auf die Map, also nach Einfügeoperationen über &lt;code&gt;put()&lt;/code&gt; oder &lt;code&gt;putAll()&lt;/code&gt; automatisch aufgerufen und bietet die Möglichkeit, durch Überschreiben der Methode die Verdrängungsstrategie zu implementieren. Diese Methode gibt ein &lt;code&gt;boolean&lt;/code&gt; zurück, ob der älteste Eintrag gelöscht werden soll. Es ist auch möglich, innerhalb der Methode selbst die Liste zu manipulieren, dann sollte allerdings die Methode immer false zurückgeben. Für den LRU-Cache reicht es aus, die Größe der Map mit dem gewünschten Maximum zu vergleichen. Ist der Inhalt der Map zu groß, so soll das letzte Element gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden nun der Code dazu. Zu beachten ist noch, dass es sich um eine threadsichere Klasse handelt, da die Map explizit synchronisiert wird. &lt;br /&gt;
&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * A thread-safe LRU cache implementation based on internal LinkedHashMap.
 * 
 * @author Benjamin Erb
 *
 * @param &amp;lt;K&amp;gt; Entry Key Type
 * @param &amp;lt;V&amp;gt; Entry Value Type
 */
public class LRUCache&amp;lt;K, V&amp;gt;
{
	public static final int DEFAULT_MAX_SIZE = 1000;

	private final Map&amp;lt;K, V&amp;gt; internalMap;

	public LRUCache()
	{
		this(DEFAULT_MAX_SIZE);
	}

	public LRUCache(final int maxSize)
	{
		this.internalMap = (Map&amp;lt;K, V&amp;gt;) Collections.synchronizedMap(new LinkedHashMap&amp;lt;K, V&amp;gt;(maxSize + 1, .75F, true)
		{
			private static final long serialVersionUID = 5369285290965670135L;

			@Override
			protected boolean removeEldestEntry(Map.Entry&amp;lt;K, V&amp;gt; eldest)
			{
				return size() &amp;gt; maxSize;
			}
		});
	}

	public V put(K key, V value)
	{
		return internalMap.put(key, value);
	}

	public V get(K key)
	{
		return internalMap.get(key);
	}

}&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Diesen Beitrag &lt;a href=&quot;http://www.ioexception.de/2010/05/05/lru-cache-in-java/&quot;&gt;auf IOException.de&lt;/a&gt; lesen. 
    </content:encoded>

    <pubDate>Wed, 05 May 2010 16:32:27 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/274-guid.html</guid>
    <category>coding</category>
<category>java</category>

</item>
<item>
    <title>3 Jahre sneakerized</title>
    <link>http://www.benjamin-erb.de/archives/273-3-Jahre-sneakerized.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/273-3-Jahre-sneakerized.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=273</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=273</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Die Jungs von &lt;strike&gt;sneakerblog.net&lt;/strike&gt; &lt;a href=&quot;http://www.sneakerized.com/&quot;&gt;sneakerized.com&lt;/a&gt; feiern ihr &lt;a href=&quot;http://www.sneakerized.com/3-jahre-sneakerized/2010/03/09&quot;&gt;dreijähriges&lt;/a&gt; Bestehen. Grund zu gratulieren, schließlich handelt es sich um einen der bekanntesten deutschen Blog rund um das Thema Sneaker. Alles Gute &amp;amp; Viel Erfolg weiterhin! 
    </content:encoded>

    <pubDate>Sun, 14 Mar 2010 13:40:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/273-guid.html</guid>
    <category>sneaker</category>

</item>
<item>
    <title>Varsity Red im Schnee</title>
    <link>http://www.benjamin-erb.de/archives/272-Varsity-Red-im-Schnee.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/272-Varsity-Red-im-Schnee.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=272</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=272</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Nike Air Force 1 Low &#039;07 (white / white / varsity red)&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_272]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_1.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_1_small.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_272]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_3.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_3_small.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_272]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_4.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_wwr/nike_af1_wwr_4_small.jpg&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/272-Varsity-Red-im-Schnee.html#extended&quot;&gt;&quot;Varsity Red im Schnee&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 07 Mar 2010 15:07:40 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/272-guid.html</guid>
    <category>fotos</category>
<category>nike af1</category>
<category>sneaker</category>
<category>sneaker photography</category>

</item>
<item>
    <title>Seminar: Research Trends in Media Informatics</title>
    <link>http://www.benjamin-erb.de/archives/270-Seminar-Research-Trends-in-Media-Informatics.html</link>
            <category>Studium</category>
    
    <comments>http://www.benjamin-erb.de/archives/270-Seminar-Research-Trends-in-Media-Informatics.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=270</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=270</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Ich denke nicht, dass es übertrieben ist zu sagen, dieses Seminar gehört mit zu den Höhepunkten meines bisherigen Studiums an der Uni Ulm. Ein einfaches Seminar haben die Jungs vom &lt;a href=&quot;http://www.uni-ulm.de/in/mi&quot;&gt;Institut für Medieninformatik&lt;/a&gt; zu einer vollständig konferenzähnlichen Veranstaltung aufgebohrt – und es hat sich für alle gelohnt. Die &lt;a href=&quot;http://www.uni-ulm.de/in/mi/lehre/2009ws/seminar-research-trends-in-media-informatics.html&quot;&gt;Seminarthemen&lt;/a&gt; orientierten sich an aktuellen Forschungstrends aus dem Bereich der Medieninformatik und insbesondere aus den Bereichen des Ubiquitous Computings. Allerdings waren die Themen allgemein genug, um mehr als nur punktuelle Forschungsergebnisse anderer zu beschreiben. Vielmehr bot jeder einzelne Vortrag einen guten Einblick in den jeweiligen Themenkomplex ohne all zu spezifisch für die anderen Teilnehmer zu werden. Dies sorgte insbesondere für rege Diskussionen am Ende jeden Vortrags. Die vier Sessions teilten sich in die Bereiche &lt;i&gt;Ubiquitous Computing&lt;/i&gt;, &lt;i&gt;Devices and Games&lt;/i&gt;, &lt;i&gt;Networking Trends&lt;/i&gt; sowie &lt;i&gt;Social Computing&lt;/i&gt; ein.&lt;br /&gt;
Verschiedene Beiträge werden in Kürze auf &lt;a href=&quot;http://www.ioexception.de/&quot;&gt;IOException&lt;/a&gt; vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Doch der Ablauf unterschied sich von dem üblichen Abläufen:  Ausarbeitung schreiben, Überarbeitung mit einem Betreuer, Powerpoint Folien erstellen und letztendlich die typischen Präsentationen.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/rtmi_badge.jpg&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst wurden wir dazu motiviert, unsere Paper auf Englisch zu verfassen. Der Review-Prozess wurde um ein Peer-Reviewing erweitert, bei dem die Teilnehmer Arbeiten anderer mitbegutachteten. Bei den Vorträgen legten die Betreuer Wert auf ansprechende Präsentationen abseits von Powerpoint und Bullet Points. &lt;br /&gt;
Dieser Mehraufwand wurde letztendlich mit einem wirklich sehr konferenznahen Blockseminar &lt;a href=&quot;http://stefan.bloggt.es/2010/02/rtmi-rtmi/&quot;&gt;belohnt&lt;/a&gt;. Es gab Badges für alle Teilnehmer, gedruckte(!) 130-seitige Proceedings mit allen Papern und sogar zwei Keynotes Speeches – darunter ein &lt;a href=&quot;http://www.kargl.net/&quot;&gt;Forscher&lt;/a&gt; aus den Niederlanden &lt;img src=&quot;http://www.benjamin-erb.de/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Selbst ein Social Event am Ende hat es gegeben, es war echt noch nett im Barfüsser!&lt;br /&gt;
&lt;br /&gt;
Nochmal großes Lob an Boto, Stefan, Flo, Elmar, Basti und Björn für die besondere Betreuung des Seminars!&lt;br /&gt;
&lt;br /&gt;
Und irgendwie hat dieses Seminar Lust auf mehr gemacht – kurze und interessante Vorträge, die einen Blick über den Tellerrand ermöglichen,  gerne auch noch interdisziplinärer. Mal sehen, ob wir da noch etwas weiteres auf die Reihe bekommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 14 Feb 2010 11:16:56 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/270-guid.html</guid>
    <category>informatik</category>
<category>privacy</category>
<category>software</category>
<category>studium</category>
<category>ubiquitous computing</category>
<category>ulm</category>
<category>web 2.0</category>

</item>
<item>
    <title>diretto</title>
    <link>http://www.benjamin-erb.de/archives/268-diretto.html</link>
            <category>Studium</category>
    
    <comments>http://www.benjamin-erb.de/archives/268-diretto.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=268</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=268</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Als Student im Diplomstudiengang Medien-Informatik an der Uni Ulm ist es Bestandteil des Hauptstudiums, ein Anwendungsfach aus den Teilgebieten der Medien-Informatik zu belegen. Hierbei stehen unter anderem Vertiefungsrichtungen wie Computergrafik, Computer Vision, Ubiquitous Computing, Medienpädagogik, Interaktive Systeme, Interaktives Video oder Mensch-Maschine Dialogsysteme zur Auswahl. &lt;br /&gt;
&lt;br /&gt;
Meine Wahl hierbei fiel auf Ubiquitous Computing – dem Trend hin zum allgegenwärtigen Computer oder dem „Internet der Dinge“. Ob als intelligenter Kühlschrank, im vernetzten Auto oder in Form von intelligenten Smartphones, der Computer und mit ihm oft auch das Internet werden immer omnipräsenter. Das Anwendungsfach besteht einerseits aus den Vorlesungen Multimediasysteme und Mobile &amp;amp; Ubiquitous Computing, und andererseits aus einer wissenschaftlichen Projektarbeit über zwei Semester in Kleingruppen. &lt;br /&gt;
&lt;br /&gt;
Derzeit arbeiten Stefan, Cookie und ich an einer &lt;a href=&quot;http://stefan.bloggt.es/2009/09/das-sendestudio-im-rucksack/&quot;&gt;Idee von Stefan&lt;/a&gt;, aus der nun unser Projekt entsprungen ist: Einerseits erlaubt der technologische Fortschritt performante mobile Internetzugänge und eine fast ubiquitäre Vernetzung. Auf der anderen Seite ist qualitatives und verteiltes Dokumentieren von Ereignissen unter echtzeitnahen Bedingungen bisher nicht ohne weiteres möglich. Genau hier setzt unser Projekt, &lt;i&gt;diretto&lt;/i&gt; (ital.: direkt, aus erster Hand) an. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot;  style=&quot;border:0px&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/direttologo.png&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst &lt;a href=&quot;http://stefan.bloggt.es/2010/01/das-sendestudio-nicht-nur-im-rucksack/&quot;&gt;versuchen&lt;/a&gt; wir im Rahmen des Projekts die Vorgänge und Merkmale verteilter Berichterstattung auf eine allgemeine und offene Schnittstelle zu abstrahieren. Anschließend werden wir Referenzimplementierungen verschiedener Dienste bereitstellen, die darauf aufbauen. Das beinhaltet sehr unterschiedliche Teilaspekte, wie die Aufnahme und Erstellung von Beiträgen in verschiedenen Formen wie Bild, Text, Audio oder Video, aber auch die Verteilung, Speicherung und Aufarbeitung solcher Daten zu nützlichen Informationen. &lt;br /&gt;
&lt;br /&gt;
Unser geplantes System ist an keinen festen Anwendungszweck gebunden und soll in verschiedensten Szenarien eingesetzt werden können. Ein möglicher Bereich ist der Katastrophenschutz. Hier ist es besonders wichtig, bei großflächigen Einsätzen nach Unfällen oder Naturkatastrophen zunächst Ordnung ins Chaos zu bringen. Das bedeutet vor allem Sammeln, Filtern und Bewerten eintreffender Daten und das Erstellen von Bestandsaufnahmen. Eine verteilte, mobile Anwendung hierfür ist genauso interessant wie die Möglichkeit, einen Teil der Aufgaben wie das Bewerten auch entfernt durchführen zu können. Ein anderes Szenario wäre ein Live-Bericht eines öffentlichen Großereignisses. So könnte mithilfe eines solchen Systems zum Beispiel ein Fahrradrennen übertragen werden, in dem die Beiträge verschiedener Zuschauer an verschiedenen Stellen der Strecke digital und echtzeitnah gesammelt werden und über das Internet Interessierten zugreifbar gemacht werden. Ein weiteres mögliches Einsatzszenario ist die Dokumentation von Veranstaltungen wie Demonstrationen. Nicht zuletzt die Ereignisse der &lt;a href=&quot;http://mirror.fem-net.de/CCC/26C3/mp4/26c3-3705-de-die_ereignisse_des_129_und_ihre_folgen.mp4&quot;&gt;Freiheit-statt-Angst&lt;/a&gt; Demonstration in Berlin haben gezeigt, wie wichtig eine entsprechende Dokumentation sein kann.&lt;br /&gt;
&lt;br /&gt;
Während sich Stefan sich zunächst seiner ursprünglichen Idee widmen wird, mithilfe eines mobilen Computers &lt;a href=&quot;http://stefan.bloggt.es/2010/01/diretto-technische-details/&quot;&gt;im Rucksack&lt;/a&gt; Fotojournalismus auch unter widrigen Umständen durchführen zu können, wird sich Cookie anfangs um die Integration eines Smartphones kümmern. Ich werde mich hauptsächlich mit den technischen Aspekten der API und vor allem der serverseitigen Speicherung der Daten beschäftigen, was ich mir aufgrund meines Interesses an verteilten Systemen entsprechend ausgesucht habe. Da die genannten Szenarien Anforderungen an das System in Bezug auf Phasen hoher Nutzungsintensität und Verfügbarkeit stellt, muss ein solches System vor allem gut skalieren und ausfallsicher designt sein. Dann wird es für uns als nächstes darum gehen, weitere Aspekte zu implementieren und vor allem das System unter echten Bedingungen zu testen.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Informationen zum Projekt und dessen Verlauf gibt es übrigens auf unserer Projektseite unter &lt;a href=&quot;http://www.diretto.org&quot;&gt;diretto.org&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 22 Jan 2010 00:47:25 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/268-guid.html</guid>
    <category>coding</category>
<category>diretto</category>
<category>studium</category>
<category>ulm</category>
<category>web 2.0</category>

</item>
<item>
    <title>SSH-Tunnel und SOCKS Proxy Forwarding als Alternative zum Surfen über (Web)VPN</title>
    <link>http://www.benjamin-erb.de/archives/267-SSH-Tunnel-und-SOCKS-Proxy-Forwarding-als-Alternative-zum-Surfen-ueber-WebVPN.html</link>
            <category>Studium</category>
    
    <comments>http://www.benjamin-erb.de/archives/267-SSH-Tunnel-und-SOCKS-Proxy-Forwarding-als-Alternative-zum-Surfen-ueber-WebVPN.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=267</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=267</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    An meiner Uni sind einige Webressourcen nur aus dem Intranet zugreifbar, das heißt man braucht als Client eine IP aus dem Uni-Netz. Um von extern darauf zuzugreifen, ist die Einwahl über ein &lt;a href=&quot;http://de.wikipedia.org/wiki/Virtual_Private_Network&quot;&gt;VPN&lt;/a&gt; notwendig. Neben der klassischen &quot;schwergewichtigen&quot; Einwahl über einen VPN-Client gibt es noch die Möglichkeit, einen Web-VPN zu nutzen. Hier werden nach der Authentifizierung alle HTTP-Anfragen über eine spezielle Seite der Rechenzentrums getunnelt. Leider lässt nicht nur die Verfügbarkeit des Dienstes manchmal zu wünschen übrig, sondern auch die verfügbaren Bandbreiten machen es uninteressant für den Download größerer Paper. &lt;br /&gt;
&lt;br /&gt;
Als Alternative hierzu ist mir die Möglichkeit begegnet, mithilfe des Application Level Port Forwardings von SSH Zugriffe zu tunneln. Durch den Flag &quot;-D portnummer&quot; erzeugt der SSH-Client beim Verbinden einen lokalen &lt;a href=&quot;http://de.wikipedia.org/wiki/SOCKS&quot;&gt;SOCKS-Proxy&lt;/a&gt; auf diesem Port, der über den SSH-Tunnel Requests weiterleitet. Endpunkt stellt der SSH-Server da. Mithilfe zusätzlicher Flags lässt sich außerdem ein Timeout unterdrücken.&lt;br /&gt;
&lt;br /&gt;
Im Falle der &lt;a href=&quot;http://www.uni-ulm.de&quot;&gt;Uni Ulm&lt;/a&gt; und einer Einwahl auf den Server des Rechenzentrums (&lt;a href=&quot;http://www.uni-ulm.de/einrichtungen/kiz&quot;&gt;KIZ&lt;/a&gt;) sieht der Aufruf so aus:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;ssh -D 8800 -o ServerAliveInterval=60 s_login@login.rz.uni-ulm.de&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Nach erfolgreichem Verbindungsaufbau steht dann lokal unter dem Port 8800 der SOCKS-Proxy zur Verfügung und kann im Browser eingetragen werden. Für eine dynamische Nutzung bieten sich unter Firefox Plugins wie &lt;a href=&quot;https://addons.mozilla.org/de/firefox/addon/2464&quot;&gt;FoxyProxy&lt;/a&gt; an. Hier lassen sich Regelsätze definieren, wann dieser Proxy benutzt werden soll, zum Beispiel für alle Uni-Seiten.  
    </content:encoded>

    <pubDate>Fri, 01 Jan 2010 19:50:10 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/267-guid.html</guid>
    <category>studium</category>
<category>ulm</category>
<category>web</category>

</item>
<item>
    <title>Bahnhof Ravensburg mit den Alpen im Hintergrund</title>
    <link>http://www.benjamin-erb.de/archives/265-Bahnhof-Ravensburg-mit-den-Alpen-im-Hintergrund.html</link>
            <category>Fotos</category>
    
    <comments>http://www.benjamin-erb.de/archives/265-Bahnhof-Ravensburg-mit-den-Alpen-im-Hintergrund.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=265</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=265</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a   rel=&quot;lightbox[lightbox_group_entry_265]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/ravensburg_alpen.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/ravensburg_alpen_blog.jpg&quot; /&gt;&lt;/a&gt; 
    </content:encoded>

    <pubDate>Thu, 31 Dec 2009 15:50:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/265-guid.html</guid>
    <category>fotos</category>
<category>ravensburg</category>

</item>
<item>
    <title>Mehrere Werte in Java-Methoden typsicher zurückgeben</title>
    <link>http://www.benjamin-erb.de/archives/266-Mehrere-Werte-in-Java-Methoden-typsicher-zurueckgeben.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/266-Mehrere-Werte-in-Java-Methoden-typsicher-zurueckgeben.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=266</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=266</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Anders als manch andere imperative Programmiersprachen, unterstützt Java nur die Rückgabe eines Wertes bei einem Methodenaufruf. Jedoch ist es häufig interessant, mehrere Werte zurückzugeben. Grundsätzlich lassen sich hier zwei Szenarien unterscheiden. Bei der Rückgabe von mehreren gleichartigen Typen wird meist eine Klasse des Collections-Frameworks verwendet, wie zum Beispiel List oder ein Array.  Manchmal will man aber auch völlig verschiedene Typen gemeinsam zurückgeben. Gängige Praxis ist es hier, ein Object-Array zurückzugeben und dann quasi beim Implementieren festzulegen, von welchem Typ die einzelnen Werte sind und entsprechen zurückzucasten. Dies ist leider weder typsicher, noch lässt sich die vorherige Festlegung im Code erzwingen. Abhilfe schafft hier eine generische Holder-Klasse, die einzelnen Werte typsicher kapselt und als einziger Rückgabewert verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel für die Rückgabe über ein Object-Array:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
private Object[] doItUnchecked()
{
	String s = &quot;foo&quot;;
	Date d = new Date();

	return new Object[] { s, d };
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
// unchecked variant: dangerous!
Object[] returnValues = t.doItUnchecked();
String s = (String) returnValues[0];
Date d = (Date) returnValues[1];
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Eine generische Holderklasse (hier:  &lt;i&gt;immutable&lt;/i&gt;):&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
/**
 * Immutable holder type for two values.
 * 
 * @author Benjamin Erb
 *
 * @param &amp;lt;F&amp;gt; type of first value
 * @param &amp;lt;S&amp;gt; type of second value
 */
public class PairHolder&amp;lt;F, S&amp;gt;
{
	private final F first;
	private final S second;
	
	public PairHolder(F first, S second)
	{
		this.first = first;
		this.second = second;
	}
	
	public F getFirst()
	{
		return first;
	}
	
	public S getSecond()
	{
		return second;
	}
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Verwendung in Methode:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
private PairHolder&amp;lt;String, Date&amp;gt; doItChecked()
{
	String s = &quot;foo&quot;;
	Date d = new Date();

	return new PairHolder&amp;lt;String, Date&amp;gt;(s, d);
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;
// check variant: safe already at compile-time
PairHolder&amp;lt;String, Date&amp;gt; h = t.doItChecked();
String s = h.getFirst();
Date d = h.getSecond();
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Die Holderklasse lässt sich auch noch beliebig erweitern, um Tripel, Quadrupel etc. zu halten. Wer für 2-Tupel keine eigene Klasse implementieren möchte, kann übrigens auf  &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/util/AbstractMap.SimpleEntry.html&quot;&gt;AbstractMap.SimpleEntry&amp;lt;K,V&amp;gt;&lt;/a&gt; oder &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/util/AbstractMap.SimpleImmutableEntry.html&quot;&gt;AbstractMap.SimpleImmutableEntry&amp;lt;K,V&amp;gt;&lt;/a&gt; zurückgreifen. 
    </content:encoded>

    <pubDate>Thu, 31 Dec 2009 14:46:50 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/266-guid.html</guid>
    <category>coding</category>
<category>java</category>

</item>
<item>
    <title>WMNS Air Max 1</title>
    <link>http://www.benjamin-erb.de/archives/264-WMNS-Air-Max-1.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/264-WMNS-Air-Max-1.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=264</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=264</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Nike WMNS Air Max 1 (white / white / purple / pink)&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_264]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_04.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_04_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_264]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_05.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_05_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_264]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_06.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_wmns_am1/nike_wmns_am1_06_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/264-WMNS-Air-Max-1.html#extended&quot;&gt;&quot;WMNS Air Max 1&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 31 Dec 2009 14:06:27 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/264-guid.html</guid>
    <category>fotos</category>
<category>nike air max</category>
<category>sneaker</category>
<category>sneaker photography</category>

</item>
<item>
    <title>Twitterbot in Perl</title>
    <link>http://www.benjamin-erb.de/archives/263-Twitterbot-in-Perl.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/263-Twitterbot-in-Perl.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=263</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=263</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a href=&quot;http://www.perl.org/&quot;&gt;Perl&lt;/a&gt; war schon immer eine polarisierende Sprache. Die einen lieben sie, die anderen hassen sie. Die einen sind Fan der flexiblen Syntax, die anderen verfluchen die mangelnde Lesbarkeit. Sätze wie &lt;em&gt;&quot;Perl: Write once – never understand again&quot;&lt;/em&gt; oder &lt;em&gt;&quot;Perl is the only language that looks the same before and after RSA encryption.&quot;&lt;/em&gt; zielen genau hierauf ab.&lt;br /&gt;
&lt;br /&gt;
Dennoch ist Perl eine beliebte Skriptsprache, insbesondere im Unix/Linux-Bereich (dank erkennbarer Verwandschaft zu Unix-Tools/Sprachen wie C, awk oder Shell-Builtins) zur Systemadministration oder allgemein zur schnellen Problemlösung. Aber auch im Web und in vielen speziellen Einsatzgebieten wie zum Beispiel der (DNA-)Sequenzanalyse ist Perl weiterhin eine bedeutende Sprache. Aufgrund ihrer Mächtigkeit gilt Perl mancherorts als &lt;em&gt;&quot;Swiss Army Chainsaw of Programming Languages&quot;&lt;/em&gt;.&lt;br /&gt;
Natürlich sind mit Ruby, Python und diversen Java-Derivaten viele neue Skriptsprachen auf den Markt gekommen, und Perl 6 lässt (leider) weiterhin auf sich warten. &lt;br /&gt;
&lt;br /&gt;
Trotzdem bin ich weiterhin ein großer Freund dieser Sprache. Allerdings muss ich zugeben, dass ich etwas voreingenommen bin – Perl war mit die erste &lt;em&gt;&quot;richtige&quot;&lt;/em&gt; Programmiersprache, mit der ich in Kontakt kam (dann kam die damals &lt;em&gt;weniger richtige&lt;/em&gt; Sprache PHP).&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung &lt;a href=&quot;http://www.mathematik.uni-ulm.de/sai/ws09/scriptsprachen/&quot;&gt;Skriptsprachen und Anwendungen&lt;/a&gt; bei den Mathematikern hat dafür gesorgt, mein Interesse für Perl wieder etwas zu beleben und ein kleines Projekt in Angriff zu nehmen. Als Resultat entstand ein kleiner &lt;a href=&quot;http://twitter.com/mensaplan&quot;&gt;Bot&lt;/a&gt;, der täglich den &lt;a href=&quot;http://www.uni-ulm.de/mensaplan/&quot;&gt;Mensaplan&lt;/a&gt; der Uni Ulm abgrast und die Ergebnisse bei Twitter veröffentlicht. So besteht nicht nur die Möglichkeit, durch das Folgen des Bots bei Twitter täglich über die Tageskarte informiert zu werden, sondern es entsteht quasi als &quot;Abfallprodukt&quot; ein bisher nicht existenter &lt;a href=&quot;http://twitter.com/statuses/user_timeline/92279105.rss&quot;&gt;RSS-Feed&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Das kleine Projekt zeigt sehr schön, wie man mithilfe der mächtigen &lt;a href=&quot;http://www.cpan.org/&quot;&gt;CPAN-Module&lt;/a&gt; in Perl alltägliche Aufgabe sehr effizient und &lt;em&gt;straight forward&lt;/em&gt; lösen kann. Zum Parsen der HTML-Seite, die als Quelle benutzt wird, wird das Paket &lt;a href=&quot;http://search.cpan.org/dist/XML-LibXML/&quot;&gt;XML::LibXML&lt;/a&gt; benötigt. Hiermit lassen sich per XPath direkt die interessanten Inhalte extrahieren. Die leichtgewichtige Twitter-Library &lt;a href=&quot;http://search.cpan.org/dist/Net-Twitter-Lite/&quot;&gt;Net::Twitter::Lite&lt;/a&gt; sorgt zudem für eine einfach Twitter-Anbindung:&lt;br /&gt;
&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;
#!/usr/bin/perl
use strict;
use DateTime;
use Net::Twitter::Lite;
use XML::LibXML;

#Get date
my $today = DateTime-&gt;today();
die &quot;No working day!\n&quot; if($today-&gt;day_of_week()&gt;5);

#Fetch url and load document as DOM tree
my $url = sprintf(&quot;http://www.uni-ulm.de/mensaplan/%04d-%02d-%02d.html&quot;,$today-&gt;year, $today-&gt;month,$today-&gt;day);
my $doc = XML::LibXML-&gt;new()-&gt;parse_html_file($url) or die &quot;Error while fetching/parsing document!\n&quot;;

#Gather all list entries and extract mealtype and actual meal
my @meals = $doc-&gt;findnodes(&#039;//div[@class=&quot;meal&quot;]&#039;);
my @tweets;
foreach (@meals)
{
	my ($mealtype, $meal) = ($_-&gt;find(&#039;./div[@class=&quot;mealtype&quot;]&#039;),$_-&gt;find(&#039;./div[@class=&quot;item&quot;]&#039;));
	$meal =	(length($meal)+length($mealtype) &gt; 138 ? substr($meal,0,136-length($mealtype)).&quot;..&quot; : $meal);
	push(@tweets, $mealtype.&quot;: &quot;.$meal);
}
die &quot;Error while fetching meals!\n&quot; if(length(@tweets) == 0);

#Login to twitter and post entries in reverse order 
my $nt = Net::Twitter::Lite-&gt;new(username =&gt; &#039;username&#039;, password =&gt; &#039;...&#039;, clientname =&gt; &quot;MensaBot&quot;,source =&gt; &quot;web&quot;) or die &quot;Error during twitter login procedure!\n&quot;;
$nt-&gt;update(&quot;=&quot;x 40);
foreach (reverse(@tweets))
{
	my $result = $nt-&gt;update($_);
}
$nt-&gt;update(&quot;Mensaplan Uni Ulm am &quot;.$today-&gt;day.&quot;.&quot;.$today-&gt;month.&quot;.&quot;.$today-&gt;year.&quot;:   #uni #ulm #uulm #mensa #mensaplan&quot;);
exit;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Zugehöriger Crontab-Eintrag, wobei &lt;em&gt;1-5&lt;/em&gt; für Werktage steht und &lt;em&gt;0 10&lt;/em&gt; für 10:00 Uhr:&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;cpp&quot;&gt;
0 10 * * 1-5 /path/to/script.pl
&lt;/pre&gt;&lt;br /&gt;
Hiermit wird das Skript regelmäßig zu den gewünschten Zeiten ausgeführt. 
    </content:encoded>

    <pubDate>Tue, 01 Dec 2009 23:15:56 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/263-guid.html</guid>
    <category>coding</category>
<category>perl</category>
<category>studium</category>
<category>web 2.0</category>

</item>
<item>
    <title>Semantic Mashup</title>
    <link>http://www.benjamin-erb.de/archives/262-Semantic-Mashup.html</link>
            <category>Programmierung</category>
            <category>Studium</category>
            <category>Web</category>
    
    <comments>http://www.benjamin-erb.de/archives/262-Semantic-Mashup.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=262</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=262</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Aus meiner Seminararbeit zum Thema &lt;em&gt;Semantic Mashups&lt;/em&gt; aus dem vergangenen Sommersemester ist nun ein kleiner &lt;em&gt;Technical Report&lt;/em&gt; geworden. Im Paper werden Mashups – also Anwendungen, die Informationen verschiedener Webseiten vermischen – analysiert und verschiedene technische Grundlagen, die hierfür nötig sind erläutert. Desweiteren werden existierende Mashup-Engines und Architekturen vorgestellt, sowie Herausforderungen und Probleme beim Erstellen von Mashups aufgezeigt.&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_262]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/semantic_mashup.jpg&quot;&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/semantic_mashup_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Abstract:&lt;/strong&gt;&lt;br /&gt;
&lt;blockquote&gt;Nowadays, the World Wide Web has become the most important source of information for many people and is nearly indispensable. However, the information is spread on billions of web pages. So there is an increasing demand to combine the data of different web pages for an acquisition of information. Mashup applications assist the user at this task. This paper will give an overview about how to extract structured and semantical data out of web pages using different technologies and also shows, what types of mashup applications already exist. Furthermore we take a look at mashup architectures and engines and unresolved issues for mashup applications.&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Benjamin Erb, Jan-Patrick Elsholz, Franz J. Hauck: &lt;strong&gt;Semantic Mashup: Mashing up Information in the Todays World Wide Web – An Overview&lt;/strong&gt;. VS-R08-2009, 2009. [&lt;a href=&quot;http://www-vs.informatik.uni-ulm.de/dept/staff/elsholz/pubs/doc/techreps/VS-R08-2009.pdf&quot;&gt;pdf&lt;/a&gt;] [&lt;a href=&quot;http://www-vs.informatik.uni-ulm.de/dept/staff/elsholz/pubs/doc/techreps/trvsr0809.bib&quot;&gt;bib&lt;/a&gt;]&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 29 Nov 2009 17:43:53 +0100</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/262-guid.html</guid>
    <category>coding</category>
<category>informatik</category>
<category>software</category>
<category>studium</category>
<category>user interfaces</category>
<category>web 2.0</category>

</item>
<item>
    <title>Mean Green</title>
    <link>http://www.benjamin-erb.de/archives/261-Mean-Green.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/261-Mean-Green.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=261</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=261</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Nike Air Max &#039;90 (white / mean green / antracite)&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_261]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_07.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_07_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_261]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_01.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_01_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_261]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_04.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_am90_mg/am90_mg_04_blog.jpg&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/261-Mean-Green.html#extended&quot;&gt;&quot;Mean Green&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 23 Sep 2009 15:01:19 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/261-guid.html</guid>
    <category>fotos</category>
<category>nike air max</category>
<category>sneaker</category>
<category>sneaker photography</category>

</item>
<item>
    <title>SequentialMessageQueues in Java</title>
    <link>http://www.benjamin-erb.de/archives/260-SequentialMessageQueues-in-Java.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/260-SequentialMessageQueues-in-Java.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=260</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=260</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Viele Netzwerkprotokolle teilen ihre Kommunikationsentitäten in Pakete oder Nachrichten auf. Manche Protokolle erwarten außerdem eine sequentielle Abarbeitung (z.B. TCP auf Transportebene), auch wenn die darunterliegenden Protokollschichten dass nicht unbedingt unterstützen. Für die Implementierung eines Nachrichtenpuffers für RTSP-Nachrichten, die ungeordnet ankommen können, aber sequentiell abgearbeitet werden müssen, habe ich eine entsprechende Datenstruktur in Java erstellt. RTSP-Nachrichten besitzen ein &lt;code&gt;Cseq&lt;/code&gt;-Header-Feld, welches die einzelnen Nachrichten durchnummiert und als ordnendes Element genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
Die folgende generische Implementierung erwartet, dass alle Nachrichtenelemete eindeutige und miteinander vergleichbare Identifier besitzen. Desweiteren erlaubt diese Implementierung zwar das parallele Schreiben in die Queue, allerdings sollte das Lesen durch einen einzelnen Thread realisiert werden. Ansonsten kann die Ordnung nach dem Entnehmen aus der Queue durch unterschiedlich lange Laufzeiten der Worker-Threads wieder verloren gehen. Außerdem realisiert diese Implementierung die sequentielle Ordnung eines vollständigen Nachrichtenstroms. Nachrichtenverluste oder Timeouts werden nicht behandelt. Hierfür eignen sich eher &lt;a href=&quot;http://en.wikipedia.org/wiki/Automatic_repeat-request&quot;&gt;Automatic repeat request Protokolle&lt;/a&gt;.&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/260-SequentialMessageQueues-in-Java.html#extended&quot;&gt;&quot;SequentialMessageQueues in Java&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 22 Sep 2009 21:55:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/260-guid.html</guid>
    <category>coding</category>
<category>java</category>

</item>
<item>
    <title>Auf dem roten Teppich</title>
    <link>http://www.benjamin-erb.de/archives/259-Auf-dem-roten-Teppich.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/259-Auf-dem-roten-Teppich.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=259</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=259</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Nike Air Force 1 Low &#039;07 (red / white / blue)&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_259]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_13.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_13_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_259]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_10.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_10_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_259]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_04.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_rb/af1_rb_04_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/259-Auf-dem-roten-Teppich.html#extended&quot;&gt;&quot;Auf dem roten Teppich&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 30 Aug 2009 00:01:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/259-guid.html</guid>
    <category>fotos</category>
<category>nike af1</category>
<category>sneaker</category>
<category>sneaker photography</category>

</item>
<item>
    <title>Word-Cloud – Seminararbeit &quot;Semantic Mashup&quot;</title>
    <link>http://www.benjamin-erb.de/archives/258-Word-Cloud-Seminararbeit-Semantic-Mashup.html</link>
            <category>Studium</category>
    
    <comments>http://www.benjamin-erb.de/archives/258-Word-Cloud-Seminararbeit-Semantic-Mashup.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=258</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=258</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Hier eine Word-Cloud (erzeugt mit &lt;a href=&quot;http://www.wordle.net/&quot;&gt;Wordle&lt;/a&gt;) zu einer Seminararbeit  von mir aus dem vergangenen Semester: &lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_258]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/semantic_mashup.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/semantic_mashup_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 29 Aug 2009 19:21:11 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/258-guid.html</guid>
    <category>information design</category>
<category>studium</category>
<category>typografie</category>
<category>web 2.0</category>

</item>
<item>
    <title>Art &amp; Sole – Contemporary Sneaker Design</title>
    <link>http://www.benjamin-erb.de/archives/257-Art-Sole-Contemporary-Sneaker-Design.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/257-Art-Sole-Contemporary-Sneaker-Design.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=257</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=257</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Art &amp;amp; Sole ist ein &lt;a href=&quot;http://www.laurenceking.com/product/Art+---+Sole.htm&quot;&gt;wunderschönes Buch&lt;/a&gt; über das Spannungsfeld von Kunst und  Sneakerkult(ur). &lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_257]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/art_sole.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/art_sole_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 15 Aug 2009 20:40:25 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/257-guid.html</guid>
    <category>bücher</category>
<category>sneaker</category>

</item>
<item>
    <title>Schnelle Quellcode-Navigation in Eclipse</title>
    <link>http://www.benjamin-erb.de/archives/256-Schnelle-Quellcode-Navigation-in-Eclipse.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/256-Schnelle-Quellcode-Navigation-in-Eclipse.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=256</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=256</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Bei der Entwicklung größerer Java-Projekte kann schnell die Übersicht verloren gehen. Zum Glück bietet Eclipse eine Vielzahl von Shortcuts und Funktionen, um sich auch noch bei einer Vielzahl von Klassen zurecht zu finden. &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + 3&lt;/code&gt;&lt;br/&gt;Öffnet den intelligenten &lt;em&gt;Quick Access&lt;/em&gt; Dialog.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;code&gt;Strg + Shift + R&lt;/code&gt;&lt;br/&gt;Öffnet einen Schnelldialog zum Öffnen einer Ressource. Ist insbesondere hilfreich, um eine Datei mit bekanntem Dateinamen direkt zu öffnen, ohne im Package Explorer zu suchen.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + Shift + T&lt;/code&gt;&lt;br/&gt;Öffnet einen Schnelldialog zum Öffnen einer Java-Ressource. In der Auswahl kann der Name der Klasse/Interface/etc. direkt eingegeben werden. &lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + &lt;em&gt;Linksklick auf Klassenname&lt;/em&gt;&lt;/code&gt;&lt;br/&gt;Sprung zum Quelltext der Klasse, auf die im Editor geklickt wird. &lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + T&lt;/code&gt;&lt;br/&gt;Übersicht der Vererbungshierarchie der Klasse, die sich im Fokus des Editors befindet. Nochmaliges Drücken von &lt;code&gt;Strg + T&lt;/code&gt; dreht die Hierarchierichtung (Superklassen/Subklassen) um.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + O&lt;/code&gt;&lt;br/&gt;Übersicht der Membervariablen und Methoden der aktuellen Klasse. Nochmaliges Drücken von &lt;code&gt;Strg + O&lt;/code&gt; zeigt zusätzlich geerbte Member an.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + Shift + G&lt;/code&gt;&lt;br/&gt;Sucht nach Verwendungen der Methode im Fokus des Editors in alles Klassen der Workspaces.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + .&lt;/code&gt; und &lt;code&gt;Strg + &#039;+&#039;&lt;/code&gt;&lt;br/&gt;Sprung durch die Quelltextzeilen mit Warnungen&lt;/li&gt;	&lt;br /&gt;
&lt;li&gt;&lt;code&gt;Strg + L&lt;/code&gt;&lt;br/&gt;Öffnet Dialog für einen Sprung in eine bestimmte Codezeile.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + E&lt;/code&gt;&lt;br/&gt;Zeigt Liste aller offenen Editors-Tabs an und ermöglicht Direktauswahl eines offenen Editorstabs per Texteingabe.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Strg + Bild Auf&lt;/code&gt; und &lt;code&gt;Strg + Bild Ab&lt;/code&gt;&lt;br/&gt;Springen durch die offenen Editor-Tabs.&lt;br /&gt;
	&lt;li&gt;&lt;code&gt;Alt + ←&lt;/code&gt; und &lt;code&gt;Alt + →&lt;/code&gt;&lt;br/&gt;Springen durch die Historie der geöffneten Tabs.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Post ist ein &lt;a href=&quot;http://www.ioexception.de/2009/08/11/schnelle-quellcode-navigation-in-eclipse/&quot;&gt;Beitrag&lt;/a&gt; auf &lt;a href=&quot;http://www.ioexception.de/&quot;&gt;ioexception.de&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 12 Aug 2009 00:23:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/256-guid.html</guid>
    <category>coding</category>
<category>eclipse</category>
<category>java</category>

</item>
<item>
    <title>Schnappschüsse Alhambra – Teil 2</title>
    <link>http://www.benjamin-erb.de/archives/252-Schnappschuesse-Alhambra-Teil-2.html</link>
            <category>Allgemeines</category>
            <category>Fotos</category>
    
    <comments>http://www.benjamin-erb.de/archives/252-Schnappschuesse-Alhambra-Teil-2.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=252</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=252</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a   rel=&quot;lightbox[lightbox_group_entry_252]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_18.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_18_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_252]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_07.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_07_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_252]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_06.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_06_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/252-Schnappschuesse-Alhambra-Teil-2.html#extended&quot;&gt;&quot;Schnappschüsse Alhambra – Teil 2&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 11 Aug 2009 00:41:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/252-guid.html</guid>
    <category>fotos</category>
<category>spanien</category>

</item>
<item>
    <title>Being sneakerized…</title>
    <link>http://www.benjamin-erb.de/archives/255-Being-sneakerized.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/255-Being-sneakerized.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=255</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=255</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Anscheinend bin ich auch betroffen, zumindest treffen einige Punkte auf mich eindeutig zu – &lt;a href=&quot;http://www.sneakerized.com/themovie&quot;&gt;sneakerized&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;700&quot; height=&quot;280&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=5528405&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=5528405&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;700&quot; height=&quot;280&quot;&gt;&lt;/embed&gt;&lt;/object&gt; 
    </content:encoded>

    <pubDate>Mon, 10 Aug 2009 23:53:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/255-guid.html</guid>
    <category>sneaker</category>

</item>
<item>
    <title>Schnappschüsse Alhambra – Teil 1</title>
    <link>http://www.benjamin-erb.de/archives/251-Schnappschuesse-Alhambra-Teil-1.html</link>
            <category>Allgemeines</category>
            <category>Fotos</category>
    
    <comments>http://www.benjamin-erb.de/archives/251-Schnappschuesse-Alhambra-Teil-1.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=251</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=251</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a   rel=&quot;lightbox[lightbox_group_entry_251]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_09.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_09_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_251]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_02.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_02_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_251]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_12.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/alhambra/alhambra_12_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/251-Schnappschuesse-Alhambra-Teil-1.html#extended&quot;&gt;&quot;Schnappschüsse Alhambra – Teil 1&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 08 Aug 2009 23:07:28 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/251-guid.html</guid>
    <category>fotos</category>
<category>spanien</category>

</item>
<item>
    <title>Schnappschüsse aus Granada, Spanien</title>
    <link>http://www.benjamin-erb.de/archives/250-Schnappschuesse-aus-Granada,-Spanien.html</link>
            <category>Allgemeines</category>
            <category>Fotos</category>
    
    <comments>http://www.benjamin-erb.de/archives/250-Schnappschuesse-aus-Granada,-Spanien.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=250</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=250</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Vor mittlerweile zwei Monaten war ich zusammen mit Raimar &lt;a href=&quot;http://www.benjamin-erb.de/archives/243-Granada-ist....html&quot;&gt;Cookie in Spanien besuchen&lt;/a&gt;. Wegen Studiumstress hatte ich bisher keine Zeit, irgendwelche Fotos hier zu zeigen. Da nun aber die Vorlesungszeit der Sommersemesters vorbei ist, habe ich mal angefangen, die Fotos zu sichten. Hier ein paar erste Schnappschüsse – bald gibt es mehr: &lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_250]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_1.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_1_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_250]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_2.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_2_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_250]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_3.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_3_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_250]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_4.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/granada/shots/granada_4_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 01 Aug 2009 20:41:53 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/250-guid.html</guid>
    <category>fotos</category>
<category>spanien</category>

</item>
<item>
    <title>Die Geolocation API in Firefox 3.5</title>
    <link>http://www.benjamin-erb.de/archives/249-Die-Geolocation-API-in-Firefox-3.5.html</link>
            <category>Web</category>
    
    <comments>http://www.benjamin-erb.de/archives/249-Die-Geolocation-API-in-Firefox-3.5.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=249</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=249</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Seit Version 3.5 unterstützt der Webbrowser Mozilla Firefox die Geolocation API – eine API zur Unterstützung von &lt;i&gt;location aware webservices&lt;/i&gt;, also Webseiten oder Dienste, die gezielt den Ort des Benutzers mit einbeziehen und sich entsprechend anpassen. Die implementierte Geolocation API basiert auf einem &lt;a href=&quot;http://www.w3.org/TR/geolocation-API/&quot;&gt;Draft&lt;/a&gt; des &lt;a href=&quot;http://www.w3.org/&quot;&gt;W3C&lt;/a&gt;.&lt;br /&gt;
Die Geolocation API ist in das Javscript-Browsermodell integriert worden und bietet nun &lt;code&gt;geolocation&lt;/code&gt; als Kindobjekt von &lt;code&gt;navigator&lt;/code&gt; an. Unterstütz der Browser die API nicht oder hat sie deaktiviert, so ist &lt;code&gt;navigator.geolocation&lt;/code&gt; nicht verfügbar. Dies sollte aus Kompatibilitätsgründen immer als erstes getestet werden.&lt;br /&gt;
Ist das Objekt verfügbar, so kann mit &lt;code&gt;getCurrentPosition()&lt;/code&gt; eine Abfrage der Koordinaten abgesetzt werden, die asynchron läuft. Als Parameter erwartet diese Methode eine Callback-Methode für die Verarbeitung des Ergebnisses und optional eine zweite Methode zur Fehlerbehandlung.&lt;br /&gt;
Eine Live-Demo mit einer Visualisierung mit OpenStreetMap findet man unter anderem auf &lt;a href=&quot;http://3liz.org/geolocation/&quot;&gt;3liz.org/geolocation&lt;/a&gt;.&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;
if (navigator.geolocation) 
{
	navigator.geolocation.getCurrentPosition(function(position) 
	{  
		alert(&#039;Position:&#039; + position.coords.latitude + &#039; / &#039; + position.coords.longitude);  
	});
} 
else 
{
	alert(&quot;Geolocation API nicht verfügbar.&quot;);
}
&lt;/pre&gt;&lt;br /&gt;
Doch wie funktioniert diese Lokalisierung? Firefox nutzt hierfür die Google Location Services. Dieser Dienst versucht eine öffentliche IP anhand von verschiedenen Informationen zu einer ungefähren geografischen Position zu mappen, was häufig sehr ungenau ist. Ist jedoch WLan verfügbar, so benutzt dieser Dienst eine andere Strategie. Es wird eine Liste aller erreichbaren Access Points, deren MAC-Adresse sowie deren Signalstärke übermittelt. Diese Daten werden mit einer großen Datenbank abgeglichen und eine ungefähre Position &lt;a href=&quot;http://de.wikipedia.org/wiki/Triangulation_(Geod%C3%A4sie)&quot;&gt;trianguliert&lt;/a&gt;. Hierfür müssen zunächst die entsprechenden Daten in einer Datenbank gesammelt worden sein – man muss Straße für Straße mit allen erreichbaren WLan Access Points kartografieren. Bei unseren Tests stellte sich heraus, dass dies in Ulm und Neu-Ulm bereits passiert ist, die Ergebnisse waren durchweg gut und oft auf etwa 10 Meter genau! &lt;br /&gt;
Interessant wäre ein Blick in das Innere dieses Dienstes, ob er zum Beispiel selbstlernend ist und mit der Zeit neue Access Points anhand der übermittelten Datensätze einer genauen Position zuordnen und hinzufügen kann. Aber auch aus datenschutzrechtlichen Sicht sind Details solcher Dienste sehr interessant.&lt;br /&gt;
&lt;br /&gt;
Dieser Post ist ein &lt;a href=&quot;http://www.ioexception.de/2009/07/12/die-geolocation-api-in-firefox-3-5/&quot;&gt;Beitrag&lt;/a&gt; auf &lt;a href=&quot;http://www.ioexception.de/&quot;&gt;ioexception.de&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sat, 01 Aug 2009 20:37:34 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/249-guid.html</guid>
    <category>ubiquitous computing</category>
<category>web 2.0</category>

</item>
<item>
    <title>Represent your University</title>
    <link>http://www.benjamin-erb.de/archives/248-Represent-your-University.html</link>
            <category>Studium</category>
    
    <comments>http://www.benjamin-erb.de/archives/248-Represent-your-University.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=248</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=248</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Underground-Uni-Ulm-Merchandising – streng limitiert, völlig inoffiziell, selbst gemacht, RUN DMC Tribut zollend:&lt;br /&gt;
&lt;img src=&quot;http://www.benjamin-erb.de/visual/blog/uniulm_merchandise.jpg&quot;/&gt; 
    </content:encoded>

    <pubDate>Sat, 01 Aug 2009 20:30:09 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/248-guid.html</guid>
    <category>design</category>
<category>studium</category>
<category>ulm</category>

</item>
<item>
    <title>IOException.de</title>
    <link>http://www.benjamin-erb.de/archives/247-IOException.de.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/247-IOException.de.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=247</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=247</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Vor etwa einem Monat habe ich zusammen mit Raimar und David die Seite &lt;a href=&quot;http://www.ioexception.de/&quot;&gt;www.IOException.de&lt;/a&gt; ins Leben gerufen, auf der wir unsere technischeren und Informatik bezogenen Beiträge aggregieren möchten. &lt;br /&gt;
Gerne nehmen wir auch noch weiter Mit-Blogger auf oder freuen uns auf Gastbeiträge, bei Interesse einfach melden. 
    </content:encoded>

    <pubDate>Sat, 18 Jul 2009 15:26:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/247-guid.html</guid>
    <category>blog</category>
<category>coding</category>
<category>informatik</category>
<category>web</category>

</item>
<item>
    <title>Random Shots #6 </title>
    <link>http://www.benjamin-erb.de/archives/246-Random-Shots-6.html</link>
            <category>Fotos</category>
    
    <comments>http://www.benjamin-erb.de/archives/246-Random-Shots-6.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=246</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=246</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a   rel=&quot;lightbox[lightbox_group_entry_246]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/decay01.jpg&quot;&gt;&lt;img alt=&quot;&quot; style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/decay01_blog.jpg&quot; /&gt;&lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 16 Jun 2009 12:29:49 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/246-guid.html</guid>
    <category>fotos</category>

</item>
<item>
    <title>Mit Working Sets Eclipse aufräumen</title>
    <link>http://www.benjamin-erb.de/archives/245-Mit-Working-Sets-Eclipse-aufraeumen.html</link>
            <category>Programmierung</category>
    
    <comments>http://www.benjamin-erb.de/archives/245-Mit-Working-Sets-Eclipse-aufraeumen.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=245</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=245</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Jedem Eclipse-Benutzer dürfte es bekannt vorkommen, wenn langsam die ganzen Projekte den &lt;code&gt;Package Explorer&lt;/code&gt; füllen und dabei die Übersicht verloren geht. Natürlich besteht hier die Möglichkeit, durch verschiedene &lt;code&gt;Workspaces&lt;/code&gt; die einzelnen Projekte oder Projektgruppen zu separieren, jedoch stellt eine Unterteilung in &lt;code&gt;Workspaces&lt;/code&gt; eine sehr restriktive Trennung dar.&lt;br /&gt;
Abhilfe schaffen in Eclipse die so genannten &lt;code&gt;Working Sets&lt;/code&gt; – wie bei allen Eclipse-Funktionen muss man halt erstmal überhaupt davon wissen. Working Sets lassen sich über &lt;code&gt;New =&gt; Java =&gt; Java Working Set&lt;/code&gt; erstellen und erzeugen Überordner, in denen sich Projekte gruppieren lassen. Um im &lt;code&gt;Package Explorer&lt;/code&gt; die Ansicht nach &lt;code&gt;Working Sets&lt;/code&gt; aufzuschlüsseln, müssen diese jedoch als &lt;code&gt;Top Level Elements&lt;/code&gt; gewählt werden: &lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://www.benjamin-erb.de/visual/blog/working_set1.png&quot; alt=&quot;&quot; style=&quot;border:1px solid #999999&quot; /&gt; 
    </content:encoded>

    <pubDate>Tue, 16 Jun 2009 10:31:53 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/245-guid.html</guid>
    <category>coding</category>
<category>eclipse</category>
<category>java</category>

</item>
<item>
    <title>Iced out Soles</title>
    <link>http://www.benjamin-erb.de/archives/244-Iced-out-Soles.html</link>
            <category>Schuhe</category>
    
    <comments>http://www.benjamin-erb.de/archives/244-Iced-out-Soles.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=244</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=244</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Nike Air Force 1 Low (white / white / neutral grey)&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_244]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_09.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_09_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_244]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_05.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_05_blog.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a   rel=&quot;lightbox[lightbox_group_entry_244]&quot; href=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_06.jpg&quot;&gt;&lt;img alt=&quot;&quot;  style=&quot;border:1px solid black&quot; src=&quot;http://www.benjamin-erb.de/visual/blog/nike_af1_ww2/af_ww2_06_blog.jpg&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://www.benjamin-erb.de/archives/244-Iced-out-Soles.html#extended&quot;&gt;&quot;Iced out Soles&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 12 Jun 2009 17:43:44 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/244-guid.html</guid>
    <category>fotos</category>
<category>nike af1</category>
<category>sneaker</category>
<category>sneaker photography</category>

</item>
<item>
    <title>Granada ist...</title>
    <link>http://www.benjamin-erb.de/archives/243-Granada-ist....html</link>
            <category>Allgemeines</category>
    
    <comments>http://www.benjamin-erb.de/archives/243-Granada-ist....html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=243</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=243</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    Hier meine Eindrücke nach den ersten 24 Stunden in Granada beim zweiten weg-von-ulm.de Blogtreffen. Granada ist:&lt;br /&gt;
...wenn man für 1,50€ nicht nur ein Getränk, sondern gleich dazu noch kostenlos Tapas bekommt - jedesmal.&lt;br /&gt;
...wenn es nur Einbahnstraßen gibt und die wichtigsten davon einfach mal gesperrt werden.&lt;br /&gt;
...wenn die ganze Stadt eine einzige Baustelle ist.&lt;br /&gt;
...wenn man manchmal auch in einer arabischen Stadt sein könnte.&lt;br /&gt;
...wenn das nachmittags geparkte Auto aufeinmal von der Polizei abgeschleppt und umgeparkt wird, weil die Stadtverwaltung sich spontan dazu entschließt, die Straße aufzureißen.&lt;br /&gt;
...wenn man morgens Ski fahren und abends am Mittelmeer baden könnte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 04 Jun 2009 00:06:39 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/243-guid.html</guid>
    <category>spanien</category>

</item>
<item>
    <title>140 Zeichen</title>
    <link>http://www.benjamin-erb.de/archives/238-140-Zeichen.html</link>
            <category>Web</category>
    
    <comments>http://www.benjamin-erb.de/archives/238-140-Zeichen.html#comments</comments>
    <wfw:comment>http://www.benjamin-erb.de/wfwcomment.php?cid=238</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.benjamin-erb.de/rss.php?version=2.0&amp;type=comments&amp;cid=238</wfw:commentRss>
    

    <author>nospam@example.com (Benjamin Erb)</author>
    <content:encoded>
    &lt;a href=&quot;http://twitter.com&quot;&gt;Twitter&lt;/a&gt; ist eine Onlineplattform, die es den Benutzern ermöglicht, kurze Nachrichten zu publizieren. Jedoch ist die Nachrichtenlänge auf maximal 140 Zeichen limitiert. Wohl jeder, der schon einmal eine SMS kürzen musste, weiß aus Erfahrung, dass dies nicht nur neue Schreibkultur schafft, sondern auch neue Ansätze bezüglich der zu transportierenden Information. Eigentlich möchte ich nicht jedem Web 2.0 Trend hinterher laufen, doch Twitter gibt es mittlerweile drei Jahre und selbst &lt;a href=&quot;http://stefan.bloggt.es/2008/10/nert-man-muss-auch-mal-auf-die-schnauze-fallen/&quot;&gt;stk&lt;/a&gt;, der schon tief in die web2.0/blog/*/bla/-sphere eingetaucht ist, bezeichnet sich als Late Adopter und jetzt möchte ich es einfach mal selbst ausprobieren, genauso wie &lt;a href=&quot;http://www.weg-von-ulm.de/2009-04-27/zwitschern&quot;&gt;Raimar&lt;/a&gt;.&lt;br /&gt;
Durch das sogenannte &quot;Micro&quot;-Blogging werde ich allerdings diesen Blog hier nicht vernachlässigen, sondern eher die Chance nutzen, per Twitter Dinge zu posten, die ansonsten keinen Blogeintrag wert wären. Mal sehen was dabei rauskommt: &lt;a href=&quot;http://twitter.com/b_erb&quot;&gt;b_erb&lt;/a&gt; 
    </content:encoded>

    <pubDate>Mon, 27 Apr 2009 16:18:46 +0200</pubDate>
    <guid isPermaLink="false">http://www.benjamin-erb.de/archives/238-guid.html</guid>
    <category>web 2.0</category>

</item>

</channel>
</rss>