<?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"
	>

<channel>
	<title>Thought Nursery</title>
	<atom:link href="http://blog.jeffreyfredrick.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jeffreyfredrick.com</link>
	<description>Big ideas start small.</description>
	<pubDate>Fri, 21 Nov 2008 23:43:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>CruiseControl 2.8 Released</title>
		<link>http://blog.jeffreyfredrick.com/2008/11/21/cruisecontrol-28-released/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/11/21/cruisecontrol-28-released/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 23:43:55 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[cruisecontrol]]></category>

		<category><![CDATA[debt]]></category>

		<category><![CDATA[hygine]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=46</guid>
		<description><![CDATA[As of Wednesday night CruiseControl 2.8 is available for download (full release notes).
I&#8217;ve got a good feeling about this release because unlike a lot of releases I have the feeling that we&#8217;re doing more than adding feature and fixing bugs (though we did that too). This release felt like we were paying off technical/hygiene debt at [...]]]></description>
			<content:encoded><![CDATA[<p>As of Wednesday night CruiseControl 2.8 is <a href="http://sourceforge.net/project/showfiles.php?group_id=23523&amp;package_id=16338&amp;release_id=629858" onclick="javascript:pageTracker._trackPageview ('/outbound/sourceforge.net');">available for download</a> (full <a href="http://sourceforge.net/project/shownotes.php?release_id=629858&amp;group_id=23523" onclick="javascript:pageTracker._trackPageview ('/outbound/sourceforge.net');">release notes</a>).</p>
<p>I&#8217;ve got a good feeling about this release because unlike a lot of releases I have the feeling that we&#8217;re doing more than adding feature and fixing bugs (though we did that too). This release felt like we were paying off technical/hygiene debt at the same time, at least in a small way. Not major refactorings, just lots of small changes to make things better. Some examples are:</p>
<ul>
<li>Putting historical information on the <a href="http://cruisecontrol.sourceforge.net/download.html" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.sourceforge.net');">download page</a>. It is interesting to browse the history of the project on a single page and it also allowed us to delete a page off the wiki that had similar information.</li>
<li><a href="http://www.linkedin.com/in/danrollo" onclick="javascript:pageTracker._trackPageview ('/outbound/www.linkedin.com');">Dan</a> added the ability to specify a log4j configuration file on the command-line. This is cool both because it allows people to make changes w/out cracking open the cruisecontrol.jar and because it allows people to use the log4j xml format. The xml format offers some options that aren&#8217;t available using the properties format so we&#8217;ve opened up another bag of tricks for our users.</li>
<li>We updated to a new version of Jetty and at the same time we&#8217;ve exposed the Jetty configuration files. Like with log4j this opens up a lot of new opportunities for people to add behavior.</li>
<li>The documentation is now served by Jetty. Till now our help files were there but not served but the webserver — you had to go to the public website instead. &lt;slaps own forehead&gt;</li>
<li>The documentation for <a href="http://cruisecontrol.sourceforge.net/distributed/index.html" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.sourceforge.net');">distributed usage</a> is now available on the website. We&#8217;ve had support for distributed builds for <strong>three years</strong> but almost nobody knows about it.</li>
<li>New css for the jsp reporting application. I can&#8217;t believe how dated <a href="http://cruisecontrol.sourceforge.net/reporting/jsp/buildresultsjspscreenshot.gif" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.sourceforge.net');">those pages</a> looked. I can&#8217;t believe it was so easy to change. I can&#8217;t believe we waited so long to do it. (Now to update the screenshot in the documentation&#8230;)</li>
</ul>
<p>At the same time we&#8217;ve made these changes we&#8217;ve also laid the foundation for larger technical changes by upgrading our version of Java (to Java5), the JSP (2.1) and Servlet (2.5) APIs.</p>
<p>Good things happening, good things to come!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/11/21/cruisecontrol-28-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Searching for an Agile Core</title>
		<link>http://blog.jeffreyfredrick.com/2008/11/08/searching-for-an-agile-core/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/11/08/searching-for-an-agile-core/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 21:36:44 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[agile]]></category>

		<category><![CDATA[sdbp]]></category>

		<category><![CDATA[self-organization]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=22</guid>
		<description><![CDATA[Last week while attending Scott Ambler&#8217;s talk on Agile in Practice at SDBP I tried and failed to share his Agile Criteria slide in real time. Apparently there&#8217;s a limit to what iPhone, Twitter and sloth can accomplish in a dark lecture hall. So here, only one week and one day later are Scott&#8217;s criteria, the things he looks [...]]]></description>
			<content:encoded><![CDATA[<p>Last week while attending Scott Ambler&#8217;s talk on <a href="https://www.cmpevents.com/SDe8/a.asp?option=C&amp;V=11&amp;SessID=8108" onclick="javascript:pageTracker._trackPageview ('/outbound/www.cmpevents.com');">Agile in Practice</a> at SDBP <a href="http://twitter.com/Jtf/statuses/982692492" onclick="javascript:pageTracker._trackPageview ('/outbound/twitter.com');">I tried</a> and <a href="http://twitpic.com/iysc" onclick="javascript:pageTracker._trackPageview ('/outbound/twitpic.com');">failed</a> to share his Agile Criteria slide in real time. Apparently there&#8217;s a limit to what iPhone, Twitter and sloth can accomplish in a dark lecture hall. So here, only one week and one day later are Scott&#8217;s criteria, the things he looks for when evaluating a team that claims to be agile:</p>
<p><a href="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/11/agile_criteria.jpg"><img class="size-thumbnail wp-image-25" style="float: right" title="agile_criteria" src="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/11/agile_criteria-150x95.jpg" alt="Scott Ambler's Agile Criteria" width="150" height="95" /></a></p>
<ol>
<li>Developer regression testing, better yet TDD.</li>
<li>Active stakeholder participation.</li>
<li>Regular delivery of working software.</li>
<li>Self-organization.</li>
</ol>
<p>I had special interest Scott&#8217;s criteria because I&#8217;d just posted <a href="http://tech.groups.yahoo.com/group/citcon/message/657" onclick="javascript:pageTracker._trackPageview ('/outbound/tech.groups.yahoo.com');">my own attempt</a> to the <a href="http://www.citconf.com" onclick="javascript:pageTracker._trackPageview ('/outbound/www.citconf.com');">CITCON</a> mailing list the week before. I wasn&#8217;t trying to put together a magic recipe but rather to come up with a list of practices without which — <em>or their equivalents</em> — you will fail. My list was:</p>
<ul>
<li>Iterations</li>
<li>Planning game</li>
<li>TDD</li>
<li>Automated acceptance tests</li>
<li>Continuous integration</li>
<li>Retrospectives</li>
</ul>
<p>I think these two lists are pretty compatible, but there are two outliers: self-organization and retrospectives. I was surprised that Scott didn&#8217;t have retrospectives on his list. I&#8217;m naturally a lumper not a splitter, so I&#8217;m tempted to say that retrospectives are a vehicle for self-organization and call it a day. But I don&#8217;t think that&#8217;s honoring what Scott had in mind. By self-organization Scott meant the team should be organizing the work, deciding who does what. But is that really needed to be Agile? I can imagine using all the practices listed but having a manager assign the work for each story. I can imagine it&#8230; but it isn&#8217;t something I&#8217;ve ever done. I don&#8217;t remember having the need, though this may be selective memory on my part. Certainly the majority of the time who should do what is obvious to everyone, and when there are multiple people who could do the work then it is divided easily enough. So I&#8217;m not sure that self-organization is a requirement but I clearly believe it is better. Better to have people sign-up themselves and have feel a greater ownership in the project.</p>
<p>So is this it, do we have our list? If you&#8217;re not doing these you&#8217;re in trouble?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/11/08/searching-for-an-agile-core/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I (heart) my tests</title>
		<link>http://blog.jeffreyfredrick.com/2008/09/24/i-heart-my-tests/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/09/24/i-heart-my-tests/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 12:19:27 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[love]]></category>

		<category><![CDATA[testing]]></category>

		<category><![CDATA[tests]]></category>

		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=17</guid>
		<description><![CDATA[(This isn&#8217;t for you. This is a love letter to my unit tests, who deserve it, who deserve a 5 am stream of consciousness homage.)
Slow builds really bug me. And having lots of unit tests is no excuse for a slow build. If you think they are, there&#8217;s something you&#8217;re not doing right.
This past week or so [...]]]></description>
			<content:encoded><![CDATA[<p>(This isn&#8217;t for you. This is a love letter to my unit tests, who deserve it, who deserve a 5 am stream of consciousness homage.)</p>
<p>Slow builds really bug me. And having lots of unit tests is no excuse for a slow build. If you think they are, there&#8217;s something you&#8217;re not doing right.</p>
<p>This past week or so I&#8217;ve been much more active working on CruiseControl, and so the slow build time — 15 minutes for a release build? ridiculous! — were wearing away at my nerves. Even the subproject main was now taking 4 minutes to build, and I remember being unhappy when it got to 90 seconds. Something had to be done and tonight was the night.</p>
<p>Oh look, that one test class it taking 2 minutes all by itself. Why?!? It&#8217;s not doing anything very interesting. Hmm, any good free profilers out there? A google suggests not, so printf <span style="text-decoration: line-through;">debugging</span> profiling it is&#8230;</p>
<p>The setup method is taking 10 seconds? Well that&#8217;s bad&#8230; Delving&#8230; <code>getJmxInfo()</code> and <code>getServerName()</code> take 5 seconds each&#8230; ah, <code>getJmxInfo()</code> calls <code>getServerName()</code>! But all that&#8217;s doing is getting the server name with <code>InetAddress.getLocalHost().getCanonicalHostName()</code>. How about we cache the result? I mean how often is the host name going to change? Cache and run the test. 32 seconds! One change to go from 126 second to 32 seconds? How about the subproject build? Down to 2 minutes from 4?! This is going to stay.</p>
<p>I wonder how many other places in the code we&#8217;re getting the server name&#8230; Oh, <a href="http://cruisecontrol.svn.sourceforge.net/viewvc/cruisecontrol?view=rev&amp;revision=4058" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.svn.sourceforge.net');">a bunch</a>! Extract out <code>ServerNameSingleton.getServerName()</code> and use everywhere. Run build&#8230;</p>
<p>Hmm, <a href="http://cruisecontrol.svn.sourceforge.net/viewvc/cruisecontrol/trunk/cruisecontrol/reporting/jsp/test/net/sourceforge/cruisecontrol/taglib/JmxBaseTagTest.java" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.svn.sourceforge.net');">unit test failed</a>. <em>Expected 8000, was -1</em>? Hmm&#8230; Hmm&#8230; Ah! Apparently just calling <code>getServerName()</code> isn&#8217;t enough, <a href="http://cruisecontrol.svn.sourceforge.net/viewvc/cruisecontrol/trunk/cruisecontrol/reporting/jsp/src/net/sourceforge/cruisecontrol/taglib/JmxBaseTag.java?r1=4058&amp;r2=4057&amp;pathrev=4058" onclick="javascript:pageTracker._trackPageview ('/outbound/cruisecontrol.svn.sourceforge.net');">I actually need to assign it</a>! Details, details&#8230; :)  Run the full release build&#8230;</p>
<p>7 minutes.</p>
<p>15 minutes to 7 minutes, for making one simple stupid change. That I found from investigating a slow test. And that I would have botched if it hadn&#8217;t been for another test.</p>
<p>Man I love my tests.</p>
<p>(Ok, now I can sleep.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/09/24/i-heart-my-tests/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SDBP &#8216;08, Habitable Code and Early Registration</title>
		<link>http://blog.jeffreyfredrick.com/2008/09/15/sdbp-08-early-registration/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/09/15/sdbp-08-early-registration/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 03:49:50 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[habitable code]]></category>

		<category><![CDATA[sdbp]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=13</guid>
		<description><![CDATA[I&#8217;m going to be talking at this year&#8217;s Software Development Best Practices in Boston with Paul Julius. Our talk is Creating Habitable Code, and we&#8217;ll be drawing on our experience with CruiseControl as our central example.
My interest in topics like continuous integration, developer testing and mundane excellence have the common thread of &#8220;how do we maximize our [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sdbestpractices.com/?cid=SDBP8_SPK" onclick="javascript:pageTracker._trackPageview ('/outbound/www.sdbestpractices.com');"><img class="alignright size-full wp-image-14" title="seemesdbp" src="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/09/seemesdbp.gif" alt="See Me at SDBP" width="125" height="125" /></a>I&#8217;m going to be talking at this year&#8217;s <a href="http://www.sdbestpractices.com/?cid=SDBP8_SPK" onclick="javascript:pageTracker._trackPageview ('/outbound/www.sdbestpractices.com');">Software Development Best Practices</a> in Boston with <a href="http://pauljulius.com/bio.php" onclick="javascript:pageTracker._trackPageview ('/outbound/pauljulius.com');">Paul Julius</a>. Our talk is <a href="https://www.cmpevents.com/SDe8/a.asp?option=G&amp;V=3&amp;id=465467" onclick="javascript:pageTracker._trackPageview ('/outbound/www.cmpevents.com');">Creating Habitable Code</a>, and we&#8217;ll be drawing on our experience with CruiseControl as our central example.</p>
<p>My interest in topics like continuous integration, developer testing and <a href="http://blog.jeffreyfredrick.com/2008/09/10/making-software-like-intensive-care-or-bombing-missions/">mundane excellence</a> have the common thread of &#8220;how do we maximize our sustainable (and sustained) velocity?&#8221; All too often I&#8217;ve worked with teams who find their velocity (and their sanity!) suffering because their codebase has grown beyond unwieldy into unlivable. These seems especially common on projects that are long lived, have large teams, or long lived projects with large teams — the common denominator really being the code passing through many hands.</p>
<p>Paul and I think CruiseControl provides an interesting study here because it is a long lived project that has had over 200 successful contributors. The patterns and practices that enabled this would help many of the projects I&#8217;ve seen.</p>
<p>(If you&#8217;re interested in SDBP but aren&#8217;t registered, this a gentle reminder that <a href="http://www.sdbestpractices.com/?cid=SDBP8_SPK" onclick="javascript:pageTracker._trackPageview ('/outbound/www.sdbestpractices.com');">Early Registration</a> ends this Friday.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/09/15/sdbp-08-early-registration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Making software like intensive care or bombing missions</title>
		<link>http://blog.jeffreyfredrick.com/2008/09/10/making-software-like-intensive-care-or-bombing-missions/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/09/10/making-software-like-intensive-care-or-bombing-missions/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 01:06:37 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[agile]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=12</guid>
		<description><![CDATA[Today Ben Simo twittered a link to Cem Kaner&#8217;s keynote slides from CAST 2008 on The Value of Checklists and the Danger of Scripts. This was timely for me because I&#8217;d been trying to describe to a friend about why I thought manually executed scripts are worse than useless.
Even better, at least for general inspiration, Kaner&#8217;s slides included [...]]]></description>
			<content:encoded><![CDATA[<p>Today <a href="http://twitter.com/qualityfrog" target="_self" onclick="javascript:pageTracker._trackPageview ('/outbound/twitter.com');">Ben Simo</a> twittered a link to <a href="http://www.satisfice.com/kaner/" target="_self" onclick="javascript:pageTracker._trackPageview ('/outbound/www.satisfice.com');">Cem Kaner</a>&#8217;s keynote slides from <a href="http://www.associationforsoftwaretesting.org/drupal/conference" target="_self" onclick="javascript:pageTracker._trackPageview ('/outbound/www.associationforsoftwaretesting.org');">CAST</a> 2008 on <a href="http://www.satisfice.com/kaner/?p=43" target="_self" onclick="javascript:pageTracker._trackPageview ('/outbound/www.satisfice.com');">The Value of Checklists and the Danger of Scripts</a>. This was timely for me because I&#8217;d been trying to describe to a friend about why I thought manually executed scripts are worse than useless.</p>
<p>Even better, at least for general inspiration, Kaner&#8217;s slides included a reference on using checklists in intensive care units, described in this New Yorker article <a href="http://www.newyorker.com/reporting/2007/12/10/071210fa_fact_gawande" target="_self" onclick="javascript:pageTracker._trackPageview ('/outbound/www.newyorker.com');">The Checklist</a>. This is a fantastic article and you should go read it now. Go ahead, I&#8217;ll wait.</p>
<p>Back? Excellent, wasn&#8217;t it?</p>
<p>Ok, for the cheaters who didn&#8217;t read the article here&#8217;s one example:</p>
<blockquote><p>In December, 2006, the Keystone Initiative published its findings in a landmark article in <em>The New England Journal of Medicine</em>. Within the first three months of the project, the infection rate in Michigan’s I.C.U.s decreased by sixty-six per cent. The typical I.C.U.—including the ones at Sinai-Grace Hospital—cut its quarterly infection rate to zero. Michigan’s infection rates fell so low that its average I.C.U. outperformed ninety per cent of I.C.U.s nationwide. In the Keystone Initiative’s first eighteen months, the hospitals saved an estimated hundred and seventy-five million dollars in costs and more than fifteen hundred lives. The successes have been sustained for almost four years—all because of a stupid little checklist.</p></blockquote>
<p>(More in the fine article, which really is worth reading.)</p>
<p>What I found so exciting about that article is it is such a strong evidence that simple <strong>simple</strong> change in practice can yield wildly improved results, and in an area that is every bit as complex and demanding as creating software.</p>
<p>To me this is insight of a piece with what I felt this summer when I read <a href="http://www.jstor.org/pss/202063" onclick="javascript:pageTracker._trackPageview ('/outbound/www.jstor.org');">The Mundanity of Excellence</a>, an article by Daniel Chambliss. Chambliss studied the difference in performance among swimmers to explain why some excelled and others did not. He found that it didn&#8217;t come down to any of the things you might expect: unusual personalities, qualitative differences (doing the same things but faster) or talent. Instead &#8220;<em>excellence requires qualitative differentiation</em>&#8220;, of doing things different things. But not exceptionally different things, just habitually different:</p>
<blockquote><p>&#8230; there is no secret; there is only the doing of all those little things, each one done correctly, time and again, until excellence in every detail becomes a firmly ingrained habit, an ordinary part of one&#8217;s everyday life.</p></blockquote>
<p>I love this message! It doesn&#8217;t take magic, it doesn&#8217;t take a miracle. It takes decision and discipline and will and learning something new and putting it into practice. This is why I love agile coaching, and teaching engineers TDD and refactoring, and product managers how to use cases and personas, and all those other simple practices that are now considered part of the agile/lean toolkit.</p>
<p>And why it is thrilling to come across an article like this one in the New Yorker that offer a new analogy: the B-17 phase.</p>
<blockquote><p>Substantially more complex than previous aircraft, the new plane required the pilot to attend to the four engines, a retractable landing gear, new wing flaps, electric trim tabs that needed adjustment to maintain control at different airspeeds, and constant-speed propellers whose pitch had to be regulated with hydraulic controls, among other features. &#8230; The Boeing model was deemed, as a newspaper put it, “too much airplane for one man to fly.” &#8230; Medicine today has entered its B-17 phase. &#8230; I.C.U. life support has become too much medicine for one person to fly.</p></blockquote>
<p>Airplanes haven&#8217;t become more complex since them. Instead the belief of what is needed to pilot them has moved beyond the heroic &#8220;Right Stuff&#8221; to a sort routine mundane excellence. ICUs are doing the same. I&#8217;m ready to join them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/09/10/making-software-like-intensive-care-or-bombing-missions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Good progress on CITCON Amsterdam</title>
		<link>http://blog.jeffreyfredrick.com/2008/07/14/good-progress-on-citcon-amsterdam/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/07/14/good-progress-on-citcon-amsterdam/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 07:59:39 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[citcon]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=11</guid>
		<description><![CDATA[Eric Lefevre posted a message to the CITCON mailing list today sharing some information about the upcoming CITCON Amsterdam. We currently have a very similar registration level to where CITCON Brussels ended up last year, but we have more than 2 months to go! I think we&#8217;ve every reason to expect great things out of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ericlefevre.net/wordpress/" onclick="javascript:pageTracker._trackPageview ('/outbound/ericlefevre.net');">Eric Lefevre</a> posted a <a href="http://tech.groups.yahoo.com/group/citcon/message/532" onclick="javascript:pageTracker._trackPageview ('/outbound/tech.groups.yahoo.com');">message to the CITCON mailing list</a> today sharing some information about the upcoming <a href="http://www.citconf.com/amsterdam2008/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.citconf.com');">CITCON Amsterdam</a>. We currently have a <a href="http://spreadsheets.google.com/pub?key=pHhLNcSMCgyng7JTdwv8dJQ&amp;oid=2&amp;output=image" onclick="javascript:pageTracker._trackPageview ('/outbound/spreadsheets.google.com');">very similar registration level</a> to where CITCON Brussels ended up last year, but we have more than 2 months to go! I think we&#8217;ve every reason to expect great things out of this event&#8230; Interested in joining us in Amsterdam in October? Then <a href="http://www.citconf.com/amsterdam2008/register.php" onclick="javascript:pageTracker._trackPageview ('/outbound/www.citconf.com');">sign up</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/07/14/good-progress-on-citcon-amsterdam/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Quick AlphaLabelIncrementer</title>
		<link>http://blog.jeffreyfredrick.com/2008/07/10/a-quick-alphalabelincrementer/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/07/10/a-quick-alphalabelincrementer/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 23:54:57 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[cruisecontrol]]></category>

		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=10</guid>
		<description><![CDATA[On the CruiseControl users mailing list Adam asked for a simple label incrementer that would work with a single character in a series (&#8221;a&#8221;, &#8220;b&#8221;, &#8220;c&#8221;, etc.). Simple enough, but not worth adding to the project, so here it is, test (first) and code.
(Suggestions for better sites for sharing code snippets?)
]]></description>
			<content:encoded><![CDATA[<p>On the CruiseControl users mailing list Adam asked for a simple label incrementer that would work with a single character in a series (&#8221;a&#8221;, &#8220;b&#8221;, &#8220;c&#8221;, etc.). Simple enough, but not worth adding to the project, so here it is, <a href="http://jtf.tumblr.com/post/41816713/alphalabelincrementertest" onclick="javascript:pageTracker._trackPageview ('/outbound/jtf.tumblr.com');">test</a> (first) and <a href="http://jtf.tumblr.com/post/41816834/alphalabelincrementer" onclick="javascript:pageTracker._trackPageview ('/outbound/jtf.tumblr.com');">code</a>.</p>
<p>(Suggestions for better sites for sharing code snippets?)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/07/10/a-quick-alphalabelincrementer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tic-Tac Change Slides</title>
		<link>http://blog.jeffreyfredrick.com/2008/07/07/tic-tac-change-slides/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/07/07/tic-tac-change-slides/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 06:42:30 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[change]]></category>

		<category><![CDATA[citcon]]></category>

		<category><![CDATA[sdbp]]></category>

		<category><![CDATA[tic-tac]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=7</guid>
		<description><![CDATA[Back in 2006 Alistair Cockburn and I gave a talk at SDBP on &#8220;Creating Change one Tic-Tac at a Time&#8221;. As I wrote at the time this talk incorporated ideas from lots of different sources, and I&#8217;ve drawn on these ideas on many occasions since then. Most recently I shared some of the slides at CITCON Melbourne [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 2006 <a href="http://alistair.cockburn.us" onclick="javascript:pageTracker._trackPageview ('/outbound/alistair.cockburn.us');">Alistair Cockburn</a> and I gave <a href="https://www.cmpevents.com/SDe6/a.asp?option=C&amp;V=11&amp;SessID=3131" onclick="javascript:pageTracker._trackPageview ('/outbound/www.cmpevents.com');">a talk at SDBP</a> on &#8220;Creating Change one Tic-Tac at a Time&#8221;. As <a href="http://www.developertesting.com/archives/month200609/20060911-InBostonForSDBP.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.developertesting.com');">I wrote at the time</a> this talk incorporated ideas from lots of different sources, and I&#8217;ve drawn on these ideas on many occasions since then. Most recently I shared some of the slides at CITCON Melbourne during a session on &#8220;<a href="http://www.citconf.com/wiki/index.php?title=The_People_Side_of_CI" onclick="javascript:pageTracker._trackPageview ('/outbound/www.citconf.com');">The People Side of CI</a>&#8220;. <a href="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/07/sdbp06tictactalk.pdf" onclick="javascript:pageTracker._trackPageview ('/downloads/pdf/sdbp06tictactalk.pdf');"><img class="alignright size-thumbnail wp-image-9" title="changecurves" src="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/07/changecurves-150x121.jpg" alt="one big change vs. small changes" width="150" height="121" /></a></p>
<p>I&#8217;ve always intended to write a longish blog/article/thing explaining and expanding on the ideas from the original talk and what I&#8217;ve learned since (including what came up at the Agile 2007 <a href="http://www.agile2007.org/index.php%3Fpage=sub%252F&amp;id=899.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.agile2007.org');">discovery session</a>). But this isn&#8217;t that thing. Instead David Smart, one of the facilitators of the CITCON session, reminded me that I said I&#8217;d share the slides. So here are the <a href="http://blog.jeffreyfredrick.com/wp-content/uploads/2008/07/sdbp06tictactalk.pdf" onclick="javascript:pageTracker._trackPageview ('/downloads/pdf/sdbp06tictactalk.pdf');">slides as pdf</a>, and a public commitment to provide more explanation in a future entry.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/07/07/tic-tac-change-slides/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blog recursion</title>
		<link>http://blog.jeffreyfredrick.com/2008/06/27/blog-recursion/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/06/27/blog-recursion/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 23:08:47 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=6</guid>
		<description><![CDATA[Rob Hunter blogged about my blog entry on the iPhone meetup where he showed off Scribular. I remember just enough of my one semester of Scheme to find this blog entry funny.
]]></description>
			<content:encoded><![CDATA[<p>Rob Hunter <a href="http://blog.scribular.com/post/39965925/scheme-for-god-sake" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.scribular.com');">blogged</a> about <a href="http://blog.jeffreyfredrick.com/2008/06/24/post-wwdc-iphone-developers-meetup/">my blog entry</a> on the iPhone meetup where he showed off Scribular. I remember just enough of my one semester of Scheme to find this blog entry funny.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/06/27/blog-recursion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Post-WWDC iPhone Developers Meetup</title>
		<link>http://blog.jeffreyfredrick.com/2008/06/24/post-wwdc-iphone-developers-meetup/</link>
		<comments>http://blog.jeffreyfredrick.com/2008/06/24/post-wwdc-iphone-developers-meetup/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 03:26:57 +0000</pubDate>
		<dc:creator>Jtf</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[developers]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://blog.jeffreyfredrick.com/?p=5</guid>
		<description><![CDATA[Last night I attended a really neat event, the Silicon Valley iPhone Developers mislabeled WWDC Roundup. The only way for the title to make sense is that the speakers were people that organizer Tim Burks (creator of the cool Nu programming language) was able to roundup at WWDC. The panel was composed of:

David Abramson, Muse
Steve [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I attended a really neat event, the <a href="http://softwaredev.meetup.com/92/" onclick="javascript:pageTracker._trackPageview ('/outbound/softwaredev.meetup.com');">Silicon Valley iPhone Developers</a> mislabeled <a href="http://softwaredev.meetup.com/92/calendar/7979570/" onclick="javascript:pageTracker._trackPageview ('/outbound/softwaredev.meetup.com');">WWDC Roundup</a>. The only way for the title to make sense is that the speakers were people that organizer <a href="http://blog.neontology.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.neontology.com');">Tim Burks</a> (creator of the cool <a href="http://programming.nu/" onclick="javascript:pageTracker._trackPageview ('/outbound/programming.nu');">Nu programming language</a>) was able to roundup at WWDC. The panel was composed of:</p>
<ul>
<li>David Abramson, Muse</li>
<li>Steve Demeter, <a href="http://www.demiforce.com/home.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.demiforce.com');">Demiforce LLC</a></li>
<li><a href="http://www.linkedin.com/pub/0/20/70b" onclick="javascript:pageTracker._trackPageview ('/outbound/www.linkedin.com');">Ramin Firoozye</a>, FrolicWare</li>
<li>Rob Hunter, <a href="http://scribular.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/scribular.com');">Scribular</a></li>
<li>Mike Lee, Tapulous (<a href="http://www.atomicwang.org/motherfucker/Index/Index.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.atomicwang.org');">blog title</a> is NSFW)</li>
</ul>
<div>I loved the event because all of the developers were so charmingly wide-eyed, so stunned and obviously loving what they are doing and the opportunity the see in front of them. David is excited by making novel interactive and social music based software. Steve is still amazed at the response he&#8217;s had to the <a href="http://www.youtube.com/user/DemioneNDF" onclick="javascript:pageTracker._trackPageview ('/outbound/www.youtube.com');">YouTube video</a> of his app Trisim, over 260,000 views. Ramin was showing off PhotoFrolic — take picture, &#8220;augment&#8221;, share — to people outside his house for the very first time. Rob was able to create on the iPhone an idea he&#8217;d had in 2003. And Mike Lee is obviously loving the opportunity to round-up the best developers and pull them into a much more ambitious iPhone startup that the others on display, all for his end goal of reforesting Madagascar.</div>
<div></div>
<div>A couple things I found particularly interesting:</div>
<div>
<ol>
<li>Of all the panelists only Mike Lee had previous experience with Objective-C and Cocoa. Steve is a .NET developer. Ramin Python/Django. Rob wrote his backend web service in Scheme for god sake. Which brings me to&#8230;</li>
<li>All of the applications under discussion have their own backend web service. I&#8217;ve ranted to a few friends lately that the future of web apps is native code, and this was an eloquent demonstration</li>
</ol>
</div>
<div>Tapulous&#8217;s FriendBook app is a great example. Itallows you to exchange contact information by handshaking  your iPhones at each other. But this isn&#8217;t some local data beaming! In the coffee shop/airport setting you might be on different wireless networks (3G vs Edge vs WiFi), so you&#8217;re making a remote call back to the cloud with your location and it matches two people in the same place making the same motion. Your web app have access to the accelerometer? I didn&#8217;t think so.</div>
<div></div>
<div>Anyway, great meeting, great group of people, and from what I saw we&#8217;re all going to be blown away with that AppStore finally opens.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jeffreyfredrick.com/2008/06/24/post-wwdc-iphone-developers-meetup/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
