<?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>No One Is Perfect</title>
	<atom:link href="http://watchitlater.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://watchitlater.com/blog</link>
	<description>A reluctant foray into the world of blogging.</description>
	<lastBuildDate>Mon, 15 Mar 2010 01:25:52 +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>Update to S3DropBox</title>
		<link>http://watchitlater.com/blog/2010/03/update-to-s3dropbox/</link>
		<comments>http://watchitlater.com/blog/2010/03/update-to-s3dropbox/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 01:24:59 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[My Code]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://watchitlater.com/blog/?p=198</guid>
		<description><![CDATA[I&#8217;ve released a new version of my S3DropBox. You can now right-click on any file to download it, delete it or create a public link to it. Comments, feedback and bugs are always welcome.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released a new version of my <a href="http://code.google.com/p/s3dropbox/">S3DropBox</a>. You can now right-click on any file to download it, delete it or create a public link to it. Comments, feedback and bugs are always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://watchitlater.com/blog/2010/03/update-to-s3dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-Redirect-Get in Rails</title>
		<link>http://watchitlater.com/blog/2010/03/post-redirect-get-in-rails/</link>
		<comments>http://watchitlater.com/blog/2010/03/post-redirect-get-in-rails/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:06:28 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[My Code]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[haml]]></category>
		<category><![CDATA[post-redirect-get]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sass]]></category>

		<guid isPermaLink="false">http://watchitlater.com/blog/?p=182</guid>
		<description><![CDATA[For a while now I&#8217;ve been flying the flag for using a post-redirect-get design pattern when writing web applications. In my opinion the current crop of web frameworks still make it very easy to do the &#8220;bad&#8221; thing since to do PRG properly you need to think what kind of an interaction you want with [...]]]></description>
			<content:encoded><![CDATA[<p>For a while now I&#8217;ve been flying the flag for using a <a href="http://en.wikipedia.org/wiki/Post/Redirect/Get">post-redirect-get</a> design pattern when writing web applications. In my opinion the current crop of web frameworks still make it very easy to do the &#8220;bad&#8221; thing since to do PRG properly you need to think what kind of an interaction you want with users and not cop out saying its technically very difficult in &lt;insert framework here&gt;. If you resort to ActiveX controls, popups without navigation bars and/or weird javascript hacks to stop users from clicking refresh or back buttons then perhaps you should have written a better web application.</p>
<p>Whenever I play with Rails, or for that matter any other web framework, I get stuck on trying to find a problem to solve (or a set of requirements). Fortunately the <a href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Development with Rails</a> book from the Pragmatic Programmers has a nice little bookstore application that I can develop iteratively. I&#8217;ve put my latest adaptation of their depot application to use post-redirect-get (even works with ActiveResource scaffolds), UUIDs as ActiveRecord primary keys, HAML, SASS and RSpec on <a href="http://github.com/tomcz/pragprog-depot-prg">GitHub</a>. Feedback is always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://watchitlater.com/blog/2010/03/post-redirect-get-in-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testing anti-patterns for developers</title>
		<link>http://watchitlater.com/blog/2010/03/testing-anti-patterns-for-developers/</link>
		<comments>http://watchitlater.com/blog/2010/03/testing-anti-patterns-for-developers/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 13:34:35 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Soap Box]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[anti-pattern]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cleanup]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://watchitlater.com/blog/?p=180</guid>
		<description><![CDATA[I&#8217;ve been saving this rant for a while now:
1. Test everything at the front-end, in exquisite detail &#8211; every project sponsor understands what tooltip 0 really means. Also a great idea if you like long-running and fragile tests that require deployments, browsers, testing frameworks and the kitchen sink. Testing at different layers, and perhaps even [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been saving this rant for a while now:</p>
<p>1. Test everything at the front-end, in exquisite detail &#8211; every project sponsor understands what tooltip 0 really means. Also a great idea if you like long-running and fragile tests that require deployments, browsers, testing frameworks and the kitchen sink. Testing at different layers, and perhaps even without a browser or (in java) a servlet container is for the weak.</p>
<p>2. Perform a database cleanup before and after every test, whether it needs to be done or not. For the truly adventurous add something about clearing out JMS queues and stopping scheduled tasks while you are running the cleanup tasks.</p>
<p>3. Always use the same data for tests, and better still use the same data for different tests. That way you will have do perform anti-pattern 2 with no questions asked. If anyone does ask about random or unique data just scoff sagely.</p>
<p>4. For those tied to java, run each test in its own JVM. If you happen to use a DI framework with lots of XML make sure it is initialised completely for each test. If anyone mentions forkmode=once just pretend to ignore them until they go away.</p>
<p>5. Write your application so that you need a JavaScript enabled browser before you can test anything at all. Progressive enhancement is only for those who cannot see.</p>
<p>Catharsis.</p>
]]></content:encoded>
			<wfw:commentRss>http://watchitlater.com/blog/2010/03/testing-anti-patterns-for-developers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
