<?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>Grails Rocks &#187; Programming links</title>
	<atom:link href="http://www.anyware.co.uk/2005/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anyware.co.uk/2005</link>
	<description>Grails, Apple, usability and world stuff</description>
	<lastBuildDate>Fri, 27 Jan 2012 13:52:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Status update &#8211; the plugins hanging around my neck!</title>
		<link>http://www.anyware.co.uk/2005/2009/04/22/status-update-the-plugins-hanging-around-my-neck/</link>
		<comments>http://www.anyware.co.uk/2005/2009/04/22/status-update-the-plugins-hanging-around-my-neck/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 09:33:40 +0000</pubDate>
		<dc:creator>Marc Palmer</dc:creator>
				<category><![CDATA[Groovy and Grails]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Programming links]]></category>

		<guid isPermaLink="false">http://www.anyware.co.uk/2005/?p=468</guid>
		<description><![CDATA[I&#8217;m extremely busy at the moment with work projects, and this has meant I&#8217;ve got a backlog of Grails plugin updates to tackle. There&#8217;s a number of tweaks to Navigation Plugin, improvements and fixes for Functional Testing (G-Func), as well as some bug fixes for the Authentication plugin. I&#8217;m not sure when I will get [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m extremely busy at the moment with work projects, and this has meant I&#8217;ve got a backlog of Grails plugin updates to tackle.</p>
<p>There&#8217;s a number of tweaks to <a href="http://grails.org/plugin/navigation">Navigation Plugin</a>, improvements and fixes for <a href="http://grails.org/plugin/functional-test">Functional Testing (G-Func)</a>, as well as some bug fixes for the <a href="http://grails.org/plugin/authentication">Authentication plugin</a>.</p>
<p>I&#8217;m not sure when I will get time to do these, but they are on my radar. Sadly one has to earn money and plugins don&#8217;t generate any (directly). I really want to work on these things but you know how it goes. Good will doesn&#8217;t pay the bills!</p>
<p>I was toying with the idea of &#8220;crowd-funding&#8221; updates to plugins, for specific iterations of plugins that users are willing to pay small sums for in order to get it turned out quicker. I think the model could work&#8230; eg 100 people pay $10 to get a new iteration of G-Func released. It could be a new model for open source..</p>
<p>The tools for collecting crowd-funding revenue are already out there for fundraising projects.</p>
<p>Anyway I hope to knock out a new nav plugin iteration in the next week or so, ditto for G-Func. I just can&#8217;t promise it <img src="http://www.anyware.co.uk/2005/wp-includes/images/smilies/icon_sad.gif?9d7bd4" alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.anyware.co.uk/2005/2009/04/22/status-update-the-plugins-hanging-around-my-neck/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Welcome to [fr]Agile development</title>
		<link>http://www.anyware.co.uk/2005/2009/01/23/welcome-to-fragile-development/</link>
		<comments>http://www.anyware.co.uk/2005/2009/01/23/welcome-to-fragile-development/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 11:38:34 +0000</pubDate>
		<dc:creator>Marc Palmer</dc:creator>
				<category><![CDATA[Programming links]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.anyware.co.uk/2005/?p=414</guid>
		<description><![CDATA[Agile development, in general, rocks. However in recent years I have seen many people &#8211; primarily managers &#8211; misunderstand the concept. Agile is about responding quickly to changes in business needs and delivering demonstrable progress to the customer/end user. Unfortunately some people think that this means saying &#8220;Yes&#8221; to everything a client asks for, and [...]]]></description>
			<content:encoded><![CDATA[<p>Agile development, in general, rocks.</p>
<p>However in recent years I have seen many people &#8211; primarily managers &#8211; <a href="http://twitter.com/wangjammer5/status/1141643204">misunderstand the concept</a>.</p>
<p>Agile is about responding quickly to changes in business needs and delivering demonstrable progress to the customer/end user.</p>
<p>Unfortunately some people think that this means saying &#8220;Yes&#8221; to everything a client asks for, and not actually having a focussed list of deliverables. Agile doesn&#8217;t work without planning and prioritisation. All businesses need everything done &#8220;right now&#8221; if their wish could come true. In real life this is obviously impossible. That&#8217;s why prioritisation is critical. Your &#8220;must have&#8221; list simply cannot be bigger than your development team&#8217;s capacity.</p>
<p>Sensible approaches force you to choose a small set of features you are going to implement, and you stick to that. Then in the next cycle you review what the current &#8220;highest priority must-haves&#8221; are.</p>
<p>If you don&#8217;t do this, you have constantly slipping milestones, feature creep, and overworked (and in the end disgruntled) coders who are often forced to hack things instead of furnish your organisation with a sustainable codebase. One that you can refactor, and supports agile development in the long term.</p>
<p>Failure to accommodate this means you get a [fr]Agile environment and code base, where those &#8220;must haves&#8221; are even harder to implement at the speed your business needs, and quality soon degrades.</p>
<p>Development is just like sustainable living &#8211; you have to keep your footprint low and do things with the longer term in sight. Even if you are operating in a truly Agile fashion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anyware.co.uk/2005/2009/01/23/welcome-to-fragile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few WTFs for the day</title>
		<link>http://www.anyware.co.uk/2005/2008/09/26/a-few-wtfs-for-the-day/</link>
		<comments>http://www.anyware.co.uk/2005/2008/09/26/a-few-wtfs-for-the-day/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 14:50:23 +0000</pubDate>
		<dc:creator>Marc Palmer</dc:creator>
				<category><![CDATA[Groovy and Grails]]></category>
		<category><![CDATA[Programming links]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://www.anyware.co.uk/2005/?p=248</guid>
		<description><![CDATA[Ugh. It&#8217;s one of those days where I&#8217;m being reminded that either I&#8217;m dumb or the rest of the world is, but someone is. Case 1 &#8211; Calling each() on String in Groovy gives you every character of the string&#8230; but as a String and not a Character. I&#8217;m sure there&#8217;s a great reason for [...]]]></description>
			<content:encoded><![CDATA[<p>Ugh. It&#8217;s one of those days where I&#8217;m being reminded that either I&#8217;m dumb or the rest of the world is, but someone is.</p>
<p>Case 1 &#8211; Calling each() on String in Groovy gives you every character of the string&#8230; but as a String and not a Character. I&#8217;m sure there&#8217;s a great reason for it, but it eludes me.</p>
<p>Case 2 &#8211; The Java Servlet API is an old friend. The person who put it together however did not understand the concept of HTTP Status codes. To send a non-&#8221;OK&#8221; response (code 200 as it happens), you have to call a method called setStatus(). However to set the string sent with the status, you have to call sendError &#8211; previously there was a setStatus(int, String) but that is deprecated. So&#8230; all responses with messages are errors now. OK. Then if you&#8217;re using Spring&#8217;s MockHttpServletResponse you find they have added getErrorMessage() to get the message set in setStatus/sendError&#8230; even though it is not necessarily an error message! Personally I think setStatus(int, String) was fine, and the mock should have getStatus() and getStatusMessage().</p>
<p>Rant over.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anyware.co.uk/2005/2008/09/26/a-few-wtfs-for-the-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 9/18 queries in 0.032 seconds using disk: basic

Served from: www.anyware.co.uk @ 2012-02-10 03:53:04 -->
