<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.justaddwater.dk/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>justaddwater.dk</title>
	
	<link>http://justaddwater.dk</link>
	<description>Instant Usability &amp; Web Standards</description>
	<lastBuildDate>Thu, 10 Jun 2010 08:23:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.justaddwater.dk/jaw/posts" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jaw/posts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">jaw/posts</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Windows SVN pre-commit-hook</title>
		<link>http://justaddwater.dk/2010/06/10/windows-svn-pre-commit-hook/</link>
		<comments>http://justaddwater.dk/2010/06/10/windows-svn-pre-commit-hook/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 08:23:32 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1354</guid>
		<description><![CDATA[At a current project I work on, we use a Windows server to run our subversion repository. 
I wanted to set up the pre-commit hook so that commits with empty comment are automatically rejected.
All commit-hook example files that go with Subversion are written in bash (as unix servers tend to be the normal). 
Here is [...]]]></description>
			<content:encoded><![CDATA[<p>At a current project I work on, we use a Windows server to run our subversion repository. </p>
<p>I wanted to set up the pre-commit hook so that commits with empty comment are automatically rejected.</p>
<p>All commit-hook example files that go with Subversion are written in bash (as unix servers tend to be the normal). </p>
<p>Here is a the pre-commit hook rewritten as a windows .bat file.</p>
<p><script src="http://gist.github.com/432704.js"></script></p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=j515gdOtLd8:NaOxaRaLaeM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=j515gdOtLd8:NaOxaRaLaeM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=j515gdOtLd8:NaOxaRaLaeM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=j515gdOtLd8:NaOxaRaLaeM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=j515gdOtLd8:NaOxaRaLaeM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/j515gdOtLd8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/06/10/windows-svn-pre-commit-hook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Interesting visualization of Money Flow</title>
		<link>http://justaddwater.dk/2010/05/24/interesting-visualization-of-money-flow/</link>
		<comments>http://justaddwater.dk/2010/05/24/interesting-visualization-of-money-flow/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:33:15 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1351</guid>
		<description><![CDATA[<img src="http://justaddwater.dk/wp-content/uploads/2010/05/nytimes-european-debt-visualization-02marsh-image-custom1-v3-150x150.gif" alt="" title="nytimes european debt visualization 02marsh-image-custom1-v3" width="150" height="150" class="alignright size-thumbnail wp-image-1350" /> It is often said that an image is worth a thousand words. New York Times is a good resource for interesting visualization on current topics. The article on Europe's Web of Debt is rather good at conveying a lot of information on the recent European Debt crisis.]]></description>
			<content:encoded><![CDATA[<p>It is often said that an image is worth a thousand words. New York Times is a good resource for interesting visualization on current topics. The article on <a href="http://www.nytimes.com/interactive/2010/05/02/weekinreview/02marsh.html">Europe&#8217;s Web of Debt</a> is rather good at conveying a lot of information on the recent European Debt crisis. The width of the arrows and circles represents size of debt.</p>
<p><a href="http://justaddwater.dk/wp-content/uploads/2010/05/nytimes-european-debt-visualization-02marsh-image-custom1-v3.gif"><img class="aligncenter size-medium wp-image-1350" title="nytimes european debt visualization 02marsh-image-custom1-v3" src="http://justaddwater.dk/wp-content/uploads/2010/05/nytimes-european-debt-visualization-02marsh-image-custom1-v3-300x296.gif" alt="" width="300" height="296" /></a></p>
<p>Earlier this year New York Times brought another interesting visualization: <a href="http://www.nytimes.com/interactive/2010/01/10/nyregion/20100110-netflix-map.html">A Peek Into Netflix [rental] Queues</a>, where you can explore where (by US postnumber) any top 100 movie gets rented. A standard US map is overlaid with a heatmap of the data, and combined with excerpts from the movie reviews. Very amusing.</p>
<p><a href="http://www.nytimes.com/interactive/2010/01/10/nyregion/20100110-netflix-map.html"><img class="aligncenter size-medium wp-image-1352" title="Screen shot 2010-05-24 at 11.25.16 PM crop" src="http://justaddwater.dk/wp-content/uploads/2010/05/Screen-shot-2010-05-24-at-11.25.16-PM-crop-300x152.png" alt="" width="300" height="152" /></a></p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=1POIYTj5wpU:8bBwhofHczo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=1POIYTj5wpU:8bBwhofHczo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=1POIYTj5wpU:8bBwhofHczo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=1POIYTj5wpU:8bBwhofHczo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=1POIYTj5wpU:8bBwhofHczo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/1POIYTj5wpU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/05/24/interesting-visualization-of-money-flow/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Seeding Rails App With RESTful Address Data</title>
		<link>http://justaddwater.dk/2010/04/28/seeding-rails-app-with-restful-address-data/</link>
		<comments>http://justaddwater.dk/2010/04/28/seeding-rails-app-with-restful-address-data/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:55:26 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1341</guid>
		<description><![CDATA[Grabbing data from Restful webservices has never been easier. I use this code in the Rails /db/seeds.rb file to grab data from the Danish webservice with addresses, municipalities, regions, etc.
I decided to import the data into a local database to ensure it could work offline.
Code from
/db/seeds.rb
 file:

Now I can access municipalities in a grouped selectbox [...]]]></description>
			<content:encoded><![CDATA[<p>Grabbing data from Restful webservices has never been easier. I use this code in the Rails /db/seeds.rb file to grab data from the Danish webservice with addresses, municipalities, regions, etc.</p>
<p>I decided to import the data into a local database to ensure it could work offline.</p>
<p>Code from
<div class="codesnip-container" >/db/seeds.rb</div>
<p> file:</p>
<p><script src="http://gist.github.com/382105.js"></script></p>
<p>Now I can access municipalities in a grouped selectbox like so in the view code:</p>
<pre>
<div class="codesnip-container" >&lt;%
 options = option_groups_from_collection_for_select(Region.all, :kommuner, :name, :id, :name)
%&gt;

&lt;%=
 f.select("kommune_id", options, {}, {:class =&gt; "short"})
%&gt;</div>
</pre>
<p>The final result rendered in the user interface:<br />
<img src="http://justaddwater.dk/wp-content/uploads/2010/04/Screen-shot-2010-04-28-at-3.18.06-PM.png" alt="" title="Rails rendered optgroup selectbox" width="286" height="253" class="aligncenter size-full wp-image-1343" /></p>
<p>This code is based on Rails 2.3.5.</p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=Nq-Fb92xNR8:40R98X0bd-U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=Nq-Fb92xNR8:40R98X0bd-U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=Nq-Fb92xNR8:40R98X0bd-U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=Nq-Fb92xNR8:40R98X0bd-U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=Nq-Fb92xNR8:40R98X0bd-U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/Nq-Fb92xNR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/04/28/seeding-rails-app-with-restful-address-data/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lessons Learned from Pixar</title>
		<link>http://justaddwater.dk/2010/04/28/lessons-learned-from-pixar-2/</link>
		<comments>http://justaddwater.dk/2010/04/28/lessons-learned-from-pixar-2/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 08:46:29 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[pixar]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1337</guid>
		<description><![CDATA[I took Jeff Atwodd&#8217;s advice and watched Ed Catmull of Pixar: &#8220;Keep your crises small&#8221;. A presentation about lessons learned from successes and crises at Pixar.
A central quote:
If you give a good idea to a mediocre group, they&#8217;ll screw it up. If  you give a mediocre idea to a good group, they&#8217;ll fix it. [...]]]></description>
			<content:encoded><![CDATA[<p>I took Jeff Atwodd&#8217;s advice and watched Ed Catmull of Pixar: &#8220;Keep your crises small&#8221;. A presentation about lessons learned from successes and crises at Pixar.</p>
<p>A central quote:</p>
<blockquote cite="http://www.youtube.com/v/k2h2lvhzMDc"><p>If you give a good idea to a mediocre group, they&#8217;ll screw it up. <strong>If  you give a mediocre idea to a good group, they&#8217;ll fix it.</strong> Or they&#8217;ll  throw it away and come up with something else.</p>
<p>We think of &#8216;an idea&#8217; – for movies, for products. It&#8217;s usually thought of as some singular thing. But the reality of these successful movies – as with all <strong>successful products – that they have got thousands of ideas</strong>. It&#8217;s all sorts of things necessary to make the film successful. And you have to <strong>get most of them right to be successful</strong>. That is why you need a team that works well together.</p></blockquote>
<p><object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/k2h2lvhzMDc&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/k2h2lvhzMDc&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object></p>
<ul>
<li>Coding Horror: <a href="http://www.codinghorror.com/blog/2010/01/cultivate-teams-not-ideas.html">Cultivate Teams, Not Ideas</a> (January 2010)</li>
<li><a href="http://www.youtube.com/v/k2h2lvhzMDc">Ed Catmull, Pixar: &#8220;Keep your crises small&#8221;</a> (recorded January 2007)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=JcRsIAWQoc8:nQHnFd4b5ZE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=JcRsIAWQoc8:nQHnFd4b5ZE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=JcRsIAWQoc8:nQHnFd4b5ZE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=JcRsIAWQoc8:nQHnFd4b5ZE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=JcRsIAWQoc8:nQHnFd4b5ZE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/JcRsIAWQoc8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/04/28/lessons-learned-from-pixar-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Capgemini SmartLunch: Cucumber for Automated Acceptance Testing</title>
		<link>http://justaddwater.dk/2010/04/27/capgemini-smartlunch-cucumber-for-automated-acceptance-testing/</link>
		<comments>http://justaddwater.dk/2010/04/27/capgemini-smartlunch-cucumber-for-automated-acceptance-testing/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 12:27:55 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Presentation]]></category>
		<category><![CDATA[capgemini]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[smartlunch]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1332</guid>
		<description><![CDATA[Today I did an internal presentation on how we used Cucumber as testing framework on several recent occasions.
The presentation was held in our usual Capgemini SmartLunch format: People can eat and learn in their lunchbreak. External visitors are welcome. Duration 30-45 minutes including questions.

pres 2010-04-27-cucumber (573KB pdf format)
pres 2010-04-27-cucumber.key (782KB keynote format)

]]></description>
			<content:encoded><![CDATA[<p>Today I did an internal presentation on how we used Cucumber as testing framework on several recent occasions.</p>
<p>The presentation was held in our usual Capgemini SmartLunch format: People can eat and learn in their lunchbreak. External visitors are welcome. Duration 30-45 minutes including questions.</p>
<ul>
<li><a href="http://justaddwater.dk/wp-content/uploads/2010/04/pres-2010-04-27-cucumber.pdf">pres 2010-04-27-cucumber</a> (573KB pdf format)</li>
<li><a href="http://justaddwater.dk/wp-content/uploads/2010/04/pres-2010-04-27-cucumber.key_.zip">pres 2010-04-27-cucumber.key</a> (782KB keynote format)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=cTHf1p6GTcA:JnojtIE17f8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=cTHf1p6GTcA:JnojtIE17f8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=cTHf1p6GTcA:JnojtIE17f8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=cTHf1p6GTcA:JnojtIE17f8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=cTHf1p6GTcA:JnojtIE17f8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/cTHf1p6GTcA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/04/27/capgemini-smartlunch-cucumber-for-automated-acceptance-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Explanation of Firebug Net Panel Findings</title>
		<link>http://justaddwater.dk/2010/04/22/explanation-of-firebug-net-panel-findings/</link>
		<comments>http://justaddwater.dk/2010/04/22/explanation-of-firebug-net-panel-findings/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 13:07:11 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1311</guid>
		<description><![CDATA[Jan Odvarko – one of the Firebug developers – posted some very good explanations on the information available from the Firebug net panel.

Here is the explanation of the detailed mouseover view when zooming in on each request:



The second request started 109ms after the start of  the first request (since the beginning of the waterfall [...]]]></description>
			<content:encoded><![CDATA[<p>Jan Odvarko – one of the Firebug developers – posted some very good explanations on the information available from the Firebug net panel.</p>
<p><img class="aligncenter size-full wp-image-1312" title="firebug-1.5-netpanel-explained" src="http://justaddwater.dk/wp-content/uploads/2010/04/firebug-1.5-netpanel-explained.png" alt="" width="520" height="229" /></p>
<p>Here is the explanation of the detailed mouseover view when zooming in on each request:</p>
<p><img class="aligncenter size-full wp-image-1313" title="firebug-1.5-network-tooltip" src="http://justaddwater.dk/wp-content/uploads/2010/04/firebug-1.5-network-tooltip.png" alt="" width="520" height="235" /></p>
<blockquote cite="http://www.softwareishard.com/blog/firebug/firebug-net-panel-timings/">
<ul>
<li>The second request started <strong>109ms</strong> after the start of  the first request (since the beginning of the waterfall graph).</li>
<li>There are two numbers for each <strong>request phase</strong> (5  phases). The first number on the left says when the phase started within  the request. The second number on the right (closer to the phase label)  says the time needed to complete each phase. In this case, the first  three phases took zero time, and so the <strong>Waiting</strong> phase  was the first real and it needed 32ms to complete. The <strong>Receiving</strong> phase started in <strong>32nd ms</strong> of the request and needed <strong>15ms</strong> to complete</li>
<li><em><strong>DOMContenLoaded</strong></em> event was fired <strong>7ms</strong> after this request started. If this number is negative the event was  fired before the request is started.</li>
<li><em><strong>load</strong></em> event was fired <strong>189ms</strong> after this request started. If this number is negative the event was  fired before the request is started.</li>
</ul>
<p>Here are some notes about each request phase.</p>
<ul>
<li><strong>DNS Lookup</strong>: DNS resolution time</li>
<li><strong>Connecting</strong>: Elapsed time required to create a TCP  connection.</li>
<li><strong>Blocking</strong> (not on the screenshot): Elapsed time  spent in a browser queue waiting for a network connection. Displayed  only in the case where this situation happens (see also <a href="http://www.softwareishard.com/blog/firebug/page-load-analysis-using-firebug/">this  post</a>).</li>
<li><strong>Sending</strong>: Time needed to send request data to the  server.</li>
<li><strong>Waiting</strong>: Waiting for the response (till the first  byte is received from the server).</li>
<li><strong>Receiving</strong>: Time necessary to download response  body.</li>
</ul>
</blockquote>
<p>I found myself reading up on this because I did a HTML5 offline experiment, where the &#8220;<a href="http://groups.google.com/group/firebug/browse_thread/thread/e920884868df9555#">HTML5  .manifest files did not appear in Firebug net panel</a>&#8221;</p>
<p>Jan Odvarko has two excellent posts explaining most functionality of the Firebug Net panel. The two posts are highly recommendable</p>
<ul>
<li><a href="http://www.softwareishard.com/blog/firebug/firebug-net-panel-timings/">Firebug  Net Panel Timings</a> (March 2010)</li>
<li><a href="http://www.softwareishard.com/blog/firebug/introduction-to-firebug-net-panel/">Introduction  to Firebug: Net Panel</a> (May 2009)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=9KuhgD3MSgM:SLe04ZEnE5I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=9KuhgD3MSgM:SLe04ZEnE5I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=9KuhgD3MSgM:SLe04ZEnE5I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=9KuhgD3MSgM:SLe04ZEnE5I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=9KuhgD3MSgM:SLe04ZEnE5I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/9KuhgD3MSgM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/04/22/explanation-of-firebug-net-panel-findings/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Groovy for Hudson console</title>
		<link>http://justaddwater.dk/2010/04/20/groovy-for-hudson-console/</link>
		<comments>http://justaddwater.dk/2010/04/20/groovy-for-hudson-console/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 11:25:23 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1305</guid>
		<description><![CDATA[Hudson continuous integration server has a console which is good for testing scripts and access to commands that your Hudson jobs need.
The hudson console only let&#8217;s you run Groovy script. To run commands on the machine, Groovy has the method
&#8220;string&#8221;.execute()
. So now I can use this snippet to test versions of Ruby, JRuby, etc:

def commands [...]]]></description>
			<content:encoded><![CDATA[<p>Hudson continuous integration server has a console which is good for testing scripts and access to commands that your Hudson jobs need.</p>
<p>The hudson console only let&#8217;s you run Groovy script. To run commands on the machine, Groovy has the method
<div class="codesnip-container" >&#8220;string&#8221;.execute()</div>
<p>. So now I can use this snippet to test versions of Ruby, JRuby, etc:</p>
<pre>
<div class="codesnip-container" >def commands = ["ruby --version", "gem environment", "which ruby", "which gem", "jruby --version"]

commands.each{
  run(it)
}

def run(cmd) {
  //def proc = commands[1].execute()
  def proc = cmd.execute()
  proc.waitFor()

  // Obtain status and output
  println "return code: ${ proc.exitValue()}"
  println "stderr: ${proc.err.text}"
  println "stdout: ${proc.in.text}" // *out* from the external program is *in* for groovy

}</div>
</pre>
<p>Example borrowed from and shrinkwrapped from <a href="http://groovy.codehaus.org/JN1015-Collections">groovy.codehaus.org/JN1015-Collections</a></p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=4d8PwSgRRwU:bZA1Q4Ln0bQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=4d8PwSgRRwU:bZA1Q4Ln0bQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=4d8PwSgRRwU:bZA1Q4Ln0bQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=4d8PwSgRRwU:bZA1Q4Ln0bQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=4d8PwSgRRwU:bZA1Q4Ln0bQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/4d8PwSgRRwU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/04/20/groovy-for-hudson-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google’s Direct Links Inside Suggestion List</title>
		<link>http://justaddwater.dk/2010/03/26/googles-direct-links-inside-suggestion-list/</link>
		<comments>http://justaddwater.dk/2010/03/26/googles-direct-links-inside-suggestion-list/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:53:05 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1298</guid>
		<description><![CDATA[I just saw this feature today: Google added direct links into the list of autocompleting search results:
In this case, I searched for &#8220;earth h&#8230;.&#8221; and it suggests &#8220;earth hour 2010&#8243; But on top of that, it inserts a link to the most relevant website directly. Smart and time-saving, i suppose.
Also, it does not clutter the [...]]]></description>
			<content:encoded><![CDATA[<p>I just saw this feature today: Google added direct links into the list of autocompleting search results:</p>
<p><a href="http://justaddwater.dk/wp-content/uploads/2010/03/Screen-shot-2010-03-26-at-2.36.26-PM.png"><img class="aligncenter size-medium wp-image-1299" title="Google autocomplete with direct links to websites" src="http://justaddwater.dk/wp-content/uploads/2010/03/Screen-shot-2010-03-26-at-2.36.26-PM-300x168.png" alt="" width="300" height="168" /></a>In this case, I searched for &#8220;earth h&#8230;.&#8221; and it suggests &#8220;earth hour 2010&#8243; But on top of that, it inserts a link to the most relevant website directly. Smart and time-saving, i suppose.</p>
<p>Also, it does not clutter the suggestion box completely. Adding link to all suggestions would clutter the box, I think.</p>
<p>Also, I saw that google now shows real-time updates of news results inside the search result page:</p>
<p><a href="http://justaddwater.dk/wp-content/uploads/2010/03/Screen-shot-2010-03-26-at-2.36.26-PM.png"><br />
</a><a href="http://justaddwater.dk/wp-content/uploads/2010/03/Screen-shot-2010-03-26-at-2.38.51-PM.png"><img class="aligncenter size-medium wp-image-1300" title="Google search result page with scrollbar and realtime-update of news results" src="http://justaddwater.dk/wp-content/uploads/2010/03/Screen-shot-2010-03-26-at-2.38.51-PM-264x300.png" alt="" width="264" height="300" /></a>Notice that scrollbar in the bottom of the screenshot: The result page keeps updating.</p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=rD_MOtJ7GOc:zHpGMFLqHGk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=rD_MOtJ7GOc:zHpGMFLqHGk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=rD_MOtJ7GOc:zHpGMFLqHGk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=rD_MOtJ7GOc:zHpGMFLqHGk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=rD_MOtJ7GOc:zHpGMFLqHGk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/rD_MOtJ7GOc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/03/26/googles-direct-links-inside-suggestion-list/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Why WebStandards Matter</title>
		<link>http://justaddwater.dk/2010/03/12/1291/</link>
		<comments>http://justaddwater.dk/2010/03/12/1291/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 10:20:55 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[business case]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1291</guid>
		<description><![CDATA[I just revisited &#8220;Why Web Standards Matter (Case Study)&#8221;, that I wrote on the background of a customer problem back in 2006. The points are actually relevant event with the more recent and faster browser versions that we have today.
I did a small change to express my opinion better. Changed &#8220;JavaScript should generally be avoided&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I just revisited &#8220;Why Web Standards Matter (Case Study)&#8221;, that I wrote on the background of a customer problem back in 2006. The points are actually relevant event with the more recent and faster browser versions that we have today.</p>
<p>I did a small change to express my opinion better. Changed &#8220;JavaScript should generally be avoided&#8221; to &#8220;Don&#8217;t use JavaScript for general page layout rendering&#8221;.</p>
<p>Here is the modified advice from the article:</p>
<blockquote cite="http://justaddwater.dk/2006/06/29/webstandards-case-study/">
<h3>Long-term findings</h3>
<ul>
<li>Don&#8217;t use JavaScript for general page layout rendering. Think really really hard if it can be done without JavaScript. One example: Print should be done with CSS</li>
<li>If there is no way around it, use standard JavaScript libraries were browser bugs, etc are hidden for the programmer</li>
<li>Tables used for layout are evil. Use tables for table-based content ONLY</li>
<li>HTML code is really messy and hard to maintain. Should be cleaned up to avoid similar situations in the future. Clean up nested tables, table cells with transparent gifs. Use CSS where appropriate could shave up to 50-70% of HTML footprint</li>
<li>Many HTML validation errors. Code improperly nested, forgotten end-tags: Ideally, the pages should have no validation errors. It&#8217;s an achievable work worth the effort and very educational way of working with the code</li>
</ul>
<h3>Long-term benefits</h3>
<p>In general, several benefits could be gained by raising the knowledge of HTML, CSS, Javascript, web standards, and browser issues.</p>
<ul>
<li>Include easier maintenance</li>
<li>Lower risk of change</li>
<li>Lower risk of browser incompatibilities</li>
<li>Lower risk of browser crashes</li>
</ul>
</blockquote>
<p>Read article: <a title="Permanent Link: Why Web Standards Matter (Case  Study)" rel="bookmark" href="http://justaddwater.dk/2006/06/29/webstandards-case-study/">Why Web Standards Matter (Case Study)</a></p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=n8Duiri4eqQ:vjoXWiAZDCc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=n8Duiri4eqQ:vjoXWiAZDCc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=n8Duiri4eqQ:vjoXWiAZDCc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=n8Duiri4eqQ:vjoXWiAZDCc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=n8Duiri4eqQ:vjoXWiAZDCc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/n8Duiri4eqQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/03/12/1291/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rake Task To Validate All Items on All Models</title>
		<link>http://justaddwater.dk/2010/02/07/rake-task-to-validate-all-items-on-all-models/</link>
		<comments>http://justaddwater.dk/2010/02/07/rake-task-to-validate-all-items-on-all-models/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 13:13:04 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/?p=1270</guid>
		<description><![CDATA[I wanted a way to see if somebody had entered &#8220;illegal&#8221; data into loaded fixtures. So I wrote this simple rake task. It&#8217;s also useful to run as you add more validations to your files.

]]></description>
			<content:encoded><![CDATA[<p>I wanted a way to see if somebody had entered &#8220;illegal&#8221; data into loaded fixtures. So I wrote this simple rake task. It&#8217;s also useful to run as you add more validations to your files.</p>
<p><script src="http://gist.github.com/297427.js"></script></p>
<div class="feedflare">
<a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=MumqDlDjiNU:YloO7AKOR54:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=MumqDlDjiNU:YloO7AKOR54:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jaw/posts?i=MumqDlDjiNU:YloO7AKOR54:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=MumqDlDjiNU:YloO7AKOR54:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.justaddwater.dk/~ff/jaw/posts?a=MumqDlDjiNU:YloO7AKOR54:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/jaw/posts?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jaw/posts/~4/MumqDlDjiNU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2010/02/07/rake-task-to-validate-all-items-on-all-models/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
