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

<channel>
	<title>byte bohemian &#187; Web 2.0</title>
	<atom:link href="http://nicl.net/category/web-20/feed/" rel="self" type="application/rss+xml" />
	<link>http://nicl.net</link>
	<description></description>
	<lastBuildDate>Sat, 15 May 2010 20:51:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Getting closer to 1.0</title>
		<link>http://nicl.net/2009/03/getting-closer-to-10/</link>
		<comments>http://nicl.net/2009/03/getting-closer-to-10/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 18:00:33 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tapestry]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[jaev]]></category>

		<guid isPermaLink="false">http://nicl.net/2009/03/14/getting-closer-to-10/</guid>
		<description><![CDATA[This afternoon I spend some time to take the jaev Framework closer to the 1.0 final release.

This afternoon I spend some time to take the jaev Framework closer to the 1.0 final release.
The second release candidate was built this afternoon. It contains some fixes and some improvements suggested by PMD and Findbugs. Another major focus [...]]]></description>
			<content:encoded><![CDATA[<p>This afternoon I spend some time to take the <a href="http://jaev.googlecode.com">jaev</a> Framework closer to the 1.0 final release.<br />
<span id="more-21"></span><br />
This afternoon I spend some time to take the <a href="http://jaev.googlecode.com">jaev</a> Framework closer to the 1.0 final release.</p>
<p>The second release candidate was built this afternoon. It contains some fixes and some improvements suggested by <a href="http://pmd.sourceforge.net/">PMD</a> and <a href="http://findbugs.sourceforge.net">Findbugs</a>. Another major focus was to improve the performance of <a href="http://jaev.googlecode.com">jaev</a>. This was achieved in reducing the number DNS lookups by introducing a cache for DNS MX record resolution.</p>
<p>This may lead to another nifty feature in the next release candidate, final or 1.1 release. I am planning to introduce a domain suggest function. This may be achieved by using a fix/initial suggestion list and the queries against the DNS lookup cache. If everything works out well the i.e. the Tapestry 5 example may offer a suggest function for e-mail addresses.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2009/03/getting-closer-to-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excited about Tapestry 5.1</title>
		<link>http://nicl.net/2009/01/excited-about-tapestry-51/</link>
		<comments>http://nicl.net/2009/01/excited-about-tapestry-51/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 21:40:16 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Tapestry]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://nicl.net/2009/01/11/excited-about-tapestry-51/</guid>
		<description><![CDATA[One of the blogs I am reading on a regular basis is the Tapestry Central blog from Howard Lewis Ship the founder and lead developer of the Tapestry framework. It alreaded provided some really nice ideas and introduced me into some really interesting topics.
So this weekend I read the article about some new Features of [...]]]></description>
			<content:encoded><![CDATA[<p>One of the blogs I am reading on a regular basis is the <a href="http://tapestryjava.blogspot.com/">Tapestry Central blog</a> from <a href="http://www.blogger.com/profile/04486596490758986709">Howard Lewis Ship</a> the founder and lead developer of the <a href="http://tapestry.apache.org/">Tapestry</a> framework. It alreaded provided some really nice ideas and introduced me into some really interesting topics.</p>
<p>So this weekend I read the article about some new Features of the 5.1 Version of the <a href="http://tapestry.apache.org/">Tapestry</a> framework ...<br />
<span id="more-17"></span><br />
One of the blogs I am reading on a regular basis is the <a href="http://tapestryjava.blogspot.com/">Tapestry Central blog</a> from <a href="http://www.blogger.com/profile/04486596490758986709">Howard Lewis Ship</a> the founder and lead developer of the <a href="http://tapestry.apache.org/">Tapestry</a> framework. It already provided some really nice ideas and introduced me into some really interesting topics.</p>
<p>So this weekend I read the article about some new Features of the 5.1 Version of the <a href="http://tapestry.apache.org/">Tapestry</a> framework. And I was really exited to read about the plans to reduce/minimize the traffic over the wire. I am studying this topic for quite a while, since I stumbled across it during a project. The trigger was the <a href="http://developer.yahoo.com/performance/rules.html">Best practices article</a> from the Yahoo developer team.</p>
<p>Since then I was using different approaches and tools to improve the performance of the websites of my clients. One very useful tool is <a href="https://jawr.dev.java.net/">JAWR</a> a Javascript and CSS bundling and compression tool. <a href="https://jawr.dev.java.net/">JAWR</a> offers facilities to join multiple Javascript or CSS files in bundles. Each bundle will be delivered compressed (if possible), in addition very strong cache HTTP headers will be set to the HTTP response, so that the internet infrastructure may cache these files. So the traffic the originating server will be reduced. To prevent nasty caching problems the <a href="https://jawr.dev.java.net/">JAWR</a> framework provides facilities to generate URLs to these bundles which contain a version information, so when the bundle changes, a new URL will be generated.</p>
<p>The very exciting thing about the planned Features in <a href="http://tapestry.apache.org/">Tapestry</a> 5.1 is, that Tapestry is the first content generating web framework which will provide out the box facilities for this kind of issues.<br />
A great weakness of the JSP and JSF approaches to generate content is, that there is no fast/cheap way to determine a last modified date for a page or a component. So the application can't use the "If-Modified-Since" and "Not Modified" (HTTP status 304) mechanism to provide a lightweight answer for requested resources which have not changed. Maybe <a href="http://www.blogger.com/profile/04486596490758986709">Howard Lewis Ship</a> is able to provide this with his <a href="http://tapestry.apache.org/">Tapestry</a> framework. This would be a great performance boost for any kind of web application.</p>
<p>May very dynamic application don't address the content delivery issues at all. Its quite sad to see, but on the other hand side it's good to see that some frameworks are beginning to address this kind of features.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2009/01/excited-about-tapestry-51/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This was 2008 &#8230;</title>
		<link>http://nicl.net/2008/12/this-was-2008/</link>
		<comments>http://nicl.net/2008/12/this-was-2008/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 10:51:25 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Privat]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[World of Warcraft]]></category>

		<guid isPermaLink="false">http://nicl.net/2008/12/31/this-was-2008/</guid>
		<description><![CDATA[With 2008 almost over, I am just want to take the chance to write a short "Goodbye" for this year. It was quite exiting! I fell in love again, which took quite some years. How it's gonna work out, we will see in 2009 ...

With 2008 almost over, I am just want to take the [...]]]></description>
			<content:encoded><![CDATA[<p>With 2008 almost over, I am just want to take the chance to write a short "Goodbye" for this year. It was quite exiting! I fell in love again, which took quite some years. How it's gonna work out, we will see in 2009 ...<br />
<span id="more-16"></span><br />
With 2008 almost over, I am just want to take the chance to write a short "Goodbye" for this year. It was quite exiting! I fell in love again, which took quite some years. How it's gonna work out, we will see in 2009. At this moment my girl friends visits her parents. She stayed there before christmas and won't be back in Hamburg this year. Some pretty lonely holidays <img src='http://nicl.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  I am misusing the time to play way to much <a href="http://www.wow-europe.de">World of Warcraft</a> and preparing some skills I will need for my new job, which will start in Feburary 2009.</p>
<p>After nine years and four month at <a href="http://www.SinnerSchrader.de">SinnerSchrader</a> I am pretty nervous how this will be. It was my first employment after I graduated at the <a href="http://www.fh-wedel.de">Fachhochschule Wedel</a>. Hell I will really miss some of the boys and girls! But I am still convinced that this is the time for me to move on.</p>
<p>One of these "new skills" I am preparing is <a href="http://www.adobe.com/de/products/flex/">Adobe Flex</a>, which is a framework to create rich clients for the internet based on the <a href="http://www.adobe.com/de/products/flashplayer/">Adobe Flashplayer</a>.<br />
Quite an intresting and well designed piece of Software. This is still my first impression <img src='http://nicl.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  I'm pretty sure I will discover some very ugly facets later. I already ran about some bugs with the HTTPService which prevented my from setting the "User-Agent" header on a HTTP GET request. Damn I am demanding I know <img src='http://nicl.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
But the <a href="http://eu.wowarmory.com/">WoW Armory</a> refused to return pure XML until I pretend to be the Firefox 2.x Browser. <a href="http://eu.wowarmory.com/">WoW Armory</a>  is also a pretty interesting piece of software. It offers the facilities to query WoW Characters, Guilds or Items via the Web. If you are using a Firefox browser the <a href="http://eu.wowarmory.com/">WoW Armory</a> returns only a XML which will be rendered with a XSLT style sheet. All the other Browser will get an "interesting" HTML page. Maybe I am blogging about this later.</p>
<p>One last thing left to do for 2009:</p>
<p>Wie man so schön in Deutschland sagt: Einen Guten Rutsch ins neue Jahr!</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2008/12/this-was-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSF 2.0 RI EDR1 &#8230; getting mature</title>
		<link>http://nicl.net/2008/06/jsf-20-ri-edr1-getting-mature/</link>
		<comments>http://nicl.net/2008/06/jsf-20-ri-edr1-getting-mature/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 12:48:04 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[J2EE]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://nicl.net/2008/06/29/jsf-20-ri-edr1-getting-mature/</guid>
		<description><![CDATA[Friday evening I read about the new version of JSF. The reference implementation (RI) Mojarra made an early draft review (EDR) of Mojarra 2.0 which implements the lastest specification of the JSR-314 which features JavaServer Faces (JSF) 2.0.

Friday evening I read about the new version of JSF. The reference implementation (RI) Mojarra made an early [...]]]></description>
			<content:encoded><![CDATA[<p>Friday evening I read about the new version of JSF. The reference implementation (RI) Mojarra made an early draft review (EDR) of Mojarra 2.0 which implements the lastest specification of the JSR-314 which features JavaServer Faces (JSF) 2.0.<br />
<span id="more-11"></span></p>
<p>Friday evening I read about the new version of JSF. The reference implementation (RI) Mojarra made an early draft review (EDR) of Mojarra 2.0 which implements the lastest specification of the JSR-314 which features JavaServer Faces (JSF) 2.0.</p>
<p>I don't want so summarize alle the new little gizmos in the JSF 2.0 spec or the EDR, <a href="http://blogs.sun.com/rlubke/">Ryan Lubke</a> does this in his<a href="http://blogs.sun.com/rlubke/"> blog</a> already. There will be a long way to go to finish all the issues of the JSR but I can't stand to comment the one or other thing.</p>
<p>Like i.e. the project stage feature. Damn I am doing this like this for years in my application. It's a wonderful way to tell the application how many secrets have to be kept in this environment.<br />
In a test environment I like the application to be very verbose and tell my of every little affliction, but in productive envorinments the application has to be very reticent. I don't want to tell the bad guys out there all over the internet about the flaws in the application.<br />
One thing I am still missing, which goes hand in hand with project stages in my appliations it the version number. The application provides facilities to access the version number of the application and display it in any page. A wonderful tools to communicate with our QA department. They can check the version history if an issues was solved in the current version deployed on the test and QA system and they don't have to recheck about the version with me every time.</p>
<p>Another nice feature I noticed is, that in JSF 2.0 the component tree may be aware of the head and body areas in a HTML page. So it now should be quite easy to add CSS and Java-Scipts to a page. This may end some nasty implementations to re-parse the rendered output before it's send to the client to add CSS or Java-Scripts to the header. Or worse the tons of inline Java-Script code.<br />
Let's be honest most of the HTML code generated by JSF is quite a horror and the frontend engineers are hating it a long time. Maybe we'll get some really nice HTML code now, so we don't need any more perfomace hacks to accellerate the bad HTML code.</p>
<p>I will keep an eye on the JSF 2.0 spec, it may solve much of the pain I have to today using JSF ...</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2008/06/jsf-20-ri-edr1-getting-mature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lazy weekend</title>
		<link>http://nicl.net/2008/05/lazy-weekend/</link>
		<comments>http://nicl.net/2008/05/lazy-weekend/#comments</comments>
		<pubDate>Sun, 25 May 2008 20:16:17 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[Privat]]></category>
		<category><![CDATA[Tapestry]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://nicl.net/2008/05/25/lazy-weekend/</guid>
		<description><![CDATA[This weekend was a lazy one. My girlfriend visited me, so I had not much time playing round with all of this software stuff. Another reason for my laziness was Guitar Hero 3 - Legends of Rock. I was first introduced to this game by a friend last saturday. Instead of playing cards we played [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend was a lazy one. My girlfriend visited me, so I had not much time playing round with all of this software stuff. Another reason for my laziness was <a href="http://www.amazon.de/Guitar-Hero-Legends-Bundle-MAC-DVD/dp/B0012YSYTM/ref=sr_1_15?ie=UTF8&#038;s=videogames&#038;qid=1211745245&#038;sr=8-15" target="_blank">Guitar Hero 3 - Legends of Rock</a>. I was first introduced to this game by a friend last saturday. Instead of playing cards we played a little guitar hero on Xbox 360. Next morning I decided to get my own copy of this came. Fortunately the game is available for Mac too so I hadn't not to by a Xbox 360 or PS3.</p>
<p>But I already spent a little time on playing around with <a href="http://tapestry.apache.org/tapestry5/" target="_blank">Tapestry 5</a> on my little project. Quit a nice piece of software, but quite some hurdles to get into it. The trivial examples work quite well but I still have some troubles getting my ideas working. But I guess my years of experience are standing in my way now, because I am quite aware of what I am wanting to achieve ...</p>
<p>Maybe this week I have some time to investigate <a href="http://tapestry.apache.org/tapestry5/" target="_blank">Tapestry 5</a> more in detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2008/05/lazy-weekend/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Still messing around with &#8220;ETag&#8221; and &#8220;Last-Modified&#8221;</title>
		<link>http://nicl.net/2008/05/still-messing-around-with-etag-and-last-modified/</link>
		<comments>http://nicl.net/2008/05/still-messing-around-with-etag-and-last-modified/#comments</comments>
		<pubDate>Thu, 22 May 2008 19:15:50 +0000</pubDate>
		<dc:creator>niclas</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://nicl.net/2008/05/22/still-messing-around-with-etag-and-last-modified/</guid>
		<description><![CDATA[Stating with this whole website performance an ETag topic opened pandoras box. It's a real mess and lame compromises all over the place. But I have to admit that the whole thing is not as easy as I expected it to be.
Anyway ... today I had a nice discussion with a colleague about this topic. [...]]]></description>
			<content:encoded><![CDATA[<p>Stating with this whole website performance an ETag topic opened pandoras box. It's a real mess and lame compromises all over the place. But I have to admit that the whole thing is not as easy as I expected it to be.</p>
<p>Anyway ... today I had a nice discussion with a colleague about this topic. He's a senior front-end developer. This means he is a real pro in HTML, CSS, Java-Script and stuff like this and he's the one who showed me the whole <a href="http://developer.yahoo.com/performance" target="_blank">Yahoo! performance stuff</a>. After this discussion I wanted to check some things out in detail.</p>
<p><span id="more-8"></span></p>
<p>Stating with this whole website performance an ETag topic opened pandoras box. It's a real mess and lame compromises all over the place. But I have to admit that the whole thing is not as easy as I expected it to be.</p>
<p>Anyway ... today I had a nice discussion with a colleague about this topic. He's a senior front-end developer. This means he is a real pro in HTML, CSS, Java-Script and stuff like this and he's the one who showed me the whole <a href="http://developer.yahoo.com/performance" target="_blank">Yahoo! performance stuff</a>. After this discussion I wanted to check some things out in detail.</p>
<p>First I wanted to check if the Apache was sending two different ETags if you have to Apache web servers delivering the content of a website. A simple test with <code>wget</code> verified it:</p>
<pre>
wget --no-dns-cache -S http://www.a-domain.de/flash/ballons_main.swf
--09:14:26--  http://www.a-domain.de/flash/ballons_main.swf
           => `ballons_main.swf'
Resolving www.a-domain.de... 84.xxx.xxx.x17, 84.xxx.xxx.x33
Connecting to www.a-domain.de|84.xxx.xxx.x17|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Thu, 22 May 2008 07:14:26 GMT
  Last-Modified: Tue, 20 May 2008 15:49:24 GMT
  ETag: "1041e6-7b2c8-6c9fc900"
  Accept-Ranges: bytes
  Content-Length: 504520
  Keep-Alive: timeout=15, max=45
  Connection: Keep-Alive
  Content-Type: application/x-shockwave-flash
Length: 504,520 (493K) [application/x-shockwave-flash]
</pre>
<p>When requesting the first web server the ETag "1041e6-7b2c8-6c9fc900" war returned ...</p>
<pre>
wget --no-dns-cache -S http://www.a-domain.de/flash/ballons_main.swf
--09:14:26--  http://www.a-domain.de/flash/ballons_main.swf
           => `ballons_main.swf'
Resolving www.a-domain.de... 84.xxx.xxx.x17, 84.xxx.xxx.x33
Connecting to www.a-domain.de|84.xxx.xxx.x33|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Thu, 22 May 2008 07:14:26 GMT
  Last-Modified: Tue, 20 May 2008 15:49:24 GMT
  ETag: "b824e-7b2c8-6c9fc900"
  Accept-Ranges: bytes
  Content-Length: 504520
  Keep-Alive: timeout=15, max=45
  Connection: Keep-Alive
  Content-Type: application/x-shockwave-flash
Length: 504,520 (493K) [application/x-shockwave-flash]
</pre>
<p>... after requesting the second web server the ETag "b824e-7b2c8-6c9fc900". So if you do not disable the INode usage for the ETag calculation the whole mechanism will not work. But does this really matter. As you can see the DNS caching was disabled for the test. In a real life situation the DNS caching we be activated and my browser will talk only to one web server and the INode issue won't matter at all.<br />
But if we have multiple web server and the internet browser will only talk to one of them, why do I need the ETag? The Last-Modified header will be enough, won't it?</p>
<p>So my conclusion is use either the Last-Modifed header or the ETag header but using both header makes no really sense at all. This should be right in any case for the Apache HTTPD, the Microsoft IIS or any other web server delivering static content. I also recommend using the Last-Modified because the ETag calculation requires more computing time. There is only one scenario I can provide where the ETag will work and the Last-Modifed Header will not. If someone is changing content and does not modify the last modified time stamp. But this should be rather uncommon.</p>
<p>But how is the situation at dynamic content creation? My favorite web framework is Java Servlets and all related technologies (JSP, JSF, Tapestry, and so on) and after that very disappointing chapter with the ETag I decided to take a closer look at the facilities the servlet and JSP APIs are offering. Another sad very sad story at my actual point of view right now. But for tonight it is enough. Later more about it ...</p>
]]></content:encoded>
			<wfw:commentRss>http://nicl.net/2008/05/still-messing-around-with-etag-and-last-modified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
