<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5683781969128699337</id><updated>2011-07-08T13:08:27.610+02:00</updated><category term='Nerviges'/><category term='Entscheidungsfindung'/><category term='Software-Entwicklung'/><category term='Java'/><category term='Nützliches'/><category term='News'/><category term='Entscheidungskriterien'/><title type='text'>Tolle Entscheidung ;-)</title><subtitle type='html'>Technische und überhaupt-nicht-technische Entscheidungen. Vorübergehende und langfristige. Pro und Contra. Und manchmal auch einfach aus dem Bauch heraus.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-3286347656916087505</id><published>2010-02-08T15:20:00.002+01:00</published><updated>2010-02-08T15:31:15.965+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Software-Entwicklung'/><title type='text'>JPA: NamedQueries contra IDE</title><content type='html'>Es ist schön, dass JavaEE heute nicht mehr bedeuten muss, jede Menge XML und Java-Code synchron zu halten. Dank Annotations konnte dieses Wartbarkeitsdesaster deutlich reduziert werden. Trotzdem habe ich oftmals noch nicht das Gefühl, dass JavaEE weit genug geht. Immer noch gibt es Stellen, die bei Änderungen Probleme machen. Warum gibt man dem Compiler keine Chance?&lt;br /&gt;&lt;br /&gt;Ein schönes (bzw. ärgerliches) Beispiel für eine solche Situation stellen die &lt;i&gt;NamedQueries&lt;/i&gt; von JPA dar. Man darf heute Annotations schreiben statt XML, aber eine Refactoring-Unterstützung durch den Compiler ist immer&amp;nbsp;noch nicht gegeben. Nehmen wir mal folgende Entity:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #777777; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp; @NamedQueries&lt;span style="color: black;"&gt;({&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3c35f9; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #777777;"&gt;@NamedQuery&lt;/span&gt;&lt;span style="color: black;"&gt;(name=&lt;/span&gt;"selectAll"&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3c35f9; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="color: #3c35f9;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;query=&lt;/span&gt;"select e from Employee e"&lt;span style="color: black;"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3c35f9; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #777777;"&gt;@NamedQuery&lt;/span&gt;&lt;span style="color: black;"&gt;(name=&lt;/span&gt;"selectNames"&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #3c35f9; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;query=&lt;/span&gt;"select e.name from Employee e"&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp; })&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: #777777;"&gt;@Entity&lt;/span&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #777777;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span style="color: #941766;"&gt;public&lt;/span&gt; &lt;span style="color: #941766;"&gt;class&lt;/span&gt; Employee&amp;nbsp;{ ... }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Das Problem liegt offensichtlich darin, dass wir keinerlei Compiler-Unterstützung hinsichtlich der Query-Namen erwarten können:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #0b28c6;"&gt;&amp;nbsp;&amp;nbsp; em&lt;/span&gt;.createNamedQuery(&lt;span style="color: #3c35f9;"&gt;"selectQll"&lt;/span&gt;);&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;... ergibt keine Compiletime-Fehlermeldung. Noch dazu: Die Bezeichnung "selectAll" liegt in einem globalen Namespace. Wir müssen also überhaupt erst die Entity finden, bei der die NamedQuery definiert ist. Man nennt die Query also vielleicht besser "employee.selectAll". Dann sollte man allerdings nicht vergessen, das per Hand zu ändern, falls die Klasse Employee irgendwann umbenannt wird. Oh je.&lt;br /&gt;&lt;br /&gt;Aus meiner Sicht hätte es hier eine Reihe von Möglichkeiten gegeben, den Compiler einzuspannen. Zum Beispiel so:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: #941766;"&gt;&amp;nbsp;&amp;nbsp;public&lt;/span&gt; &lt;span style="color: #941766;"&gt;enum&lt;/span&gt; EmployeeQueries {&lt;/div&gt;&lt;div style="color: #5077c7; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;/** Selects all employees */&lt;/div&gt;&lt;div style="color: #3c35f9; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #777777;"&gt;@EnumQuery&lt;/span&gt;&lt;span style="color: black;"&gt;(query=&lt;/span&gt;"select e from Employee e"&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #0b28c6;"&gt;SELECT_ALL&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #5077c7; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;/** Selects the names of all employees */&lt;/div&gt;&lt;div style="color: #3c35f9; font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #777777;"&gt;@EnumQuery&lt;/span&gt;&lt;span style="color: black;"&gt;(query=&lt;/span&gt;"select e.name from Employee e"&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #0b28c6;"&gt;SELECT_NAMES&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div style="font: 11.0px Monaco; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 15.0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Times;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-family: Monaco; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Wobei JPA etwa folgende Annotation bereitstellen könnte:&lt;br /&gt;&lt;br /&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 15px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #777777;"&gt;@Target&lt;/span&gt;(ElementType.&lt;span style="color: #0b28c6;"&gt;FIELD&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #777777;"&gt;@Retention&lt;/span&gt;(RetentionPolicy.&lt;span style="color: #0b28c6;"&gt;RUNTIME&lt;/span&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div style="color: #941766; font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;public&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;abstract&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;@interface&lt;span style="color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #777777;"&gt;EnumQuery&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #941766;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #941766;"&gt;abstract&lt;/span&gt;&amp;nbsp;String query();&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp;...&lt;/div&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 11px/normal Monaco; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Die enum "EmployeeQueries" darf hierbei eine Top-Level-Klasse sein, oder auch innerhalb einer Entity definiert werden.&lt;br /&gt;&lt;br /&gt;Vorteile wären:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compiletime-Überprüfung&lt;/li&gt;&lt;li&gt;Automatisches Refactoring&lt;/li&gt;&lt;li&gt;Automatische Ergänzung (z. B. in Eclipse nach Eintippen von "EmployeeQueries." Damit erhält man erstens eine Auflistung der verfügbaren Queries, und zweitens eine direkte Einblendung der Javadoc pro Query.)&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KXozLcKvX9w/S3AahB9vIZI/AAAAAAAAABU/ElTByIsF4fc/s1600-h/Screen+shot+2010-02-08+at+14.55.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://2.bp.blogspot.com/_KXozLcKvX9w/S3AahB9vIZI/AAAAAAAAABU/ElTByIsF4fc/s640/Screen+shot+2010-02-08+at+14.55.14.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ich persönlich glaube, dass solche Tool-Unterstützung nicht nur die Produktivität erhöht, sondern vor allen Dingen die Fehlerwahrscheinlichkeit deutlich senkt. Dazu muss man einmal die Anzahl der Schritte vergleichen, die ein Entwickler in beiden Fällen durchführen muss:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;JPA NamedQueries:&lt;/b&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;createNamedQuery() schreiben&lt;/li&gt;&lt;li&gt;Entity-Klasse suchen&lt;/li&gt;&lt;li&gt;Query in der Entity-Klasse suchen&lt;/li&gt;&lt;li&gt;Javadoc zur Query suchen (falls es überhaupt eine gibt - denn die Queries sind schließlich keine Java-Elemente, sondern nur als Annotations vorhanden - also falls ja, dann befindet sie sich wohl irgendwo in der Javadoc für die gesamte Entity-Klasse)&lt;/li&gt;&lt;li&gt;Zurück zur richtigen Query&lt;/li&gt;&lt;li&gt;Namensattribut kopieren&lt;/li&gt;&lt;li&gt;Zurück zu createNamedQuery(...) (wo war das jetzt nochmal?)&lt;/li&gt;&lt;li&gt;Namen einfügen&lt;/li&gt;&lt;li&gt;Mit dem weitermachen, was man sich überlegt hatte&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;EnumQuery (oder ähnliche Lösungen):&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;createNamedQuery() schreiben&lt;/li&gt;&lt;li&gt;Mit den Pfeiltasten eine Query selektieren, dabei Javadoc direkt ablesen&lt;/li&gt;&lt;li&gt;Weitermachen&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Es könnte so schön sein (und es wär doch gar nicht soo schwierig gewesen, oder?)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-3286347656916087505?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/3286347656916087505/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2010/02/jpa-namedqueries-contra-ide.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/3286347656916087505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/3286347656916087505'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2010/02/jpa-namedqueries-contra-ide.html' title='JPA: NamedQueries contra IDE'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KXozLcKvX9w/S3AahB9vIZI/AAAAAAAAABU/ElTByIsF4fc/s72-c/Screen+shot+2010-02-08+at+14.55.14.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-6653037081749629243</id><published>2009-09-29T12:00:00.000+02:00</published><updated>2009-09-29T12:00:47.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software-Entwicklung'/><title type='text'>Der Nummer 1 Faktor für Software-Qualität</title><content type='html'>Software wird von Menschen gemacht. Die Qualität steht und fällt mit der Qualität der Arbeitsweise der Entwickler. Eine Spezifikation - gleich auf welcher Ebene - ist immer nur ein Zwischenschritt. Selbst ein geschriebenes Stück Code ist ein Zwischenschritt, solange die Entwicklung eines Softwaresystems nicht beendet wurde. Als Entwickler baut man anhand dieser Zwischenschritte etwas neues - doch wie gut das Produkt wird, hängt von der bestehenden Qualität, sowie von der Qualität des neu geschaffenen ab.&lt;br /&gt;&lt;br /&gt;Warum ist es nicht möglich, Software völlig ohne Zwischenschritte zu entwickeln? Der Grund liegt meiner Meinung nach in der Beschränktheit unseres Konzentrationsvermögens auf einige wenige Dinge. Oft wird gesagt, dass unser Kurzzeitgedächtnis ca. 7+-2 Dinge ("chunks") gleichzeitig aufnehmen kann. Ob das nun genau so stimmt, oder nicht - nehmen wir es einfach mal als Arbeitshypothese (man könnte genau so gut z. B. auch die&amp;nbsp;&lt;a href="http://de.wikipedia.org/wiki/Kurzspeicherkapazit%C3%A4t"&gt;Kurzspeicherkapazität&lt;/a&gt; heranziehen)&lt;span id="goog_1254212963560"&gt;&lt;/span&gt;&lt;span id="goog_1254212963561"&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Je näher die Zwischenschritte zusammenliegen, und je weniger Zwischenschritte man zusammenfügen muss, desto weniger muss das Kurzzeitgedächtnis belastet werden. Das sind zwei konkurrierende Ziele, denn:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Liegen die Schritte weit auseinander, braucht man viel Kapazität, um Neues zu schaffen.&lt;/li&gt;&lt;li&gt;Liegen die Schritte nah beieinander, ist es hingegen leider oft nötig, viele der bestehenden Schritte gleichzeitig zu kombinieren - und zwar in der richtigen Art und Weise. Auch das braucht viel Kapazität.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Versucht man hingegen, nur wenige nahe beieinander liegende Schritte zu kombinieren (um Kurzzeitgedächtnis zu sparen), ist es meist nicht möglich, daraus die gewünschte Funktionalität zu schaffen.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #38761d;"&gt;Beispiel: Web-Interface, Suche in einer Datenbank&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #38761d;"&gt;Benutzer sendet Suchanfrage über ein Textfeld auf der Seite, Anfrage wird überprüft, geht an Datenbank (wird dabei gefiltert für den Benutzer), Ergebnis kommt zurück und soll seitenweise dargestellt werden.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Besteht der beschriebene Weg aus vielen kleinen Schritten, müssen diese alle kombiniert werden. Besteht er aus wenigen großen Schritten, muss normalerweise jeder Schritt stark konfiguriert werden (z. B. bei Nutzung eines relativ generischen Moduls für Datenbankabfragen etc.).&lt;br /&gt;&lt;br /&gt;In beiden Fällen muss unterm Strich viel koordiniert werden, denn wenige kleine Schritte reichen nicht aus. Nun kann man selbstverständlich den Weg durch divide-and-conquer aufspalten, und ich bin ein großer Fan dieser Methode. Doch gerät dieser Ansatz dort an seine Grenzen, wo man eben doch wieder eine gewisse kleine Menge an Hintergrundwissen über den abgespaltenen Teil benötigt. Das sollte zwar wenig sein, reicht aber oft leicht, um die 7+-2 zu erreichen. Wenn der gesamte Weg fehlerfrei beschritten werden soll, ergibt sich eine Konsequenz: Je besser man in der Lage ist, das Kurzzeitgedächtnis fehlerfrei einzusetzen, und den Überblick zu behalten, desto besser wird das Ergebnis sein.&lt;br /&gt;&lt;br /&gt;Nun ist es zum Glück so, dass wir Menschen mit einem relativ ähnlichen Kurzzeitgedächtnis ausgestattet sind - einige Prozent hin oder her bedeuten keinen allzu großen Unterschied. Das bedeutet auch, dass man sich auf diese Weise nicht herausreden kann. Es kommt in erster Linie auf den Einsatz dieser Fähigkeit an - und ich bin überzeugt, dass dieser Einsatz optimierungsfähig ist.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;Die Arbeitsumgebung.&lt;/i&gt; Wichtig ist hier, alles so einzurichten, dass man sich um nichts mehr kümmern muss, sobald man an einem Problem arbeitet. Da man bei der Lösung von schwierigen Problemen 100% seines Kurzzeitgedächtnisses (und volle Konzentration) braucht, wird man es in dieser Situtation nicht mal mehr schaffen, in der Taskleiste nach dem richtigen Programm zu suchen, ohne dass etwas, das man sich eben gemerkt hat, zwangsläufig (&lt;b&gt;nicht etwa durch Konzentrationsschwäche!&lt;/b&gt;) aus dem Gedächtnis entfernt werden muss. Dadurch wird ein Fehler geradezu herbeigeführt. Alles muss bereits an seinem Platz sein (Tip: zwei oder mehr Monitore verwenden, Fenster sinnvoll anordnen, Multiple Desktops verwenden). Wenn das nicht möglich ist, muss man die Zahl der gleichzeitig gemerkten Dinge reduzieren. Hier kann ein Refactoring hin zu sinnvolleren Zwischenschritten helfen, bevor das eigentliche Problem gelöst wird.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Die persönliche Konzentration.&lt;/i&gt; Bei der Erledigung von schwierigen Aufgaben muss man den Rest der Welt vergessen, so lange bis die Aufgabe erledigt ist. Tief durchatmen, genau festlegen, was zur Aufgabe gehört oder nicht, und dann die Sache durchziehen wie bei einem Marathonlauf (wer würde während solch eines Laufs tatsächlich schnell mal Facebook checken?) Klingt hart? Ja, ist es. Aber als Belohnung muss man sehr viel weniger Bugs fixen. Und man erhält meist eine Lösung, die besser mit dem Rest des Systems harmoniert.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Fazit: Die &lt;i&gt;effiziente Nutzung des Kurzzeitgedächtnisses unter maximaler Konzentration&lt;/i&gt; ist für mich der Nummer Eins Faktor für Software-Qualität. Ich wünsche mir, dass Entwicklungsumgebungen, sowie auch Betriebssysteme den Entwickler hier in Zukunft noch stärker unterstützen werden. Ebenso muss es möglich sein, die ansonsten hoffentlich sehr lockere, soziale und kommunikative Arbeitsumgebung für diese Zeiten anzuhalten, ohne dabei ein schlechtes Gewissen haben zu müssen. Selbst wenn's mal einen ganzen Tag oder zwei dauert.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-6653037081749629243?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/6653037081749629243/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/der-nummer-1-faktor-fur-software.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/6653037081749629243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/6653037081749629243'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/der-nummer-1-faktor-fur-software.html' title='Der Nummer 1 Faktor für Software-Qualität'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-2212821877274122675</id><published>2009-09-17T13:19:00.002+02:00</published><updated>2009-09-17T15:58:45.337+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entscheidungskriterien'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Software-Entwicklung'/><title type='text'>Java vs. Skripting</title><content type='html'>Diese Situationen ergeben sich immer wieder: Man braucht mal schnell ein Skript, um kurz und schmerzlos einen Vorgang zu automatisieren, oder ein wirklich unkompliziertes Programm zu erstellen. Ok, schreiben wir's schnell als Bash-Skript. Oder Perl-, PHP-, Python-Skript. Möglichst wenig Overhead.&lt;br /&gt;&lt;br /&gt;Das Skript ist schnell fertig - aber was heißt schon "fertig"? Hier noch ein kleines Feature, da noch eine Option. Und als Ausgabe vielleicht doch irgendwann XML statt Plaintext, damit man das Ergebnis auch strukturiert weiterverarbeiten kann. Als nächstes wär's schön, wenn man das Tool auch online nutzen könnte. Und es muss auch mal damit zurechtkommen, wenn ausnahmsweise zwei Leute gleichzeitig darauf zugreifen.&lt;br /&gt;&lt;br /&gt;Dann geschieht's: Es stellt sich heraus, dass ein Baustein aus dem Tool recht praktisch ist - den könnte man auch an anderen Stellen gut wiederverwenden, also eigentlich ein Library-Kandidat! Und andererseits wär's für das Tool interessant, wenn es bereits bestehende Teile aus der eigenen Library nutzen könnte. Ach, hätt ich's doch bloß gleich in Java geschrieben!&lt;br /&gt;&lt;br /&gt;Es scheint mir schon fast egal zu sein, wie trivial das Programm am Anfang ist. Ich frage mich: Ist es denn nicht meist besser, den prozentual betrachtet &lt;i&gt;anfangs zwar hohen&lt;/i&gt;, aber &lt;i&gt;absolut gesehen vernachlässigbar geringen &lt;/i&gt;zusätzlichen Overhead in Kauf zu nehmen - und für die kleinen Tools die selbe Sprache zu verwenden, wie für die großen Programme? &lt;span style="color: #666666;"&gt;(Egal ob jetzt z. B. Java oder C# - und wenn man sowieso alles in Python macht, dann spricht sicher nichts gegen Python-Skripting!)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-2212821877274122675?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/2212821877274122675/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/java-vs-skripting.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/2212821877274122675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/2212821877274122675'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/java-vs-skripting.html' title='Java vs. Skripting'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-2829875583357926850</id><published>2009-09-14T11:30:00.000+02:00</published><updated>2009-09-14T11:30:16.193+02:00</updated><title type='text'>Zwei Monitore vs. ein Monitor</title><content type='html'>Zwei Monitore sind besser als einer, das ist offensichtlich. Das gilt sogar für zuhause! Natürlich gibt es einige Nachteile:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Platzverbrauch auf dem Schreibtisch&lt;/li&gt;&lt;li&gt;Zuhause zwei Bildschirme nebeneinander stehen zu haben, sieht schon ein wenig übertrieben aus &lt;/li&gt;&lt;li&gt;Und natürlich die zusätzlichen Anschaffungskosten&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Dafür kann man halt mehr Anwendungen auf einmal am Bildschirm haben. Braucht man nicht? Ich dachte mir bis vor kurzem noch: Im Büro brauch ich das, aber daheim? Letztendlich hab ich mich dann doch dazu durchgerungen, meine Bildschirmfläche zu erweitern[*] Und obwohl ich manchmal den Kauf eines weiteren Geräts im Nachhinein für überflüssig halte, geht es mir hier nicht so. Denn der größte Vorteil an zwei Bildschirmen ist mir überhaupt erst jetzt bewusst geworden: Das Arbeiten - fast egal, was man macht - wird wesentlich entspannter! Es ist also nicht nur bequemer, sondern das Hin- und Herschalten zwischen Fenstern führt zu spürbarem Stress.  Insbesondere, wenn man zwei Dinge vergleichen will, oder wenn man in einem Fenster recherchiert, während man im anderen etwas schreibt (z. B. Quellcode, oder einen Blog). Und das passiert öfter, als ich dachte, sogar beim eher gemütlichen Surfen. Deshalb würde ich nun gerade auch zuhause nicht mehr auf den Zweitbildschirm verzichten wollen.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;[*] um 1920x1080 mit dem LG 2343 T-PF, ein abgesehen von der vertikalen Blickwinkelstabilität überraschend guter Monitor für ca. 180€. Insbesondere verursacht das Gerät keinerlei Pfeifgeräusche, was leider aktuell bei sehr vielen Monitoren eine herstellerübergreifende Plage zu schein seint.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-2829875583357926850?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/2829875583357926850/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/zwei-monitore-vs-ein-monitor.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/2829875583357926850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/2829875583357926850'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/zwei-monitore-vs-ein-monitor.html' title='Zwei Monitore vs. ein Monitor'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-4279413187298514509</id><published>2009-09-06T23:10:00.001+02:00</published><updated>2009-09-07T10:08:57.696+02:00</updated><title type='text'>Google Chrome oder Mozilla Firefox</title><content type='html'>Jetzt, wo ich &lt;a href="http://tolle-entscheidung.blogspot.com/2009/09/ordnung-beim-websurfen-auch-mit-vielen.html"&gt;TabKit gefunden hab&lt;/a&gt;, komm ich wohl kaum noch von Firefox los! Aber eins stört mich an diesem Browser: Es kommt immer wieder vor, dass dieser sehr viele Ressourcen (CPU Load) benötigt. Und ich kann nicht herausfinden, welches Tab nun wieder schuld ist.&lt;br /&gt;&lt;br /&gt;Das scheint nur mit Browsern möglich zu sein, die auf Basis von Prozessen (im Gegensatz zu Threads) arbeiten - also z. B. Google Chrome. Zuerst mal wusste ich gar nicht, dass es diesen Browser schon für Linux gibt, aber &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;siehe da&lt;/a&gt;. Und noch dazu ist dieses "Early Access Release" für Debian/Ubuntu-Nutzer &lt;i&gt;sehr&lt;/i&gt; einfach zu installieren. Funktioniert für mich bis jetzt auch so gut wie ein fertiges Produkt. Auffällig: Unheimlich schnell. Und mein KDE-"System Activity" zeigt für alle Tabs einen eigenen Prozess an - endlich! So lässt sich der Übeltäter entlarven.&lt;br /&gt;&lt;br /&gt;Das was jetzt eben noch fehlt, sind gute Add-Ons. Am unentbehrlichsten ist für mich wie gesagt momentan eine Extension, die Tabs in Baumansicht darstellt.&lt;br /&gt;&lt;br /&gt;Und: Ich hoffe, dass sich in der Linux-Version von Chrome auch bald Flash installieren lässt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-4279413187298514509?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/4279413187298514509/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/google-chrome-oder-mozilla-firefox.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/4279413187298514509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/4279413187298514509'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/google-chrome-oder-mozilla-firefox.html' title='Google Chrome oder Mozilla Firefox'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-6426421613480156104</id><published>2009-09-05T14:11:00.003+02:00</published><updated>2009-09-05T18:00:37.046+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nützliches'/><title type='text'>Ordnung beim Websurfen - auch mit vielen Tabs</title><content type='html'>Es war einmal &lt;i&gt;ein&lt;/i&gt; Browserfenster. 1998. Ich treibe von einem Link zum nächsten. Komme ich in eine Sackgasse, dann ist der Back-Button immer zur Stelle.&lt;br /&gt;&lt;br /&gt;Doch immer öfter macht es Sinn, von einer Verteilerseite (z. B. Nachrichten-Homepage) aus möglichst alle - oder alle interessanten - Links zu besuchen. Also immer schön einen Link anklicken, lesen, und dann möglichst sofort zurück. Gehe ich bei einem Thema in die Tiefe, wird's schwierig.&lt;br /&gt;&lt;br /&gt;Bald schon stellt sich heraus, dass das mit zwei Browserfenstern besser funktioniert: Ein Fenster für die Verteilerseite. Dort jeweils einen Link anklicken mit der Option "in neuem Fenster öffnen". Vorteil: In dem neuen Fenster kann ich herumbrowsen, wie's mir gefällt. Sobald ich mit dem Thema fertig bin, schließe ich das Fenster, und kann auf der Verteilerseite mit dem nächsten Link weitermachen.&lt;br /&gt;&lt;br /&gt;Doch es tauchen zwei Probleme auf:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Das Tiefenproblem:&lt;/b&gt; Beim herumbrowsen treffe ich auf weitere Verteilerseiten. Nach Schema F öffne ich also von dort aus ein drittes Browserfenster. Wie lange wird es dauern, bis ich von dort alles "abgearbeitet" habe? Werde ich gar noch eine vierte Ebene brauchen? Werde ich mich dann noch an die ursprüngliche Verteilerseite erinnern, und an das Ziel, das ich dort verfolgte?&lt;/li&gt;&lt;li&gt;&lt;b&gt;Das Breitenproblem&lt;/b&gt;: Warum also nicht gleich, während ich auf der Verteilerseite bin, alle interessanten Links in neuen Fenstern öffnen? Doch das sich ergebende Fensterchaos will gemeistert werden! &lt;/li&gt;&lt;/ol&gt;Ich glaube, das Tiefenproblem lässt sich kaum lösen (außer eben, es durch das Breitenproblem zu ersetzen). Es kommt einfach daher, dass das Web eine nicht zu vernachlässigende Größe hat. Selbst wenn ich mein Interesse einschränke, lässt sich der Kampf gegen die Informationsflut auch in eher kleinen Nischen nicht gewinnen. Es hilft dann nur ein herzhaftes "Jetzt ist Schluss damit". Ein paar gute Seiten als Bookmark setzen, und diese wirklich sinnvoll einordnen (und heutzutage: taggen).&lt;br /&gt;&lt;br /&gt;Für das Breitenproblem hingegen gibt es Lösungsansätze. Zum einen haben inzwischen wohl alle Browser das Tabbed Browsing-Konzept entdeckt (&lt;i&gt;ein bestimmter&lt;/i&gt; Browser hat dafür ein bisschen länger gebraucht...) Ich kann also das oben beschriebene Spiel mit Tabs statt mit Fenstern machen. Gut für die Taskleiste, aber sonst bringt das wenig. Aber: Ich kann nun die Hauptverteilerseite nehmen, und von dort aus alle Links in neuen Fenstern öffnen. In diesen Fenstern dann aber nur noch Tabs verwenden. Das reduziert das Problem um eine Stufe. Mehr nicht! Aber immerhin.&lt;br /&gt;&lt;br /&gt;Eine zusätzliche Stufe gewinne ich durch Multiple Desktops. Bei Linux ganz normal, bei Mac inzwischen auch ("Spaces"), und bei Windows gibt es immerhin einige - nicht allzu tolle - Programme, die diese Pflichtfunktion hinzufügen. Unter Kubuntu Linux sieht das bei mir so aus:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KXozLcKvX9w/SqJKxFg4PDI/AAAAAAAAAA8/A2TpeDozkP4/s1600-h/multipleDesktops.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_KXozLcKvX9w/SqJKxFg4PDI/AAAAAAAAAA8/A2TpeDozkP4/s320/multipleDesktops.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;Acht kleine Desktop-Icons direkt neben der Taskleiste, jedem ist ein Thema zugewiesen. Auf jedem Desktop kann ich Fenster haben. In jedem Fenster kann ich Tabs haben. Mir geht es allerdings so, dass das nur gut funktioniert, wenn die Themen der Desktops langfristig konstant bleiben. z. B. links oben immer für News, rechts oben immer für meinen Blog, usw.&lt;br /&gt;&lt;br /&gt;Jetzt haben wir September 2009. Und das bisherige System reicht nicht mehr ganz. Deshalb hab ich nach etwas neuem gesucht, und etwas irrsinnig interessantes entdeckt: Das Firefox-Add On &lt;a href="http://jomel.me.uk/software/firefox/tabkit/"&gt;Tab Kit&lt;/a&gt;. Ich bin noch nicht richtig daran gewönt, aber ich vermute, dass ich nie wieder davon loskommen werde. Tabs werden vertikal dargestellt (somit kann man gleich schonmal mehr vom Seitentitel lesen) und in beliebig vielen Stufen automatisch beim Öffnen gruppiert - je nachdem, von welcher Seite aus das Tab geöffnet wurde. Somit ergibt sich ein übersichtlicher Baum. Noch dazu gibt es eine farbliche Abgrenzung auf der obersten Ebene. Also wer Firefox hat, und Ordnung beim Websurfen braucht, es lohnt sich, das auszuprobieren. Ich würde fast sagen, es reduziert das Chaos erheblich.&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_1252146638534"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogger.com/post-create.g?blogID=5683781969128699337" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;a href="http://jomel.me.uk/software/firefox/tabkit/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_KXozLcKvX9w/SqJQ7N9CvTI/AAAAAAAAABE/3ktSp2YPbSs/s400/tabKit.jpeg" /&gt;http://jomel.me.uk/software/firefox/tabkit/&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;P. S. Es gibt eine ähnliche Extension, die ich allerdings noch nicht ausprobiert habe: &lt;a href="https://addons.mozilla.org/de/firefox/addon/5890"&gt;Tree Style Tab&lt;/a&gt;. Sieht auch sehr gut aus!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-6426421613480156104?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/6426421613480156104/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/ordnung-beim-websurfen-auch-mit-vielen.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/6426421613480156104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/6426421613480156104'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/ordnung-beim-websurfen-auch-mit-vielen.html' title='Ordnung beim Websurfen - auch mit vielen Tabs'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KXozLcKvX9w/SqJKxFg4PDI/AAAAAAAAAA8/A2TpeDozkP4/s72-c/multipleDesktops.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-3580706023959039513</id><published>2009-09-04T10:06:00.000+02:00</published><updated>2009-09-04T10:11:59.081+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entscheidungskriterien'/><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Online-Filmverleih vs. DVDs</title><content type='html'>Irgendwie macht's ja ein bisschen Spaß, in der Videothek nach einer DVD zu stöbern. Andererseits ist es schwierig, dort etwas zu finden, insbesondere was, das einem gefällt, wenn man nicht eh schon einen bestimmten Titel im Sinn hat.&lt;br /&gt;&lt;br /&gt;Deshalb find ich's auch toll, dass es sowas mehr und mehr online gibt, dort hat man nämlich Filter- und Suchmöglichkeiten, und kann sich auch Bewertungen durchlesen. Das Problem dabei ist nur, dass man die Filme dort (so ähnlich wie früher bei VHS) immer nur in der Sprache des Landes bekommt, von dem aus man die Seite abruft. Versucht man dann z. B. einen Stream aus den USA zu beziehen, heißt es fast immer nur: "Sorry, this video is not available for your region". Eigentlich find ich das DVD-Format gerade deshalb so toll, weil fast immer auch die Originalsprache mit drauf ist. Und deutsche Übersetzungen von Filmen bzw. Serien sind leider allzu oft unerträglich.&lt;br /&gt;&lt;br /&gt;Eine sehr löbliche Online-Streaming-Ausnahme ist hier natürlich &lt;a href="http://southparkstudios.com/"&gt;www.southparkstudios.com&lt;/a&gt;. Ich würde mir wünschen, dass sich da viele ein bisschen was abschauen würden.&lt;br /&gt;&lt;br /&gt;Nun plant auch YouTube solch einen Dienst: &lt;br /&gt;&lt;a href="http://www.basicthinking.de/blog/2009/09/03/399-dollar-pro-film-youtube-plant-den-online-filmverleih/"&gt;http://www.basicthinking.de/blog/2009/09/03/399-dollar-pro-film-youtube-plant-den-online-filmverleih/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Liebes YouTube, wenn du einen Online-Filmverleih startest, habe ich hohe Erwartungen an dich - bitte sende deine Streams auch in der Originalsprache, überall!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-3580706023959039513?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/3580706023959039513/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/online-filmverleih-vs-dvds.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/3580706023959039513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/3580706023959039513'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/online-filmverleih-vs-dvds.html' title='Online-Filmverleih vs. DVDs'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-441607421098166755</id><published>2009-09-03T08:46:00.002+02:00</published><updated>2009-09-03T08:54:46.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entscheidungsfindung'/><title type='text'>TomTom jederzeit, wenn da nicht...</title><content type='html'>Mein TomTom[*] hat fast den Geist aufgegeben. Das ist komisch: Es lässt sich nur noch &lt;i&gt;einschalten&lt;/i&gt;, wenn es am Stromkabel hängt. Dann kann man den Strom allerdings abstecken, und es läuft auf Batterie weiter.&lt;br /&gt;&lt;br /&gt;Die Batterie war schon immer relativ schwach. Ich nutze das Ding aber gerne ohne Kabel, hat mich also schon immer ein bisschen gestört. &lt;br /&gt;&lt;br /&gt;Weitere Mankos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Der Saugnapf für die Scheibe hält nicht besonders gut. Ist er mal wieder runtergefallen (1x alle zwei Monate), muss man zuerst die Scheibe mit Spiritus reinigen, sonst hält es nur wenige Minuten. Nicht sehr praktisch, wenn man unterwegst ist!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Kein &lt;a href="http://de.wikipedia.org/wiki/Traffic_Message_Channel"&gt;TMC&lt;/a&gt;, lediglich eine kostenpflichtige Lösung in Verbindung mit dem Handy.&lt;/li&gt;&lt;li&gt;Zoom-Funktion: Man kann zwar rauszoomen, um mehr vom Fahrtweg zu sehen, aber nach ein paar Sekunden zoomt das Gerät automatisch wieder rein. (Würd mich echt interessieren, ob das bei anderen Navis auch so ist.) &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ansonsten mag ich mein TomTom allerdings sehr gerne. Unter anderem wegen der sehr schnellen Routenberechnung. Ich würd mir auch am liebsten wieder eins kaufen, aber die Probleme mit der Batterie und dem Saugnapf sollen wohl typisch TomTom sein. Ich hab bisher noch keinen anderen Anbieter gefunden, dessen Geräte mir wirklich zusagen. Werd aber wohl bald ein neues brauchen...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[*] Ein portables GPS-Navigationssystem für's Auto. Genauer: &lt;a href="http://www.meintomtom.de/produkt/48/1/spezifikationen-tomtom-one-new-edition.html"&gt;TomTom One, 2nd Edition&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-441607421098166755?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/441607421098166755/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/tomtom-jederzeit-wenn-da-nicht.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/441607421098166755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/441607421098166755'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/tomtom-jederzeit-wenn-da-nicht.html' title='TomTom jederzeit, wenn da nicht...'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-5495029141540936144</id><published>2009-09-02T15:37:00.000+02:00</published><updated>2009-09-02T19:20:26.626+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entscheidungsfindung'/><title type='text'>Blogger oder doch lieber Wordpress?</title><content type='html'>Ich will von Anfang an auf den richtigen Blog-Service setzen. Deshalb hab ich diesen Blog momentan sowohl als &lt;a href="http://tolle-entscheidung.blogspot.com/"&gt;Blogger-Version&lt;/a&gt;, als auch als &lt;a href="http://chrislercher.wordpress.com/"&gt;Wordpress-Version&lt;/a&gt;. Es gibt ja schon einige Vergleiche der verschiedenen Services, z. B. &lt;a href="http://pulsed.blogspot.com/2007/07/blogger-wordpress-chart.html"&gt;dieser Blogeintrag&lt;/a&gt; oder dieses &lt;a href="http://blog-services-review.toptenreviews.com/"&gt;Review&lt;/a&gt;. Aber für mich sind es einige wenige gravierende Punkte, die zählen:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Pro-Blogger (Blogspot):&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bei Blogger kann ich einen beliebigen &lt;b&gt;Seitenaufrufzähler&lt;/b&gt; nutzen (ich nehme &lt;a href="http://www.statcounter.com/"&gt;Statcounter&lt;/a&gt;).&lt;br /&gt;Bei Wordpress nur den etwas mageren eingebauten &lt;span style="color: #999999;"&gt;(der scheinbar momentan nicht funktioniert. Auch wenn ich mir die Seite remote von einem anderen Rechner aus ansehe, krieg ich keine Counts)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bei Blogger kann ich die &lt;b&gt;URL&lt;/b&gt; (Subdomain) des Blogs später &lt;b&gt;ändern&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bei Blogger kann ich das &lt;b&gt;Layout&lt;/b&gt; kostenlos anpassen (bei Wordpress nur das CSS, und auch nicht kostenlos).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Pro-Wordpress:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;Es gibt &lt;b&gt;ein paar Themes&lt;/b&gt;, die mir recht gut gefallen.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Es gibt auch eine Version, die man &lt;b&gt;selbst hosten&lt;/b&gt; kann (&lt;a href="http://wordpress.org/"&gt;wordpress.org&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ich werd die Liste im Laufe der Zeit evtl. noch ergänzen. Im Moment tendier ich eher zu Blogger. Ich hab aber insbesondere das ideale Theme noch nicht gefunden.&lt;br /&gt;&lt;br /&gt;Auch überleg ich, ob &lt;a href="http://tumblr.com/"&gt;tumblr.com&lt;/a&gt; eine Alternative wär. Die haben auf jeden Fall sehr schöne Themes. Ich glaub, ich leg mir auch dort gleich mal einen Account an...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-5495029141540936144?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/5495029141540936144/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/blogger-oder-doch-lieber-wordpress.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/5495029141540936144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/5495029141540936144'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/blogger-oder-doch-lieber-wordpress.html' title='Blogger oder doch lieber Wordpress?'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-4012108202364436902</id><published>2009-09-01T01:20:00.001+02:00</published><updated>2009-09-01T01:31:47.694+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nerviges'/><title type='text'>Überdeckende Werbeanzeigen, die nicht verschwinden</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KXozLcKvX9w/SpxYsCUAQzI/AAAAAAAAAAw/AOsMz3PM-us/s1600-h/anzeige_ueberdeckt_heise.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_KXozLcKvX9w/SpxYsCUAQzI/AAAAAAAAAAw/AOsMz3PM-us/s400/anzeige_ueberdeckt_heise.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ich finde Werbeanzeigen absolut ok. Werbeanzeigen, die den Content überdecken, find ich ein bisschen nervig. Viel schlimmer sind Anzeigen, die Content überdecken, und sich nicht wegklicken lassen. Am schlimmsten sind aber ganz klar Anzeigen, die Content überdecken, sich nicht wegklicken lassen, und beim Seitenreload nach 1 Sekunde wieder erscheinen.&lt;br /&gt;&lt;br /&gt;(Siehe linke obere Ecke im Bild. Die Abhilfe schaffte in dem Fall nur, die Druckansicht von &lt;a href="http://heise.de/"&gt;heise.de&lt;/a&gt; zu benutzen.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-4012108202364436902?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/4012108202364436902/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/uberdeckende-werbeanzeigen-die-nicht.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/4012108202364436902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/4012108202364436902'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/09/uberdeckende-werbeanzeigen-die-nicht.html' title='Überdeckende Werbeanzeigen, die nicht verschwinden'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KXozLcKvX9w/SpxYsCUAQzI/AAAAAAAAAAw/AOsMz3PM-us/s72-c/anzeige_ueberdeckt_heise.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5683781969128699337.post-8567494640945699031</id><published>2009-08-31T10:12:00.002+02:00</published><updated>2009-09-01T01:40:11.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entscheidungsfindung'/><title type='text'>Bookmark sharing - ganz privat</title><content type='html'>Mehrere Computer mit mehreren Betriebssystemen. Mehrere Browser. Mehr Bookmarks. Und dann nix mehr wiederfinden... ich brauch unbedingt überall die gleichen Bookmarks!&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Lösung:&lt;/span&gt; Manuelle Synchronisation&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pro&lt;/span&gt;: Garantiert volle Kontrolle.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contra&lt;/span&gt;: Ach, jetzt hab ich grad in das andere System gebootet, aber vorher vergessen, die Bookmarks zu syncen.&lt;br /&gt;&lt;br /&gt;Früher ging das unter Firefox ganz gut - bookmarks.html einfach an einem gemeinsamen Ort im Dateisystem abgelegt. So war zumindest der Win/Linux-Dualboot gelöst. Geht aber (so zumindest) nimmer, seitdem Firefox eine Datenbank statt der bookmarks.html verwendet. (Wär interessant, ob das trotzdem irgendwie geht - ??)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Lösung&lt;/span&gt;: Social Bookmark-Dienste (z. B. delicious)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pro:&lt;/span&gt; Funktioniert über alle Computer hinweg. Man muss nix installieren.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contra:&lt;/span&gt; Solang ich das nicht gut verschlüsselt ablegen kann, will ich das lieber nicht. Insbesondere Firmeninterne Links haben da einfach nix zu suchen.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Lösung:&lt;/span&gt; Sync-Server speziell für Bookmarks, verschlüsselt&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pro&lt;/span&gt;: Relativ sicher&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contra&lt;/span&gt;: Es gibt scheinbar keine momentan wirklich funktionierenden Plugins für Firefox, oder doch? Es gab ja mal das &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2367"&gt;Bookmark Sync and Sort&lt;/a&gt; Plugin, womit man mit einem FTP/WebDAV-Server synchronisieren konnte. Funktioniert aber nur bis Firefox 2.0...&lt;br /&gt;&lt;br /&gt;Inzwischen gibt's wohl die Alternativen &lt;a href="https://addons.mozilla.org/de/firefox/addon/2410"&gt;Xmarks&lt;/a&gt; (unverschlüsselt auf einen öffentlichen Server) und &lt;a href="https://addons.mozilla.org/de/firefox/addon/10868"&gt;Weave&lt;/a&gt; (verschlüsselt auf einen Mozilla-Server, funktioniert aber insgesamt noch nicht so gut - Bookmarks wurden bei mir doppelt angelegt, was man zwar mit &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/10897"&gt;CheckPlaces&lt;/a&gt; im Nachhinein super beheben kann, aber hm...)&lt;/li&gt;&lt;/ol&gt;Moment, jetzt bin ich scheinbar grad auf eine mögliche Lösung gestoßen, es gibt eine Version von &lt;a href="https://addons.mozilla.org/de/firefox/addon/13255"&gt;XMarks für den eigenen Server&lt;/a&gt;  (Danke an &lt;a href="https://addons.mozilla.org/en-US/firefox/user/634738"&gt;Gregor Eggert&lt;/a&gt;!) Mal sehen, wie sich das aufsetzen lässt (samt Verschlüsselung - ob ich da WebDAV über https laufen lassen werde, oder sftp, oder...), bin mal gespannt...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5683781969128699337-8567494640945699031?l=tolle-entscheidung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tolle-entscheidung.blogspot.com/feeds/8567494640945699031/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/08/bookmark-sharing-ganz-privat.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/8567494640945699031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5683781969128699337/posts/default/8567494640945699031'/><link rel='alternate' type='text/html' href='http://tolle-entscheidung.blogspot.com/2009/08/bookmark-sharing-ganz-privat.html' title='Bookmark sharing - ganz privat'/><author><name>Chris Lercher</name><uri>http://www.blogger.com/profile/14025127203159974211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_KXozLcKvX9w/Spu9ZXgwRRI/AAAAAAAAAAM/OMLQIaTrHMg/S220/204_270.png'/></author><thr:total>0</thr:total></entry></feed>
