<?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-32733560</id><updated>2011-07-08T07:39:11.633+02:00</updated><category term='JSF(AT)Work'/><category term='AspectMap'/><category term='Banken'/><category term='Kontaktlinsen'/><category term='Party'/><category term='Mysql Kreuztabellen'/><category term='Decorator'/><category term='Sprüche'/><category term='Kreuztabellen'/><category term='Dynamic Items'/><category term='Taekwondo'/><category term='Mysql'/><category term='JSF Best-Practice'/><category term='Hibernate'/><category term='budogala'/><category term='AJAX'/><category term='JSCookMenue'/><category term='EC-Karten-Skimming'/><category term='Data-Transfer-Object'/><category term='Barkasse'/><category term='DTO'/><category term='Transaktionen'/><category term='Barkassenparty'/><category term='Best Practice'/><category term='Kontaktlinsen Preisvergleich'/><category term='JSF-at-Work'/><category term='Yoda'/><category term='JSF'/><category term='Spring'/><category term='Servicewüste'/><category term='Karaoke'/><title type='text'>Pöhler Blog</title><subtitle type='html'>Dies ist das Blog von Marco Pöhler.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32733560.post-5960325579024003457</id><published>2010-01-12T15:52:00.012+01:00</published><updated>2010-01-12T16:20:13.327+01:00</updated><title type='text'>Mein Dodge Charger</title><content type='html'>So, ich stelle hier jetzt mal ein paar Fotos von meinem '71 Dodge Charger rein, den ich mir letztes Jahr im Mai gekauft habe. Der Motor ist ein V8 mit 383 Kubikinch Hubraum, das sind so circa 6,3 Liter. Ich wollte im Winter noch einiges daran ändern, bin aber bisher noch nicht dazu gekommen.&lt;br /&gt;&lt;br /&gt;Hier ein Bild auf dem Autozug, es war relativ tricky das Auto da draufzubekommen, weil er nur 5 cm unter der Maximallänge war und man bei der Einfahrt nicht in einem Zug um die Ecke gekommen ist. Aber mit dem Auto findet mal viele nette Helfer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_natKa9IVmaw/S0yPQI1d_KI/AAAAAAAAAKQ/R4kZgE8hlf0/s1600-h/IMG_0415.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_natKa9IVmaw/S0yPQI1d_KI/AAAAAAAAAKQ/R4kZgE8hlf0/s400/IMG_0415.JPG" alt="" id="BLOGGER_PHOTO_ID_5425869158487030946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hier dann schon wieder in Hamburg...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_natKa9IVmaw/S0yPDYi0V4I/AAAAAAAAAKI/E7xGreoORH8/s1600-h/IMG_0418.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_natKa9IVmaw/S0yPDYi0V4I/AAAAAAAAAKI/E7xGreoORH8/s400/IMG_0418.JPG" alt="" id="BLOGGER_PHOTO_ID_5425868939365472130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Und hier hatte die Zündspule keine Spannung mehr. Der ADAC-Mann hat dann die pragmatische Lösung gewählt und eine Freileitung von der Batterie zur Zündspule gelegt. Das funktionierte dann, hatte aber den Nebeneffekt, dass sich das Auto mit dem Zündschlüssel alleine nicht mehr ausschalten ließ. Also anhalten, Automatik auf P, Zündschlüssel abziehen, aussteigen, Motorhaube auf, Sicherung ziehen, Motorhaube zu. Beim Losfahren alles anderrum. Ist vor allem blöd wenn man nur mal tanken will...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_natKa9IVmaw/S0yRKttZYYI/AAAAAAAAAKg/l-6cIz12Brs/s1600-h/IMG_0495.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_natKa9IVmaw/S0yRKttZYYI/AAAAAAAAAKg/l-6cIz12Brs/s400/IMG_0495.JPG" alt="" id="BLOGGER_PHOTO_ID_5425871264329326978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Besonders empfehlen möchte ich das &lt;a href="http://charger1967.blogspot.com/"&gt;Blog von Chris&lt;/a&gt;, der gerade einen Charger restauriert und das ganz fantastisch in seinem Blog dokumentiert.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-5960325579024003457?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/5960325579024003457/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=5960325579024003457' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/5960325579024003457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/5960325579024003457'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2010/01/mein-dodge-charger.html' title='Mein Dodge Charger'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_natKa9IVmaw/S0yPQI1d_KI/AAAAAAAAAKQ/R4kZgE8hlf0/s72-c/IMG_0415.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-6246465526160729742</id><published>2008-07-27T16:57:00.001+02:00</published><updated>2008-07-27T16:58:17.466+02:00</updated><title type='text'>Erste Gehversuche mit YouTube</title><content type='html'>So mal sehen, wie das mit YouTube klappt...Hier mein erstes Video:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/Hvi5EYRIzSs"&gt; &lt;/param&gt; &lt;embed src="http://www.youtube.com/v/Hvi5EYRIzSs" type="application/x-shockwave-flash" width="425" height="350"&gt; &lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-6246465526160729742?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/6246465526160729742/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=6246465526160729742' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6246465526160729742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6246465526160729742'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2008/07/erste-gehversuche-mit-youtube.html' title='Erste Gehversuche mit YouTube'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-3262141688209838041</id><published>2008-07-15T17:06:00.004+02:00</published><updated>2008-07-15T17:23:36.695+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Party'/><category scheme='http://www.blogger.com/atom/ns#' term='Barkassenparty'/><category scheme='http://www.blogger.com/atom/ns#' term='Barkasse'/><title type='text'>HOW-TO organize a "Entspannte Barkassenparty"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_natKa9IVmaw/SHzAGCfM58I/AAAAAAAAAB4/M74ZUdkF7-4/s1600-h/DSC00591.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_natKa9IVmaw/SHzAGCfM58I/AAAAAAAAAB4/M74ZUdkF7-4/s320/DSC00591.JPG" alt="" id="BLOGGER_PHOTO_ID_5223260877822420930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So, ich möchte hier mal kurz zusammentragen, was man benötigt um eine entspannte Barkassenparty ohne viel Aufwand durchzuziehen. Und damit wir nächstes Jahr nicht wieder überlegen müssen wenn wir einkaufen gehen...&lt;br /&gt;&lt;br /&gt;Rahmendaten der Party: Kleine Barkasse, zugelassen für 100 Leute, mehr als 60 ist allerdings echt zuviel - es gibt schließlich auch nur eine Toilette. Boarding: 18:30 Uhr. Fahrzeit von 19-22 Uhr (3 Stunden).&lt;br /&gt;&lt;br /&gt;Hier die Liste mit Sachen, die man kaufen sollte.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2 mal 20 Liter Bier-Fässer (40  Liter) , wir haben selbstkühlende Fässer genommen, weil die da an Bord keine 220V Anlage haben und damit ansonsten nur die Dinger zum selberpumpen gehen. Geht auch - hatten wir letztes Jahr, aber das mit dem Selbstkühlenden ist schon eine feine Sache.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;5 Kisten Bier (3 Becks-Gold, 1 Becks GreenLemon, 1 Becks Ice)&lt;/li&gt;&lt;li&gt;12 Flaschen Prosecco&lt;/li&gt;&lt;li&gt;6 Flaschen Wodka&lt;br /&gt;&lt;/li&gt;&lt;li&gt;6 Flaschen Erdbeerlimes&lt;/li&gt;&lt;li&gt;6 Flaschen Whiskey&lt;/li&gt;&lt;li&gt;1,5 Kisten Cola (1l)&lt;/li&gt;&lt;li&gt;6 l Orangensaft&lt;br /&gt;&lt;/li&gt;&lt;li&gt;0,5 Kisten Sprite/Wasser gemischt&lt;/li&gt;&lt;li&gt;1 Flasche Baileys&lt;/li&gt;&lt;li&gt;1 Flasche Jägermeister&lt;br /&gt;&lt;/li&gt;&lt;li&gt;1 Kiste Bionade&lt;/li&gt;&lt;li&gt;6 Flaschen Rotwein&lt;br /&gt;&lt;/li&gt;&lt;li&gt;5 mal 2 kg Eiswürfel&lt;/li&gt;&lt;li&gt;eine Kühlbox für das Eis&lt;/li&gt;&lt;li&gt;Becher groß für's Bier&lt;/li&gt;&lt;li&gt;Becher klein für kurze&lt;/li&gt;&lt;li&gt;10 Packungen Ahoi-Browse für Wodka-Ahoi&lt;/li&gt;&lt;li&gt;Müllbeutel&lt;/li&gt;&lt;li&gt;Zewa-Haushaltstücher&lt;/li&gt;&lt;li&gt;Korkenzieher nicht vergessen!&lt;/li&gt;&lt;/ul&gt;Wir waren gut 40 Leute und haben pro Nase 20 € erhoben. Das kam ziemlich gut hin - nicht so wie letztes Jahr wo wir aus der WG-Kasse noch 80 € draufgelegt haben.&lt;br /&gt;&lt;br /&gt;Im Endeffekt sind wir am Samstag vor der Party mal kurz einkaufen gefahren und am Montag hat Jerry - der zufällig gerade urlaub hatte - das Leergut zurück gebracht. Einziger Wehrmutstropfen war, dass mir meine &lt;a href="http://www.kontaktlinsen-preisvergleich.de"&gt;Kontaklinsen ins Wasser &lt;/a&gt;gefallen sind. Also echt nicht viel Aufwand...Ach, schön war's...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-3262141688209838041?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/3262141688209838041/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=3262141688209838041' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/3262141688209838041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/3262141688209838041'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2008/07/how-to-organize-entspannte.html' title='HOW-TO organize a &quot;Entspannte Barkassenparty&quot;'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_natKa9IVmaw/SHzAGCfM58I/AAAAAAAAAB4/M74ZUdkF7-4/s72-c/DSC00591.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-8034575234382058092</id><published>2007-12-30T15:07:00.001+01:00</published><updated>2007-12-30T18:58:23.020+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transaktionen'/><category scheme='http://www.blogger.com/atom/ns#' term='Best Practice'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate, Spring, Transaktionen auf Service-Ebene</title><content type='html'>Anwendungen, die Hibernate zur Persistierung benutzen, treffen gelegentlich auf das Problem einer org.hibernate.LazyInitializationException. Diese Exception tritt auf, wenn eine Instanz aus der Datenbank geholt wird, die Referenzen auf andere persistente Instanzen besitzt und diese Referenzen mit lazy="true" im hibernate-mapping gekennzeichnet ist. Dieses lazy="true" bedeutet, dass die abhängigen Instanzen bei Bedarf - und damit beim ersten Zugriff darauf - nachgeladen werden. Hibernate benutzt dazu Proxies, die beim ersten Zugriff auf die Referenz diese aus der Datenbank nachladen und diese gegen sich selber austauschen. Die LazyInitializationException tritt nun auf wenn man eine Instanz mit uninitialisierten (lazy) Referenzen besitzt und versucht auf diese Referenzen zuzugreifen und bedauerlicherweise vorher die Session geschlossen hat. Dann weiss Hibernate nicht wie es die Referenzen holen soll und dann knallts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hibernate Sessions.&lt;/span&gt; Wenn man direkt mit Hibernate rummacht, dann muss man sich mehr oder weniger selbst darum kümmern wann die Session geöffnet und geschlossen wird. Dazu gibt es so einige Ansätze wie man das schlauerweise macht, z.B. für Webanwendungen den &lt;a href="http://www.hibernate.org/43.html"&gt;OpenSessionInViewFilter&lt;/a&gt;. Diese Ansätze führen dazu, dass immer eine geöffnete Session vorhanden ist. Das hilft allerdings auch nicht, wenn ein persistentes Objekt mit lazy Referenzen in die HttpSession gekippt wird und in einem späteren Request/Response-Zyklus versucht wird die lazy Referenzen aufzulösen. Hier hätte das persistente Objekt mit merge() oder update() erstmal wieder an die aktuelle Session gebunden werden müssen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Transaktionen.&lt;/span&gt; Eine gute Anwendung sollte Transaktionen benutzen und zwar Transaktionen auf Serviceebene. Viele Beispiele zur Verwendung von Spring und Hibernate zeigen wie Transaktionen auf Dao-Ebene funktionieren. Aber ist das sinnvoll ? Ich denke nein. Exceptions auf Dao-Ebene haben entweder technischen Hintergrund, wie verlorene Datenbankverbindungen, oder Verletzung von Constraints wie NOT NULL oder referenzieller Integrität. Außerdem sind die Aktionen in Daos doch eher simpel INSERT, UPDATE, DELETE, ein paar mehr oder weniger kompexe SELECTs. Alles nicht wirklich spannend für Transaktionen. Betrachtet man hingegen den Service-Layer, der per Definition die Geschäftlogik beinhaltet, dann findet man hier oft Methoden, die sich aus verschiedenen Daos bedienen und ihre Ergebnisse über ein oder mehrere Daos in die Datenbank fliessen lassen. Die Operationen sind deutlich komplexer - eben Businesslogik. Hier kann schon viel eher mal was schief gehen und zwar mehr Ausnahmen im Sinne der Businesslogik - deshalb sollte zu jedem Service auch eine passende Exception existieren und bei Bedarf geworfen werden. Ausnahmen, die die bisherigen Änderungen an der Datenbank wieder zurücknehmen sollen und dann an den Aufrufer weitergegeben werden. Hier sind die Transaktionen wirklich sinnvoll. Praktischerweise funktioniert das automatisch, wenn die Service-Exception von RuntimeException erbt. Ein  hübscher Vorteil von Transaktionen auf Service-Ebene ist, dass hier die Hibernate-Session die Gleiche ist damit das verwenden von lazy Referenzen im Service-Layer kein Problem darstellt, weil alle "lazy"-Referenzen transparent aufgelöst werden.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Entkopplung auf Service-Ebene.&lt;/span&gt; Die "Kunden" eines Service-Layers sollen die Rückgabewerte ohne Einschränkungen verwenden können. Da die Session aber mit Ende der Transaktion ebenfalls geschlossen wird, ist die Verwendung von "lazy"-Referenzen jenseits des Service-Layers nicht mehr möglich. Das bedeutet, dass man aus Sicht des Service Layers entweder sehr genau wissen muss, welche der Lazy-Referenzen vom Kunden verwendet werden um diese gezielt zu initialisieren oder eben alle potentiell nutzbaren Referenzen zu initalisieren. Für die selektive Initialisierung kann man Frameworks benutzen, z.B. &lt;a href="http://sourceforge.net/projects/sdo-layer"&gt;ServiceDataObject Framework&lt;/a&gt;. Das hat allerdings den Nachteil, das der Kunde sich Gedanken über die Verwendungstiefe machen muss. Gelegentlich ist der Kunde aber auch nur ein weiterer Layer, der dann diese Gedanken auch seinem Kunden zumuten muss, usw. Die andere Alternative ist die voll Initialisiering der Rückgabewerte. Je nachdem wie exzessiv das Hibernate-Mapping betrieben wurde, kann es passieren, dass man nach einem einzigen Aufruf die ganze Datenbank als Objektbaum im Hauptspeicher hat. Dennoch ist es aus Sicht des Kunden optimal, weil er innerhalb der Objektstruktur problemlos navigieren kann.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Meine Best Practices und Regeln. &lt;/span&gt;Ich verwende in meinen Projekten Transaktion auf Service-Ebene und gebe aus dieser nur voll initialisierte Objektbäume zurück. Ich verwende für die Transaktionen und die Initialisierung von Rückgabewerten Spring-AOP. Diese Vorgehensweise funktioniert allerdings nur, wenn für die Architektur des Service-Layers und für das Hibernate-Mapping einige Regeln beachtet werden.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fortpflanzung Begrenzen.&lt;/span&gt; Es muss immer beachtet werden, das ein Objekt, dass über den Service-Layer bezogen wird alle referenzierten Objekt einschließt. Das bedeutet, dass verschachtelte  und inverse 1:n Beziehungen keine gute Idee sind, weil die Initialisierungsroutine alles Initialisiert was erreichbar ist - und das ist in diesem Fall alles. Man muss also beim Mapping Schranken vorsehen die die Fortpflanzung in zu große Objektstrukturen verhindern.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Fetter Service-Layer. &lt;/span&gt;Der Service-Layer an sich wird tendentiell mehr Methoden enthalten, weil nur eine persistente Objektinstanz zurückgegeben werden sollte, wenn diese mit ihren Abhängigkeiten auch wirklich benötigt wird. Benötigt man zum Beispiel eine Liste mit Namen von Produkten, dann ist der Rückgabewert ein String[] und nicht eine List&lt;product&gt;&lt;product&gt;. Innerhalb der Service-Methode kann über die List&lt;product&gt;&lt;product&gt; iteriert werden um das String-Array aufzubauen, aber innerhalb des Service-Layers können die Abhängigkeiten von der Product-Instanzen "lazy" bleiben. Der Service-Layer wird durch diese Art der Verwendung etwas aufgebläht, weil es für jeden kram eine extra Methode gibt, aber das ist ein kleiner Preis für eine problemlose Verwendung.&lt;br /&gt;&lt;/product&gt;&lt;/product&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-8034575234382058092?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/8034575234382058092/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=8034575234382058092' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8034575234382058092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8034575234382058092'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/12/hibernate-spring-transaktionen-auf.html' title='Hibernate, Spring, Transaktionen auf Service-Ebene'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-6003761799005313626</id><published>2007-07-17T13:00:00.000+02:00</published><updated>2007-07-17T14:32:54.494+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSCookMenue'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Items'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Dynamic JSCookMenue to the same outcome</title><content type='html'>The problem occurs on a JSCookMenue, if you wish to create the NavigationItems dynamically from a backing bean and some of the menu entries should be result in the same outcome. Typically you want to distinct the selected menu entries on the selected page (target of the outcome), but this is impossible, because you can't transfer the information of the selected entry.&lt;br /&gt;&lt;br /&gt;In case of static NavigationItems you can use an ActionListener to transfer this information into a backing bean, where you can read this information on the next page. But in case of dynamically created menuitems you havn't the possiblility to add an ActionListener , because the NavigationItem isn't a Component. Only the JSCookMenu is.&lt;br /&gt;&lt;br /&gt;So that is the problem. The solution I found is dirty, but it works. Better approaches are welcome !&lt;br /&gt;&lt;br /&gt;The only thing you can add to a NavigationItem is the action attribute. So I extend the action attribute from "report" to something like "report_report1" and "report_report2". Then I wrote a custom NavigationHandler that hijacks outcomes which starts with "report_" and the only Job of this NavigationHandler is to change the outcome to "report" and put the other part of the term ("report1" or "report2") into a sessionbased backingbean.&lt;br /&gt;&lt;br /&gt;This approach is weak, because it adds a new meaning to the naming of action outcomes, but currently I doesn't found anything else working for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-6003761799005313626?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/6003761799005313626/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=6003761799005313626' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6003761799005313626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6003761799005313626'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/07/dynamic-jscookmenue-to-same-outcome.html' title='Dynamic JSCookMenue to the same outcome'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-6549925228408622384</id><published>2007-07-17T09:04:00.000+02:00</published><updated>2007-07-17T09:07:25.517+02:00</updated><title type='text'>Barkassenfahrt</title><content type='html'>Am Wochenende eine kleine Party mit der WG organisiert. Dazu eine Barkasse gemietet, etwas Getränke eingekauft und allen Bescheid gesagt die Bock haben.&lt;br /&gt;&lt;br /&gt;Hier die Fotos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ahrensb.ah.funpic.de/2007/070714-barkassenfahrt/index.html"&gt;von Björn&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-6549925228408622384?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/6549925228408622384/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=6549925228408622384' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6549925228408622384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/6549925228408622384'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/07/barkassenfahrt.html' title='Barkassenfahrt'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-8297896902279476384</id><published>2007-03-13T10:07:00.000+01:00</published><updated>2007-03-13T10:09:36.888+01:00</updated><title type='text'>Vista ist schon toll...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_natKa9IVmaw/RfZqMDHuyBI/AAAAAAAAAAw/X5FgZ5_WEpY/s1600-h/vista_errror.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_natKa9IVmaw/RfZqMDHuyBI/AAAAAAAAAAw/X5FgZ5_WEpY/s200/vista_errror.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5041333588116555794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wer hat auch wirklich erwartet dass mit Windows Vista alles besser wird ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-8297896902279476384?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/8297896902279476384/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=8297896902279476384' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8297896902279476384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8297896902279476384'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/03/vista-ist-schon-toll.html' title='Vista ist schon toll...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_natKa9IVmaw/RfZqMDHuyBI/AAAAAAAAAAw/X5FgZ5_WEpY/s72-c/vista_errror.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-8986005451963011747</id><published>2007-02-06T11:10:00.000+01:00</published><updated>2007-02-06T11:54:47.797+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Banken'/><category scheme='http://www.blogger.com/atom/ns#' term='Servicewüste'/><category scheme='http://www.blogger.com/atom/ns#' term='EC-Karten-Skimming'/><title type='text'>Ich bin ein EC-Karten Skimming Opfer !</title><content type='html'>Ich war Samstagnacht mit zu wenig Bargeld unterwegs. Dann ich hin zum Geldautomaten, Karte rein, PIN eingegeben - Kurze Meldung, dass meine Karte eingezogen werden musste. Wie schön. Nicht nur, dass der Rest der Leute in der Automatenhalle der Bremer Sparkasse mich für einen total armen Schlucker gehalten haben, dem sie gerade so ziemlich alles unter dem Arsch wegpfänden würden - nein, ich war zudem auch noch weiterhin ohne Bargeld unterwegs. &lt;br /&gt;&lt;br /&gt;Naja, ich dann gestern bei der Filiale der Bremer Sparkasse angerufen um mal zu erfahren was da nun los war. Bin in der Zentrale gelandet, die mir versprach das Thema an die Filiale weiterzugeben. Auf den Rückruf warte ich vergeblich. Diesen Service bekommt man auch nur in Deutschland.&lt;br /&gt;&lt;br /&gt;Aber es kommt noch besser. Gestern Abend, so um 19 Uhr ruft jemand von der Hamnburger Sparkasse an. Blöderweise war ich da gerade beim Sport - aber zumindest arbeitet da mal jemand länger als 16 Uhr. Ich heute morgen also Zurückgerufen - ich mache sowas ja gelegentlich - und ein nettes Gespräch mit dem Herrn von der Haspa gehabt. Dabei hat er mir erzählt, dass es eine zentrale Stelle gibt, die Auffälligkeiten bei EC-Karten-Nutzungen registriert um dublizierte Karten zu erkennen. So zum Beispiel am gleichen Tag in London und Amsterdam Geld aus Automaten ziehen. Diese Stelle hat meine Karte als "auffällig" ausgeworfen und das Standardverfahren ist dann eben diese Karte zu sperren. Das fand ich okay, schließlich will ich der Einzige sein, der von meinem Konto Geld abhebt. Dann hat er sich tausendmal entschuldigt, weil der Anruf so spät kam - was ich zuerst gar nicht begriffen habe. Doch dann kam er damit um die Ecke, dass die Karte ja bereits am 31.01.2007 gesperrt worden ist. Also 7 Tage vor dem Anruf - jetzt hab' ich dann auch die Entschuldigung verstanden. Unklar bleibt mir   noch wie ich am Samstag im Supermarkt noch mit EC-Karte/PIN bezahlen konnte, wenn die da doch eigentlich schon gesperrt gewesen sein sollte - dazu fiel dem Haspa-Mitarbeiter auch nichts ein. Naja, was'n Glück dass ich bereits seit längerem Kunde bei der Comdirekt bin - eigentlich ja nur wegen der 3.3 % auf Tagesgeld - und da auch eine EC-Karte bekommen habe die ich dann jetzt mal nutzen werde. Mal sehen, ob ich mir die neue Geheimnummer der Haspa-EC-Karte nochmal merken möchte.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-8986005451963011747?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/8986005451963011747/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=8986005451963011747' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8986005451963011747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/8986005451963011747'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/02/ich-bin-ein-ec-karten-skimming-opfer.html' title='Ich bin ein EC-Karten Skimming Opfer !'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-1409785605287192317</id><published>2007-01-09T12:04:00.000+01:00</published><updated>2007-01-09T12:08:38.654+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF Best-Practice'/><title type='text'>MyPizza ist verfügbar</title><content type='html'>Das MyPizza-Beispiel aus dem JSF@Work-Buch ist nun verfügbar. Bedauerlicherweise ist der Server unter &lt;a href="http://jsfatwork.irian.at"&gt;http://jsfatwork.irian.at/&lt;/a&gt; gelegentlich down. Aber das Projekt wird bei Sourceforge gehostet und ist dort zu finden. Das komplette Projekt heisst SDO-Layer, ist aber das Beispiel aus dem Buch mir Beanprocessor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/sdo-layer"&gt;Link zu MyPizza bei Sourceforge (SDO-Layer)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-1409785605287192317?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/1409785605287192317/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=1409785605287192317' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/1409785605287192317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/1409785605287192317'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2007/01/mypizza-ist-verfgbar.html' title='MyPizza ist verfügbar'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-4410675607152403353</id><published>2006-12-14T20:41:00.000+01:00</published><updated>2006-12-14T21:15:08.627+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Decorator'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='DTO'/><category scheme='http://www.blogger.com/atom/ns#' term='AspectMap'/><category scheme='http://www.blogger.com/atom/ns#' term='Data-Transfer-Object'/><title type='text'>Data Transfer Objects (DTO) und Decorator Pattern</title><content type='html'>Angeregt von dem JSF Buch, habe ich angefangen meine Anwendungsstruktur zu überprüfen und festgestellt, dass da ein paar Sachen noch eleganter gelöst werden können. Die Entkopplung  der Business-Objekte aus der Hibernate-Session fand nicht statt. Statt dessen habe lazy="false" relativ häufig verwendet und die Business-Objekte im Prinzip bis in die Presentation durchgereicht. Dass das langsam ist hatte ich schon bemerkt, aber dass das böse ist - das weiss ich jetzt auch ;-) Eleganter ist es DTOs (Data Transfer Object) zu bilden, die dann nur genau den Datenumfang in den Presentation-Layer bringen, der da auch gebraucht wird. Da DTOs von den Business-Objekten unabhängig sind kann man sie super serialisieren und über den Statemanager aufrechterhalten, ohne dass man in irgendwelche Schwierigkeiten mit bereits geschlossenen Hibernate-Sessions kommt. Diese DTOs zu erzeugen ist irgendwie recht aufwendig und es gibt verschiedene Wege das zu tun. Im Buch JSF@Work wird ein ObjectCloner beschrieben, der interessant klingt, sich aber einer weiteren Beurteilung entzieht solange der Beispielcode noch nicht online ist. Martin Fowler beschreibt in seinem Enterprise Patterns Buch eine Möglichkeit die DTOs mit speziellen Assembler-Klassen zu konstruieren. Je nach Anzahl der Ausprägungen mit Daten kann es dabei gerne auch mal mehr als eine Assembler-Klasse pro DTO geben. In den Java-Blueprints ist die Sache ebenfalls mit Assemblern angegeben. Deshalb habe ich mich jetzt erstmal für eine Test der Assembler-Nummer entschieden. In dem Buch von Martin Fowler ist das am besten erklärt, vor allem auch für den Fall, dass ein DTO geändert wird und dann das korrespondierende Business-Objekt die Änderungen übernehmen soll - soll ja vorkommen.&lt;br /&gt;&lt;br /&gt;In dem Buch JSF@Work war ein zweiter interessanter Ansatz, nämlich das Erweitern von DTOs um UI-Funktionalitäten durch eine Aspect-Map. Momentan benutze ich das Dekorierer Pattern um die Business-Objekte um GUI-Funktionalitäten zu erweitern, was eigentlich ganz gut klappt. Ich glaube es ist nicht viel Arbeit die paar Funktionen in Aspekte umzulegen und werde es mal probieren.&lt;br /&gt;&lt;br /&gt;Mal sehen wie's wird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-4410675607152403353?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/4410675607152403353/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=4410675607152403353' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4410675607152403353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4410675607152403353'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/data-transfer-objects-dto-und-decorator.html' title='Data Transfer Objects (DTO) und Decorator Pattern'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-7148411818750853238</id><published>2006-12-12T22:48:00.000+01:00</published><updated>2006-12-12T22:52:06.435+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kontaktlinsen Preisvergleich'/><category scheme='http://www.blogger.com/atom/ns#' term='Kontaktlinsen'/><title type='text'>Kontaktlinsen Preisvergleich Redesign</title><content type='html'>So, ich habe mal die Startseite meines &lt;a href="http://www.kontaktlinsen-preisvergleich.de"&gt;beliebten Kontaktlinsen Preisvergleichs&lt;/a&gt; umgestaltet. Ich kann mal wieder kaum abwarten, ob sich da was messbares verändert hat...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-7148411818750853238?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/7148411818750853238/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=7148411818750853238' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/7148411818750853238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/7148411818750853238'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/kontaktlinsen-preisvergleich-redesign.html' title='Kontaktlinsen Preisvergleich Redesign'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-4865877548489773677</id><published>2006-12-12T17:01:00.000+01:00</published><updated>2006-12-12T22:47:44.161+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF-at-Work'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF@Work Nachtrag</title><content type='html'>Kleiner Wehrmutstropfen: Der Link auf die Beispielanwendung aus dem Buch geht nicht. Hab' gerade diesbezüglich eine Anfrage bei irian.at laufen. Mal sehen wie schnell dort reagiert wird.&lt;br /&gt;&lt;br /&gt;Edit: Martin Marinschek hat persönlich und ziemlich schnell reagiert und mir geantwortet. Die entsprechende &lt;a href="http://www.irian.at/jsfatwork.jsf"&gt;Seite&lt;/a&gt; wird da bald online sein.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-4865877548489773677?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/4865877548489773677/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=4865877548489773677' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4865877548489773677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4865877548489773677'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/jsfwork-nachtrag.html' title='JSF@Work Nachtrag'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-1570688909562381530</id><published>2006-12-12T15:00:00.000+01:00</published><updated>2006-12-12T17:06:10.460+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF(AT)Work'/><title type='text'>JSF@Work</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_natKa9IVmaw/RX66bOo1XFI/AAAAAAAAAAY/F1qCZC4DEgU/s1600-h/DSC00214.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_natKa9IVmaw/RX66bOo1XFI/AAAAAAAAAAY/F1qCZC4DEgU/s200/DSC00214.JPG" alt="" id="BLOGGER_PHOTO_ID_5007644812631170130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Ich hab's ehrlich gesagt noch nicht vollständig gelesen, aber ich möchte dennoch meine Meinung über dieses Buch abgeben. Das Buch JSF@Work wurde unter der Mitwirkung führender MyFaces-Committer geschrieben und ist entsprechend fundiert. Nach den allgemeinen JSF-Grundlagen wird relativ ausführlich auf die MyFaces-Komponenten eingegangen (Für die Non-Checker: MyFaces ist eine freie Implementierung des JavaServerFaces Standards). Zu meiner Freude wurde auf AJAX und auf AJAX in Verbindung mit JSF in einem eigenen Kapitel eingegangen. Ebenfalls sehr schön fand ich die Vorstellung der Best-Practice-Beispielanwendung. Es war in weiten Teilen mit meiner Anwendungsstruktur identisch (Hibernate/Spring/JSF) und deshalb für mich sehr wertvoll. Da habe ich ein paar wertvolle Hinweise bekommen, speziell der ObjectCloner und die AspectMap verdienen einer näheren Betrachtung am heutigen Nachmittag. Das Buch ist sein Geld auf jeden Fall Wert.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_natKa9IVmaw/RX66nOo1XGI/AAAAAAAAAAg/YyMtsLvYSPU/s1600-h/DSC00216.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_natKa9IVmaw/RX66nOo1XGI/AAAAAAAAAAg/YyMtsLvYSPU/s200/DSC00216.JPG" alt="" id="BLOGGER_PHOTO_ID_5007645018789600354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Gelesen habe ich das Kapitel über die Best-Practice-Beispielanwendung in der Kapelle, das ist eine Restaurant/Kneipe im Viertel, wo ich nebenbei ein wenig gefrühstückt habe. Danach habe ich zur geistigen und körperlichen Verdauung einen Spaziergang an der Weser gemacht. Die Wiese finde ich noch ganz schön grün für Mitte Dezember, aber zumindest war es kalt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-1570688909562381530?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/1570688909562381530/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=1570688909562381530' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/1570688909562381530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/1570688909562381530'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/jsfwork.html' title='JSF@Work'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_natKa9IVmaw/RX66bOo1XFI/AAAAAAAAAAY/F1qCZC4DEgU/s72-c/DSC00214.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-2925441638447236422</id><published>2006-12-12T11:20:00.000+01:00</published><updated>2006-12-12T17:06:22.219+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Taekwondo'/><category scheme='http://www.blogger.com/atom/ns#' term='budogala'/><title type='text'>Budo-Gala Oslebshausen</title><content type='html'>Mal wieder ein Blog-Beitrag mit 3 Tagen Verzögerung. Am Samstag war ich mit der &lt;a href="http://www.kampfsportakademie-yoon.de"&gt;TaeKwonDo-Sportschule Bremen&lt;/a&gt; bei der Budo-Gala in Bremen Oslebshausen dabei. Wir haben dabei eindeutig die geilste Show geliefert. Bin gespannt, ob das so werbetechnisch irgendwelche Neuen ins Training spült. Meiner Erfahrung nach wird das nicht der Fall sein, allerdings war ich auch noch  nie mit so guten Leuten unterwegs. Naja, der offene Kanal Bremen war auch dabei und deshalb kann das alles in Auszüge heute Abend im offenen Kanal Bremen, irgendwann zwischen 19:30 und 21 Uhr, bewundert werden. Weil der OK Bremen nicht überall verfügbar ist, werde ich mal versuchen das ganze modern zur Verfügung zu stellen. &lt;br /&gt;&lt;br /&gt;Ich bin bei der Nummer nur der Böse gewesen, deshalb werde ich da nach allen Regeln der Kunst verdroschen. Na, jetzt willste das auch sehen, nä ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-2925441638447236422?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/2925441638447236422/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=2925441638447236422' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/2925441638447236422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/2925441638447236422'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/budo-gala-oslebshausen.html' title='Budo-Gala Oslebshausen'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-3194033987906401444</id><published>2006-12-08T13:53:00.000+01:00</published><updated>2006-12-12T17:06:55.941+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql Kreuztabellen'/><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='Kreuztabellen'/><title type='text'>Kreuztabellen in MySQL</title><content type='html'>Heute morgen sehr schönen &lt;a href="http://dev.mysql.com/tech-resources/articles/wizard/print_version.html"&gt;Artikel über Kreuztabelen in MySQL&lt;/a&gt; gelesen. Nebenbei im Litfass (Kneipe im Viertel/Bremen) gefrühstückt. Ich könnte mich immer wieder über die Bedienungen da aufregen, aber das bringt ja alles nichts. Heute fehlte mal wieder die Hälfte von dem was ich bestellt hatte - und man füllt da einen Zettel aus. Das kann doch nicht so schwer sein. Keine Ahnung warum ich mir das immer wieder antue.&lt;br /&gt;&lt;br /&gt;Aber nun zum Artikel... Kreuztabellen sind Abfragen bei denen man die normalisierten Daten auf die Seite legt und Werte zu Spalten macht. Das ist in dem Artikel ausführlich und mit einem Beispiel erklärt. An dem Artikel hat mir besonders gefallen, dass der Autor einen "Wizard" hat der ihm das alles Schritt-für-Schritt beibringt. Zitat: "wizards have always a rule number 1 for everything". Kreuztabellen lassen sich leider so einfach konstruieren wie zum Beispiel in Access. Aber es geht und wenn man sich den Artikel gründlich vornimmt und den Inhalt wirklich begriffen hat, dann ist es zwar immer noch aufwendig, aber kein Problem.&lt;br /&gt;&lt;br /&gt;Der Artikel ist schon etwas älter und den Teil wo das Ganze in Perl umgesetzt wurde kann man sich mittlerweile schenken. Wer Mysql 5 oder höher verwendet sollte das mir einer StoredProcedure nachbilden können, wie das zum Beispiel &lt;a href="http://rpbouman.blogspot.com/2005/10/creating-crosstabs-in-mysql.html"&gt;Roland Bouman gemacht hat&lt;/a&gt; oder &lt;a href="http://www.futhark.ch/mysql/106.html"&gt;hier mit Bezug auf den Artikel.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-3194033987906401444?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/3194033987906401444/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=3194033987906401444' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/3194033987906401444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/3194033987906401444'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/kreuztabellen-in-mysql.html' title='Kreuztabellen in MySQL'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-5971042171827056102</id><published>2006-12-04T10:47:00.000+01:00</published><updated>2006-12-12T17:07:29.741+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Taekwondo'/><category scheme='http://www.blogger.com/atom/ns#' term='Karaoke'/><title type='text'>Karaoke</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_natKa9IVmaw/RXQ1gR5GeBI/AAAAAAAAAAM/mq2zYtCnOtw/s1600-h/DSC00206.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_natKa9IVmaw/RXQ1gR5GeBI/AAAAAAAAAAM/mq2zYtCnOtw/s200/DSC00206.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5004683914590451730" /&gt;&lt;/a&gt;&lt;br /&gt;Samstag war die Weihnachtsfeier der &lt;a href="http://www.kampfsportakademie-yoon.de/"&gt;Kampfsportakademie Yoon (Taekwondo Bremen)&lt;/a&gt;. Erstmal gab's höllisch scharfes Essen, dann jede Menge Soju - ein ziemlich milder Schnaps mit 25% - und zum Flüssigkeitsausgleich Becks. Mit der notwendigen Grundentspanntheit versehen wurde dann die Leinwand aufgezogen und die Karaoke-Maschine angeworfen. Der Knaller war, dass die meisten Lieder auf koreanisch waren und die Koreaner da einen Gassenhauer nach dem anderen zum Besten gaben.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-5971042171827056102?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/5971042171827056102/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=5971042171827056102' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/5971042171827056102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/5971042171827056102'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/12/karaoke.html' title='Karaoke'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_natKa9IVmaw/RXQ1gR5GeBI/AAAAAAAAAAM/mq2zYtCnOtw/s72-c/DSC00206.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-4104023458870570066</id><published>2006-11-30T21:49:00.000+01:00</published><updated>2006-11-30T22:13:29.081+01:00</updated><title type='text'>Handwerkskünste...</title><content type='html'>So, mal wieder den Heimwerkergürtel umgeschnallt und Holger geholfen Fenster zu erneuern. Wir waren beide mit Erfahrung unbelastet und waren eigentlich guter Dinge die drei Keller-Fenster mal eben zu erneuern. Mein Vorschlag, erstmal alle drei Fenster zu entfernen, um Rückzieher hinsichtlich des Tagesziels vorzubeugen wurde vom Hausherren abgelehnt - wasn Glück! Wir haben für das erste Fenster auch 3 Stunden gebraucht. Den Hinweis von Mark (seines Zeichen Bau-Ing. und mit praktischen Kenntnissen gesegnet) mit dem Bauschaum aufzupassen, weil das Zeug geht auf wie Hulle, können wir bestätigen. Als Lohn für meine Anwesenheit, gab' noch nen Glühwein auf dem Weihnachtsmarkt in Ahrensburg, der Grill wurde auch noch angeschmissen und wir haben schön im T-Shirt vorm Kamin gesessen. Also ich freu' mich schon auf die anderen beiden Fenster.&lt;br /&gt;&lt;br /&gt;Es folgend noch ein paar Impressionen....&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/6520/3995/1600/513710/DSC00198.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger2/6520/3995/200/355221/DSC00198.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/6520/3995/1600/29099/DSC00199.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger2/6520/3995/200/624569/DSC00199.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/6520/3995/1600/652513/DSC00202.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger2/6520/3995/200/777776/DSC00202.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-4104023458870570066?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/4104023458870570066/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=4104023458870570066' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4104023458870570066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/4104023458870570066'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/11/handwerksknste.html' title='Handwerkskünste...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-7448872262726359534</id><published>2006-11-17T10:35:00.000+01:00</published><updated>2006-11-17T10:47:16.467+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Yoda'/><category scheme='http://www.blogger.com/atom/ns#' term='Sprüche'/><title type='text'>Aufgeschnappt...</title><content type='html'>In letzter Zeit mal wieder ein paar geile Sprüche aufgeschnappt, die ich hier mal vermerken muss.&lt;br /&gt;&lt;br /&gt;Ich fühl' mich wie ein Eunuch - Ich weiss genau wie's geht, aber ich kann nicht.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(Von einem Typ der versucht ein Bettgestellt im PKW zu verstauen. Aus einem Fernsehbericht der über eine IKEA-Eröffnung berichtete.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Brichst Du mir das Herz, dann brech' ich Dir die Beine.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(Olli Schulz &amp;amp; der Hund Marie)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nicht versuchen Du sollst, machen es oder machen es nicht.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(Frei nach Meister Yoda)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-7448872262726359534?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/7448872262726359534/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=7448872262726359534' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/7448872262726359534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/7448872262726359534'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/11/aufgeschnappt.html' title='Aufgeschnappt...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116298459370135499</id><published>2006-11-08T11:53:00.000+01:00</published><updated>2006-11-08T13:31:02.166+01:00</updated><title type='text'>Classloader Hell</title><content type='html'>Tja, bin gerade dabei im Rahmen meiner Online-Marketing-Toolbox eine Tomcat-TrackingValve zu schreiben. Speicherung über einen Service, auf den die Valve via Spring zugreifen soll und damit geht der Spass los...&lt;br /&gt;&lt;br /&gt;Der Tomcat verwendet eine &lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html#Overview"&gt;Classloader-Hierarchie&lt;/a&gt;  um verschiedene Sichtbarkeiten zu ermöglichen. Damit meine TrackingValve von org.apache.catalina.valves.ValveBase erben kann (org.apache.catalina.* liegen im server/lib/catalina.jar = 'Catalina' in der Hierarchie) muss das JAR-Archiv mit meiner Valve in server/lib abgelegt werden.&lt;br /&gt;&lt;br /&gt;Wenn die TrackingValve das erste Mal aufgerufen wird, soll der ApplicationContext initialisiert werden. Die applicationContext.xml liegt im Classpath und deshalb wird der ClassPathXmlApplicationContext benutzt. Versucht man es nun ohne weiteres bekommt man bei der Initalisierung - oder besser bei dem Versuch einer Initialisierung folgende Fehlermeldung:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;2:04:04,640  INFO (Catalina.java:559) - Server startup in 828 ms&lt;br /&gt;12:04:12,156 ERROR (CoyoteAdapter.java:157) - An exception or error occurred in the container during the request processing&lt;br /&gt;org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [tracking-valve-applicationContext.xml]; nested exception is &lt;/span&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;java.io.FileNotFoundException: class path resource [tracking-valve-applicationContext.xml] cannot be opened because it does not exist&lt;br /&gt;Caused by: &lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;java.io.FileNotFoundException: class path resource [tracking-valve-applicationContext.xml] cannot be opened because it does not exist&lt;br /&gt;at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:137)&lt;br /&gt;at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:351)&lt;br /&gt;...&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Nach wildem herumkopieren der applicationContext.xml folgendes Ergebnis: Wenn die applicationContext.xml im Verzeichnis shared/classes liegt, wird sie gefunden. Nicht aber in server/classes - was ich eigentlich erwartet hätte. In shared/class wird sie auch nicht gefunden - aber das beruhigt mich eigentlich, weil dort ja nur die Sachen der Webapps liegen sollen.&lt;br /&gt;&lt;br /&gt;Tja, das scheint mir eine berechtigte Frage und deshalb wird dann jetzt mal eine Anfrage in der Tomcat-Mailingliste gestartet.&lt;br /&gt;&lt;br /&gt;To be continued....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116298459370135499?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116298459370135499/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116298459370135499' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116298459370135499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116298459370135499'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/11/classloader-hell.html' title='Classloader Hell'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116289860990261473</id><published>2006-11-07T12:21:00.000+01:00</published><updated>2006-11-07T12:23:29.910+01:00</updated><title type='text'>SEO ist wie Segeln</title><content type='html'>Wenn Wind da ist, ist alles toll. &lt;br /&gt;Wenn kein Wind da ist, ist alles scheiße. &lt;br /&gt;&lt;br /&gt;Momentan kein Wind...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116289860990261473?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116289860990261473/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116289860990261473' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116289860990261473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116289860990261473'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/11/seo-ist-wie-segeln.html' title='SEO ist wie Segeln'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116242215985353797</id><published>2006-11-01T23:55:00.000+01:00</published><updated>2006-11-02T00:02:40.326+01:00</updated><title type='text'>Snow Dome Bispingen</title><content type='html'>Gerade mal eine Woche geöffnet musste die Schneehalle im Norden und gleichzeitig angeblich die größte Europas (ohne die Alpen) heute mal inspiziert werden. Wir hatten ein 4 Stunden Ticket und das ist echt mehr als genug. Nicht dass man kaputt ist, nein, es ist einfach irgendwann zu öde. &lt;br /&gt;&lt;br /&gt;Positiv muss erwähnt werden, dass es wirklich leer war und wir praktisch nie am Lift warten mussten. Außerdem ist das alles sehr hübsch angelegt und ich glaube das wird mal echt nett. Was fehlt sind die Leute die da Apres-Ski-Stimmung aufkommen lassen, aber das ist vielleicht am Wochenende anders. Ansonsten ist das kein Ersatz für wirkliches Ski fahren. Der Schnee war schlecht und überall guckten schon die Bretter unter dem Schnee raus - aber vielleicht bekommen die das ja noch hin.&lt;br /&gt;&lt;br /&gt;Meine neuen Snowblades, die ich dort eingeweiht haben waren ganz fabelhaft, hat wirklich Spass gemacht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116242215985353797?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116242215985353797/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116242215985353797' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116242215985353797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116242215985353797'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/11/snow-dome-bispingen.html' title='Snow Dome Bispingen'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116187569451075618</id><published>2006-10-26T17:04:00.000+02:00</published><updated>2006-10-26T17:14:55.063+02:00</updated><title type='text'>Spaziergang an der Weser</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00157.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00157.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Nachdem ich in den letzten Tagen meine vier neuen Projekte online gebracht habe, habe ich heute mal das schöne Herbstwetter mit einem ausgedehnten Spaziergang an der Weser genossen. Der Rasen am Deich war im Sommer total fertig und grünt jetzt ohne Ende. Nur die Bäume fangen schon ein wenig an zu schwächeln.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116187569451075618?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116187569451075618/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116187569451075618' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116187569451075618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116187569451075618'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/spaziergang-der-weser.html' title='Spaziergang an der Weser'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116159734370832148</id><published>2006-10-23T11:10:00.000+02:00</published><updated>2006-10-23T11:55:44.676+02:00</updated><title type='text'>AJAX Schnell + Kompakt oder "no rocketscience here"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00155.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00155.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gestern hab' ich mir dieses Büchlein reingezogen. Tja, was soll ich sagen, das hätte ich mir schenken können. Ajax ist alter Wein in neuen Schläuchen, aber vielleicht auch doch nicht. Im ersten Kapitel werden die Grundprinzipien erläutert, dabei sollte man allerdings von JavaScript genug Ahnung haben um Programmcode zu verstehen. Im Vordergrund steht die technische Betrachtung der Ajax-Grundlagen, speziell dem XMLHttpRequest-Objekt. Im Kapitel "AJAX und XML" gehts dann mit Browserinkompatibilitäten los, dass ich kotzen könnte. Ich hatte gehofft, das wäre mittlerweile erledigt - haha. In Kapitel 3 wird die Objektserialisation mittels JSON erklärt. In Kapitel 4 "AJAX Tipps und Tricks" sind zwei Hacks erklärt die die Bookmark und Zurück-Schalflächen-Problematik beheben. Kapitel 5 zu serverseitigem AJAX hab ich mir dann mal gesteckt. An dem Buch hat mir die Praxisbezogenheit durch den vielen Programmcode sehr gut gefallen. Auch war für mich alles recht verständlich geschrieben, sodaß das Buch gut zu lesen war. &lt;br /&gt;&lt;br /&gt;Meinen Hunger nach AJAX konnte das Buch jedoch nicht so recht stillen. Ich denke im Moment, dass AJAX durch die JavaScript-bedingten Browserinkompatibilitäten nur mit einer Biblithek in größerem Umfang nutzbar ist, die all diese Inkompatibilitäten abfängt. Von diesen AJAX Libraries, die es schon eine ganze Menge gibt, ist in dem Buch leider nicht die rede. Hier wäre zumindest die Nennung der dominierenden Projekte hilfreich gewesen. &lt;br /&gt;&lt;br /&gt;Technologisch ist AJAX nichts neues. Es ist nichts anderes als dass man eine Seite per dynamischen HTML ändert, wie auch Menüs per JavaScript ein-/ausklappbar sind. Dass da noch im Hintergrung Daten vom Server geholt werden und diese dann als Inhalte eingesetzt werden ist auch wirklich keine Raketentechnologie. &lt;br /&gt;&lt;br /&gt;Was neu ist, ist die Verbreitung und die - da bin ich mir sicher - wird den Ausschlag geben. Eine wichtige Rolle kommt dabei den Frameworks/Libraries zu, sie müssen den Entwickler vor allem von den Browserinkompatibilitäten schützen. Trotzdem wird so die Frontendentwicklung unter Verwendung von AJAX in einer ziemlichen JavaScript-Schlacht enden. Wirkliche Vorteile bieten Komponentenorientierte Web-Frameworks wie JavaServerFaces. Hier sollte es möglich sein den AJAX-JavaScript-Code in der Komponente zu kapseln. Die ersten AJAX-Komponenten stehen im MyFaces Projekt auch schon zur Verfügung (&lt;a href="http://www.irian.at/myfaces-sandbox/inputSuggestAjax.jsf"&gt;http://www.irian.at/myfaces-sandbox/inputSuggestAjax.jsf&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Neben den kleinen Hackereien, die irgendwo von eifrigen PHP-Programmierern unter Einsatz ihres Talents und viel Nerven erzeugt werden, werden im Bereich der Komponentenorientierten Web-Frameworks weit verbreitete AJAX-Komponenten entstehen. Endlich haben die Framework wie MyFaces, deren Komponenten-Ansatz für viele einfach zu fett war eine Aufgabe ! Juhu !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116159734370832148?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116159734370832148/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116159734370832148' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116159734370832148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116159734370832148'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/ajax-schnell-kompakt-oder-no.html' title='AJAX Schnell + Kompakt oder &quot;no rocketscience here&quot;'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116152116113565239</id><published>2006-10-22T14:33:00.000+02:00</published><updated>2006-10-22T14:51:47.900+02:00</updated><title type='text'>Endlich Master Sergeant !</title><content type='html'>Nach unendlich vielen Stunden auf dem BF2-Schlachtfeld, habe ich 20.000 Punkte und bin vom Gunnery Sergeant zum Master Sergeant befördert worden. Um jetzt First Sergeant zu werden brauch' ich nur noch ein paar Auszeichnungen: Basic Knife, Basic Pistol, Basic Assault, Basic Sniper...also die Battle geht weiter.... Meine Stats kann man sich &lt;a href="http://bf2-archiv.planet-multiplayer.de/bf2rankedstats/index.php?input1=MarcoPolo1974"&gt;im Archiv&lt;/a&gt; ansehen. Mal so knapp 300 Stunden auf Uhr ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116152116113565239?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116152116113565239/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116152116113565239' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116152116113565239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116152116113565239'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/endlich-master-sergeant.html' title='Endlich Master Sergeant !'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116128628692480649</id><published>2006-10-19T21:23:00.000+02:00</published><updated>2006-10-19T21:32:44.240+02:00</updated><title type='text'>Auch ein gutes Buch ist mal zu Ende gelesen...</title><content type='html'>Heute habe ich das Buch "Website Boosting" von Mario Fischer zu Ende gelesen. Das Buch ist für jeden Online-Marketer uneingeschränkt zu empfehlen. Zur Veranschaulichung das Ganze mit Bildern.&lt;br /&gt;&lt;br /&gt;Vorher:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00148.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00148.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nacher:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00151.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00151.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nicht nur dass ich heute die letzten 50 Seiten gelesen habe, nein, ich habe sogar das Kapitel über Newsletter nochmal gelesen, weil ich gerade beabsichtige das auf meinen Projekten mal neu zu gestalten. Das hab ich dann allerdings in einem anderen Café gelesen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00152.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00152.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116128628692480649?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116128628692480649/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116128628692480649' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116128628692480649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116128628692480649'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/auch-ein-gutes-buch-ist-mal-zu-ende.html' title='Auch ein gutes Buch ist mal zu Ende gelesen...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116108520665133612</id><published>2006-10-17T13:25:00.000+02:00</published><updated>2006-10-19T21:34:18.176+02:00</updated><title type='text'>Muskelkater vom anderen Stern</title><content type='html'>Schönes Wochenende in Kassel verbracht. Hapkido-Lehrgang mit Lee, Chang Soo und Choi, Kil Bong, Schwerpunkt Kal-Maki (Messerabwehr). Schon die vier Stunden Training am Samstag waren für mich eigentlich zu viel. Alles grün und blau, vor allem mein rechter Unterarm. Besonders Gie aus Belgien hat einen netten Anteil daran. Danke Gie ;-) Die zweiten vier Stunden am Sonntag taten dann ihr Übriges um am Montag vor Muskelkater in Bewegungsunfähigkeit zu erstarren. Auch heute, am Dienstag ist es kaum besser. Naja, auf jeden Fall mal wieder ein paar Kleinigkeiten mitgenommen und die Motivation wieder öfter im Training aufzutauchen - mal sehen wie lange es anhält. Heute könnte ich ja theoretisch, wäre da nicht der Muskelkater...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00145.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00145.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116108520665133612?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116108520665133612/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116108520665133612' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116108520665133612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116108520665133612'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/muskelkater-vom-anderen-stern.html' title='Muskelkater vom anderen Stern'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-116076101812920614</id><published>2006-10-13T19:28:00.000+02:00</published><updated>2006-10-13T19:36:58.606+02:00</updated><title type='text'>Coole Footer...</title><content type='html'>In diesen Tagen mal wieder ziemlich am Forum lesen. Dabei ein paar echt lustige Footer gesehen, z.B.:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2 b || !(2 b)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ein großes Zitat für alle die es lesen können. Oder:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Je sorgfältiger man plant, desto wirkungsvoller trifft einen der Zufall.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wie wahr, wie wahr !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-116076101812920614?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/116076101812920614/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=116076101812920614' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116076101812920614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/116076101812920614'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/10/coole-footer.html' title='Coole Footer...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115951315095273975</id><published>2006-09-29T08:50:00.000+02:00</published><updated>2006-11-14T22:45:08.786+01:00</updated><title type='text'>Unfall</title><content type='html'>Tja, es kam wie es irgendwann kommen musste... Mein zugegebenermaßen kleines Auto wurde gebumst von einem anderen Auto, einem VW Polo. Naja, glücklicherweise war der Fahrer von unseren FreundenInnen und HelferInnen sofort als Übeltäter enttarnt und überführt worden. Die Krankenversicherung meines Autos muss daher nicht einspringen und die Bezahltung der Auto-Doctors ist geklärt. Trotzdem sehr ärgerlich. Zur Verdeutlichung hier nochmal ein paar Fotos, mein Auto ist der Toyota.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00138.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00138.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00135.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00135.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115951315095273975?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115951315095273975/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115951315095273975' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115951315095273975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115951315095273975'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/09/unfall.html' title='Unfall'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115913177504589244</id><published>2006-09-24T22:46:00.000+02:00</published><updated>2006-09-24T23:02:55.083+02:00</updated><title type='text'>OMD</title><content type='html'>Das erste Mal auf dem OMD gewesen. Netto so cirka 5 Stunden auf der Messe gewesen. Wirklich viele nette und interessante Leute getroffen, allerdings nicht auf der Messe sondern im Rahmenprogramm. Dienstag war Publisherevent von Tradedoubler aufm Rhein mit Boot, Buffet, Freibier und mehr Bekannten als ich erwartet hätte. Danach dann auf die Party von Metaapes. Ab 21 Uhr musste man da das Bier selbst bezahlen - also nix wie weg  und auf die Doubleclick-Party. Auch dort einige alte Bekannte wiedergefunden. Haben die Peitsche ganz schön knallen lassen. Um 2 Uhr nachts im Hotel gewesen, nicht unwesentlich beeinträchtigt. &lt;br /&gt;&lt;br /&gt;Am Mittwoch dann mal die Messe angesehen, war größer als ich gedacht habe. Quisma hat mich enttäuscht, Sushi war zu schnell alle. Sind wir mal ehrlich, wenn man offensichtlich am Messestand gespart hat, dann hätte man für die paar Leute die den Stand noch gefunden haben doch mal genug Sushi haben können. Viele ehemalige Kollegen aufm Messestand von eprofessional wiedergetroffen, war sehr schön. Da auch gleich mal einen Capi gegönnt, durch offensichtlich professionelle Plannung war hier auch kein Engpass zu bemerken. Löblich. Löblich. &lt;br /&gt;&lt;br /&gt;Dann abends zur Alternativ-OMD-Party, die war voll Scheiße. Also schnell weg in die Düsseldorfer Altstadt. Ballermann6. Die Leute 40+ aber dafür gut drauf oder zumindest ziemlich voll. Uns kam es allerdings so vor als würden da einige Typen beim durchdrängeln an anderen Typen rumgrapschen. Also dann im Sub gewesen, bis so 4 Uhr und da war der Laden noch ziemlich voll. Für Donnerstagmorgen nicht schlecht DD !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115913177504589244?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115913177504589244/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115913177504589244' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115913177504589244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115913177504589244'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/09/omd.html' title='OMD'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115822780879084388</id><published>2006-09-14T11:07:00.000+02:00</published><updated>2006-09-14T11:56:48.900+02:00</updated><title type='text'>Der Sommer ist wieder da...</title><content type='html'>Eigentlich dachte ich, der Sommer wäre dieses Jahr schon wieder gelaufen, aber die Realität sieht anders aus. Deshalb habe ich meine Tageslichtaktivitäten an den Osterdeich verlegt.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00103.0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00103.0.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Das Buch "Website Boosting" von Mario Fischer ist gut zu lesen und erinnert so gar nicht an die Schinken akademischer Verfasser, die man sich im Studium antun musste. Zwei kleine Ungenauigkeiten hab ich auch schon gefunden:&lt;br /&gt;&lt;br /&gt;Seite 107: ..., wird der vom Suchenden in Google eingetippte Suchbegriff direkt auch in Echtzeit in die eigene AdWords-Anzeige eingesetzt.&lt;br /&gt;&lt;br /&gt;Das ist falsch. Die Keyword-Substitiution setzt nicht den vom Benutzer eingegebenen Begriff ein, sondern das Keyword das das Einblenden der Anzeige verursacht hat. An einem Beispiel: Die Kampagne enthält das Keyword 'Rotwein', der Benutzer gibt 'Rotwine' ein und Google findet dass das für 'Rotwein' passend genug ist und blenden unsere Anzeige ein. Wenn wir dann in der Anzeige mit Keywordsubstitution arbeiten, dann wird 'Rotwein' eingesetzt und NICHT 'Rotwine'.&lt;br /&gt;&lt;br /&gt;Seite 135: ...so zu sein, dass der eigene Vorschlag immerdann verwendet wird, wenn die Begriffe darin sich auch in gewisser Häufigkeit auf der Webseite selber finden.&lt;br /&gt;&lt;br /&gt;Das ist meines Wissens nach anders und es hängt mit dem Einträgen im dmoz.org zusammen. Wenn eine Seite im dmoz gelistet ist, dann wird dort die Beschreibung aus dem META-Tag description übernommen. Das dmoz wird ins Google-Directory übernommen und so kommt es dann, dass die Beschreibung der Seite aus den Meta-Tags in den Google-SERPs auftaucht. Das ist auch vollkommen okay so, weil die Einträge im dmoz redaktionell geprüft wurden und damit eine höhere Qualität erreichen als maschinell erzeugte Snipplets. Als Beispiel eignet sich nicht die Seite von Herrn Fischer, weil er dort das desription-Tag unlängst geändert hat. Die Beschreibung ändert sich aber im dmoz.org nachträglich nicht mehr - deshalb ist es besonders wichtig, dass im Meta-Description ein sprechender Text ist. Ist er einmal im dmoz, dann kann man ihn nicht mehr ändern.&lt;br /&gt;&lt;br /&gt;So, aktueller Stand ist Seite 183. Wenn das Buch durch ist - und es hat gute Chancen komplett gelesen zu werden - werde ich mal eine Mail an Herrn Fischer schreiben. Das Buch ist auf jeden Fall lesenswert.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00107.1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00107.1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Achso... auf der Weser wird auch Drachenboot gefahren...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00108.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00108.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;... und in die Luft geht's auch...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115822780879084388?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115822780879084388/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115822780879084388' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115822780879084388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115822780879084388'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/09/der-sommer-ist-wieder-da.html' title='Der Sommer ist wieder da...'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115747921171094259</id><published>2006-09-05T19:54:00.000+02:00</published><updated>2006-09-05T20:00:11.720+02:00</updated><title type='text'>Superman auf der Reeperbahn</title><content type='html'>Mein Bruder heiratet am Wochenende, deshalb war am Samstag JGA. Ihm haben wir ein Superman-Kostüm angezogen und dann ab auf den Hamburger Kiez. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00079.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00079.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;War sehr lustig.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115747921171094259?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115747921171094259/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115747921171094259' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115747921171094259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115747921171094259'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/09/superman-auf-der-reeperbahn.html' title='Superman auf der Reeperbahn'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115660154286637955</id><published>2006-08-26T15:40:00.000+02:00</published><updated>2006-08-26T16:12:31.563+02:00</updated><title type='text'>Emails mit Spring</title><content type='html'>Bis Mittwoch hatte ich ziemlich intensiv am automatischen Versenden eines Newsletters für die Kontaktlinsen-Seite rumgebastelt. Ich hab's zu Anfang nicht hinbekommen das wirklich schön zu testen, weil ich die JavaMail-API nicht mocken konnte und die Spring-Mail-Abstraktion auch nicht weil die auch nicht ganz unabhängig von der JavaMail-API ist. Zumindest nicht wenn man MIME-Multipart-Mails verschicken muss. Naja, die Lösung war dann das Ausgliedern in einen eigenen MailService, der sehr einfach gehalten war, gegen den konnte ich dann gut testen.&lt;br /&gt;&lt;br /&gt;Als Belohnung für den Aufwand mit dem Testen lief das Teil dann am Mittwoch komplett durch, hat ein paar tausend Mail in 30 Minuten fehlerfrei ausgeliefert. Das Feedback kam auch prompt, viel mehr Seitenzugriffe, auch noch an den folgenden Tagen, ein paar Bounces, ein paar Abmeldungen und ein paar Produktänderungen. Alles zusammen betrachtet war die Aktion sehr erfolgreich. Ab jetzt wird das Ganze einmal im Monat angeschoben, vollkommen automatisch dank der Spring-Quartz-Integration. &lt;br /&gt;&lt;br /&gt;Mittlerweile hat sich das Investment Spring zu nutzen rentiert schätze ich.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115660154286637955?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115660154286637955/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115660154286637955' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115660154286637955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115660154286637955'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/emails-mit-spring.html' title='Emails mit Spring'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115632914515408877</id><published>2006-08-23T12:27:00.000+02:00</published><updated>2006-08-23T12:32:25.166+02:00</updated><title type='text'>Wer niemals nie sagt, darf nie immer sagen.</title><content type='html'>Mal schön drüber nachdenken ob das so ist...&lt;br /&gt;&lt;br /&gt;...und dann darüber nachdenken warum das zweite nie auch für jemanden der nie nie sagt okay gehen müsste.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115632914515408877?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115632914515408877/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115632914515408877' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115632914515408877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115632914515408877'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/wer-niemals-nie-sagt-darf-nie-immer.html' title='Wer niemals nie sagt, darf nie immer sagen.'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115607939192567029</id><published>2006-08-20T14:33:00.000+02:00</published><updated>2006-08-20T15:09:51.953+02:00</updated><title type='text'>Tests mit Spring / EasyMock / JSF &amp; Spring</title><content type='html'>Heute den Abschnitt über Tests im Spring-Buch von Eberhard Wolff gelesen, ist übrigens ein gutes Buch. Ich hab mit Eberhard mal bei PNP gearbeitet, er hat's drauf. Im Buch stand viel Wahres drin, ich musste erkennen, dass meine Tests durchaus noch Verbesserungspotential besitzen, hab dann heute auch prompt angefangen die Unit-Tests ohne Spring und wo nötig auf EasyMock umzustellen. EasyMock ist etwas gewöhnungsbedürftig, aber dann echt Klasse. Macht die Unit-Tests mal echt unabhängig.&lt;br /&gt;&lt;br /&gt;Daraufhin weitergelesen und erkannt, dass ich die Verbindung von Spring und JSF schlecht umgesetzt habe. Dieser suboptimale Ansatz bestand in der Verwendung eines ServiceLocator-Patterns, wobei lediglich ein selbstkreierter ServiceLocator in die JSF-Beans gedrückt wurde. Den Ansatz hab ich aus einem &lt;a href="http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html"&gt;Artikel&lt;/a&gt; auf JavaWorld.com. Keine Ahnung wann die JSF-Integration in Spring Einzug gehalten hat, aber ich nehme mal an dass die zur Zeit des Artikels noch nicht verfügbar war. Jetzt sollte man auch jeden Fall den den DelegatingVariableResolver verwenden um die Spring-Beans in der faces-config.xml in die JSF-Beans zu drücken. Damit erstreckt sich die Dependency Injection dann auch bis in die JSF-Beans und alles wird gut.&lt;br /&gt;&lt;br /&gt;Resultat aus dem Umbau: &lt;span style="font-weight:bold;"&gt;Kein ServiceLocator mehr&lt;/span&gt;, das ist normalerweise noch eine zusätzliche Stelle gewesen in denen ich zumindest die Service-Beans registrieren musste (zusätzlich zur Spring-Konfiguration). Jetzt gibt's das Teil einfach nicht mehr. Mehr &lt;span style="font-weight:bold;"&gt;Übersichtlichkeit&lt;/span&gt;, es ist jetzt in der JSF-Konfig klar zu erkennen auf welche Services zugegriffen wird. Sehr praktisch wenn mal was ändern will um abzuschätzen wo der Spass sich auswirken könnte. Das &lt;span style="font-weight:bold;"&gt;gute Gefühl&lt;/span&gt;, dass alles seine Richtigkeit hat.&lt;br /&gt;&lt;br /&gt;Und abschließend mal wieder die Erkenntnis, dass Unit-Tests die Qualität des Codes hinsichtlich der Struktur automatisch verbessern, weil einfach keinen Spass macht schlecht strukturierten Code zu testen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115607939192567029?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115607939192567029/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115607939192567029' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115607939192567029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115607939192567029'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/tests-mit-spring-easymock-jsf-spring.html' title='Tests mit Spring / EasyMock / JSF &amp; Spring'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115601906337844871</id><published>2006-08-19T21:59:00.000+02:00</published><updated>2006-08-19T22:24:23.406+02:00</updated><title type='text'>Grillen am Werdersee</title><content type='html'>Heute schön am Werdersee gegrillt und die Wolken beobachtet. Der Einweggrill war noch von letzten Jahr und der Anzünder scheint zu verfliegen. Hat aber trotzdem geklappt wie man auf dem Bild sehen kann. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00042.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00042.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2080/3582/1600/DSC00041.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/2080/3582/320/DSC00041.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Werder Bremen hat heute auch gespielt und 2:1 Bayer04/Leverkusen weggeputzt. Wenn ich Fußballfan wäre, wäre ich wahrscheinlich zur Zeit Werder Fan. Ist schon imponierend, wie hier in Bremen die Massen ins Stadion pilgern. Wenn man am Werdersee liegt kann man immer noch hören wie die Leute im Stadium abgehen.&lt;br /&gt;&lt;br /&gt;Außerdem &lt;a href="http://javamagazin.de/itr/online_artikel/psecom,id,792,nodeid,11.html"&gt;Artikel&lt;/a&gt; übers WEKA-Framework gelesen. Die beschriebene Textanalyse ist nicht das was ich erhofft hatte, aber der Artikel macht Lust auf mehr. Mal sehen...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115601906337844871?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115601906337844871/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115601906337844871' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115601906337844871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115601906337844871'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/grillen-am-werdersee.html' title='Grillen am Werdersee'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115584605338707713</id><published>2006-08-17T22:07:00.000+02:00</published><updated>2006-08-17T22:23:49.233+02:00</updated><title type='text'>Von den Glücklichen, den Jammernden und den anderen SEOs</title><content type='html'>SEOs, die ja bekanntlich davon leben immer vorne mit dabei zu sein, werden in diesen Tagen mal wieder von Existenzängsten geplagt. Google hat mal wieder den Algorithmus verändert und alles ist anders. Wer vorher jammerte ist nun glücklich und die vormals Glücklichen jammern uns die Ohren voll. &lt;br /&gt;&lt;br /&gt;Vielleicht ist das auch die Fairness von Google, einfach mal durchmischen und was Anderes nach oben spülen - der Fairness wegen. Vielleicht ist es aber auch einfach Unfähigkeit der Google-Leute und das was wir da sehen sind eigentlich die üblichen Probleme, wenn man versucht sooo viele Daten zu handhaben. Scherz beiseite - dafür sind die Ergebnisse zu gut - zumindest im Moment. &lt;br /&gt;&lt;br /&gt;Neben den gerade glücklichen SEOs und den gerade jammernden SEOs gibt's dann auch noch die immer jammernden SEOs - das sind die die das mit dem Optimieren gar nicht verstanden haben. Die jammern aber auch nur so lange bis sie einen neuen Job haben.&lt;br /&gt;&lt;br /&gt;Das beste Rezept für eine erfolgreiche Seite ist ein echter Nutzen und der Aufbau einer Bekanntheit die über den Suchvorgang hinaus bestand hat. Dann muss man sich auch nicht so ins Hemd machen wenn Google mal wieder am Schrauben ist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115584605338707713?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115584605338707713/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115584605338707713' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115584605338707713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115584605338707713'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/von-den-glcklichen-den-jammernden-und.html' title='Von den Glücklichen, den Jammernden und den anderen SEOs'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115572197020736683</id><published>2006-08-16T11:49:00.000+02:00</published><updated>2006-08-16T12:39:33.443+02:00</updated><title type='text'>Heuhaufen vs. Nadelhaufen</title><content type='html'>Frage:&lt;br /&gt;Was ist schwieriger als die Suche nach der Nadel im Heuhaufen ? &lt;br /&gt;&lt;br /&gt;Antwort:&lt;br /&gt;Die Suche nach der richtigen Nadel in einem Haufen von Nadeln.&lt;br /&gt;&lt;br /&gt;Das ist auch gleichzeitig das Problem der Suchmaschinen. Neben der Arbeit einen großen Haufen durchsuchen zu müssen und den damit einhergehenden Anforderungen an Rechenpower, Speicherplatz und Bandbreite, müssen Suchmaschinen gleichzeitig beurteilen ob die gerade behandelte Nadel die "Richtige" ist. Wenn man's genau betrachtet selektieren Suchmaschinen nicht nur die richtige Nadel, sondern sie bringen die Nadeln in eine Rangfolge und zwar alle. Das scheint zumindest mir etwas zu viel Aufwand, wenn man doch eigentlich genau eine Nadel sucht - eben die Richtige. Ich denke hier ist der Ansatzpunkt wenn man mal was wirklich Neues im Bereich der Suchmaschinen machen möchte.&lt;br /&gt;&lt;br /&gt;Ausgehend von meiner Überzeugung, dass wir alle auf dieser Welt tendentiell eher wenig individuell sind und, so grausam es klingen mag, ein Produkt unser direkten wahrgenommenen Umgebung sind, so glaube ich dass das Suchverhalten zwischen verschiedenen Menschen übertragbar ist. Mit übertragbarem Suchverhalten meine ich, dass Leute die dem gleichen Kulturkreis entspringen, ähnliche Schulbildung besitzen und vielleicht noch andere Gemeinsamkeiten haben, auch mit dem gleichen Suchergebnis zufrieden wären. &lt;br /&gt;&lt;br /&gt;Sie haben im Kopf was Sie suchen und geben einen Begriff ein, von dem Sie sich erhoffen, dass die Suchmaschine damit was anfangen kann. Das Ergebnis entspricht bestenfalls dem was Sie im Kopf hatten bevor Sie sich überlegten wie Sie danach suchen sollen.&lt;br /&gt;&lt;br /&gt;Die heutigen Suchmaschinen sind schon sehr ausgefeilt, aber sie basieren auf Regeln und können niemals so gut sein wie manuel bewertete Suchergebnisse. Deshalb müssen die Suchmaschinen der nächsten Generation in irgendeiner Form ein Feedback-System einsetzen um die Suchergebnisse in letzter Instanz durch echte SucherInnen bewerten zu lassen.&lt;br /&gt;&lt;br /&gt;Auf jeden Fall sollte der Suchende genau ein Suchergebnis erhalten. Wenn das nicht das ist was gesucht wurde, dann hat die Suchmaschine einen Fehler gemacht und muss lernen.&lt;br /&gt;&lt;br /&gt;Die Verknüpfung von Suchterm und Suchergebnis in Abhängigkeit von Personenprofilen gekoppelt mit einem Feedbacksystem zur Optimierung in letzter Instanz wäre doch mal ein Ansatz für etwas neues. Interaktiv und irgendwie anders - wahrscheinlich besser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115572197020736683?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115572197020736683/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115572197020736683' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115572197020736683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115572197020736683'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/heuhaufen-vs-nadelhaufen.html' title='Heuhaufen vs. Nadelhaufen'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115566707593743712</id><published>2006-08-15T20:06:00.000+02:00</published><updated>2006-08-15T21:02:25.730+02:00</updated><title type='text'>AOL Daten</title><content type='html'>Nachdem ich schon ein paar Sachen von den AOL-Daten gelesen hatte und die von AOL zurückgezogen wurden, habe ich mir die schnell noch mal von einem Mirror gezogen. Was man hat das hat man. Die Daten lassen sich sehr einfach in eine Mysql-Datenbank einlesen. Dazu muss man einfach die Tabelle anlegen und die Daten direkt per Kommandozeile einladen. Dann noch zwei Indizies drauf und man kann das Teil auswerten - nur für wissenschaftliche Zwecke versteht sich. Für alle die noch ca. 5GB platz haben kommt hier die Schritt-für-Schritt-Anleitung:&lt;br /&gt;&lt;br /&gt;Daten von http://www.gregsadetsky.com/aol-data/ in ein beliebiges Verzeichnis runterladen&lt;br /&gt;&lt;br /&gt;Tabelle anlegen:&lt;br /&gt;&lt;br /&gt;CREATE TABLE data (&lt;br /&gt;AnonID       bigint(20) UNSIGNED NOT NULL,&lt;br /&gt;Query        varchar(255) NOT NULL,&lt;br /&gt;QueryTime    timestamp NOT NULL,&lt;br /&gt;ItemRank     SMALLINT UNSIGNED,&lt;br /&gt;ClickURL     varchar(255)&lt;br /&gt;) ENGINE=MyISAM&lt;br /&gt;&lt;br /&gt;Die Daten in die Tabelle laden, dazu die Dateien aus dem Archiv auspacken und auch entpacken, dann mit dem Kommandozeilen-Client einloggen und die folgenden Statements ausführen:&lt;br /&gt;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-01.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-02.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-03.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-04.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-05.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-06.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-07.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-08.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-09.txt' INTO TABLE data;&lt;br /&gt;LOAD DATA LOCAL INFILE 'c:\\Daten\\aol\\user-ct-test-collection-10.txt' INTO TABLE data;&lt;br /&gt;&lt;br /&gt;Das dauert je nach Rechner kürzer oder länger. Auf meinem&lt;br /&gt;Windows Rechner brauchte eine Datei so um und bei 25-30 Sekunden zum Einlesen.&lt;br /&gt;&lt;br /&gt;Um Abfrage effizient stellen zu können hab ich dann noch zwei Indizies angelegt&lt;br /&gt;&lt;br /&gt;CREATE INDEX AnonID_idx on data (AnonID) - dauerte bei mir ca. 30 Minuten&lt;br /&gt;&lt;br /&gt;CREATE FULLTEXT INDEX Query_idx on data (Query) - dauerte zweieinhalb Stunden&lt;br /&gt;&lt;br /&gt;Eine Abfrage, die man nun recht effizient stellen kann ist eine Suche nach Keywords, deren verwandte Phrasen und die Häufigkeit der Phrasen:&lt;br /&gt;&lt;br /&gt;SELECT COUNT(DISTINCT AnonId) as Occurs, query&lt;br /&gt;FROM data&lt;br /&gt;WHERE MATCH(Query) AGAINST ('lenses')&lt;br /&gt;GROUP BY query&lt;br /&gt;ORDER BY Occurs DESC&lt;br /&gt;&lt;br /&gt;Doppelte Anfragen für einzelne User werden dabei nicht berücksichtigt, wer das will muss das DISTINCT weglassen. Das Ergebnis der Abfrage sieht dann so aus:&lt;br /&gt;&lt;br /&gt;184    contact lenses&lt;br /&gt;12    nikon lenses&lt;br /&gt;11    colored contact lenses&lt;br /&gt;10    canon lenses&lt;br /&gt;8    color contact lenses&lt;br /&gt;7    discount contact lenses&lt;br /&gt;7    camera lenses&lt;br /&gt;7    sigma lenses&lt;br /&gt;7    transition lenses&lt;br /&gt;6    acuvue contact lenses&lt;br /&gt;5    contac lenses&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Die Abfrage dauert dank des FULLTEXT Indizies auch nur 3 Sekunden.&lt;br /&gt;&lt;br /&gt;Bin immer dankbar für weitere Anregungen zu dem Thema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115566707593743712?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115566707593743712/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115566707593743712' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115566707593743712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115566707593743712'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/aol-daten.html' title='AOL Daten'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115566514858363876</id><published>2006-08-15T19:55:00.000+02:00</published><updated>2006-08-15T20:05:48.586+02:00</updated><title type='text'>Zahnarzt und andere Schmerzen</title><content type='html'>Heute Zahnarzt, einer der gemeinhin weniger beliebten Termine die wahrzunehmen sind um bei bester Gesundheit zu bleiben. Er hat auch gleich was gefunden an dem er schön rumgebohrt hat. Ich finde da ist dringend mal eine Innovation fällig, sowas muss doch auch friedlich gehen.&lt;br /&gt;&lt;br /&gt;Ich war danach total gestresst und meine aktuellen Bemühungen den Preis-Info-Service zu automatisieren wurden dadurch etwas gehemmt. Naja, dank Spring ist das Verschicken von Mails zu festgelegten Zeiten ziemlich easy, wie ich feststellen durfte. Jetzt muss ich nur noch die Sache mit dem MIME-Multipart-Mails hinbekommen, damit man eine HTML-Version mit eingebetteten Bildern sowie gleichzeitig eine Textversion der Mail rausdrücken kann. Das alles ist aber recht überschaubar. Der erste Termin für die Aussendung dürfte so der 29.8.2006 (das ist schon nächster Dienstag...) oder der 05.09.2006 sein, hängt primär davon ab ob ich das Layout selbst hinbekomme, oder ob ich da noch Hilfe benötige. Bis Ende der Woche sollte der Versand technisch funktionieren, dann klappts auch mit dem ersten Termin, bin schon sehr gespannt ob sich da was tut. In dem Verteiler sind zur Zeit ca. zweitausend Adressen, ich bin sicher dass da auch viele Nieten dabei sind, aber das werden wir dann ja sehen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115566514858363876?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115566514858363876/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115566514858363876' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115566514858363876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115566514858363876'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/zahnarzt-und-andere-schmerzen.html' title='Zahnarzt und andere Schmerzen'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32733560.post-115559050192033970</id><published>2006-08-14T23:20:00.000+02:00</published><updated>2006-08-14T23:21:41.930+02:00</updated><title type='text'>Erster Eintrag....</title><content type='html'>So... angeblich werden in Deutschland, ganz im Gegensatz zu den USA, mehr Blogs geschrieben als gelesen. Da will ich mal nicht so sein und dazu beitragen, dass das auch weiterhin so bleibt.... hier ist mein Blog!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32733560-115559050192033970?l=tuxoo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tuxoo.blogspot.com/feeds/115559050192033970/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32733560&amp;postID=115559050192033970' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115559050192033970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32733560/posts/default/115559050192033970'/><link rel='alternate' type='text/html' href='http://tuxoo.blogspot.com/2006/08/erster-eintrag.html' title='Erster Eintrag....'/><author><name>Marco</name><uri>http://www.blogger.com/profile/17381723060361905201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp1.blogger.com/_natKa9IVmaw/R_N_kH8spaI/AAAAAAAAABg/l5tF3V5-tdo/S220/DSC_0030_hr_klein.jpg'/></author><thr:total>0</thr:total></entry></feed>
