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

<channel>
	<title>lost in thought</title>
	<atom:link href="http://joachim.weinbrenner.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://joachim.weinbrenner.name</link>
	<description>random thoughts from Joachim Weinbrenner</description>
	<lastBuildDate>Tue, 29 Jun 2010 19:44:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Java 4-Ever</title>
		<link>http://joachim.weinbrenner.name/2010/06/29/java-4-ever/</link>
		<comments>http://joachim.weinbrenner.name/2010/06/29/java-4-ever/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 19:44:48 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=294</guid>
		<description><![CDATA[Einfach genial, das bedarf keines weiteren Kommentars!

]]></description>
			<content:encoded><![CDATA[<p>Einfach genial, das bedarf keines weiteren Kommentars!<br />
<object width="500" height="304"><param name="movie" value="http://www.youtube.com/v/A1zySeNpW20&#038;hl=de_DE&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/A1zySeNpW20&#038;hl=de_DE&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="304"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Java%204-Ever&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F06%2F29%2Fjava-4-ever%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/06/29/java-4-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vortrag auf dem Herbstcampus 2010</title>
		<link>http://joachim.weinbrenner.name/2010/06/14/vortrag-auf-dem-herbstcampus-2010/</link>
		<comments>http://joachim.weinbrenner.name/2010/06/14/vortrag-auf-dem-herbstcampus-2010/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 19:30:52 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[IceFaces]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[PrimeFaces]]></category>
		<category><![CDATA[RichFaces]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=288</guid>
		<description><![CDATA[Es freut mich sehr, dass ich auf dem kommenden Herbstcampus 2010 einen Vortrag halten darf. Ich werde die drei bekannten AJAX-JSF Frameworks PrimeFaces, RichFaces und IceFaces unter die Lupe nehmen und vergleichen.
Der Vortrag &#8220;Der lachende Dritte? &#8211; PrimeFaces im Vergleich zu RichFaces und IceFaces&#8221; findet am Montag, 13. 9., 11:20 – 12:30 Uhr statt.
Gespannt bin ich auch auf [...]]]></description>
			<content:encoded><![CDATA[<p>Es freut mich sehr, dass ich auf dem kommenden Herbstcampus 2010 einen Vortrag halten darf. Ich werde die drei bekannten AJAX-JSF Frameworks <a href="http://www.primefaces.org/" target="_blank">PrimeFaces</a>, <a href="http://www.jboss.org/richfaces" target="_blank">RichFaces</a> und <a href="http://www.icefaces.org/main/home/" target="_blank">IceFaces</a> unter die Lupe nehmen und vergleichen.</p>
<p>Der Vortrag <strong>&#8220;Der lachende Dritte? &#8211; PrimeFaces im Vergleich zu RichFaces und IceFaces&#8221;</strong> findet am Montag, 13. 9., 11:20 – 12:30 Uhr statt.</p>
<p>Gespannt bin ich auch auf das umfangreiche Konferenzprogramm mit zahlreichen interessanten Vorträgen und Referenten. Ausführliche Informationen zur Konferenz findet man unter <a href="http://www.herbstcampus.de/hc10/index.html" target="_blank">http://www.herbstcampus.de/hc10/index.html</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Vortrag%20auf%20dem%20Herbstcampus%202010&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F06%2F14%2Fvortrag-auf-dem-herbstcampus-2010%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/06/14/vortrag-auf-dem-herbstcampus-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problem: rich:editor eingebettet in rich:modalPanel</title>
		<link>http://joachim.weinbrenner.name/2010/04/22/problem-richeditor-eingebettet-in-richmodalpanel/</link>
		<comments>http://joachim.weinbrenner.name/2010/04/22/problem-richeditor-eingebettet-in-richmodalpanel/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:18:12 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[RichFaces]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=280</guid>
		<description><![CDATA[Mal wieder so eine kleine Sache, an der man unnötig hängen bleibt und auf deren Lösung man ohne googeln kaum kommen kann.
Ausgangsstellung: Ich hatte in meiner JSF-Oberfläche mit RichFaces einen modalen Dialog eingebaut, der unter anderem einen Editor enthalten soll. Eigentlich ganz easy, nichts besonderes. Der Code sah vereinfacht und gekürzt in etwa so aus:

1
2
3
4
5
6
7
8
9
10
&#60;rich:modalPanel [...]]]></description>
			<content:encoded><![CDATA[<p>Mal wieder so eine kleine Sache, an der man unnötig hängen bleibt und auf deren Lösung man ohne googeln kaum kommen kann.</p>
<p>Ausgangsstellung: Ich hatte in meiner JSF-Oberfläche mit <a href="http://www.jboss.org/richfaces" target="_blank">RichFaces</a> einen modalen Dialog eingebaut, der unter anderem einen Editor enthalten soll. Eigentlich ganz easy, nichts besonderes. Der Code sah vereinfacht und gekürzt in etwa so aus:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:modalPanel</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;editpanel&quot;</span> <span style="color: #000066;">autosized</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h:form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		... (andere Komponenten) ...
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:editor</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;editor&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;400&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;#{myBean.dialogBeschreibung}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a4j:commandButton</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Speichern&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;#{myBean.dialogSpeichern}&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">oncomplete</span>=<span style="color: #ff0000;">&quot;#{rich:component('editpanel')}.hide();&quot;</span> <span style="color: #000066;">reRender</span>=<span style="color: #ff0000;">&quot;treepanel&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a4j:commandButton</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Abbrechen&quot;</span></span>
<span style="color: #009900;">			<span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">&quot;#{rich:component('editpanel')}.hide();return false;&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h:form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rich:modalPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Eigentlich alles ok, oder? Also gut, &#8216;mvn tomcat:redeploy&#8217; &#8230; ein bisschen einwirken lassen &#8230; Firefox auf, testen. Der Dialog springt sofort auf, aber der Editor ist tot, nicht mal den Cursor kriegt man zum blinken. Und auch der &#8216;Speichern&#8217;-Knopf zeigt keine Reaktion.</p>
<p>Die Lösung (besser: den Workaround) liefert JBoss.org Issue <a href="https://jira.jboss.org/jira/browse/RF-7477" target="_blank">RF-7477</a> bzw <a href="https://jira.jboss.org/jira/browse/RF-5268" target="_blank">RF-5268</a>: Im modalPanel ist domElementAttachment=&#8221;parent&#8221; zu setzen. Zeile 1 von oben sieht dann also so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rich:modalPanel</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;editpanel&quot;</span> <span style="color: #000066;">domElementAttachment</span>=<span style="color: #ff0000;">&quot;parent&quot;</span> <span style="color: #000066;">autosized</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>Was lernt man daraus? Keine Ahnung, wohl das was wir schon oft gelernt haben: &#8220;Kaum macht mans richtig, schon gehts &#8230;&#8221;</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Problem%3A%20rich%3Aeditor%20eingebettet%20in%20rich%3AmodalPanel&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F04%2F22%2Fproblem-richeditor-eingebettet-in-richmodalpanel%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/04/22/problem-richeditor-eingebettet-in-richmodalpanel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimpleHTTPServer, bring mein Verzeichnis online!</title>
		<link>http://joachim.weinbrenner.name/2010/03/30/simplehttpserver-bring-mein-verzeichnis-online/</link>
		<comments>http://joachim.weinbrenner.name/2010/03/30/simplehttpserver-bring-mein-verzeichnis-online/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 13:55:43 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=266</guid>
		<description><![CDATA[Heute schreibe ich hier einen sehr nützlichen Shell-Einzeiler mit Python auf:

$ python -m SimpleHTTPServer

Dieser Befehl startet einen Webserver, der das aktuelle Verzeichnis ins Netz bringt. Standardmäßig ist der Server auf Port 8000 erreichbar (einen alternativen Port gibt man einfach hinten dran: python -m SimpleHTTPServer 8888). Hat man den obigen Befehl gestartet (die Shell gibt nun [...]]]></description>
			<content:encoded><![CDATA[<p>Heute schreibe ich hier einen sehr nützlichen Shell-Einzeiler mit Python auf:</p>
<pre>
$ python -m SimpleHTTPServer
</pre>
<p>Dieser Befehl startet einen Webserver, der das aktuelle Verzeichnis ins Netz bringt. Standardmäßig ist der Server auf Port 8000 erreichbar (einen alternativen Port gibt man einfach hinten dran: <em>python -m SimpleHTTPServer 8888</em>). Hat man den obigen Befehl gestartet (die Shell gibt nun das Zugriffsprotokoll aus), so kann man im Browser mit Aufruf von</p>
<pre>
http://localhost:8000  (bzw. http://<em>rechnername</em>:8000)
</pre>
<p>das Ergebnis betrachten. Sollte das Verzeichnis eine index.html bzw. index.htm enthalten, so wird diese als Webseite angezeigt, sonst werden die Ordner und Dateien des Verzeichnisses aufgelistet. In die Ordner kann man reinwechseln, oberste Ebene bleibt aber das Verzeichnis aus dem gestartet wurde.</p>
<p>Die möglichen Anwendungsfälle, die sich einem da im Alltag auftun sind unaufzählbar und es bleibt dem Leser überlassen, seine kreativen Einsatzzwecke zu entdecken und gerne in den Kommentaren kund zu tun.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=SimpleHTTPServer%2C%20bring%20mein%20Verzeichnis%20online%21&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F03%2F30%2Fsimplehttpserver-bring-mein-verzeichnis-online%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/03/30/simplehttpserver-bring-mein-verzeichnis-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UMLGraph in Javadoc mit Maven</title>
		<link>http://joachim.weinbrenner.name/2010/03/29/umlgraph-in-javadoc-mit-maven/</link>
		<comments>http://joachim.weinbrenner.name/2010/03/29/umlgraph-in-javadoc-mit-maven/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 19:36:50 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=255</guid>
		<description><![CDATA[Mit UMLGraph steht ein wunderbares, einfaches Tool zur Verfügung, um UML Klassendiagramme in die Javadoc Dokumentation einzufügen. Diese sind klickbar, d.h. man kann durch die Diagramme navigieren. Wer seine Projekte mit Maven erzeugt, integriert gerne auch die Javadoc-Erstellung in den Maven-Build. Und UMLGraph lässt sich da gleich ganz einfach mitnehmen.
Hier ein Beispiel, wie eine entsprechende [...]]]></description>
			<content:encoded><![CDATA[<p>Mit <a href="http://www.umlgraph.org/" target="_blank">UMLGraph</a> steht ein wunderbares, einfaches Tool zur Verfügung, um UML Klassendiagramme in die Javadoc Dokumentation einzufügen. Diese sind klickbar, d.h. man kann durch die Diagramme navigieren. Wer seine Projekte mit Maven erzeugt, integriert gerne auch die Javadoc-Erstellung in den Maven-Build. Und UMLGraph lässt sich da gleich ganz einfach mitnehmen.</p>
<p>Hier ein Beispiel, wie eine entsprechende Reporting-Sektion im pom.xml aussehen könnte:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reporting<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;outputDirectory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/ein/sinnvoller/pfad<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/outputDirectory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.apache.maven.plugins<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>maven-javadoc-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;doclet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>gr.spinellis.umlgraph.doclet.UmlGraphDoc<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/doclet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;docletArtifact<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>gr.spinellis<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>UmlGraph<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>4.6<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/docletArtifact<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;additionalparam<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
           -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify
           -postfixpackage -nodefontsize 9
           -nodefontpackagesize 7
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/additionalparam<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reporting<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Und das Ergebnis kann sich sehen lassen:<br />
<img src="http://joachim.weinbrenner.name/wp-content/uploads/umlgraph.png" alt="" title="umlgraph" width="470" height="335" class="aligncenter size-full wp-image-258" /></p>
<p>Wer tiefer in die Materie, Parameter und Möglichkeiten von UMLGraph einsteigen möchte findet in der <a href="http://www.umlgraph.org/doc/index.html" target="_blank">Onlinedokumentation</a> ausführliche Hilfestellung.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=UMLGraph%20in%20Javadoc%20mit%20Maven&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F03%2F29%2Fumlgraph-in-javadoc-mit-maven%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/03/29/umlgraph-in-javadoc-mit-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theory of Constraints</title>
		<link>http://joachim.weinbrenner.name/2010/03/15/theory-of-constraints/</link>
		<comments>http://joachim.weinbrenner.name/2010/03/15/theory-of-constraints/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 19:47:28 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[JUG]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=250</guid>
		<description><![CDATA[Das JUG ErN Meeting am letzten Donnerstag war etwas anders als die üblichen &#8220;Wir setzen uns mal rein und hören, was der da vorne sagt&#8221;-JUG-Treffen. Diesmal mussten die Teilnehmer mitspielen! Pierluigi Pugliese und Martin Heider erklärten anhand eines Spiels die &#8220;Theory of Constraints&#8221;.
Diese Theorie besagt, dass es in jedem System genau einen Flaschenhals (Constraint) gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Das <a href="https://www.xing.com/net/pri62ebf3x/jugern" target="_blank">JUG ErN</a> Meeting am letzten Donnerstag war etwas anders als die üblichen &#8220;Wir setzen uns mal rein und hören, was der da vorne sagt&#8221;-JUG-Treffen. Diesmal mussten die Teilnehmer mitspielen! <a href="http://twitter.com/p_pugliese" target="_blank">Pierluigi Pugliese</a> und <a href="http://martinheider.wordpress.com/" target="_blank">Martin Heider</a> erklärten anhand eines Spiels die <a href="http://de.wikipedia.org/wiki/Theory-of-Constraints" target="_blank">&#8220;Theory of Constraints&#8221;</a>.</p>
<p>Diese Theorie besagt, dass es in jedem System genau einen Flaschenhals (Constraint) gibt und gibt 5 Schritte vor, wie man den Engpass möglichst weit aufmacht, sprich entschärft.</p>
<p>Hier die begleitenden Folien, in denen auch das Spiel erläutert wird:<br />
<img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNjg2ODE2NzAxMDMmcHQ9MTI2ODY4MTY4MjExMiZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89NWE3OTliYzE1NTc2/NDMwYWJjMTYyZTQxOTBjMTljYzMmb2Y9MA==.gif" />
<div style="width:425px" id="__ss_3410924"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ppugliese/auf-diaet-nuernberg-11-march-2010" title="Auf Diaet, Nuernberg 11 March 2010">Auf Diaet, Nuernberg 11 March 2010</a></strong><object width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aufdiaetnuernberg20100311-100312095856-phpapp01&#038;stripped_title=auf-diaet-nuernberg-11-march-2010" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aufdiaetnuernberg20100311-100312095856-phpapp01&#038;stripped_title=auf-diaet-nuernberg-11-march-2010" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ppugliese">Pierluigi Pugliese</a>.</div>
</div>
<p>Und so wurden fleißig Boote und Hüte gefaltet und von Runde zu Runde war tatsächlich ein Fortschritt zu sehen.<br />
Fazit: Ein lustiger Abend mit einem sehr einprägsamen Beispiel &#8211; so macht Lernen Spaß.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Theory%20of%20Constraints&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F03%2F15%2Ftheory-of-constraints%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/03/15/theory-of-constraints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zeichensatz festlegen bei generierten E-Mails</title>
		<link>http://joachim.weinbrenner.name/2010/02/10/zeichensatz-festlegen-bei-generierten-e-mails/</link>
		<comments>http://joachim.weinbrenner.name/2010/02/10/zeichensatz-festlegen-bei-generierten-e-mails/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:29:27 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEAM]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=245</guid>
		<description><![CDATA[Programmierer habens oft eilig. Und sie gehen den Weg des geringsten Widerstands, was einfach geht, wird auch einfach gemacht. Bekanntes Beispiel: das Versenden von E-Mails aus der Applikation heraus, z.B. für Bestätigungsmails, Formularmailer usw.; in nahezu jeder Sprache gibt es dafür einfache Klassen oder Befehle, die eine E-Mail erzeugen und versenden.
Leider wird dabei häufig vergessen, [...]]]></description>
			<content:encoded><![CDATA[<p>Programmierer habens oft eilig. Und sie gehen den Weg des geringsten Widerstands, was einfach geht, wird auch einfach gemacht. Bekanntes Beispiel: das Versenden von E-Mails aus der Applikation heraus, z.B. für Bestätigungsmails, Formularmailer usw.; in nahezu jeder Sprache gibt es dafür einfache Klassen oder Befehle, die eine E-Mail erzeugen und versenden.</p>
<p>Leider wird dabei häufig vergessen, den Zeichensatz der generierten Mail richtig (bzw. überhaupt) zu setzen. Hat eine Mail im Header kein Feld &#8220;Content-Type:&#8221; gesetzt, so handelt man sich zwei gravierende Probleme ein:</p>
<ol>
<li>Der empfangende Client kann die Mail nicht richtig interpretieren, da er nicht weiß, in welcher Codierung der Inhalt der Mail ist. Das hat zur Folge, dass Umlaute, Sonderzeichen usw. nicht richtig angezeigt werden.</li>
<li>viele Spam-Filter werten dies als Negativ-Punkt, somit steigt die Wahrscheinlichkeit, dass die Mail ihren Empfänger nicht erreicht.</li>
</ol>
<p>Ich schreibe hier mal beispielhaft für PHP, Java, Spring und SEAM, wie man den Header um die Content-Type Angabe ergänzen kann. Dabei beschränke ich mich der Einfachheit halber auf eine simple Textmail, also kein Multipart mit HTML oder Attachment (Beispiele dazu lassen sich schnell im Web finden).</p>
<p>PHP:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$header</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'MIME-Version: 1.0'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'Content-type: text/plain; charset=UTF-8'</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$strFrom</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mail</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$strEmpfaenger</span><span style="color: #339933;">,</span> <span style="color: #000088;">$strSubject</span><span style="color: #339933;">,</span> <span style="color: #000088;">$strMailtext</span><span style="color: #339933;">,</span> <span style="color: #000088;">$header</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Die Mail konnte nicht versendet werden.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Java:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">MimeMessage message <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MimeMessage<span style="color: #009900;">&#40;</span>session<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
message.<span style="color: #006633;">setHeader</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type&quot;</span>, <span style="color: #0000ff;">&quot;text/plain&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;; charset=&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Spring:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">MimeMessage mimeMessage <span style="color: #339933;">=</span> ...
<span style="color: #006633;">MimeMessageHelper</span> message <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MimeMessageHelper<span style="color: #009900;">&#40;</span>mimeMessage, <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>SEAM: (ein Facelet-Template, das vom SEAM gerendert wird)</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;m:message</span> <span style="color: #000066;">charset</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   ...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/m:message<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Die Beispiele sind bewusst kurz gehalten, dass Thema E-Mail-Programmierung kann wohl Bücher füllen. In erster Linie will ich Entwickler motivieren, bei aller Eile auch an die Kleinigkeiten zu denken.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Zeichensatz%20festlegen%20bei%20generierten%20E-Mails&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F02%2F10%2Fzeichensatz-festlegen-bei-generierten-e-mails%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/02/10/zeichensatz-festlegen-bei-generierten-e-mails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jsolutions.de runderneuert</title>
		<link>http://joachim.weinbrenner.name/2010/02/01/jsolutions-de-runderneuert/</link>
		<comments>http://joachim.weinbrenner.name/2010/02/01/jsolutions-de-runderneuert/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 05:50:46 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=236</guid>
		<description><![CDATA[An dieser Stelle mal ein bisschen offtopic Werbung in eigener Sache: Meine Firmenwebseite http://www.jsolutions.de/ ist in komplett überarbeiteter Form neu online gegangen. In den letzten Jahren war leider nicht viel Zeit, sich um die eigene Präsenz im Web konsequent zu kümmern und es war mehr als überfällig, die Darstellung der Firma an deren Entwicklung anzupassen.
Ich [...]]]></description>
			<content:encoded><![CDATA[<p>An dieser Stelle mal ein bisschen offtopic Werbung in eigener Sache: Meine Firmenwebseite <a href="http://www.jsolutions.de/" target="_blank">http://www.jsolutions.de/</a> ist in komplett überarbeiteter Form neu online gegangen. In den letzten Jahren war leider nicht viel Zeit, sich um die eigene Präsenz im Web konsequent zu kümmern und es war mehr als überfällig, die Darstellung der Firma an deren Entwicklung anzupassen.</p>
<p>Ich hoffe das neue Design ist gelungen &#8211; Kritik kann ja gerne hier in den Kommentaren hinterlassen werden!</p>
<p>Wer über Neues und Interessantes von und mit jsolutions im Bilde bleiben möchte kann via Twitter folgen: <a href="http://twitter.com/jsolutions_de" target="_blank">http://twitter.com/jsolutions_de</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=jsolutions.de%20runderneuert&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2010%2F02%2F01%2Fjsolutions-de-runderneuert%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2010/02/01/jsolutions-de-runderneuert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Icons für Eclipse</title>
		<link>http://joachim.weinbrenner.name/2009/11/07/icons-fur-eclipse/</link>
		<comments>http://joachim.weinbrenner.name/2009/11/07/icons-fur-eclipse/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 19:28:34 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Entwicklertools]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=223</guid>
		<description><![CDATA[Auf meinen Entwicklungskisten gibt es meist mindestens zwei Installationen von Eclipse. Die eine ist für meine Java-Entwicklung angepasst, die andere für das PHP-Zeugs. D.h. ich habe auch zwei Knöpfchen in meinem Startpanel. Und hier geht das Problem los: die Standard-Icons sehen leider identisch aus.
Meine Lösung war pragmatisch: Ich hab mir einfach zwei entsprechende Icons &#8220;gegimpt&#8220;:
 [...]]]></description>
			<content:encoded><![CDATA[<p>Auf meinen Entwicklungskisten gibt es meist mindestens zwei Installationen von <a href="http://eclipse.org/" target="_blank">Eclipse</a>. Die eine ist für meine Java-Entwicklung angepasst, die andere für das PHP-Zeugs. D.h. ich habe auch zwei Knöpfchen in meinem Startpanel. Und hier geht das Problem los: die Standard-Icons sehen leider identisch aus.</p>
<p>Meine Lösung war pragmatisch: Ich hab mir einfach zwei entsprechende Icons &#8220;<a href="http://www.gimp.org/" target="_blank">gegimpt</a>&#8220;:</p>
<p><img class="alignleft size-full wp-image-224" title="eclipse-icon-java" src="http://joachim.weinbrenner.name/wp-content/uploads/eclipse-icon-java.png" alt="eclipse-icon-java" width="48" height="48" /> <img class="alignleft size-full wp-image-225" title="eclipse-icon-php" src="http://joachim.weinbrenner.name/wp-content/uploads/eclipse-icon-php.png" alt="eclipse-icon-php" width="48" height="48" /></p>
<p>Ok, besonders hübsch sind sie nicht (bin ja kein Grafiker und hatte auch keine Lust die groß zu verfeinern) aber sie erfüllen ihren Zweck!</p>
<p>Wer sie gerne verwenden möchte, nur zu, deswegen hab ich sie ja hier veröffentlicht! Fertige xpm-Dateien (und die hier abgebildeten png&#8217;s) kann man <a href="http://www.wuala.com/jsolutions/public/icons/eclipse?lang=de&amp;mode=list" target="_blank">hier herunterladen</a>.</p>
<p>Am Rande bemerkt: Derzeit tut sich sehr viel in Sachen Java-Entwicklungsumgebungen. <a href="http://www.netbeans.org/" target="_blank">Netbeans</a> hat sich sehr gut entwickelt, eine Testinstallation (6.8 beta) hat mich begeistert. Und <a href="http://www.jetbrains.com/idea/nextversion/free_java_ide.html" target="_blank">Inellij Idea</a> gibt es jetzt auch in einer kostenlosen &#8216;Community Edition&#8217;. Aber das ist alles vielleicht mal einen eigenen Blog-Eintrag wert.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Icons%20f%C3%BCr%20Eclipse&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F11%2F07%2Ficons-fur-eclipse%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/11/07/icons-fur-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate Validator 4 &#8211; Validierung, wo sie hin gehört</title>
		<link>http://joachim.weinbrenner.name/2009/10/24/hibernate-validator-4-validierung-wo-sie-hin-gehort/</link>
		<comments>http://joachim.weinbrenner.name/2009/10/24/hibernate-validator-4-validierung-wo-sie-hin-gehort/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 15:54:48 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=218</guid>
		<description><![CDATA[Vor gut zwei Wochen erschien die Version 4 des Hibernate Validators. Dabei handelt es sich um eine komplett neue Codebasis, es ist nun die Referenzimplementierung des JSR-303: Bean Validation. Der Hauptvorteil der Benutzung von Hibernate Validator ist, dass die Überprüfungen da stattfinden, wo sie maßgeblich sind, nämlich im Model. Statt also in allen Schichten (GUI/Web, [...]]]></description>
			<content:encoded><![CDATA[<p>Vor gut zwei Wochen erschien die Version 4 des <a href="https://www.hibernate.org/412.html" target="_blank">Hibernate Validators</a>. Dabei handelt es sich um eine komplett neue Codebasis, es ist nun die Referenzimplementierung des <a href="http://jcp.org/en/jsr/detail?id=303" target="_blank">JSR-303: Bean Validation</a>. Der Hauptvorteil der <a href="http://docs.jboss.org/hibernate/stable/validator/reference/en/html_single/" target="_blank">Benutzung</a> von Hibernate Validator ist, dass die Überprüfungen da stattfinden, wo sie maßgeblich sind, nämlich im Model. Statt also in allen Schichten (GUI/Web, Business Layer, Data Acess, &#8230;) eine eigene Prüfung zu implementieren (und sich damit leicht Inkonsistenzen und doppelten Code einzuhandeln) erfolgt die Validierung ausschließlich in den Domänen Objekten.</p>
<p>Die Validierung erfogt über Constraints, die als Annotationen angegeben werden. Es sind schon einige Constraints enthalten, für besondere Zwecke lassen sich eigene erstellen. Hier mal ein einfaches Beispiel:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// (imports usw. weggelassen)</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Kunde <span style="color: #009900;">&#123;</span>
&nbsp;
    @NotNull<span style="color: #009900;">&#40;</span>message <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Ein Kunde muss einen Namen haben&quot;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> nachname<span style="color: #339933;">;</span>
&nbsp;
    @Past<span style="color: #009900;">&#40;</span>message <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Geboren in der Zukunft?&quot;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Date</span> geburtstag<span style="color: #339933;">;</span>
&nbsp;
    @Size<span style="color: #009900;">&#40;</span>min<span style="color: #339933;">=</span><span style="color: #cc66cc;">6</span>, max<span style="color: #339933;">=</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span>
    @NotNull
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> passwort<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Getter Setter usw.</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Highlights der Version 4 sind:</p>
<ul>
<li>Native Integration in JPA 2 und JSF 2 (für SEAM Experten nichts neues, hat dort schon mit Version 3 von Hibernate Validator funktioniert)</li>
<li>Groups: Es lassen sich Gruppen definieren, welche die Validierung bestimmter Constraints anstoßen</li>
<li>Typsicherheit: Es wird sichergestellt, dass ein Constraint zum Datentyp des Properties passt.</li>
<li>stark verbesserte Testsuite</li>
<li>uvm. &#8230;</li>
</ul>
<p>Noch ein Hinweis: Hibernate Validator kann unabhängig von einer Verwendung des Hibernate ORM eingesetzt werden.</p>
<p>Meine Empfehlung: Unbedingt anschauen!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Hibernate%20Validator%204%20%26%238211%3B%20Validierung%2C%20wo%20sie%20hin%20geh%C3%B6rt&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F10%2F24%2Fhibernate-validator-4-validierung-wo-sie-hin-gehort%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/10/24/hibernate-validator-4-validierung-wo-sie-hin-gehort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>inittab/respawn unter Ubuntu</title>
		<link>http://joachim.weinbrenner.name/2009/10/18/inittabrespawn-unter-ubuntu/</link>
		<comments>http://joachim.weinbrenner.name/2009/10/18/inittabrespawn-unter-ubuntu/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 06:09:39 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=211</guid>
		<description><![CDATA[Kürzlich hatte ich einen Prozess, der auf meinem Laptop unter Ubuntu Linux immer laufen sollte. Leider ist er mir aus unbekannten Gründen immer wieder abgestürzt, besonders nach dem Aufwecken aus dem Ruhezustand.
Egal, dachte ich mir, trags in die inittab ein &#8211; doch halt, unter Ubuntu ist das ein bisschen anders. Ubuntu verwendet upstart. Aber keine [...]]]></description>
			<content:encoded><![CDATA[<p>Kürzlich hatte ich einen Prozess, der auf meinem Laptop unter Ubuntu Linux immer laufen sollte. Leider ist er mir aus unbekannten Gründen immer wieder abgestürzt, besonders nach dem Aufwecken aus dem Ruhezustand.</p>
<p>Egal, dachte ich mir, trags in die inittab ein &#8211; doch halt, unter Ubuntu ist das ein bisschen anders. Ubuntu verwendet <a href="http://upstart.ubuntu.com/" target="_blank">upstart</a>. Aber keine Panik, das ist ganz einfach. Um einen Prozess zu starten, muss lediglich eine Datei in /etc/event.d angelegt werden. Soll dieser Prozess nach einer Beendigung (z.B. o.g. &#8220;Absturz&#8221;) automatisch wiedergestartet werden, muss das Schlüsselwörtchen &#8216;respawn&#8217; enthalten sein.</p>
<p>Am einfachsten kopiert man sich die Datei /etc/event.d/tty2 als Vorlage und ändert dann in der letzten Zeile den exec Befehl.</p>
<p>Die Datei sollte dann etwa so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">start on runlevel <span style="color: #000000;">2</span>
start on runlevel <span style="color: #000000;">3</span>
&nbsp;
stop on runlevel <span style="color: #000000;">0</span>
stop on runlevel <span style="color: #000000;">1</span>
stop on runlevel <span style="color: #000000;">4</span>
stop on runlevel <span style="color: #000000;">5</span>
stop on runlevel <span style="color: #000000;">6</span>
&nbsp;
respawn
<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #000000; font-weight: bold;">/</span>kompletterpfad<span style="color: #000000; font-weight: bold;">/</span>befehl</pre></div></div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=inittab%2Frespawn%20unter%20Ubuntu&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F10%2F18%2Finittabrespawn-unter-ubuntu%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/10/18/inittabrespawn-unter-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JSF2 Linksammlung</title>
		<link>http://joachim.weinbrenner.name/2009/09/13/jsf2-linksammlung/</link>
		<comments>http://joachim.weinbrenner.name/2009/09/13/jsf2-linksammlung/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 19:51:03 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=205</guid>
		<description><![CDATA[Die neue Version von JSF (Java Server Faces) hat einige Verbesserungen mit sich gebracht. Hier sammle ich eine kleine Liste von Links zur Einführung in die Materie, die ich aktualisiere, wenn ich auf etwas Interessantes stoße.

Andy Schwartz’s Weblog &#8211; What’s New in JSF 2? (exzellente Übersicht!)
Max Katz: Learning JSF2: Managed beans (erster Teil einer Einführungsserie)
Max [...]]]></description>
			<content:encoded><![CDATA[<p>Die neue Version von JSF (Java Server Faces) hat einige Verbesserungen mit sich gebracht. Hier sammle ich eine kleine Liste von Links zur Einführung in die Materie, die ich aktualisiere, wenn ich auf etwas Interessantes stoße.</p>
<ul>
<li><a href="http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/" target="_blank">Andy Schwartz’s Weblog &#8211; What’s New in JSF 2?</a> (exzellente Übersicht!)</li>
<li><a href="http://mkblog.exadel.com/jsf/learning-jsf2-managed-beans/" target="_blank">Max Katz: Learning JSF2: Managed beans</a> (erster Teil einer Einführungsserie)</li>
<li><a href="http://mkblog.exadel.com/jsf/learning-jsf2-navigation/" target="_blank">Max Katz: Learning JSF2: Navigation</a> (zweiter Teil der Einführungsserie)</li>
<li><a href="http://mkblog.exadel.com/jsf/learning-jsf-2-ajax-in-jsf-using-fajax-tag/" target="_blank">Max Katz: Learning JSF2: Ajax in JSF &#8211; using f:ajax tag</a> (Teil 3)</li>
<li><a href="http://weblogs.java.net/blog/edburns/archive/2009/10/15/jsf2-facelet-tag-handlers" target="_blank">Ed Burns: JSF2 Facelet Tag Handlers</a></li>
<li><a href="http://info.rmatics.org/2009/10/17/jsf2_tutorial_0/" target="_blank">Adventures in JSF 2.0: Hello World Tutorial using Maven 2, JSF 2, Facelets 2, and Weld</a></li>
<li><a href="http://jsfatwork.irian.at/semistatic/introduction.html" target="_blank">Kostenloses Online-Buch zu JSF 2.0 von irian.at </a></li>
<li><a href="http://www.javaserverfaces.org/" target="_blank">www.javaserverfaces.org</a> &#8211; das soll <em>die</em> Seite als Einstieg für alle JSF-Programmierer werden! Entdeckt habe ich sie via <a href="http://ocpsoft.com/java/jsf-java/jsf2-engaging-the-community/" target="_blank">http://ocpsoft.com/java/jsf-java/jsf2-engaging-the-community/</a> (dort findet man im Übrigen <a href="http://ocpsoft.com/prettyfaces/" target="_blank">PrettyFaces</a>, eine Erweiterung für &#8220;schöne&#8221; URLs bei JSF-Anwendungen)</li>
</ul>
<p>To be continued &#8230; (freue mich über jeden interessanten Link!!!)</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=JSF2%20Linksammlung&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F09%2F13%2Fjsf2-linksammlung%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/09/13/jsf2-linksammlung/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Apache: Zugriffsbeschränkung via htaccess</title>
		<link>http://joachim.weinbrenner.name/2009/08/07/apache-zugriffsbeschrankung-via-htaccess/</link>
		<comments>http://joachim.weinbrenner.name/2009/08/07/apache-zugriffsbeschrankung-via-htaccess/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 10:01:20 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=199</guid>
		<description><![CDATA[Gerade eben musste ich es mal wieder einrichten: Zugriffskontrolle auf ein Verzeichnis im Apache. Dazu hatte ich vor Jahren auf einer meiner Uralt-Webseiten schon mal einen Artikel geschrieben. Den re-publiziere ich hier in (praktisch) unüberarbeiteter Form:
Der htaccess-Mechanismus erlaubt eine verzeichnisorientierte Zugriffsbeschränkung über eine Authentifizierung. htaccess verlangt normalerweise einen gütigen Benutzername und Passwort, um auf dieses [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade eben musste ich es mal wieder einrichten: Zugriffskontrolle auf ein Verzeichnis im Apache. Dazu hatte ich vor Jahren auf einer meiner Uralt-Webseiten schon mal einen Artikel geschrieben. Den re-publiziere ich hier in (praktisch) unüberarbeiteter Form:</p>
<p>Der htaccess-Mechanismus erlaubt eine verzeichnisorientierte Zugriffsbeschränkung über eine Authentifizierung. htaccess verlangt normalerweise einen gütigen Benutzername und Passwort, um auf dieses Verzeichnis (und seine Unterverzeichnisse) zugreifen zu dürfen.<br />
Folgende Dinge sind zu tun, um ein Verzeichnis zu schützen:</p>
<p><strong>1. in der httpd.conf:</strong><br />
htaccess muss für das Verzeichnis erlaubt werden. Dazu ist die Direktive AllowOveride All zu setzen. Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Directory</span> /pfad/apache/htdocs/diesesverzeichnis<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    AllowOveride All
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Directory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>2. Anlegen der Datei .htaccess:</strong><br />
Im zu schützenden Verzeichnis wird die Datei angelegt (führenden Punkt nicht vergessen, dies ist eine versteckte Datei!):</p>

<div class="wp_syntax"><div class="code"><pre class="brainfuck" style="font-family:monospace;">AuthName &quot;Dies ist der Login-Bereich von Fritzchen&quot;
AuthType Basic
AuthUserFile /pfad/public/htdocs/login/.htpasswd
require valid-user</pre></div></div>

<p><strong>3. Anlegen der Datei .htpasswd:</strong><br />
Das Anlegen dieser Datei geschieht mit dem htpasswd-Befehl [update]bei Apache2 mit dem korrelierenden Befehl htpasswd2[/update]. Da die Passwörter verschlüsselt gespeichert werden, kann die Datei nicht von Hand erstellt werden.</p>
<p>Wir erzeugen die Datei z.B. mit folgendem Befehl:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ htpasswd <span style="color: #660033;">-c</span> .htpasswd ersterbenutzer</pre></div></div>

<p>Für jeden weiteren Benutzer rufen wir den Befehl ohne &#8220;create&#8221; auf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ htpasswd .htpasswd weitererbenutzer</pre></div></div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Apache%3A%20Zugriffsbeschr%C3%A4nkung%20via%20htaccess&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F08%2F07%2Fapache-zugriffsbeschrankung-via-htaccess%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/08/07/apache-zugriffsbeschrankung-via-htaccess/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Optimieren der Speicherbelegung mit visualgc</title>
		<link>http://joachim.weinbrenner.name/2009/08/06/optimieren-der-speicherbelegung-mit-visualgc/</link>
		<comments>http://joachim.weinbrenner.name/2009/08/06/optimieren-der-speicherbelegung-mit-visualgc/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 18:50:06 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=195</guid>
		<description><![CDATA[Hier nur schnell zwei Links zu einem Tool, das ich mir merken muss: visualgc, ein GUI-basiertes Programm zur Optimierung der Speicherbelegung von Java-Programmen.

jvmstat 3.0 (enthält visualgc)
Artikel auf heise Developer.

Dank ans heise Team, für den schönen Artikel!
]]></description>
			<content:encoded><![CDATA[<p>Hier nur schnell zwei Links zu einem Tool, das ich mir merken muss: visualgc, ein GUI-basiertes Programm zur Optimierung der Speicherbelegung von Java-Programmen.</p>
<ul>
<li><a href="http://java.sun.com/performance/jvmstat/" target="_blank">jvmstat 3.0 (enthält visualgc)</a></li>
<li><a href="http://www.heise.de/developer/Feintuning-der-Speicherbelegung-von-Java-Programmen-mit-visualgc--/artikel/143134/0" target="_blank">Artikel auf heise Developer.</a></li>
</ul>
<p>Dank ans heise Team, für den schönen Artikel!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Optimieren%20der%20Speicherbelegung%20mit%20visualgc&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F08%2F06%2Foptimieren-der-speicherbelegung-mit-visualgc%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/08/06/optimieren-der-speicherbelegung-mit-visualgc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 No More! Kampagne</title>
		<link>http://joachim.weinbrenner.name/2009/08/05/ie6-no-more-kampagne/</link>
		<comments>http://joachim.weinbrenner.name/2009/08/05/ie6-no-more-kampagne/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 19:17:51 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=187</guid>
		<description><![CDATA[Genug ist genug! Über 8 Jahre alt ist der Internet Explorer Version 6 nun und muss leider immer noch in quasi allen Webprojekten berücksichtigt werden. Jeder Webentwickler weiß, welcher Aufwand dahinter steckt und wie sehr man sich mit dem Einsatz heutiger Technologien zurückhalten muss, nur damit alles auch bei dem alten Herrn noch hübsch aussieht.
Dagegen [...]]]></description>
			<content:encoded><![CDATA[<p>Genug ist genug! Über 8 Jahre alt ist der Internet Explorer Version 6 nun und muss leider immer noch in quasi allen Webprojekten berücksichtigt werden. Jeder Webentwickler weiß, welcher Aufwand dahinter steckt und wie sehr man sich mit dem Einsatz heutiger Technologien zurückhalten muss, nur damit alles auch bei dem alten Herrn noch hübsch aussieht.</p>
<p>Dagegen wurde nun von verschiedenen Unternehmen eine kleine <a href="http://www.ie6nomore.com/" target="_blank">Kampagne</a> ins Leben gerufen, welche zum Ziel hat, den Anteil der IE6-Nutzer zu senken. Dazu stellen sie Webentwicklern einen kleinen <a href="http://www.ie6nomore.com/code-samples.html" target="_blank">Code-Schnipsel</a> zur Verfügung, der bei Verwendung von IE6 oder älter einen Hinweis ausgibt.</p>
<p><img class="alignnone size-full wp-image-188" title="ie6nomore" src="http://joachim.weinbrenner.name/wp-content/uploads/ie6nomore.png" alt="ie6nomore" width="442" height="59" /></p>
<p>Insgesamt finde ich die Idee sehr gut und habe daher auch die deutsche Version des Codes beigesteuert (aktuell noch nicht auf deren Webseite veröffentlicht). Freilich soll das keinesfalls die Lösung aller Probleme sein, es wird nach wie vor in kommenden Projekten eine Berücksichtigung des Dinosauriers geben (müssen), aber in kleineren Auftritten oder auf privaten Webseiten kann man so einen Hinweis sicher mal guten Gewissens anbringen.</p>
<p>Hier noch die ins Deutsche übersetzte Variante:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!--[if lt IE 7]&gt;
&lt;div style='border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 75px; position: relative;'&gt;
  &lt;div style='position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;'&gt;&lt;a href='#' onclick='javascript:this.parentNode.parentNode.style.display=&quot;none&quot;; return false;'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-cornerx.jpg' style='border: none;' alt='Diesen Hinweis schliessen'/&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;div style='width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;'&gt;
    &lt;div style='width: 75px; float: left;'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-warning.jpg' alt='Warnung!'/&gt;&lt;/div&gt;
    &lt;div style='width: 275px; float: left; font-family: Arial, sans-serif;'&gt;
      &lt;div style='font-size: 14px; font-weight: bold; margin-top: 12px;'&gt;Sie verwenden einen veralteten Browser&lt;/div&gt;
      &lt;div style='font-size: 12px; margin-top: 6px; line-height: 12px;'&gt;Um diese Seite optimal darzustellen, verwenden Sie bitte einen modernen Webbrowser.&lt;/div&gt;
    &lt;/div&gt;
    &lt;div style='width: 75px; float: left;'&gt;&lt;a href='http://www.firefox.com' target='_blank'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-firefox.jpg' style='border: none;' alt='Lade Firefox 3.5 herunter'/&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style='width: 75px; float: left;'&gt;&lt;a href='http://www.browserforthebetter.com/download.html' target='_blank'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-ie8.jpg' style='border: none;' alt='Lade Internet Explorer 8 herunter'/&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style='width: 73px; float: left;'&gt;&lt;a href='http://www.apple.com/safari/download/' target='_blank'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-safari.jpg' style='border: none;' alt='Lade Safari 4 herunter'/&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style='float: left;'&gt;&lt;a href='http://www.google.com/chrome' target='_blank'&gt;&lt;img src='http://www.ie6nomore.com/files/theme/ie6nomore-chrome.jpg' style='border: none;' alt='Lade Google Chrome herunter'/&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;![endif]--&gt;</pre></div></div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=IE6%20No%20More%21%20Kampagne&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F08%2F05%2Fie6-no-more-kampagne%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/08/05/ie6-no-more-kampagne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suchen und Ersetzen in MySQL-Datenbanken</title>
		<link>http://joachim.weinbrenner.name/2009/07/15/suchen-und-ersetzen-in-mysql-datenbanken/</link>
		<comments>http://joachim.weinbrenner.name/2009/07/15/suchen-und-ersetzen-in-mysql-datenbanken/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 07:57:06 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=181</guid>
		<description><![CDATA[Immer wieder kommt es vor, dass man in einer Datenbank einen String in allen Einträgen durch einen anderen ersetzen will. Da ich mir für MySQL die SQL-Anweisung nie merken kann und jedes mal Google bemühen muss, halte ich es hier mal fest:

UPDATE tabellenname SET feldname =
    REPLACE&#40;feldname, suchstring, neuerstring&#41;;

Beispiel: Eine Webseite wird [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder kommt es vor, dass man in einer Datenbank einen String in allen Einträgen durch einen anderen ersetzen will. Da ich mir für MySQL die SQL-Anweisung nie merken kann und jedes mal Google bemühen muss, halte ich es hier mal fest:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> tabellenname <span style="color: #993333; font-weight: bold;">SET</span> feldname <span style="color: #66cc66;">=</span>
    <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span>feldname<span style="color: #66cc66;">,</span> suchstring<span style="color: #66cc66;">,</span> neuerstring<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>Beispiel: Eine Webseite wird umgezogen und das &#8220;dumme&#8221; CMS hat alle Bildlinks in den Artikeln absolut als URL gespeichert:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">UPDATE</span> article <span style="color: #993333; font-weight: bold;">SET</span> articletext <span style="color: #66cc66;">=</span>
    <span style="color: #993333; font-weight: bold;">REPLACE</span><span style="color: #66cc66;">&#40;</span>articletext<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'www.altedomain.tld'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'www.neuedomain.tld'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Suchen%20und%20Ersetzen%20in%20MySQL-Datenbanken&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F07%2F15%2Fsuchen-und-ersetzen-in-mysql-datenbanken%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/07/15/suchen-und-ersetzen-in-mysql-datenbanken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTClient: Teste deine REST-Webservices</title>
		<link>http://joachim.weinbrenner.name/2009/06/22/restclient-teste-deine-rest-webservices/</link>
		<comments>http://joachim.weinbrenner.name/2009/06/22/restclient-teste-deine-rest-webservices/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 14:30:44 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Entwicklertools]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=173</guid>
		<description><![CDATA[Wieder mal ein sehr schönes Tool entdeckt: RESTClient von WizTools.org, ein Java Programm zum Testen von REST-basierten Webservices. Das Tool gibts in zwei Geschmacksrichtungen, einmal als GUI-Version und zum anderen als Cli Version für die Batch-Ausführung.
Herausragend ist die Integration von Groovy zum Schreiben von Testscripten. So lassen sich Unit-Tests nach bewährtem Muster ganz einfach für [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder mal ein sehr schönes Tool entdeckt: <a href="http://code.google.com/p/rest-client/" target="_blank">RESTClient</a> von <a href="http://wiztools.org/" target="_blank">WizTools.org</a>, ein Java Programm zum Testen von REST-basierten Webservices. Das Tool gibts in zwei Geschmacksrichtungen, einmal als GUI-Version und zum anderen als Cli Version für die Batch-Ausführung.</p>
<p>Herausragend ist die Integration von Groovy zum Schreiben von Testscripten. So lassen sich Unit-Tests nach bewährtem Muster ganz einfach für Webservices implementieren und die Entwicklung wird kontinuierlich getestet.</p>
<p>Hier noch ein <a href="http://download.indiwiz.com.s3.amazonaws.com/article/RESTClient.pdf" target="_blank">kleiner Artikel zu RESTClient</a> von Subhash Chandran mit Code-Beispielen.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=RESTClient%3A%20Teste%20deine%20REST-Webservices&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F06%2F22%2Frestclient-teste-deine-rest-webservices%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/06/22/restclient-teste-deine-rest-webservices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T3Blog in TemplaVoila-Seite integrieren</title>
		<link>http://joachim.weinbrenner.name/2009/06/09/t3blog-in-templavoila-seite-integrieren/</link>
		<comments>http://joachim.weinbrenner.name/2009/06/09/t3blog-in-templavoila-seite-integrieren/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:13:40 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[t3blog]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=159</guid>
		<description><![CDATA[Mit T3Blog gibt es seit Ende letzten Jahres eine sehr gute Blog-Lösung für TYPO3. Diese wollte ich auf einer Seite &#8220;schnell mal&#8221; integrieren, doch so einfach sollte es nicht sein, die Seite ist nämlich mit TemplaVoila aufgebaut und darauf ist T3Blog leider nicht vorbereitet.
Eine Recherche im Web bringt viele Fragen und nur wenige Antworten diesbezüglich, [...]]]></description>
			<content:encoded><![CDATA[<p>Mit <a href="http://typo3.org/extensions/repository/view/t3blog/current/" target="_blank">T3Blog</a> gibt es seit Ende letzten Jahres eine sehr gute Blog-Lösung für TYPO3. Diese wollte ich auf einer Seite &#8220;schnell mal&#8221; integrieren, doch so einfach sollte es nicht sein, die Seite ist nämlich mit TemplaVoila aufgebaut und darauf ist T3Blog leider nicht vorbereitet.</p>
<p>Eine Recherche im Web bringt viele Fragen und nur wenige Antworten diesbezüglich, doch so schwer war es dann auch wieder nicht. Hier beschreibe ich kurz und knapp, wie ich vorgegangen bin &#8211; dann kann ich beim nächsten Mal hier nachschlagen. Und ein Nächstes mal gibts bestimmt, denn die Extension gefällt mir sehr gut!</p>
<ol>
<li>Extension nach Anleitung installieren</li>
<li>Eine Seite &#8216;Blog&#8217; in der Seitenstruktur anlegen und unter &#8216;Optionen&#8217; -&gt; &#8216;Enthält Plugin&#8217; &#8216;T3Blog&#8217; einstellen</li>
<li>Eine Vorlage (Template) für die Seite anlegen und unter &#8216;Includes&#8217; die beiden Einträge &#8216;T3Blog main configuration&#8217; und &#8216;T3Blog functionalities on your website&#8217; hinzufügen.</li>
<li>In die TemplaVoila Konfiguration wechseln, dort bestehende DS/TO, die als Blog-Template dienen soll kopieren. Diese Kopie so ummappen, dass im Hauptinhaltsbereich statt der &#8216;Content Elements&#8217; &#8216;TypoScript Object Path&#8217; ausgewählt ist, als Name habe ich <em>lib.t3blog</em> genommen. Das restliche Mapping bleibt bestehen, so kann man (bei meiner Vorlage) in den Spalten links und rechts die Blog-Widgets einfügen.</li>
<li>Zurück zur Blog-Seite: Darunter eine neue Seite anlegen (im Menü versteckt oder Sysfolder). Auf dieser Seite das T3Blog-Widget blogList einfügen und die Id (uid in tt_content) dieses Elements merken. In meinem Beispiel 560.</li>
<li>Nun ins Setup der Vorlage der Blog-Seite wechseln und dort folgenden TS-Code eingeben:

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">lib.t3blog = RECORDS
lib.t3blog.source = 560
lib.t3blog.tables = tt_content</pre></div></div>

</li>
<li>Fertig &#8211; Viel Spaß beim bloggen!</li>
</ol>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=T3Blog%20in%20TemplaVoila-Seite%20integrieren&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F06%2F09%2Ft3blog-in-templavoila-seite-integrieren%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/06/09/t3blog-in-templavoila-seite-integrieren/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>RichFaces in neuer Version: 3.3.1 GA</title>
		<link>http://joachim.weinbrenner.name/2009/05/19/richfaces-in-neuer-version-331-ga/</link>
		<comments>http://joachim.weinbrenner.name/2009/05/19/richfaces-in-neuer-version-331-ga/#comments</comments>
		<pubDate>Tue, 19 May 2009 19:46:41 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[RichFaces]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=151</guid>
		<description><![CDATA[Das RichFaces Team hat die neue Version 3.3.1 GA veröffentlicht. In erster Linie ging es wohl darum, Bugs zu beseitigen, so wird stolz berichtet, dass über 1100 Probleme gelöst wurden. Dann gibts aber auch ein paar neue Features:

Elemente für das Seitenlayout (wie Header, Footer, Sidebar etc.)
Elemente für das Seitendesign unter Verwendung von Yahoo UI CSS [...]]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://www.jboss.org/jbossrichfaces/" target="_blank">RichFaces</a> Team hat die neue Version 3.3.1 GA veröffentlicht. In erster Linie ging es wohl darum, Bugs zu beseitigen, so wird <a href="http://in.relation.to/Bloggers/RichFaces331GAReleased" target="_blank">stolz berichtet</a>, dass über 1100 Probleme gelöst wurden. Dann gibts aber auch ein paar neue Features:</p>
<ul>
<li>Elemente für das Seitenlayout (wie Header, Footer, Sidebar etc.)</li>
<li>Elemente für das Seitendesign unter Verwendung von <a href="http://developer.yahoo.com/yui/grids/" target="_blank">Yahoo UI CSS Grid</a></li>
<li>Endlich ein Element für eine Farbauswahl (ColorPicker)</li>
</ul>
<p>Schon allein wegen der zahlreichen Bugfixes werde ich wohl in aktuellen Projekten auf die neue Version umstellen. Inwiefern ich die neuen Dinge zum Seitenlayout und -design brauchen kann, weiß ich noch nicht. Muss ich mir genauer ansehen, mein erster Eindruck ist, dass man da mit altbewährtem genau so gut fährt.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=RichFaces%20in%20neuer%20Version%3A%203.3.1%20GA&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F05%2F19%2Frichfaces-in-neuer-version-331-ga%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/05/19/richfaces-in-neuer-version-331-ga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter4J: Java-API für Twitter</title>
		<link>http://joachim.weinbrenner.name/2009/04/22/twitter4j-java-api-fur-twitter/</link>
		<comments>http://joachim.weinbrenner.name/2009/04/22/twitter4j-java-api-fur-twitter/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 09:31:04 +0000</pubDate>
		<dc:creator>Joachim Weinbrenner</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://joachim.weinbrenner.name/?p=145</guid>
		<description><![CDATA[Twitter4J ist eine Java-Bibliothek für die Twitter-API von Yusuke Yamamoto. Damit lassen sich ganz einfach Status-Updates senden, die Timeline holen, Tweets suchen oder direkte Nachrichten senden. Die frisch erschienene Version 2.0.0 beherscht neben dem klassischen Login via Username/Passwort auch OAuth.
Wer also Twitter in seine Java-Applikationen integrieren möchte, ist hier bestens bedient. Sogar ein Maven-Repo ist [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yusuke.homeip.net/twitter4j/en/index.html" target="_blank">Twitter4J</a> ist eine Java-Bibliothek für die <a href="http://apiwiki.twitter.com/" target="_blank">Twitter-API</a> von Yusuke Yamamoto. Damit lassen sich ganz einfach Status-Updates senden, die Timeline holen, Tweets suchen oder direkte Nachrichten senden. Die frisch erschienene Version 2.0.0 beherscht neben dem klassischen Login via Username/Passwort auch <a href="http://oauth.net/" target="_blank">OAuth</a>.</p>
<p>Wer also <a href="http://twitter.com/" target="_blank">Twitter</a> in seine Java-Applikationen integrieren möchte, ist hier bestens bedient. Sogar ein Maven-Repo ist vorhanden.</p>
<p>Und es geht noch weiter: mit <a href="http://yusuke.homeip.net/log4twitter/en/index.html" target="_blank">Log4Twitter</a> hat Yamamoto einen <a href="http://logging.apache.org/log4j/" target="_blank">Log4J</a>-Appender geschrieben, mit dem sich Log4J-Ausgaben an einen Twitter-Account leiten lassen &#8211; dazu muss in der Anwendung nicht einmal was geändert werden, lediglich die Konfigurationsdatei von Log4J kriegt den passenden Eintrag. Und schon kann ich von überall die Fehlermeldungen meiner Software via Twitter abonnieren &#8230; und mit mir die ganze Welt!?</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=lost%20in%20thought&amp;siteurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F&amp;linkname=Twitter4J%3A%20Java-API%20f%C3%BCr%20Twitter&amp;linkurl=http%3A%2F%2Fjoachim.weinbrenner.name%2F2009%2F04%2F22%2Ftwitter4j-java-api-fur-twitter%2F"></a>]]></content:encoded>
			<wfw:commentRss>http://joachim.weinbrenner.name/2009/04/22/twitter4j-java-api-fur-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
