<?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/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A08GQXo6fip7ImA9WhVVE00.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138</id><updated>2012-05-06T15:10:20.416+02:00</updated><category term="rest" /><category term="yui" /><category term="twitter blog blogger" /><category term="IntelliJ" /><category term="Struts2" /><category term="soap" /><category term="Wicket" /><category term="cxf" /><category term="ajax java echo3 gwt" /><category term="redis rdbms inmemory nosql" /><category term="Java" /><category term="extJS" /><category term="plugins" /><category term="Ajax" /><title>Marc Logemann Blog</title><subtitle type="html">CEO of &lt;a href="http://www.logentis.de"&gt;LOGENTIS GmbH&lt;/a&gt; on java development and surrounding topics.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.logemann.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.logemann.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/LogemannBlog" /><feedburner:info uri="logemannblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>51.28</geo:lat><geo:long>07.02</geo:long><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/LogemannBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FLogemannBlog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:browserFriendly>Marc Logemann's Blog about Java development and IT stuff in general.</feedburner:browserFriendly><entry gd:etag="W/&quot;DkUDR3s6cSp7ImA9WhRaEEo.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-6938005420144033431</id><published>2012-02-12T20:17:00.002+01:00</published><updated>2012-02-12T20:17:56.519+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-12T20:17:56.519+01:00</app:edited><title>No new blog entry but a relocation</title><content type="html">Holy sh***. A lot of time passed since my last blog entry but believe it or not. I have just no time. Right now we are preparing to move into a new building within the city with our company &lt;a href="http://www.logentis.de/"&gt;Logentis&lt;/a&gt;. But i hope i will write something about our latest redis NoSQL fun anytime soon. So stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-6938005420144033431?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=1MEYFcVeHrE:-uDDXfXnDbg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=1MEYFcVeHrE:-uDDXfXnDbg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=1MEYFcVeHrE:-uDDXfXnDbg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=1MEYFcVeHrE:-uDDXfXnDbg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=1MEYFcVeHrE:-uDDXfXnDbg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/6938005420144033431/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=6938005420144033431" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/6938005420144033431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/6938005420144033431?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/1MEYFcVeHrE/no-new-blog-entry-but-relocation.html" title="No new blog entry but a relocation" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2012/02/no-new-blog-entry-but-relocation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MGQ30-eip7ImA9WhdSF0s.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-7687174542068508434</id><published>2011-07-27T12:10:00.000+02:00</published><updated>2011-07-27T12:10:22.352+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-27T12:10:22.352+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="redis rdbms inmemory nosql" /><title>mixed storage applications (redis and rdbms)</title><content type="html">Gathering real time data and showing various statistics is a plus for each software product on the market. The same goes for our logistics projects we are doing. Here you have metrics like picked articles, number of orders, orderposition analysis and others. While some metrics are easy to gather and easy to visualize via normal RDBMS, others have quite a big impact on db read and write performance. Of course you can chose OLAP to visualize various statistics but this wouldnt be realtime anymore. We want to show stats as they are happening with the frontend techniques you have nowadays like Websockets or AJAX poll. If you do classic ajax polling for expensive stats (SQLs) in a normal db, you simply kill your system. Then you can start putting massive efforts into clustering rdbms or change the way you think about databases for certain features.&lt;br /&gt;
&lt;br /&gt;
With &lt;a href="http://redis.io/"&gt;redis&lt;/a&gt;, being an in-memory key-value datastore with persistence capabilities, you get insane performance. The only thing you need to be aware of is the projected size of the resulting datastore. You really dont want the OS swapping memory. But with some calculations and proper usage of time-to-live (TTL) of your entries, this can be handled.The good thing for real-time statistics data is, that its normally not business critical so if you start using redis in that area, you dont need to think about the persistence thing too much in the first run.&lt;br /&gt;
&lt;br /&gt;
One weak point of redis is: Its quite new and you dont get a book on redis. redis itself is pretty simple from command set perspective but a best-practices book on building the best data structures for common use-case scenarios would be nice. Of course you can google a lot in that area (notably the &lt;a href="http://antirez.com/"&gt;blog&lt;/a&gt; of the redis author) and most solutions are not that hard to create yourself. In terms of API libraries you get at least two quite mature ones in java with &lt;a href="http://code.google.com/p/jedis/"&gt;jedis&lt;/a&gt; and &lt;a href="http://code.google.com/p/jredis/"&gt;jredis&lt;/a&gt;. Plus you can also get some kind of higher abstraction library with &lt;a href="http://www.springsource.org/spring-data/redis"&gt;Spring-Data Redis&lt;/a&gt; which support both possible base libs.&lt;br /&gt;
&lt;br /&gt;
NoSQL databases are eveywhere around and this opens a new world of possibilities. IMO they will never replace rdbms in database centric apps like erp or crm systems but they will help where rdbms are not performing that well. So in the future we will have more mixed-storage applications which will use the correct storage for the needed feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-7687174542068508434?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xhO87TJshZ0:eYNAS3KIN-Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xhO87TJshZ0:eYNAS3KIN-Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=xhO87TJshZ0:eYNAS3KIN-Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xhO87TJshZ0:eYNAS3KIN-Y:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=xhO87TJshZ0:eYNAS3KIN-Y:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/7687174542068508434/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=7687174542068508434" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7687174542068508434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7687174542068508434?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/xhO87TJshZ0/mixed-storage-applications-redis-and.html" title="mixed storage applications (redis and rdbms)" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2011/07/mixed-storage-applications-redis-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBRHw-fyp7ImA9WhdTEE4.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-7494074324055415340</id><published>2011-07-07T12:42:00.000+02:00</published><updated>2011-07-07T12:42:35.257+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-07T12:42:35.257+02:00</app:edited><title>What we have done so far ;-)</title><content type="html">In one of my last &lt;a href="http://www.logemann.org/2011/02/jquery-and-what-other-technologies-we.html"&gt;posts&lt;/a&gt; i mentioned all the things we wanna focus on technically. Lets see what we achieved so far:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;IP Centrex for telephony (cloud based VoiP)&lt;/b&gt;: After switching to &lt;a href="http://www.placetel.de/"&gt;Placetel&lt;/a&gt; with our company numbers, we were shocked about the quality of the "phone line". We had to redial several times to get through and we got hang ups right in the call. All this for serveral weeks. We decided to quit that provider and switched to the next IP Centrex provider called &lt;a href="http://www.teamfon.de/"&gt;Teamfon&lt;/a&gt;. BTW, switching carriers is always a nightmare because of the number porting process. Now with Teamfon we are very happy with the service and the quality of the lines. &lt;b&gt;DONE!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;jQuery&lt;/b&gt;: We are building more and more systems with jQuery. In fact we dont use anything else currently for front ends. &lt;b&gt;DONE!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Versioning with GIT&lt;/b&gt;: We moved all projects to GIT. Currently we are using &lt;a href="http://www.codebasehq.com/"&gt;Codebase&lt;/a&gt; as hosting and project management platform. Its not pefect but they really offer much for the money. &lt;b&gt;DONE!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reduce Soap, use REST&lt;/b&gt;: When we build new services, we really count on Rest nowadays. But we have tons of apps on customer site which still use Soap though. Lets call it &lt;b&gt;MORE-OR-LESS-DONE!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Websockets&lt;/b&gt;: Nada, nothing. &lt;b&gt;FAILED&lt;/b&gt; &lt;b&gt;SO FAR&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android App&lt;/b&gt;: Dismissed in favor of HTML based &lt;a href="http://www.google.de/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCUQFjAA&amp;amp;url=http%3A%2F%2Fphonegap.com%2F&amp;amp;rct=j&amp;amp;q=phonegap&amp;amp;ei=ho0VTpXAG4b0-gbb3pEc&amp;amp;usg=AFQjCNG1ra7Js9Qo6QGHtSOloIx4qGEnOA&amp;amp;cad=rja"&gt;phonegap&lt;/a&gt; apps. &lt;b&gt;CHANGED_MIND&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-7494074324055415340?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=p2hhh-I3TYE:6_2JIR2qjpA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=p2hhh-I3TYE:6_2JIR2qjpA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=p2hhh-I3TYE:6_2JIR2qjpA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=p2hhh-I3TYE:6_2JIR2qjpA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=p2hhh-I3TYE:6_2JIR2qjpA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/7494074324055415340/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=7494074324055415340" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7494074324055415340?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7494074324055415340?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/p2hhh-I3TYE/what-we-have-done-so-far.html" title="What we have done so far ;-)" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2011/07/what-we-have-done-so-far.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIER349fSp7ImA9Wx9UEkQ.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-667026799014010802</id><published>2011-02-10T01:41:00.000+01:00</published><updated>2011-02-10T01:41:46.065+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-10T01:41:46.065+01:00</app:edited><title>jQuery and what other technologies we will use in 2011</title><content type="html">Call me crazy but our next prototype will not be YUI based but jQuery. I thought they are not ready for RIA but things went fast since the last time i checked them. A lot of useful grids as plugins and they even &lt;a href="http://blog.jqueryui.com/2011/02/unleash-the-grid/"&gt;started&lt;/a&gt; a jQuery-UI grid. Furthermore with &lt;a href="http://wijmo.com/"&gt;wijmo&lt;/a&gt; there is even a commercial components company with some nice widgets on the market. More choice is good. So whats our status? We just finished our own product theme created by their excellent &lt;a href="http://jqueryui.com/themeroller"&gt;ThemeRoller&lt;/a&gt; app and we created the BorderLayout of our admin console. Its looks quite nice but has no functionality yet.&lt;br /&gt;
&lt;br /&gt;
But we will use some other interessting things in 2011 which we have not used before, like:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;versioning with git (i really want to push disconnected work more and more)&lt;/li&gt;
&lt;li&gt;jQuery (as mentioned before - we used is before but on very low scale)&lt;/li&gt;
&lt;li&gt;Spring-MVC (we have used a lot of other web frameworks so far but not Spring's variant)&lt;/li&gt;
&lt;li&gt;IP-Centrex. Basically Asterisk in the cloud. Works very well so far. No more telephony hardware in the house besides some VoiP phones of course&lt;/li&gt;
&lt;li&gt;trying to reduce SOAP services in our product and push REST even more&lt;/li&gt;
&lt;li&gt;WebSockets. Thats something i really want to push forward in our app&lt;/li&gt;
&lt;li&gt;finishing our android app (but we are missing resources for that project)&lt;/li&gt;
&lt;/ul&gt;Another big thing is my current wait more for the next coming MacBook Pro. ;-) I really need a new one but i dont want to buy the current one. I want something braaaaand new.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-667026799014010802?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=QlGNPhH2C_0:iALYLZHFnLw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=QlGNPhH2C_0:iALYLZHFnLw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=QlGNPhH2C_0:iALYLZHFnLw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=QlGNPhH2C_0:iALYLZHFnLw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=QlGNPhH2C_0:iALYLZHFnLw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/667026799014010802/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=667026799014010802" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/667026799014010802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/667026799014010802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/QlGNPhH2C_0/jquery-and-what-other-technologies-we.html" title="jQuery and what other technologies we will use in 2011" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2011/02/jquery-and-what-other-technologies-we.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcBRnsyfyp7ImA9Wx9VGE4.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-422272380395223652</id><published>2011-02-04T16:32:00.001+01:00</published><updated>2011-02-04T16:40:57.597+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-04T16:40:57.597+01:00</app:edited><title>Changed my mind: no Vaadin but Spring-MVC+YUI</title><content type="html">We have done some prototyping lately. Mid November we started developing our products admin console with Vaadin. Of course we defined the first weeks as prototyping because thats what it was and we didnt want to settle that fast on a "new" (to us) technology. Let me summarize our feelings with Vaadin:&lt;br /&gt;
&lt;br /&gt;
Its a great framework where things can be solved VERY easy and fast. As long as you dont have really complex forms. I said it elsewhere. When you provide a framework which abstracts you from about everything you normally have to worry about (html, css,js,...) its quite important that you really abstract all the things you need in a modern RIA app. Including two column forms with graphical sections and stuff. But Vaadins form features are quite basic. This results in heavy workarounds from developer site. Then you start learning how you can do the things the "old" fashioned way which is more work as doing it directly in html/js. &lt;br /&gt;
&lt;br /&gt;
We reached a certain point where we wondered if this is really a time saver at the end. This combined with the natural "lag" when using terminal-server-approach frameworks we come to the conclusion that we dont want to go with it. But besides the Form issue, we were pretty happy with Vaadin. The other thing we noticed is that the other part of our application runs on PDAs (with Browsers) with very limited GUIs and there we simply cant use Vaadin at all. This results in another framework inside our Application. So we had to use Spring-MVC, Struts2 or the likes anyway for this part of the app.&lt;br /&gt;
&lt;br /&gt;
So we decided that we want to go with one framework for both worlds, AdminConsole and the GUI part where the real work is done. After we decided that Vaadin will not be the player, we again spent some time to re-evaluate all the options inclusing barebone GWT 2.1.x and component frameworks like Wicket.&lt;br /&gt;
&lt;br /&gt;
GWT is interessting because i checked it several times. As of 2.1.x, they get stronger and stronger with rich components like data tables and stuff. But again, since we also use very basic PDA based browser apps, we would need a different framework anyway because browsers based on Windows Mobile will definitely dont work with the JS hell GWT creates. So while i still think that its a nice framework it just doesnt fit in our environment.&lt;br /&gt;
&lt;br /&gt;
To make the story short: We decided on Spring MVC (its quite comparable to Struts2 but since we use a lot of Spring stuff, we feel better to use Spring for MVC too). Spring 3 really made some big (good) changes to MVC in its recent version. But Spring doesnt solve that much on the frontend part and i also checked all possible alternatives there. Lets name the darlings in the JS world again: JQuery, MooTools, Rico, YUI, Dojo and 2-3 other whose name i forgot. I decided on YUI on a project 2 years ago and the decission is still valid. JQuery, while everyone seems to like it, is quite weak when it comes to CORE components. Of course you can plug in thousands of plugins like datatables and stuff but after all you have a cluttered, hard to skinnable JQuery frontend. Dojo is the same but even worse w/o that much plugins. And the rest is not RIA enough.&lt;br /&gt;
&lt;br /&gt;
YUI2 has nearly all components in its core and also provide a lot of other nice stuff like css framework and layouts. Its syntax is not that elegant compared to JQuery, admitted. Of course i checked YUI3 because newer version is always better but its somehow unfinished and the YUI3 components are much weaker and nearly undocumented (did you every try to get paging running with Datatable...?). &lt;br /&gt;
&lt;br /&gt;
That leaves us to our current choice: Spring-MVC (a lot of other Spring modules), JSP, YUI2 and most likely Sitemesh for decoration. Of course we wont get a Single Page Application with that but instead rely on JSP rendering with AJAX baked into the JSP but i think this is not a major drawback. Also nice that we can reuse a lot of existing code like our DAO Layer. We can even migrate quite easily our old Struts1 (yikes!) actions to Spring Controllers. Its not the complete re-engineering as envisioned before but perhaps its a good choice because the risk is under control ;-)&lt;br /&gt;
&lt;br /&gt;
I can really say that i checked nearly everything which is in the java market today when it comes to frameworks. I used a lot in the past and tried a lot which i have not used so far. I just wanna be sure that my choice is fine. But i also realized that there is simply not the perfect framework. I still like Vaadin but i still think that some things are way to complicated to accomplish. But at the same time i think that it could be one of the best frameworks, if they would focus on RIA issues. The latest roadmap doesnt look too promising that they will improve form handling and creation anytime soon. Apart from that, abstraction is always some kind of magic bullet which can turn into a whole mess when you cant use it because of missing features. Thats why i would never Spring Roo. Its promising first but i am quite sure that it will turn into the direct opposite if you wanna do things that are not thought out by the core developer beforehand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-422272380395223652?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zt_dXMz6olI:ELEmpx8q-y8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zt_dXMz6olI:ELEmpx8q-y8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Zt_dXMz6olI:ELEmpx8q-y8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zt_dXMz6olI:ELEmpx8q-y8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Zt_dXMz6olI:ELEmpx8q-y8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/422272380395223652/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=422272380395223652" title="5 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/422272380395223652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/422272380395223652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/Zt_dXMz6olI/changed-my-mind-no-vaadin-but-spring.html" title="Changed my mind: no Vaadin but Spring-MVC+YUI" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.logemann.org/2011/02/changed-my-mind-no-vaadin-but-spring.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACSXw7cSp7ImA9Wx9TFUw.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-2831881771986460538</id><published>2010-11-22T19:36:00.001+01:00</published><updated>2010-11-23T13:02:48.209+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-23T13:02:48.209+01:00</app:edited><title>On Matt Raible's web framework comparision</title><content type="html">I dont know exactly what was more surprising, reading the &lt;a href="http://spreadsheets.google.com/pub?key=0AtkkDCT2WDMXdC1HOEtnUHpCejJMbUhGeGJWUmh5dVE&amp;hl=en&amp;output=html"&gt;comparision&lt;/a&gt; itself or the fact that something like this makes it into theserverside.com. There must be a reason i only read TSS when i am totally bored. 6 years ago, this was a readable site.&lt;br /&gt;
&lt;br /&gt;
Let me get back to the comparision. First of all, i dont think that someone is able to compare 13 web framework with such detailed categories, because its more than unlikely that he is familiar with all the mentioned web frameworks. And with familiar i mean doing real projects with all of them. I dont count Appfuse as a real project, sorry. I dont say that everything is wrong in there but there are some really bad facts.&lt;br /&gt;
&lt;br /&gt;
I am one of those untalented guys who has used 4 (Struts2, Spring-MVC, JSF and Vaadin) of those mentioned web frameworks in real projects. Lately i am using Vaadin for a project, so i will comment on the Vaadin part.&lt;br /&gt;
&lt;br /&gt;
-&gt; Developer Productivity: 0&lt;br /&gt;
&lt;br /&gt;
Ok. This is really interessting. It gets even more interessting if you look at the GWT section. GWT gets 1. I always thought that the productivity level of those two frameworks should be pretty equal since its the same approach. &lt;br /&gt;
&lt;br /&gt;
-&gt; Developer Availability: 0&lt;br /&gt;
&lt;br /&gt;
What has Matt done to check this? Searching job sites for Vaadin? If yes it could be that there were simply no jobs but does that mean Vaadin should get 0? Of course not, because every GWT developer can develop with Vaadin without much difference. In fact every Swing or AWT developer should get Vaadin in no time. &lt;br /&gt;
&lt;br /&gt;
-&gt; Templating: 0&lt;br /&gt;
&lt;br /&gt;
What a category is this? Any why gets GWT 0.5 here? First of all, this category is useless. Since Vaadin is not based on classic templating as most JSP frameworks do. One simply cant downgrade the whole framework, because of its different concept. You can of course re-use layouts and stuff, if this is the point of this category.&lt;br /&gt;
&lt;br /&gt;
-&gt; Plugins - Addons: 0&lt;br /&gt;
&lt;br /&gt;
Uhhh? I always thought that Vaadin has a quite healthy plugin repository. Of course its not as big as the eclipse-sphere but you can find some useful things in there. All this can be packaged via Maven rep. I wont give it a 1 but a 0 is weird.&lt;br /&gt;
&lt;br /&gt;
-&gt; i18n: 0.5&lt;br /&gt;
&lt;br /&gt;
You can use basic java i18n in Vaadin. Since i am developing java, i found java's native way of handling i18n good enough. Should be a 1 in my oppinion. Cant see why Struts2 is better ranked.&lt;br /&gt;
&lt;br /&gt;
-&gt; Multi-language Support (Groovy / Scala)&lt;br /&gt;
&lt;br /&gt;
Never seen such a useless category. &lt;br /&gt;
&lt;br /&gt;
===&lt;br /&gt;
&lt;br /&gt;
To summarize all this. Some categories make sense and some of them were researched quite good, at least for the frameworks i know. But the overall usefulness of this chart tends to zero. First of all, a web app is not a web app. There are use cases which need a real RIA platform (business apps) and use cases which need fast output but nearly no components (twitter, stackoverflow). Saying that Spring-WebMVC is the best web framework is like saying "Porsche 911 is the best car". Perhaps a 911 is the best car on the highway, but in the rocky mountains, i would prefer a Land Rover. Have you ever tried to programm a RIA app with Spring-WebMVC? I can tell you, this would be the ultimate nightmare pick.&lt;br /&gt;
&lt;br /&gt;
This chart will most likely make it into big companies and then they start developing with frameworks which are ranked good in this chart, but having no positive effect on their current project. And even if Vaadin would be the Number one framework in this chart, someone picking Vaadin for his next amazon.com would be totally crazy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-2831881771986460538?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=ISCX6huPXJE:8iaYfAWMJnQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=ISCX6huPXJE:8iaYfAWMJnQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=ISCX6huPXJE:8iaYfAWMJnQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=ISCX6huPXJE:8iaYfAWMJnQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=ISCX6huPXJE:8iaYfAWMJnQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/2831881771986460538/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=2831881771986460538" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2831881771986460538?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2831881771986460538?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/ISCX6huPXJE/on-matt-raibles-web-framework.html" title="On Matt Raible's web framework comparision" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2010/11/on-matt-raibles-web-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEMRXg8fyp7ImA9Wx5VGUU.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-4556254308486513128</id><published>2010-10-13T18:34:00.000+02:00</published><updated>2010-10-13T18:34:44.677+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-13T18:34:44.677+02:00</app:edited><title>Our prototype will be written in ... Vaadin</title><content type="html">As described in my last &lt;a href="http://www.logemann.org/2010/09/ext-gwt-or-smartgwt-or-vaadin.html"&gt;blog post&lt;/a&gt;, i checked some GWT based implementations for creating our &lt;a href="http://www.netversys.de"&gt;products&lt;/a&gt; next generation admin console. I tried hard to compare all the pros and cons of the threee (SmartGWT, ExtGWT and Vaadin) frameworks. I dont want to go deeper into my decission matrix but at the end i decided on Vaadin. Of course its only a prototype and the decission is not final with regard to our re-engineering mission but there is a small advantage for Vaadin at this point. As long as our engineers dont start a hunger strike, we will favor Vaadin.&lt;br /&gt;
&lt;br /&gt;
We only settled on Vaadin for about 2 days and our current state is just a layout prototype but it feels nice so far. We started a new theme of course because corporate identity is of some importance for us. I made some comments of our first hours on &lt;a href="http://twitter.com/logemann"&gt;Twitter&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
One thing that is really striking and this has nothing to do with Vaadin but more with the GWT approach, is that you can forget about HTML and JS. When you read a statement like this, people normally think "ok, thats a little advantage, whats more..." but if you really code something in plain java and get a descent UI in html, you will never look back. I ve done all the things you do in web development since 1993 including plain html, custom JS, advanced JS frameworks like JQuery but as long as you are not a web designer, this feels so annoying. And believe me, grabbing 23 JQuery plugins is not the way to go for RIA projects. JQery, Dojo &amp; Co. are useful but IMO not for enterprise RIA apps. I dont say that you cant do it with these frameworks, but the effort is hughe and thats a matter of fact.&lt;br /&gt;
&lt;br /&gt;
For sure, Vaadin is not the silver bullet for everything and they need to catch up a bit on the amount of widgets/components but IMO they have a good foundation and a well designed API. The only risk is that they are not IBM. But companies with good products dont die that fast :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-4556254308486513128?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=iAavEQ_gpgw:60NmDHQUSWQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=iAavEQ_gpgw:60NmDHQUSWQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=iAavEQ_gpgw:60NmDHQUSWQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=iAavEQ_gpgw:60NmDHQUSWQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=iAavEQ_gpgw:60NmDHQUSWQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/4556254308486513128/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=4556254308486513128" title="7 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4556254308486513128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4556254308486513128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/iAavEQ_gpgw/our-prototype-will-be-written-in-vaadin.html" title="Our prototype will be written in ... Vaadin" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://www.logemann.org/2010/10/our-prototype-will-be-written-in-vaadin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCSXg8eCp7ImA9Wx5QGU4.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-1705196940842649053</id><published>2010-09-08T09:45:00.001+02:00</published><updated>2010-09-08T09:51:08.670+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T09:51:08.670+02:00</app:edited><title>Ext GWT or SmartGWT or Vaadin</title><content type="html">My journey continues. Deciding on a RIA framework is harder than i thought because of the existance of many quite good approaches. First i checked ExtJS but as mentioned in my previous post, we wont want to write 80% of our app in javascript. So i came to Ext GWT which was the more viable option. Then someone pointed me to vaadin, which works by handling events on the server by widget network communication. But after seeing some limitations on the widget part of vaadin (grids are ok but not perfect for example), i also checked SmartGWT, which is definitely the widget monster. You simply get everything you can imagine.&lt;br /&gt;
&lt;br /&gt;
So there i am. Just for the record, i dont want to go with server-side, template based frameworks like Wicket, Struts2, Spring WebMVC or the likes anymore. Because most of them force you to think about getting all the RIA widgets from jQuery or something. This turned out be a nightmare for our current products version. I want a all-in solution with the best widget support possible and even more important, all the widgets should be themeable the same way and should have the programming style. This is something you dont get with jQuery plugins.&lt;br /&gt;
&lt;br /&gt;
Something i dont bother is the pricing questions. For a company earning money with software development, it doesnt matter if a product is free or has a developer license from 0 - 2000$, but something i cant agree on is CPU licensing because we sell a product more than once.&lt;br /&gt;
&lt;br /&gt;
From a technical standpoint Ext GWT and SmartGWT are quite equal apart from the fact that Smart has more to offer on the server side. Vaadin with its complete different apprach (not from the programming style but from runtime behavior) needs to be compared in a different fashion. Things like GUI responsiveness and overall performance must be carefully checked. But on the pro side you have a very small js client with vaadin which results in fast startup in the browser. On the other hand, our product is a business product and we are planing to rewrite the AdminConsole. This is something that will be used in intranets in 95% of the time. It doesnt make much of a differnece if you load 100k or 1Mb from inside the LAN.&lt;br /&gt;
&lt;br /&gt;
Another important issue is the market relevance, industry adoption and backing company structure. At the end you dont win anything if you chose the best designed framework when the company behind it will close its doors anytime soon. From this perspective i dont think any of those 3 players are in danger. Sencha just got many millions from an investor, Vaadins company is also quite successfull and this over years and Isomorphic seems to have enough big customers to get some money out of the product. All three have regular release and enough inovation. &lt;br /&gt;
&lt;br /&gt;
At this point i cant make the decission. I will read any of the documentations of the three players. I even ordered books from amazon because i really need to be sure that i make the best choice possible. Once i decided on one, we would need at least half a year or something to reengineer our application. &lt;br /&gt;
&lt;br /&gt;
One thing to note: Isnt it lovely that java has so many framework options? On the one side its a lot of work to pick the right one for your business but more important is that you have so many good alternatives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-1705196940842649053?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Rg8P5UnG50Q:VW6FXuSydco:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Rg8P5UnG50Q:VW6FXuSydco:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Rg8P5UnG50Q:VW6FXuSydco:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Rg8P5UnG50Q:VW6FXuSydco:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Rg8P5UnG50Q:VW6FXuSydco:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/1705196940842649053/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=1705196940842649053" title="79 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/1705196940842649053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/1705196940842649053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/Rg8P5UnG50Q/ext-gwt-or-smartgwt-or-vaadin.html" title="Ext GWT or SmartGWT or Vaadin" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>79</thr:total><feedburner:origLink>http://www.logemann.org/2010/09/ext-gwt-or-smartgwt-or-vaadin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYCRHc-eyp7ImA9Wx5QFE8.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-8489219351445902005</id><published>2010-09-02T12:26:00.000+02:00</published><updated>2010-09-02T12:26:05.953+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-02T12:26:05.953+02:00</app:edited><title>Ext JS - From a java programmer perspective</title><content type="html">Background: I am java programmer with about 10 years knowledge in the area of java development. Mainly web programming with Frameworks like Struts, Struts2, Spring-MVC, plain Servlet and of course all the backend stuff like JPA, SOAP or JAXB. So i am definitely not a javascript programmer in a real sense. So far i am using js only in the context of using jquery plugins and stuff like that.&lt;br /&gt;
&lt;br /&gt;
In the last days i ve done some very basic prototyping with Ext JS. Why Ext JS? I think its the most complete framework when it comes to RIA business development. Believe me, i ve tried jQuery and Dojo and they are all fine, as long as you dont want to use the full stack of GUI development. So yes, i need good grids, good form validation and a good layout system. If you try very hard, you can possibly use jQuery and find all the right plugins but then you are in a non-themeable world with a lot of different widget concepts. All other frameworks are just not complete enough when it comes to GUI.&lt;br /&gt;
&lt;br /&gt;
But after a few hours of coding Ext JS, which in fact is quite cleanly designed from OO perspective, i feel like i dont want to code that much in js. Why? Because i dont like dynamic languages too much. I ve done PHP projects for some time and i dont want to go back in the world of weak typing and less superior IDE support, even though my lovely IntelliJ does a decent job for js projects. &lt;br /&gt;
&lt;br /&gt;
Apart from the js issue, you have a lot of non-natural approaches. For instance i18n. Supplying js files with translation constants for each language and then dynmacily include the correct js file feels just weird for a server side programmer. The other way would be to call a json service and getting the desired translations. The Ext JS Designer, a GUI drawing tool, is in a very early stage and it feels like that. To me its quite unusable. Another issue the way you need to think about project layout. In js its not very easy to create a Single Page Interface without creating a maintenance nightmare from a project layout perspective.&lt;br /&gt;
&lt;br /&gt;
But dont get me wrong. Ext JS is still a great tool but it targets different kind of developers. So in the next days i will prototype something with Ext-GWT. So far i was not a hughe fan of GWT but it seems to be a better alternative than doing everything on the client side. The skills in our company are definitely in the backend and in the java area. I dont want to lose that. I will post my experience with GWT and Ext-GWT in the near future. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-8489219351445902005?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=9xelXm8YXgc:rl-tekq_J_E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=9xelXm8YXgc:rl-tekq_J_E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=9xelXm8YXgc:rl-tekq_J_E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=9xelXm8YXgc:rl-tekq_J_E:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=9xelXm8YXgc:rl-tekq_J_E:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/8489219351445902005/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=8489219351445902005" title="4 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8489219351445902005?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8489219351445902005?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/9xelXm8YXgc/ext-js-from-java-programmer-perspective.html" title="Ext JS - From a java programmer perspective" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.logemann.org/2010/09/ext-js-from-java-programmer-perspective.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEHSH4yeSp7ImA9Wx5SGUU.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-3615050023292544219</id><published>2010-08-16T20:50:00.000+02:00</published><updated>2010-08-16T20:50:39.091+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T20:50:39.091+02:00</app:edited><title>Oracle vs. Google - Sit down and watch how bad Software Patents are.</title><content type="html">Finally we have a massive legal suit which is based around software patents. If you need some details of that specific case, consult that &lt;a href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html"&gt;blog&lt;/a&gt;, but be aware that its of course quite technical.&lt;br /&gt;
&lt;br /&gt;
Some "Pro Software Patents" activists claim that patents are important because engineering quality needs to be protected. This is of course a valid argument but to me, most of the patents would fail at the "prior art" test. There is no state funded organisation who could really check if a patent is eligible for getting into the books. So most of the times, patents will be filed and its up to the company who get sued over a patent to show that the pure existence of this patent is wrong. Of course Google has all the power to get the right people to fight against the patents but do you think that every action against a company regarding patents show up in the press? If Oracle would send us a letter about patent violations, we would have big problems funding the research and the trial for that case. &lt;br /&gt;
&lt;br /&gt;
So Software Patents shifts even more power to big companies with inhouse laywers and tons of engineering power. And by paying bonus for employees who want to patent something, things getting worse every day.&lt;br /&gt;
&lt;br /&gt;
Coming back to the Oracle/Google suit, its obvious that Oracle is only after license money. J2ME failed big time. They had some marketshare, yes, but everyone ever programmed for the CLDC, knew that its lifetime was foreseeable. And J2ME doesnt fail because of Android, it failed because every other company invovated in the mobile space in the last years(RIM, M$, Apple, Palm and Google) but Oracle/Sun. They want to make revenue without inovation (and i am quite sure that the mentioned patents, if valid at all, are not the key of the success for Android) and this is the bad thing about patents. &lt;br /&gt;
&lt;br /&gt;
Do you remember SCO? This was also a company who thought that they could make tons of money just by sitting in the court and paying laywers. Of course it was more about copyright than about patents but the company instinct was the same. To me, software patents kill inovation because its only about how many laywers you have. Do you know how many money you need to spent, just to show that a patent is invalid because of "prior art" - or do you know how many money you need to fill patents at all? Impossible for small companies and annoying for companies like Google. Android is successfull because of many things but definitely not because of those lousy patents they mention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-3615050023292544219?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zsd8J3qE8_M:PiLFnT3mhno:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zsd8J3qE8_M:PiLFnT3mhno:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Zsd8J3qE8_M:PiLFnT3mhno:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=Zsd8J3qE8_M:PiLFnT3mhno:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=Zsd8J3qE8_M:PiLFnT3mhno:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/3615050023292544219/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=3615050023292544219" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/3615050023292544219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/3615050023292544219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/Zsd8J3qE8_M/oracle-vs-google-sit-down-and-watch-how.html" title="Oracle vs. Google - Sit down and watch how bad Software Patents are." /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2010/08/oracle-vs-google-sit-down-and-watch-how.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcCQXk9cSp7ImA9Wx5TE0k.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-3754589944346058045</id><published>2010-07-28T21:07:00.000+02:00</published><updated>2010-07-28T21:07:40.769+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T21:07:40.769+02:00</app:edited><title>quickly hacking a prototype json server with Node.js</title><content type="html">You are developing a REST client w/o having the "real" backend ready? But you dont want to start up and configure an apache server and of course you dont want to write a full stack java application just for testing your client? Then why not using node.js. In this little example i registered two REST urls with the server to send back some json data.&lt;br /&gt;
&lt;br /&gt;
&lt;pre name="code" class="js"&gt;var http = require('http');
var sys = require('sys');
var server = http.createServer(function(req, res) {
    
 if(req.url == '/parcel/1') {
  res.writeHead(200, {
         'Content-Type': 'application/json'
     });
     res.end(JSON.stringify(getTrackInfoJson()));
 } else if(req.url = '/stats/last6'){
  res.writeHead(200, {
          'Content-Type': 'application/json'
     });
     res.end(JSON.stringify(getStatsInfoJson())); 
 }
});
server.listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

