<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.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"><id>tag:blogger.com,1999:blog-10870752</id><updated>2009-11-14T20:59:15.581+01:00</updated><title type="text">Marcus' notes</title><subtitle type="html">... mostly on programming, I think.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default?start-index=26&amp;max-results=25" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/MarcusRatherRandomNotes" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-10870752.post-5438333518710827851</id><published>2009-11-14T13:20:00.002+01:00</published><updated>2009-11-14T13:28:29.207+01:00</updated><title type="text">Spring AOP: Excessive startup time for "perTarget" advice</title><summary type="text">Well over 300,000 Class.forName calls during context-initialisation were the result of setting up a simple "perTarget" advice for a 400-something beans application. With the standard "per class" instantiation model, the overhead went back to "normal", returning the Hibernate SessionFactory to the top of the list of startup resource-consumers. From a quick look at the profiler output, AspectJ's </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/5438333518710827851/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=5438333518710827851" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/5438333518710827851" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/5438333518710827851" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2009/11/spring-aop-excessive-startup-time-for.html" title="Spring AOP: Excessive startup time for &quot;perTarget&quot; advice" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-1603163265895478702</id><published>2008-02-23T20:36:00.002+01:00</published><updated>2008-02-23T21:12:58.843+01:00</updated><title type="text">Powerbook survived HD-ectomy</title><summary type="text">My beloved "old" (3.5 years) powerbook (G4, 15", 1.5 GHz) started to make humming noises, especially when tilted. A couple of weeks later there were sudden hangups, it would only restart after given some cooling time. That it finally survived my amateur-surgery - albeit somewhat battered - let me immediately regret my fancying a new macbook. Some notes:  I followed this guide   I did need to poke</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/1603163265895478702/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=1603163265895478702" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/1603163265895478702" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/1603163265895478702" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2008/02/powerbook-survived-hd-ectomy.html" title="Powerbook survived HD-ectomy" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-6750634644915386905</id><published>2007-06-04T21:42:00.000+02:00</published><updated>2007-06-06T21:27:39.548+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tapestry" /><category scheme="http://www.blogger.com/atom/ns#" term="scala" /><title type="text">Tapestry Components in Scala</title><summary type="text">Recently, I became interested in Scala: Multiple inheritance, good support for functional programming, a nice syntax, to mention the greatest highlights.As a first exercise, I tried to write some Tapestry-4 components in Scala to gain some real-world experience, and to see whether Tapestry's pretty extensive use of bytecode-generation would somehow break Scala's Java-compatibility. I was pretty </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/6750634644915386905/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=6750634644915386905" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/6750634644915386905" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/6750634644915386905" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/06/tapestry-components-in-scala.html" title="Tapestry Components in Scala" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-8536733787268112373</id><published>2007-05-12T12:27:00.000+02:00</published><updated>2007-05-14T08:51:50.080+02:00</updated><title type="text">Clean and Flexible Authorisation for Tapestry Applications</title><summary type="text">Currently we'r working on an application that will be used by 4 different departments. And I can already anticipate people dropping in to casually remark someting like "Oh, by the way, we've hired this guy who needs Access to module X of the invoicing system, but of course he mustn't be allowed to press button Y, and he needs to be able to change the comment-field. And don't hurry, he'll not </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/8536733787268112373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=8536733787268112373" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/8536733787268112373" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/8536733787268112373" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/05/clean-and-flexible-authorisation-for.html" title="Clean and Flexible Authorisation for Tapestry Applications" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-1648662118435693293</id><published>2007-04-25T20:29:00.001+02:00</published><updated>2008-03-04T18:44:56.817+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ide" /><title type="text">Subversive beats Subclipse as SVN Plugin for Eclipse</title><summary type="text">I've switched from subclipse to subversive recently. The former used to annoy me by its inability to handle directory moves/copies. I had to go and delete .svn dirs manuallyThe annoying need to do manual updates after each commitSubversive mostly works in any of these cases. And when it doesn't want to keep track of me moving some directory around, it politely asks me to commit before continuing.</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/1648662118435693293/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=1648662118435693293" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/1648662118435693293" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/1648662118435693293" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/04/subversive-beats-subclipse-as-svn.html" title="Subversive beats Subclipse as SVN Plugin for Eclipse" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-4314287981717328285</id><published>2007-03-08T10:42:00.000+01:00</published><updated>2007-05-12T12:14:04.004+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">Maven2: creating JavaDoc links behind a firewall</title><summary type="text">I just spent the better part of the morning trying to make javadoc links work. In short: configuring the proxy did not work - We have to cope with offline package-lists, not a big problem really. Of course, to configure the maven-javadoc-plugin to do this, reading the source was the quickest way to go. So put something like this in your pom.xml:&lt;reporting&gt;  &lt;plugins&gt;    &lt;plugin&gt;      &lt;artifactId&gt;</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/4314287981717328285/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=4314287981717328285" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/4314287981717328285" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/4314287981717328285" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/03/maven2-creating-javadoc-links-behind.html" title="Maven2: creating JavaDoc links behind a firewall" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-5778584922866024970</id><published>2007-02-15T13:10:00.000+01:00</published><updated>2007-02-16T09:35:35.932+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ws" /><title type="text">XFire newbie gotcha: use the correct ServiceFactory</title><summary type="text">If you use the jaxb binding (the default with the Maven-plugin) to generate you client proxies, to actually use your service, you have to instantiate a org.codehaus.xfire.jaxb2.JaxbServiceFactory instead of an org.codehaus.xfire.service.binding.ObjectServiceFactory. Otherwise the parameter names (wsdl:part@name) will be replaced with "in0"-elements by XFire - and the server will complain about an</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/5778584922866024970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=5778584922866024970" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/5778584922866024970" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/5778584922866024970" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/02/xfire-newbie-gotcha-use-correct.html" title="XFire newbie gotcha: use the correct ServiceFactory" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-9093334783075735421</id><published>2007-02-15T12:54:00.000+01:00</published><updated>2007-02-15T13:09:51.839+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ws" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">Quality of Maven integration becomes decisive for OSS adoption - good bye Axis</title><summary type="text">Today I realised, how important it became for any open-source project to play nicely with the Maven repository and to get its dependencies right in its pom's . When I had to whip up a web-service client yesterday, I started out trying Axis-2 since I knew the server impl was bases on Axis. Quickly I had to decide to either start debugging their maven-plugins dependencies (obviously wsdl4j was lost</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/9093334783075735421/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=9093334783075735421" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/9093334783075735421" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/9093334783075735421" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/02/quality-of-maven-integration-becomes.html" title="Quality of Maven integration becomes decisive for OSS adoption - good bye Axis" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-4692436888063345849</id><published>2007-02-11T17:56:00.000+01:00</published><updated>2007-01-15T06:44:05.262+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">New Version 1.0.2 of hivedoc-plugin for HiveMind /Maven2</title><summary type="text">Finally, I got around to enhancing the hivedoc-plugin with:  Support for sub-modules  Removal of empty columns in the module-summary table.The new version 1.0.2 should be on the central repo as soon as MAVENUPLOAD-1377 is resolved.</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/4692436888063345849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=4692436888063345849" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/4692436888063345849" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/4692436888063345849" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/02/new-version-102-of-hivedoc-plugin-for.html" title="New Version 1.0.2 of hivedoc-plugin for HiveMind /Maven2" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-2688963961374541416</id><published>2007-01-08T16:33:00.000+01:00</published><updated>2007-01-09T10:38:58.963+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">Half a Year of Maven 2: An experience of the awkward kind</title><summary type="text">We're using Maven 2 now for all new projects. At the highest level I can summarize our experience as:The concepts behind Maven are sound and amazingly useful.The implementation is just about usable - no show-stoppers anymore, but lots and lots of little, annoying bugs and surprising gotchasThe documentation is sloppy.The really funny thing is, how point 1. still by far outweighs the shortcomings </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/2688963961374541416/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=2688963961374541416" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/2688963961374541416" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/2688963961374541416" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/01/half-year-of-maven-2-experience-of.html" title="Half a Year of Maven 2: An experience of the awkward kind" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-3010061206976264118</id><published>2007-01-05T08:49:00.000+01:00</published><updated>2007-05-12T12:14:04.004+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">New Version of hivedoc-plugin for HiveMind</title><summary type="text">Since some people seem to use it, I've updated my hivedoc-plugin to version 1.0.1 . Notable changes are:Support for custom resource root directoriesBackport to Java 1.4proper plugin-docsThe new version should show up on the central Maven 2 repo soon. If you need it before that, here's the repo-bundle.</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/3010061206976264118/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=3010061206976264118" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/3010061206976264118" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/3010061206976264118" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/01/new-version-of-hivedoc-plugin-for.html" title="New Version of hivedoc-plugin for HiveMind" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-6702332821057360264</id><published>2007-01-02T10:42:00.000+01:00</published><updated>2007-05-12T12:16:33.355+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title type="text">hivedoc-plugin generates Maven 2 docs for HiveMind descriptors</title><summary type="text">If you're using HiveMind and Maven 2, generating docs for your HiveMind descriptors is now really quick and simple.Find the docs under http://marcus-schulte.ch/hivedoc-plugin/.</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/6702332821057360264/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=6702332821057360264" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/6702332821057360264" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/6702332821057360264" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2007/01/hivedoc-plugin-generates-maven-2-docs.html" title="hivedoc-plugin generates Maven 2 docs for HiveMind descriptors" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-115834910485777741</id><published>2006-09-15T21:26:00.000+02:00</published><updated>2007-05-12T12:15:12.760+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tapestry" /><title type="text">Honeycomb now comes with a Maven2 archetype for Tapestry/Hibernate based web-apps.</title><summary type="text">Version 0.3.3 of Honeycomb is released.Honeycomb provides an easy integration for Tapestry and Hibernate. Its distinguishing key feature is session-per-conversation support.The main changes in this release are:re-structuring into 4 libraries replaced the templates for the Core/Webapp projects with maven archetypes. Maven users get started without manual downloads.Fixed rollback on </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/115834910485777741/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=115834910485777741" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/115834910485777741" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/115834910485777741" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2006/09/honeycomb-now-comes-with-maven2.html" title="Honeycomb now comes with a Maven2 archetype for Tapestry/Hibernate based web-apps." /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-115662116256651056</id><published>2006-08-26T21:15:00.000+02:00</published><updated>2006-08-26T21:39:23.053+02:00</updated><title type="text">The Return of the Database - who needs more "middleware"?</title><summary type="text">Maybe it's just my organization's policy of giving its developers relatively free access to db's while, at the same time, putting lots of administrative hurdles and hurdle-like administrators between them and the app-server. But it's really amazing how little there is that you can't get done nicely with a sturdy db and a decent servlet-container (at most).Example: For some time I thought a nice </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/115662116256651056/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=115662116256651056" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/115662116256651056" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/115662116256651056" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2006/08/return-of-database-who-needs-more.html" title="The Return of the Database - who needs more &quot;middleware&quot;?" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-114102262191804853</id><published>2006-02-27T07:35:00.000+01:00</published><updated>2007-05-12T12:15:12.761+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tapestry" /><title type="text">KickStart is now Honeycomb, release 0.3 out</title><summary type="text">Kickstart has moved from SourceForge to  JavaForge, and it's changed its name to Honeycomb (alluding to the central role that HiveMind plays in it).  Honeycomb integrates Tapestry with Hibernate for painless full-stack web-dev-support.New features comprise   A hibernate DataSqueezer    Pluggable Audit-Trail via hibernate interceptor     Support for session per request pattern via simple config </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/114102262191804853/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=114102262191804853" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/114102262191804853" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/114102262191804853" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2006/02/kickstart-is-now-honeycomb-release-03.html" title="KickStart is now Honeycomb, release 0.3 out" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-113734854534447715</id><published>2006-01-15T18:58:00.000+01:00</published><updated>2007-05-12T12:16:33.356+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tapestry" /><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><title type="text">With Kickstart 0.2 Tapestry supports the hibernate session-per-conversation pattern out of the box</title><summary type="text">I've uploaded a new release of KickStart. Improvements are:  Full support for the hibernate-session-per-conversation pattern. See hibernate.org for more.  fixed wrong unsaved-value-mapping</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/113734854534447715/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=113734854534447715" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113734854534447715" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113734854534447715" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2006/01/with-kickstart-02-tapestry-supports.html" title="With Kickstart 0.2 Tapestry supports the hibernate session-per-conversation pattern out of the box" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-113666147746295534</id><published>2006-01-07T19:55:00.000+01:00</published><updated>2007-05-12T12:16:33.357+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tapestry" /><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><title type="text">KickStart integrates Tapestry with Hibernate for painless full-stack web-dev-support</title><summary type="text">While Web-Development with Java is supported by a variety of great frameworks it is still not easy (even tedious) to, firstly, choose the right ones for a given problem and, secondly, make them work together. (needless to refer to all the envious appraisals of RoR and, yes, even Visual-Studio by Java-developers). I've set up a Sourceforge project, called KickStart, (first download available right</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/113666147746295534/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=113666147746295534" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113666147746295534" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113666147746295534" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2006/01/kickstart-integrates-tapestry-with.html" title="KickStart integrates Tapestry with Hibernate for painless full-stack web-dev-support" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-113007523726320931</id><published>2005-10-23T15:46:00.000+02:00</published><updated>2005-10-23T15:47:17.270+02:00</updated><title type="text">Finally no more clob-clipping: Oracle 10g supports standard JDBC CLOB-handling</title><summary type="text">The new enhancements in Oracle JDBC 10g promises to simplify the insertion and retrieval techniques for the CLOBs using the standard APIs.  Handling Clobs in Oracle 10g Just discovered the above link after trying to use Oracle's thin JDBC-Driver with  Hibernate to save CLOB-data ...  This automatically and silently nullifies the CLOB-field when you try to save more then 4k to it which you are </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/113007523726320931/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=113007523726320931" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113007523726320931" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/113007523726320931" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/10/finally-no-more-clob-clipping-oracle.html" title="Finally no more clob-clipping: Oracle 10g supports standard JDBC CLOB-handling" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112974174496675371</id><published>2005-10-19T19:00:00.000+02:00</published><updated>2005-10-19T19:09:04.973+02:00</updated><title type="text">Apache DBCP - never forget maxWait</title><summary type="text">Had some not so cozy hours debugging a productive app on Tomcat. The thing would spontaneously hang about once a day (The whole of Tomcat, apart from JMX was completely hung). It hung in an infinite wait in the Database-Pool. Funnily the default of the maxWait-Param is "-1", i.e. infinitely. Now, after I fixed this it runs nicely.But it's still not clear to me, where the total deadlock came from.</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112974174496675371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112974174496675371" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112974174496675371" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112974174496675371" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/10/apache-dbcp-never-forget-maxwait.html" title="Apache DBCP - never forget maxWait" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112852493056945047</id><published>2005-10-05T16:56:00.000+02:00</published><updated>2005-10-19T19:26:44.636+02:00</updated><title type="text">The Scattered State-Machine - An Antipattern for Web-Controllers</title><summary type="text">Like a lot of popular anti-patterns the scattered controller stems from the naive implementation of a seemingly obvious abstraction. The reasoning goes like this: Web-Apps show some html-page, each user event (http-request) triggers an action which, in turn, results in an event determining the next state which is either an action or a an html-page transferred back to the user's browser. So, use </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112852493056945047/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112852493056945047" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112852493056945047" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112852493056945047" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/10/scattered-state-machine-antipattern.html" title="The Scattered State-Machine - An Antipattern for Web-Controllers" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112783930957019047</id><published>2005-09-27T18:27:00.000+02:00</published><updated>2007-05-12T12:16:33.357+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><title type="text">Now on the hivemind-wiki: Hivemind support for Hibernate Long-Session-Pattern</title><summary type="text">Handling Hibernate-Sessions is a recurrent topic on the Tapestry users mailing list. Still, long sessions seem to be surprisingly unknown, once one considers the fact that Gavin King advocates its use in "Hibernate in Action".So, I've posted some code implementing the Long-Session-Pattern in Hivemind on the Hivemind-Wiki.I'd be curious to hear whether it worked for anyone (or why it didn't) ...</summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112783930957019047/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112783930957019047" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112783930957019047" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112783930957019047" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/09/now-on-hivemind-wiki-hivemind-support.html" title="Now on the hivemind-wiki: Hivemind support for Hibernate Long-Session-Pattern" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112628986753754303</id><published>2005-09-09T20:05:00.000+02:00</published><updated>2005-09-09T20:17:47.546+02:00</updated><title type="text">Bye, bye BEA: From Weblogic/EJB/CMP to Tomcat/Hivemind/Hibernate</title><summary type="text">... and loosing some 1700 loc on the way (counting only Java, disregarding evil xml-deployment-descriptors). Our first non-trivial App on Hivemind/Hibernate is now productive for 5 weeks. No technical problems so far, just the usual buggies associated with cleaning up only part of a design-mess. The whole thing was never really performance-critical (only some 2000 transactions per workday), but </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112628986753754303/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112628986753754303" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112628986753754303" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112628986753754303" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/09/bye-bye-bea-from-weblogicejbcmp-to.html" title="Bye, bye BEA: From Weblogic/EJB/CMP to Tomcat/Hivemind/Hibernate" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112265815372343166</id><published>2005-07-29T19:07:00.000+02:00</published><updated>2005-07-31T15:05:14.666+02:00</updated><title type="text">Java AWK - parsing csv-files in Java can be fun</title><summary type="text">Ever parsed text-files, writing loops and calling indexOf / substr just to get some boring job done? I confess, I did. Today, instead, I sat back and browsed the jdk-JavaDocs. Thinking what it would take to bring some of the simplicity of AWK to Java - and it'really simple - just a few lines of code and you can write things like this:public class JawkSample extends JawkProgram { protected void </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112265815372343166/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112265815372343166" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112265815372343166" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112265815372343166" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/07/java-awk-parsing-csv-files-in-java-can.html" title="Java AWK - parsing csv-files in Java can be fun" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112256754039796852</id><published>2005-07-28T18:07:00.000+02:00</published><updated>2007-05-12T12:16:33.358+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hivemind" /><title type="text">Unified service lifecyle-interface for different service-models</title><summary type="text">Hivemind sports a bunch of service-models (singleton, pooled, threaded). After adding "client-session" for my request-spanning, hibernate-sessions, I realised that it's rather unfortunate that each of the service models comes with its own lifecycle-interface (Discardable, PoolManageable,...).  So if you want to be able to switch service-models via configuration in one place, your service has to </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112256754039796852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112256754039796852" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112256754039796852" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112256754039796852" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/07/unified-service-lifecyle-interface-for.html" title="Unified service lifecyle-interface for different service-models" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10870752.post-112256684954821764</id><published>2005-07-28T17:59:00.000+02:00</published><updated>2005-07-28T19:36:33.346+02:00</updated><title type="text">nifty toy = Tomcat + MX4J + hivemind.management + mc4j</title><summary type="text">Just brought up a managed version of Tomcat 5.5 on j2se 1.4 using mx4j and the hivemind.management module . There are just a few gotchas   put mx4j.jar and mx4j-remote.jar on tomcat's system classpath, along with bootstrap.jar   don't contribute services with performance interceptor to hivemind.management.MBeans  Everything else works cleanly out of the box. It's fun to watch your services </summary><link rel="replies" type="application/atom+xml" href="http://marcus-schulte.blogspot.com/feeds/112256684954821764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=10870752&amp;postID=112256684954821764" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112256684954821764" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/10870752/posts/default/112256684954821764" /><link rel="alternate" type="text/html" href="http://marcus-schulte.blogspot.com/2005/07/nifty-toy-tomcat-mx4j.html" title="nifty toy = Tomcat + MX4J + hivemind.management + mc4j" /><author><name>Marcus Schulte</name><uri>http://www.blogger.com/profile/13079542031575873570</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="01591829015714022800" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry></feed>