function getStatsInfoJson() {
 "statinfo":{
  "type":"bar",
  "category":"parcelslast6",
  "data" : [232, 242, 32, 342, 100, 98]
 }
}

function getTrackInfoJson() {
 return { 
     "trackinfo":{
         "parcelnr":123456,
         "provider":"DHL",
         "trackdetails":{
             "trackdetail":[
                 {
                     "date":"01.01.2010",
                     "info":"Got parcel from Customer"
                 },
                 {
                     "date":"02.01.2010",
                     "info":"Shipped to Target depot"
                 },
                 {
                     "date":"03.01.2010",
                     "info":"Delivered to Customer"
                 }
             ]
         }
     }
 };
}
&lt;/pre&gt;&lt;br /&gt;
These two URLs will be answered by our little json-http server:&lt;br /&gt;
&lt;br /&gt;
http://localhost:8124/parcel/1&lt;br /&gt;
http://localhost:8124/stats/last6&lt;br /&gt;
&lt;br /&gt;
Of course you should have installed node.js before. If you have done that right, you can start the server by typing: node myfile.js&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-3754589944346058045?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bJvf6uuSah4:WvVF72oeC2A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bJvf6uuSah4:WvVF72oeC2A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=bJvf6uuSah4:WvVF72oeC2A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bJvf6uuSah4:WvVF72oeC2A:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=bJvf6uuSah4:WvVF72oeC2A:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/3754589944346058045/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=3754589944346058045" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/3754589944346058045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/3754589944346058045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/bJvf6uuSah4/quickly-hacking-prototype-json-server.html" title="quickly hacking a prototype json server with Node.js" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2010/07/quickly-hacking-prototype-json-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEENRnc6fip7ImA9WxFaF0w.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-4000350261379553689</id><published>2010-07-21T01:54:00.001+02:00</published><updated>2010-07-21T13:44:57.916+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-21T13:44:57.916+02:00</app:edited><title>decided on RIA</title><content type="html">A few months ago i ve done some research regarding RIA options and &lt;a href="http://blog.logemann.org/2010/03/lost-in-js-framework-and-ria-options.html"&gt;blogged&lt;/a&gt; about it. After trying a few and reading a little bit, i settled on:&lt;br /&gt;&lt;br /&gt;JQUERY + a lot of its plugins&lt;br /&gt;&lt;br /&gt;I simply love choice when it comes to extensions and i like fast responses. I definitely gave Flex and other more or less proprietary solutions a "NO NO". Plain HTML (with all the hope to the new features in HTML5) plus a not overly complex JS library is my way to go.&lt;br /&gt;&lt;br /&gt;As a side note: I switched the blog to my own URL at http://blog.logemann.org. The old blogspot URL will still work anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-4000350261379553689?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=N0ECDO72Rxo:XQ2lInftMww:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=N0ECDO72Rxo:XQ2lInftMww:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=N0ECDO72Rxo:XQ2lInftMww:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=N0ECDO72Rxo:XQ2lInftMww:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=N0ECDO72Rxo:XQ2lInftMww:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/4000350261379553689/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=4000350261379553689" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4000350261379553689?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4000350261379553689?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/N0ECDO72Rxo/decided-on-ria.html" title="decided on RIA" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2010/07/decided-on-ria.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YDQ30-eyp7ImA9WxBaFkg.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-7020984428006842371</id><published>2010-03-27T01:25:00.001+01:00</published><updated>2010-03-27T01:52:52.353+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-27T01:52:52.353+01:00</app:edited><title>Lost in JS Framework and RIA Options</title><content type="html">Every now and then i am thinking about creating a complete new UI for our logistics products &lt;a href="http://www.netversys.de"&gt;NETVERSYS&lt;/a&gt;. But again and again i am lost in the options. Lets see where i come from:&lt;br /&gt;&lt;br /&gt;- struts based JSP + JSTL + UI CustomTag Library Application&lt;br /&gt;&lt;br /&gt;As a result of this quite old approach, we dont have that much web 2.0 experience yet. The GUI looks pretty descent from a visually standpoint, but technically its outdated!&lt;br /&gt;&lt;br /&gt;Ok, i checked the options. I first started to think about using &lt;span style="font-weight:bold;"&gt;YUI&lt;/span&gt; for the project. I used YUI 2.x for a different project and was quite satisfieing using it. They have killer grids but they completely suck when it comes to forms and validation. I really need support for that and i dont want to write it myself. And they are in the transition phase to YUI3 and it would feel bad to start with 2.x now. But 3.x has nearly no widgets and you need to use a YUI3-YUI2 Bridge to use YUI2 widgets.&lt;br /&gt;&lt;br /&gt;Then i checked the other usual JS framework suspects like &lt;span style="font-weight:bold;"&gt;Dojo&lt;/span&gt;. Kill me but IMO Dojo cant compete with YUI when it comes to widgets. Their online documentation is also a complete desaster compared to YUI. I cant see too many reason to learn another framework just to have shortcommings as well. But compared to YUI, they have a forms framework, including validation.&lt;br /&gt;&lt;br /&gt;Then i stopped at &lt;span style="font-weight:bold;"&gt;GWT&lt;/span&gt;. The core framework has very few widgets and it looks incomplete. I could live with the 100% java code approach - in fact i like it because as a java developer, javascript feels like coding with only one arm. No matter how often i code in JS. Since GWT is not enough, i checked add-ob libs libs like &lt;span style="font-weight:bold;"&gt;GXT&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;SmartGWT&lt;/span&gt;. With one of these, GWT seems like the ultimate killer RIA framework. But when you start with those, you are straight into the non-standard-nearly-closed-source world.&lt;br /&gt;&lt;br /&gt;And then you start thinking about the "how much i want to be in corporate SDK business". A few months ago i played with &lt;span style="font-weight:bold;"&gt;Flex&lt;/span&gt; and i got the same feeling of locked into a big vendor and it doesnt felt so good. Apart from that, i somehow didnt like how Flex reported errors and its general behavior when writing some simple test apps.&lt;br /&gt;&lt;br /&gt;Really interessting is that a lot of forum entries and blogs talk about &lt;span style="font-weight:bold;"&gt;JQuery&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;prototype&lt;/span&gt; in the same sentence. IMO these are complete different animals. I am looking for a feature rich component framework for creating business apps. JQuery gets me nowhere in this regard. They are really helpfull JS libraries, but thats it.&lt;br /&gt;&lt;br /&gt;While researching more and more, its getting tougher and tougher to make a decission at all. Currently i have a slight preference to go with YUI3 because of my YUI2 skillset (even i know thats quite useless with YUI3 ;-)) and because it worked pretty well with a former project. I only need to cover the Forms and Validation issue with a different framework. Perhaps i can mix YUI3 with Dojo. Dojo can do the forms part then.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smartclient.com"&gt;http://www.smartclient.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/smartgwt/"&gt;http://code.google.com/p/smartgwt/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dojotoolkit.org/"&gt;http://www.dojotoolkit.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.yahoo.com/yui/3/"&gt;http://developer.yahoo.com/yui/3/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/intl/de-DE/webtoolkit/"&gt;http://code.google.com/intl/de-DE/webtoolkit/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/products/flex/"&gt;http://www.adobe.com/products/flex/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jquery.com/"&gt;http://jquery.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.prototypejs.org/"&gt;http://www.prototypejs.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-7020984428006842371?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=cN34m6U99js:woF8nwMZgIo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=cN34m6U99js:woF8nwMZgIo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=cN34m6U99js:woF8nwMZgIo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=cN34m6U99js:woF8nwMZgIo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=cN34m6U99js:woF8nwMZgIo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/7020984428006842371/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=7020984428006842371" title="4 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7020984428006842371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/7020984428006842371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/cN34m6U99js/lost-in-js-framework-and-ria-options.html" title="Lost in JS Framework and RIA Options" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.logemann.org/2010/03/lost-in-js-framework-and-ria-options.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMNRnY4eCp7ImA9WxBTGEU.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-1113072754691175499</id><published>2009-12-15T13:46:00.000+01:00</published><updated>2009-12-15T14:08:17.830+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-15T14:08:17.830+01:00</app:edited><title>Obstacles with Java cross platform printing</title><content type="html">To be honest, i am pretty aware of the fact that cross platform printing is an issue with a lot of obstacles for the maintainer (Sun / Oracle) of a language. There are just too many things out of control of SUN. First the whole mess with different printing systems on the various platforms. CUPS on linux and Mac, Windows Spool on MS Windows and other system on other platforms. Here you have to maintain different APIs, even though all systems should understand IPP, its nevertheless kind of proprietary to use the systems as i will point out.&lt;br /&gt;&lt;br /&gt;Take CUPS for example. Lately i installed latest Ubuntu Server distro with a vanilla install. After that i installed cups via "apt-get install cups". If you think that you can print with java with this configuration (tested with OpenJDK), you are wrong. You also need to install "cups-bsd". Took me hours to get that. When you see the first pages flying out of your printer and you start getting a smile on your face, it will come to an abrupt end when you fiddle around with IPP printer properties. For instance, try to use one of those Tray properties to print to a different tray. You wont laugh at that mess for sure.&lt;br /&gt;&lt;br /&gt;While we speak about printing, we also face the issue of fonts. With SUN JRE, you had at least one font family which was packaged with the JRE itself. With OpenJDK you dont have that. You have bindings to system based fonts like DejaVue or something. This means you simply cant rely on an installed font when developing java products. "SHIP IT OR DIE" is the answer for all those who wonder what kind of font one should use.&lt;br /&gt;&lt;br /&gt;We at &lt;a href="http://www.logentis.de"&gt;LOGENTIS&lt;/a&gt; thought that we could circumvent all the hassles by just creating a PDF (of course the font issue is nevertheless there) and send that PDF directly to a network printer which is capable of rastering PDFs. Nice idea and it worked of course but soon you will notice that you traded some problems away and got others for free. You will notice that without having a spooler system, things like concurrent access is a major issue. &lt;br /&gt;&lt;br /&gt;One thing which might solve a lot of issues is to combine the PDF approach with a custom developed IPP based print spooler which is part of the application itself. This way you could bypass legacy spoolers like CUPS or WinSpool but still use a spooler system which handles job management. Of course you still need a PDF capable printer which are not that easy to find. And its worth to mention that developing a good IPP based spooler is not something you do in a week.&lt;br /&gt;&lt;br /&gt;One thing that is bullet proof is not to print at all and send PDFs to your users via email or download and let them do the printing on the client. This works for apps with user interaction but not for server side apps which run without user interaction. What ever you will do, keep in mind that printing will be tough, at least when you have a cross platform product like we have with &lt;a href="http://www.netversys.de"&gt;NETVERSYS&lt;/a&gt;. In the end its possible to cirumvent all issues some way or the other but it will never be fun and sooner or later you will hate the whole printing topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-1113072754691175499?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=5-kSYDLOL24:rA6ctqZnKtY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=5-kSYDLOL24:rA6ctqZnKtY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=5-kSYDLOL24:rA6ctqZnKtY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=5-kSYDLOL24:rA6ctqZnKtY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=5-kSYDLOL24:rA6ctqZnKtY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/1113072754691175499/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=1113072754691175499" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/1113072754691175499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/1113072754691175499?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/5-kSYDLOL24/obstacles-with-java-cross-platform.html" title="Obstacles with Java cross platform printing" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2009/12/obstacles-with-java-cross-platform.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAHRnc-fyp7ImA9WxNRF0s.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-4651069511871638240</id><published>2009-09-12T16:09:00.000+02:00</published><updated>2009-09-12T16:12:17.957+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-12T16:12:17.957+02:00</app:edited><title>Installing VMWare ESX4i on USB</title><content type="html">For everyone going for booting the VMWare ESX4i runtime from USB, here is a little tutorial i made:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Installing ESX4i on USB (bootable)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   1. Download ESX4i Embedded from http://www.vmware.com/de/download/esxi/&lt;br /&gt;   2. Mount ISO File or burn ISO to CD&lt;br /&gt;   3. Extract IMAGE.TGZ from CD (or mounted ISO) to local disk&lt;br /&gt;   4. extract /usr/lib/vmware/installer/VMware-VMvisor-big-xxxxxx-x86_64.dd.bz2&lt;br /&gt;   5. attach USB Stick/Drive &lt;br /&gt;&lt;br /&gt;When doing it on Mac OS X:&lt;br /&gt;&lt;br /&gt;    * see attached disks and find USB drive via: "diskutil list"&lt;br /&gt;    * unmount USB drive "diskutil unmountDisk /dev/xxx" (where xxx is the current drive seen with diskutil list)&lt;br /&gt;    * write data to USB drive: "dd bs=8192 if=VMware-VMvisor-big-xxxxxx-x86_64.dd of=/dev/xxx" &lt;br /&gt;&lt;br /&gt;When doing it on Linux:&lt;br /&gt;&lt;br /&gt;    * get the USB drive identifier like "/dev/sd[x]"&lt;br /&gt;    * unmount USB drive with: "umount ..."&lt;br /&gt;    * write Data to USB drive: "dd bs=8M if=VMware-VMvisor-big-xxxxxx-x86_64.dd of=/dev/xxx" &lt;br /&gt;&lt;br /&gt;When doing it on Windows:&lt;br /&gt;&lt;br /&gt;    * download the tool WinImage and do Disk-&gt;Restore-&gt;VirtualHd and chose the DD file and confirm &lt;br /&gt;&lt;br /&gt;Alternative on Windows (untested):&lt;br /&gt;&lt;br /&gt;    * obtain flashnul at http://shounen.ru/soft/flashnul/&lt;br /&gt;    * do: "c:\flashnul -p" and find the USB drive&lt;br /&gt;    * do: "c:\flashnul 3 -L VMware-VMvisor-big-xxxxxx-x86_64.dd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-4651069511871638240?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=LeF9YN_e17g:FLPVCOO5laI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=LeF9YN_e17g:FLPVCOO5laI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=LeF9YN_e17g:FLPVCOO5laI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=LeF9YN_e17g:FLPVCOO5laI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=LeF9YN_e17g:FLPVCOO5laI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/4651069511871638240/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=4651069511871638240" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4651069511871638240?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4651069511871638240?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/LeF9YN_e17g/installing-vmware-esx4i-on-usb.html" title="Installing VMWare ESX4i on USB" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2009/09/installing-vmware-esx4i-on-usb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAQ3s-fCp7ImA9WxNRFks.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-4034808353981712517</id><published>2009-09-11T11:05:00.000+02:00</published><updated>2009-09-11T11:30:42.554+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-11T11:30:42.554+02:00</app:edited><title>Apple is so sick - SnowLeopard removed Java 1.5 silently</title><content type="html">First of all, if you are one of those Apple religious guys, skip this blog because what you read know will be very hard to believe:&lt;br /&gt;&lt;br /&gt;Let me introduce myself, i am developing in java for ages, some years ago, i used a Windows PC for that. 3 years (or something) ago, i switched to Mac. While the general usage of Mac OS X is fine, developing Java on Mac OS X is simply stupid because Windows, as well as Linux are far better when it comes to JDKs and development with Java.&lt;br /&gt;&lt;br /&gt;The first argument is pretty clear. In the last years Apple was so slow to release ported JDK version that developers on every other platform were faster in checking out new JDKs. But thats something i lived with.... i was not happy but anyway....&lt;br /&gt;&lt;br /&gt;But now listen: Recently i (like everyone else) upgraded to SnowLeopard. I knew it didnt offer me that much from feature perspective but anyway. This was 3 weeks ago. Now we have customers that are running our software on Java 1.5 and 1.6. Yesterday i compiled a new version (my ANT build.xml is pointing for ages to 1.5 symlink in /System/Library/.../1.5) and then i deployed this application yesterday to the customers server.&lt;br /&gt;&lt;br /&gt;After starting up Tomcat, i realized that i am getting "Wrong version class file" indicating that the customers runtime (1.5) doesnt match my classes. Quite irritated i compiled again after checking my build.xml. Another deployment, same error. Then i checked the version bytes of my class files to double proof that its really a 1.6 compiled version and they were. Then i went into the 1.5 (symlink) directory on my mac and noted that SnowLeopard removed Java5 and pointed the 1.5 symlink to 1.6.&lt;br /&gt;&lt;br /&gt;Thats the single scariest thing i ve ever noticed! Apple, you son of a bi****, dont you think that there are also some developers out there developing with your fucking OS ? Silently replacing a JDK, while keeping the 1.5 symlink is insane. As a developer, you dont get any feedback that something changed. You really only see it while deploying!&lt;br /&gt;&lt;br /&gt;This conpany is so enduser driven uneblivable. But they should know that A LOT OF JAVA DEVELOPERS sitched to Mac. Check out the blogsphere and you will know. For me, this is so insulting that i am thinking of leaving that Platform and switch to Ubuntu. There are some tools i would miss (iSync, iCal, iTunes,...) but more important than those gadgets is that behind an OS are developers with some brain. I am so pissed off, hard to believe....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-4034808353981712517?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=MUV6YfD6YyI:5T9IVA7jNHU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=MUV6YfD6YyI:5T9IVA7jNHU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=MUV6YfD6YyI:5T9IVA7jNHU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=MUV6YfD6YyI:5T9IVA7jNHU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=MUV6YfD6YyI:5T9IVA7jNHU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/4034808353981712517/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=4034808353981712517" title="12 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4034808353981712517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4034808353981712517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/MUV6YfD6YyI/apple-is-so-sick-snowleopard-removed.html" title="Apple is so sick - SnowLeopard removed Java 1.5 silently" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://www.logemann.org/2009/09/apple-is-so-sick-snowleopard-removed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8ERnY8eip7ImA9WxJbGEo.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-8861028467260851767</id><published>2009-07-29T16:09:00.000+02:00</published><updated>2009-07-29T16:13:27.872+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-29T16:13:27.872+02:00</app:edited><title>how to save 10 sec on tomcat bootstrap on Mac OS X</title><content type="html">Guys, just use &lt;a href="http://landonf.bikemonkey.org/static/soylatte/"&gt;Soylatte&lt;/a&gt;. For me it minimized bootstrapping from 32 to 22 seconds. Of course with some webapps already in the context...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-8861028467260851767?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=S7x3V4Tc9fw:qfKWXY7cpfE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=S7x3V4Tc9fw:qfKWXY7cpfE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=S7x3V4Tc9fw:qfKWXY7cpfE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=S7x3V4Tc9fw:qfKWXY7cpfE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=S7x3V4Tc9fw:qfKWXY7cpfE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/8861028467260851767/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=8861028467260851767" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8861028467260851767?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8861028467260851767?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/S7x3V4Tc9fw/how-to-save-10-sec-on-tomcat-bootstrap.html" title="how to save 10 sec on tomcat bootstrap on Mac OS X" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2009/07/how-to-save-10-sec-on-tomcat-bootstrap.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HRHs7fip7ImA9WxJbF00.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-6345634974630136313</id><published>2009-07-27T16:56:00.000+02:00</published><updated>2009-07-27T17:02:15.506+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-27T17:02:15.506+02:00</app:edited><title>Ubuntu 9.0.4 from a mac user perspective</title><content type="html">As some of you know. I am mac user for quite some time now. But today i installed Ubuntu on an employees Sony Vaio notebook (and trashed the pre-installed MS Vista).&lt;br /&gt;&lt;br /&gt;To point out the bottom line first: I AM PRETTY AMAZED.&lt;br /&gt;&lt;br /&gt;- This system looks fantastic&lt;br /&gt;- The install is a no brainer&lt;br /&gt;- Hardware detection rate -&gt; 100%&lt;br /&gt;- The Gnome GUI is super fast&lt;br /&gt;- nice pre-installed programs&lt;br /&gt;&lt;br /&gt;It doesnt even feel like Linux anymore, even though i also like bash. But this linux is so enduser friendly, that i am really wondering why anyone still "buys" windows. On our servers i still trust Debian a bit more but with Ubuntu, one gets both of both worlds. All the nice APT tools and a nice GUI.&lt;br /&gt;&lt;br /&gt;If Apple does some silly things in one day, i am quite sure i would switch to Ubuntu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-6345634974630136313?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=CwFQwNhxgOw:AClEK_BvLtM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=CwFQwNhxgOw:AClEK_BvLtM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=CwFQwNhxgOw:AClEK_BvLtM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=CwFQwNhxgOw:AClEK_BvLtM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=CwFQwNhxgOw:AClEK_BvLtM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/6345634974630136313/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=6345634974630136313" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/6345634974630136313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/6345634974630136313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/CwFQwNhxgOw/ubuntu-904-from-mac-user-perspective.html" title="Ubuntu 9.0.4 from a mac user perspective" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2009/07/ubuntu-904-from-mac-user-perspective.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcARH4zfip7ImA9WxJbEkg.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-2263264051906855670</id><published>2009-07-22T10:28:00.001+02:00</published><updated>2009-07-22T10:40:45.086+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T10:40:45.086+02:00</app:edited><title>why java sucks on Mac</title><content type="html">All in all i am quite a big fan of Apple Hardware and the OS itself but after months of developing java on it, my conclusion is rather dissapointing. All in all i really must say that: &lt;span style="font-weight:bold;"&gt;java on Mac OS X SUCKS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First, the releases are so delayed on this platform that you can only say that Apple just dont care about Java.&lt;br /&gt;&lt;br /&gt;Second. the stability of new releases is so bad that most of the time i am switching the "current JDK" depending on what java app i want to start. Sine most of my developer tools are also java based, i am noticing that over and over again.&lt;br /&gt;&lt;br /&gt;Lets take IntelliJ IDEA. After latest Java update on Mac OS X (did it 2 weeks ago), selecting menuitems from the menu just have no effect from time to time. As Jetbrains stated, its about a bug in the Quartz font area. Other apps simply dont start with latest update. &lt;br /&gt;&lt;br /&gt;Third. The Java Printing System which comes since 1.4 is totally crap on Mac OS X. This is extremely fascinating since OpenJDK on Linux also uses CUPS for printing (as Mac OS X) but nevertheless on Mac OS X, you get numerous problems with RAW printing, while on Linux, everything is fine. &lt;br /&gt;&lt;br /&gt;From a java developer standpoint, it makes not that much sense to use a mac because on both other main OS platforms (Windows and Linux), the JDK/JRE feels much more polished and stable. On the other hand i dont want to change the OS. &lt;br /&gt;&lt;br /&gt;So come on Apple. It cant be so hard to maintain this. Most likely Apple can use 95% out of the box of the OpenJDK and the rest of the OS integration shouldnt be too much for a tech company. I think they still dont realize that JAVA is the main development environment for most developers using Mac, not Objective-C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-2263264051906855670?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=lJXe5N263ok:kcb7jq4rZd8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=lJXe5N263ok:kcb7jq4rZd8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=lJXe5N263ok:kcb7jq4rZd8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=lJXe5N263ok:kcb7jq4rZd8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=lJXe5N263ok:kcb7jq4rZd8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/2263264051906855670/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=2263264051906855670" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2263264051906855670?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2263264051906855670?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/lJXe5N263ok/why-java-sucks-on-mac.html" title="why java sucks on Mac" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2009/07/why-java-sucks-on-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAESXk-eCp7ImA9WxJXFEw.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-41265415427715913</id><published>2009-06-08T00:18:00.000+02:00</published><updated>2009-06-08T00:28:28.750+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-08T00:28:28.750+02:00</app:edited><title>increased the bar for spammers</title><content type="html">Unfortunately in a small company like mine, you have to do all sorts of things which are not in your prime focus. Maintaining a public postfix mailserver is one of these things. Since a few weeks i am frustrated about the spam percentage i am getting and all the false positives my client scanner is detecting.&lt;br /&gt;&lt;br /&gt;It was time to dig deepter into postfix and thanks to google and the very helpful german maillist "postfixbuch-users". I think i ve managed to really get to a new level. Of course things need to be validated again in a few days but thats what i have done:&lt;br /&gt;&lt;br /&gt;1) used policyd-weight to kill all the seperate DNSBL entries in postfix and use a software that uses all the importants blacklists, together with a useful weighing system.&lt;br /&gt;&lt;br /&gt;2) use greylisting with "postgrey"&lt;br /&gt;&lt;br /&gt;3) used some postfix internal checks that were suggested on the mentioned list&lt;br /&gt;&lt;br /&gt;Of course, before my refactoring was done, i also had some DNSBL and some other restrictions in postfix but it seems a bit weird all in all and not organized very well. Another interessting thing is, when you follow mail.log carefully for some hours, you really get scared how much bullshit a SMTP Server has to handle. Of course everyone knows from the press that the spam percentage is that high compared to ham, but when you see it live, its even more scary.... Alone the fact that one needs to buy some amount of hardware to handle all that spam is making me angry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-41265415427715913?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=UmezuPYND78:WbGYU2r4mGY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=UmezuPYND78:WbGYU2r4mGY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=UmezuPYND78:WbGYU2r4mGY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=UmezuPYND78:WbGYU2r4mGY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=UmezuPYND78:WbGYU2r4mGY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/41265415427715913/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=41265415427715913" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/41265415427715913?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/41265415427715913?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/UmezuPYND78/increased-bar-for-spammers.html" title="increased the bar for spammers" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2009/06/increased-bar-for-spammers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMAQns-cCp7ImA9WxJRFk0.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-4138917902039985400</id><published>2009-05-18T01:24:00.001+02:00</published><updated>2009-05-18T01:37:23.558+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-18T01:37:23.558+02:00</app:edited><title>First impressions on TeamCity</title><content type="html">After using IntelliJ IDEA for several years now, i was excited if Jetbrains could deliver a server side product on the same level. To say it directly up front: Yes, i think so.&lt;br /&gt;&lt;br /&gt;The toughest thing was not get TeamCity up and running... this was quite easy but to create a testing environment within our project which was "server ready". If we had done tests in the past (yes *if*, we are definitely bad in testing), we have done it on developer machines with the help of the IDE. I definitely wanted to use the ANT Runners inside TeamCity (TC) because we also have developers using Eclipse. So the option to use a IDEA Project runner was not the prefered one.&lt;br /&gt;&lt;br /&gt;After modifying our ANT build file several times, we ended up with a quite good approach and i turned back to TC, getting into the config thingy. First i like the concept of distributed build agents. Even though i am using the agent on the same machine as TC Admin Server itself, it feels good to do to different (addtiional) platforms without any problems. Quite a big issues for product which should be able to run on various platforms.&lt;br /&gt;&lt;br /&gt;You can manage the agents by triggering builds on VCS events or time shedule. We will go with a daily-approach first, because at this point we use it solely for code coverage benchmarking, but the next step would be to provide daily builds.&lt;br /&gt;&lt;br /&gt;In the next weeks we will spend more time with TC and see how to tweak it for our internal needs. There is a lot to do in terms of end2end testing when it comes to databases and ORM and stuff. I am still unsure if we should use Derby and on the fly creation of production databases or link against a development database on a different server. And how well OpenJPA can handle Derby is also a big question mark. But hey, one step after another. I definitely will use the Spring Testing Framework which makes Spring bootstraping a lot easier in Test classes.&lt;br /&gt;&lt;br /&gt;People interessted in TeamCity should check: &lt;a href="http://www.jetbrains.com/teamcity/"&gt;http://www.jetbrains.com/teamcity/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-4138917902039985400?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=She4O2fLW_0:mPaka17HqsA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=She4O2fLW_0:mPaka17HqsA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=She4O2fLW_0:mPaka17HqsA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=She4O2fLW_0:mPaka17HqsA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=She4O2fLW_0:mPaka17HqsA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/4138917902039985400/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=4138917902039985400" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4138917902039985400?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/4138917902039985400?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/She4O2fLW_0/first-impressions-on-teamcity.html" title="First impressions on TeamCity" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2009/05/first-impressions-on-teamcity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUFRXw6fSp7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-317261887684333228</id><published>2009-04-25T14:21:00.000+02:00</published><updated>2009-04-25T14:23:34.215+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T14:23:34.215+02:00</app:edited><title>goodbye TWiki, hello FOSWIKI</title><content type="html">For some months now i wanted to migrate from TWiki to FOSWIKI because of &lt;a href="http://foswiki.org/About/WhyThisFork?redirectedfrom=Home.WhyThisFork"&gt;this&lt;/a&gt;. Again and again i delayed this move because of the non-trivial migration path. Now i am ready and happy to run on FOSWIKI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-317261887684333228?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=toxsL7zHyDs:0o31N4JT3eI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=toxsL7zHyDs:0o31N4JT3eI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=toxsL7zHyDs:0o31N4JT3eI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=toxsL7zHyDs:0o31N4JT3eI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=toxsL7zHyDs:0o31N4JT3eI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/317261887684333228/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=317261887684333228" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/317261887684333228?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/317261887684333228?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/toxsL7zHyDs/goodbye-twiki-hello-foswiki.html" title="goodbye TWiki, hello FOSWIKI" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2009/04/goodbye-twiki-hello-foswiki.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFSXo5fCp7ImA9WxJTFEQ.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-2332159925358863315</id><published>2009-04-23T16:57:00.001+02:00</published><updated>2009-04-23T17:05:18.424+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-23T17:05:18.424+02:00</app:edited><title>goodbye BIRT hello Jasper</title><content type="html">It was a short journey with &lt;a href="http://eclipse.org/birt"&gt;BIRT&lt;/a&gt;. The first impression was good back then. But thats what it was: a first impression. We now deployed a project which uses BIRT and two things are so annoying that i decided to quit on BIRT:&lt;br /&gt;&lt;br /&gt;1) Memory consumption is a big time issue most likely thanks to the underlying OSGi runtime.&lt;br /&gt;&lt;br /&gt;2) Lib dependencies is another brainer. There is no POM for BIRT and if you include all the libs they bundle in the distro. You have about 45 Megs or something extra JARs. Needless to say that its not that easy to see what of these are not needed in your special selection of features. There are no proper docs on that.&lt;br /&gt;&lt;br /&gt;So anyone interessted in some BIRT books from Eclipse Press / A.W. ? :-) But BIRT is not bad, it just doesnt work out well if you are developing j2ee apps which do not run on top of OSGi.&lt;br /&gt;&lt;br /&gt;After some research i finally decided to go with &lt;a href="http://www.jasperforge.com/"&gt;Jasper&lt;/a&gt;. Should have chosen it in the first place of course....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-2332159925358863315?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xUhRwEvY7yk:WRjS2cYeI6I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xUhRwEvY7yk:WRjS2cYeI6I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=xUhRwEvY7yk:WRjS2cYeI6I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=xUhRwEvY7yk:WRjS2cYeI6I:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=xUhRwEvY7yk:WRjS2cYeI6I:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/2332159925358863315/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=2332159925358863315" title="5 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2332159925358863315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2332159925358863315?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/xUhRwEvY7yk/goodbye-birt-hello-jasper.html" title="goodbye BIRT hello Jasper" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.logemann.org/2009/04/goodbye-birt-hello-jasper.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQHR3w7eyp7ImA9WxVbF0g.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-2168636736885569900</id><published>2009-04-03T12:39:00.000+02:00</published><updated>2009-04-03T12:58:56.203+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-03T12:58:56.203+02:00</app:edited><title>Struts 2.1.x with CXF 2.1.4 issues on URI mappings</title><content type="html">When having this web.xml (aka filter and servlet mappings for both frameworks):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;filter&amp;gt;&lt;br /&gt;     &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;     &amp;lt;filter-class&amp;gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt; &amp;lt;/filter&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;     &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;     &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt; &amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;servlet&amp;gt;&lt;br /&gt;     &amp;lt;servlet-name&amp;gt;CXFServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;     &amp;lt;servlet-class&amp;gt;&lt;br /&gt;         org.apache.cxf.transport.servlet.CXFServlet&lt;br /&gt;     &amp;lt;/servlet-class&amp;gt;&lt;br /&gt;     &amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;&lt;br /&gt; &amp;lt;/servlet&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;     &amp;lt;servlet-name&amp;gt;CXFServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;     &amp;lt;url-pattern&amp;gt;/services/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt; &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The CXF servlet never gets called on CXF requests like "http://..../services/. Thats because even though Struts2 has no namespace for this nor any action it "handles" this request without passing through the chain.&lt;br /&gt;&lt;br /&gt;My quick solutions is to write a custom ActionMapper which modifies the default one a bit. Here the struts.properties for the custom actionMapper.&lt;br /&gt;&lt;br /&gt;struts.mapper.class=de.logentis.struts2.CXFStruts2ActionMapper&lt;br /&gt;&lt;br /&gt;And here the ActionMapper:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/*&lt;br /&gt; * Copyright (c) 2008 Logentis GmbH. All Rights Reserved.&lt;br /&gt; *&lt;br /&gt; * This software is the proprietary information of Logentis GmbH&lt;br /&gt; * Use is subject to license terms as seen in LICENSE.txt in the&lt;br /&gt; * distribution. Logentis GmbH PROPRIETARY/CONFIDENTIAL.&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;package de.logentis.struts2;&lt;br /&gt;&lt;br /&gt;import org.apache.struts2.dispatcher.mapper.DefaultActionMapper;&lt;br /&gt;import org.apache.struts2.dispatcher.mapper.ActionMapping;&lt;br /&gt;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;&lt;br /&gt;import com.opensymphony.xwork2.config.ConfigurationManager;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * ActionMapper that excludes all /services/* URLs. A shame that this cant be &lt;br /&gt; * done simpler w/o a custom ActionMapper&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;public class CXFStruts2ActionMapper extends DefaultActionMapper {&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager) {&lt;br /&gt;        ActionMapping mapping = new ActionMapping();&lt;br /&gt;        String uri = getUri(request);&lt;br /&gt;        int indexOfSemicolon = uri.indexOf(";");&lt;br /&gt;        uri = (indexOfSemicolon &gt; -1) ? uri.substring(0, indexOfSemicolon) : uri;&lt;br /&gt;        uri = dropExtension(uri, mapping);&lt;br /&gt;&lt;br /&gt;        if(uri.matches("/services/.*")) return null;&lt;br /&gt;        else return super.getMapping(request, configManager);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Perhaps i am missing something... but for now thats the best thing i came up with...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-2168636736885569900?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=hz9vnQlm024:PtJnoxVT3pw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=hz9vnQlm024:PtJnoxVT3pw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=hz9vnQlm024:PtJnoxVT3pw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=hz9vnQlm024:PtJnoxVT3pw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=hz9vnQlm024:PtJnoxVT3pw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/2168636736885569900/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=2168636736885569900" title="2 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2168636736885569900?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/2168636736885569900?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/hz9vnQlm024/struts-21x-with-cxf-214-issues-on-uri.html" title="Struts 2.1.x with CXF 2.1.4 issues on URI mappings" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.logemann.org/2009/04/struts-21x-with-cxf-214-issues-on-uri.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMQ3o8cCp7ImA9WxVbFEw.&quot;"><id>tag:blogger.com,1999:blog-2975540665822595138.post-8888992520036635234</id><published>2009-03-30T12:51:00.000+02:00</published><updated>2009-03-30T12:54:42.478+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-30T12:54:42.478+02:00</app:edited><title>Eclipse Birt and Maven</title><content type="html">Someone should tell the Eclipse Birt guys that being part of the Maven repo is not the worst thing on earth, especially with such a dependency list like they have. Even i dont use Maven (i use Ivy), i am extensively using Maven repos, oficial and private ones.&lt;br /&gt;&lt;br /&gt;Perhaps i will start to write it from scratch and publish all the artifacts to my own local repo but this will take at least 2-3 hours and its boring. This should be part of their build process (creating the POM and stuff).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2975540665822595138-8888992520036635234?l=www.logemann.org' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bReQounPxIw:Pv52XKihqhQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bReQounPxIw:Pv52XKihqhQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=bReQounPxIw:Pv52XKihqhQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/LogemannBlog?a=bReQounPxIw:Pv52XKihqhQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/LogemannBlog?i=bReQounPxIw:Pv52XKihqhQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.logemann.org/feeds/8888992520036635234/comments/default" title="Kommentare zum Post" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2975540665822595138&amp;postID=8888992520036635234" title="0 Kommentare" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8888992520036635234?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2975540665822595138/posts/default/8888992520036635234?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/LogemannBlog/~3/bReQounPxIw/eclipse-birt-and-maven.html" title="Eclipse Birt and Maven" /><author><name>Marc Logemann</name><uri>http://www.blogger.com/profile/09972504705870465110</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="21" src="http://3.bp.blogspot.com/-yvsZY9tqekc/TXVgOa6eQuI/AAAAAAAAACw/FR-Y_RDqRlA/s220/27340_753206298_1921_n.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.logemann.org/2009/03/eclipse-birt-and-maven.html</feedburner:origLink></entry></feed>

