<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Ben Poole</title>
<link>http://benpoole.com</link>
<language>en-gb</language>
<description>Ben Poole: last 10 &#8217;blog entries</description>
<copyright>Copyright 1997 - 2012, Benedict Poole</copyright>
<generator>Domino SimpleFeed from http://foo-soft.com</generator>
<webMaster>site@benpoole.com (Ben Poole)</webMaster>
<atom:link href="http://benpoole.com/bp.nsf/blogs.rss" rel="self" type="application/rss+xml" />
<item><title>HTTP 701 meh</title><pubDate>Sat, 28 Jan 2012 17:09 +0100</pubDate><description><![CDATA[<p>Hopefully you are a <a href="https://github.com">github regular</a> and have already seen this README, but just in case not, be sure to check out John Barton’s RFC for some extra HTTP codes. My favourites are 701 and 748.</p>

<p><a href="https://github.com/joho/7XX-rfc#readme">John Barton&#8217;s RFC</a>.</p>]]></description><link>http://benpoole.com/weblog/201201281709</link><dc:subject>http, github, fun</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201201281709</guid><comments>http://benpoole.com/weblog/201201281709#comments</comments></item><item><title>More on testable code</title><pubDate>Wed, 25 Jan 2012 19:23 +0100</pubDate><description><![CDATA[<p>Following on from <a href="/weblog/201201170736">my previous post</a>, I stumbled across a most excellent resource, Miško Hevery&#8217;s <a href="http://misko.hevery.com/code-reviewers-guide/">Guide: Writing Testable Code</a>. This is detailed, helpful and above all eminently readable&#8212;well worth running off and keeping.</p>

<p>Hevery&#8217;s document contains a number of tips designed to make code more testable, but really it goes wider than that. Hevery picks out four basic flaws, gives examples of each, how to detect them (&#8220;warning signs&#8221; if you will), and of course, how to address them.</p>

<p>The four flaws:</p>

<ol>
<li>&#8220;Constructor does real work&#8221; (don&#8217;t do any more than basic assignment, and certainly don&#8217;t do any static &#8220;initialisation&#8221; method calls)</li>
<li>&#8220;Digging into collaborators&#8221; (avoid a deep chain of wrapper objects)</li>
<li>&#8220;Brittle global state &amp; singletons&#8221; (globally-accessible elements can / will cause havoc when trying to test and debug)</li>
<li>&#8220;Class does too much&#8221; (remember the classic principle of &#8220;single responsibility.&#8221; Also, spaghetti code is blummen&#8217; hard to test)</li>
</ol>

<p>Read more&hellip; <a href="http://misko.hevery.com/code-reviewers-guide/">Guide: Writing Testable Code</a>.</p>]]></description><link>http://benpoole.com/weblog/201201251923</link><dc:subject>programming, testing, tips, miško hevery</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201201251923</guid><comments>http://benpoole.com/weblog/201201251923#comments</comments></item><item><title>Making code test-able</title><pubDate>Tue, 17 Jan 2012 07:36 +0100</pubDate><description><![CDATA[<p>There are two things a developer needs to make his or her output testable (and therefore more robust. Hopefully):</p>

<ol>
<li>The &#8220;How would I test for xyz&#8221; mind-set, and;
<li>A fast simple development environment</li>
</ol>

<p>That&#8217;s it, that&#8217;s all you need. The first comes with practise, and the second is pretty straightforward nowadays. Of late I have been writing a lot of PHP in <a href="http://eclipse.org">Eclipse</a>, <a href="http://panic.com/coda/">Coda</a> and the new kid on the block, <a href="http://www.sublimetext.com/2">Sublime Text 2</a> (check it out: very nice). All of these tools make it easy to write test-able code, because one simply pulls in the unit testing framework of choice, and then one writes code: job done, very low barrier to entry.</p>

<p>As a small aside, I am constantly amazed at how much PHP stuff goes out the door with minimal-to-no tests, especially when one considers the fluid nature of the language (its typing and such). This contrasts sharply with the mind-set we see amongst Rubyists, who regard their language&#8217;s dynamism as <i>raison d&#8217;être</i> for excellent test coverage.</p>

<p>So a diligent approach to testing is one thing, but contrast my comments about editors above with other recent experiences writing Java in an Eclipse-based editor called Domino Designer (some of you may be familiar with it). Making <em>that</em> code test-able has been more problematic, given DDE&#8217;s reluctance to play nice with plug-ins like <a href="http://junit.org">JUnit</a>, and the way a typical Java agent is structured. So, a couple of tips:</p>

<ol>
<li>Abstraction is key: write as much of your Java code as you can abstracted away from the Domino object model. This way you can code in a proper Eclipse instance, and you can write easy test cases. Break up big problems into small solvable components, and test them. Your Java agents should be very &#8220;light&#8221;&#8212;minimal code perhaps just looping a collection or whatever. Let your custom, tested classes do the heavy lifting.</li>
<li>If you&#8217;re like me, and not at Lotusphere, you will be missing out on a session from Messrs. <a href="http://www.stickfight.co.uk">Myers</a> and <a href="http://www.nsftools.com">Robichaux</a> covering effective Java in the Domino environment. As soon as their presentation is made available, I have it on good authority that you will want it, and that the Wookiee has some tricks up his sleeve when it comes to JUnit <span class="smiley smile">:-)</span>.</li>

<p>(Finals words of &#8220;wisdom&#8221;: it is a lot quicker, and simpler, to write test-able code up-front. Adding tests after the fact is always more burdensome).</p>]]></description><link>http://benpoole.com/weblog/201201170736</link><dc:subject>testing, programming</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201201170736</guid><comments>http://benpoole.com/weblog/201201170736#comments</comments></item><item><title>Resolutions for coders</title><pubDate>Thu, 5 Jan 2012 18:45 +0100</pubDate><description><![CDATA[<p><a href="http://benpoole.com/bp.nsf/weblog/201201042230" title="Link to my post &#8220;Code Year and Site Design&#8221;">Yesterday</a> I posted about <a href="http://codeyear.com">Code Year</a>, an initiative to get people learning the gentle (chortle) art of programming. But what of the seasoned professional, the much-maligned code monkey, the long-suffering developer?</p>

<p>Well, <a href="http://matt.might.net">Matt Might</a> has a splendid list of twelve resolutions for the rest of us:</p>

<p>Matt Might, <a href="http://matt.might.net/articles/programmers-resolutions/">12 Resolutions for Programmers</a>.</p>]]></description><link>http://benpoole.com/weblog/201201051845</link><dc:subject>programming, matt might, resolutions</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201201051845</guid><comments>http://benpoole.com/weblog/201201051845#comments</comments></item><item><title>Codeyear and site design</title><pubDate>Wed, 4 Jan 2012 22:30 +0100</pubDate><description><![CDATA[<p>After checking out the <a href="http://codeyear.com">Code Year</a> site recently launched by <a href="http://www.codecademy.com">Codecademy</a>, I moved on to read an interesting post from that site&#8217;s designer, Sacha Greif: <a href="http://sachagreif.com/how-i-designed-codeyear-com-in-1-hour/">How I Designed CodeYear.com in 1 Hour</a>. Definitely check this post out: Sacha deftly guides the reader through the over-arching thought processes behind an effective site re-design. There are some handy tips and links along the way for any budding designers, or coders like you and I who simply want to to create more pleasant web experiences.</p>

<p>As for Code Year, what a great initiative!</p>

<blockquote cite="http://www.rushkoff.com/blog/2010/3/25/program-or-be-programmed.html">If you are not a programmer, you are one of the programmed. It&#8217;s that simple.</blockquote>

<p><a href="http://www.rushkoff.com/blog/2010/3/25/program-or-be-programmed.html" title="Link to Douglas Rushkoff, &#8220;Program or Be Programmed&#8221;">Douglas Rushkoff</a> says it best.</p>]]></description><link>http://benpoole.com/weblog/201201042230</link><dc:subject>codeyear, douglas rushkoff, programming, codecademy</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201201042230</guid><comments>http://benpoole.com/weblog/201201042230#comments</comments></item><item><title>Here’s to next year</title><pubDate>Fri, 30 Dec 2011 16:33 +0100</pubDate><description><![CDATA[<p>Yes, it&#8217;s me <span class="smiley wink">;-)</span>. Time to break the long silence with an end-of-year post! No exhaustive review (especially given the paucity of posts in the first place), just a simple summary:</p>

<dl>
<dd>Music</dd>
<dt>I loves my music I does, and 2011 was another corking year. Far from the madd(en)ing crowd, there&#8217;s always plenty of good stuff out there being made and re-discovered. The year started off with my continued rediscovery of <a href="http://www.zappa.com">Frank Zappa</a> (one of my early music loves), and a special new liking for the 1981 album, <cite><a href="http://www.amazon.co.uk/gp/product/B0000009T3/ref=as_li_qf_sp_asin_tl?ie=UTF8&amp;tag=benpoolecom-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=B0000009T3">You Are What You Is</a></cite>, which is as good an introduction to his music as any I reckon. Album of the year? I have two, both of which came out towards the end of 2011: <cite><a href="http://www.amazon.co.uk/gp/product/B005MIEJWK/ref=as_li_tf_tl?ie=UTF8&amp;tag=benpoolecom-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=B005MIEJWK">50 Words For Snow</a></cite> from my all-time favourite <a href="http://www.katebush.com">Kate Bush</a>, and <cite><a href="http://www.amazon.co.uk/gp/product/B0058WFO06/ref=as_li_tf_tl?ie=UTF8&amp;tag=benpoolecom-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=B0058WFO06">Grace For Drowning</a></cite>, a wonderful double album from <a href="http://swhq.co.uk">Steven Wilson</a>. About a month after Wilson&#8217;s album came out, I got to see him and his band live in London, and will be seeing him again in 2012: an absolutely <em>stunning</em> show&#8212;go and see him if you get the chance! Finally, honourable mention again for Kate Bush, this time with her May release (yes, <strong>two</strong> albums in 2011), <cite><a href="http://www.amazon.co.uk/gp/product/B004S6RIDY/ref=as_li_tf_tl?ie=UTF8&amp;tag=benpoolecom-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=B004S6RIDY">Director&#8217;s Cut</a></cite>.</dt>

<dd>Work</dd>
<dt>Funny old year. In November 2010 I finished a long-term assignment in London, and decided not to jump back on the contract wagon straight away. Instead I opted for the freelance life for the next eleven months, working on all manner of projects and technologies. This has been absolutely fantastic in many regards: lots of mobile web development, some work with IBM Connections, and so on. There was some XPages action, but 2011 was really the year that Domino dropped off the radar for me, with a lot of Java, PHP, HTML5, Javascript and Ruby instead. I am now working on another contract assignment, this time in <a href="http://mediacityuk.co.uk">MediaCityUK</a>, doing lots of new (and high profile) stuff, which has been a tremendous learning experience thus far.</dt>
<dd>This site</dd>
<dt>The aforementioned work events have thus left me with a wee dilemma when it comes to this site; I&#8217;m not really sure in which direction to take it. Earlier in the year I experimented with some Ruby-themed posts, and also some HTML5 and Javascript how-tos, but neither &#8220;series&#8221; made much of an impression. I guess I still get a lot of Domino people here maybe <span class="smiley wink">;-)</span> Anyway, I have a back-log of tech stuff to write about, some of which should be of interest to the yellow world, so stay tuned!</dt>
</dl>

<p>Enough navel-gazing. I wish you and yours all the very best for 2012: here&#8217;s hoping it&#8217;s better than 2011 for all of us (it&#8217;s already looking good, as Daniel Lieske has released <a href="http://daniellieske.blogspot.com/2011/12/chapter-2-journey-begins.html" title="Link to &#8220;Daniel Lieske, Chapter 2 - The Journey Begins&#8221;">the next chapter of his Wormworld Saga</a>!)</p>]]></description><link>http://benpoole.com/weblog/201112301633</link><dc:subject>steven wilson, kate bush, wormworld, navel-gazing, 2011</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201112301633</guid><comments>http://benpoole.com/weblog/201112301633#comments</comments></item><item><title>Where’s Benny?</title><pubDate>Wed, 2 Nov 2011 22:53 +0100</pubDate><description><![CDATA[<p>Ooops. I haven&#8217;t updated this blog in precisely one calendar month. How bad is that? There&#8217;s stuff piling up to be written and posted, honest guv&#8212;it&#8217;s just a matter of finding enough hours in the day.</p>

<p>Almost three weeks ago I started a new full-time contract, unusual for me in that it is based miles away from home in Manchester (<a href="http://www.mediacityuk.co.uk/">MediaCityUK</a> to be precise). I&#8217;m working as a mobile web developer, using technologies such as HTML, CSS3, Javascript, Linux and PHP (<a href="http://framework.zend.com/">Zend framework</a>, amongst other things). All very interesting, and with a very pleasant team in delightful offices. The downside of the job is that I&#8217;m away from home Monday - Friday, spend a lot of time on trains, and eat peculiar meals at strange times of the day <span class="smiley smile">:-)</span>.</p>

<p>So, more content as and when, but I felt I owed some sort of explanation for my absence here!</p>]]></description><link>http://benpoole.com/weblog/201111022253</link><dc:subject>work, projects</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201111022253</guid><comments>http://benpoole.com/weblog/201111022253#comments</comments></item><item><title>Update!</title><pubDate>Sun, 2 Oct 2011 21:19 +0100</pubDate><description><![CDATA[<p>Manic times! I should really lift the nose from the grindstone and fill you in. It&#8217;s interesting (I think). So, this is what&#8217;s been a-happening:</p>

<ul>
  <li>Big-ish project customising <a href="http://ideajma.net">IdeaJam</a> for a major global financial customer. Gave me a chance to really dig in to <a href="http://mattwhite.me">Matt White&#8217;s</a> code and find out that, you know, it&#8217;s <strong>good</strong>.</li>
  <li>Two projects for some smaller companies, dealing with greenfield IBM Connections / Domino integration for one, and modernising some exceptionally well-coded Lotusscript for another.</li>
  <li>Dealing with many <strong>many</strong> recruitment agents (sad face).</li>
  <li>A six day contract building an HTML5 iPad application from excellent Photoshop designs. The main challenge with this project (aside from time) was building an HTML / Javascript-rendered 360° model which needed to rotate when swiped, but which also needed to have an overlay of links (twelve in total) which appeared/ disappeared as the model rotated through 75 frames. The rotation came courtesy of <a href="http://www.linkedin.com/in/petrvostrel">Petr Vostřel</a> and his <a href="http://jquery.vostrel.cz/reel">jQuery Reel plug-in</a>. The links overlay took some actual <em>work</em> <span class="smiley wink">;-)</span></li>
  <li>Coding some bits n pieces for the upcoming <a href="http://www.mymusicrx.org/">MyMusicRX</a> app, which <a href="http://www.bruceelgort.com/blogs/be.nsf/plinks/BELT-8M9MEH" title="Link to Bruce Elgort, &#8220;MyMusicRx: iPhone iOS app powered by XPages&#8221;">Bruce describes in more detail here</a>. Good fun!</li>
</ul>
<p>Who knows what October will bring?</p>]]></description><link>http://benpoole.com/weblog/201110022119</link><dc:subject>work, projects, mymusicrx, ideajam</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201110022119</guid><comments>http://benpoole.com/weblog/201110022119#comments</comments></item><item><title>“Do you recall using Notes?”</title><pubDate>Sun, 18 Sep 2011 09:49 +0100</pubDate><description><![CDATA[<p>I worked for <a href="http://www.pwc.com">PricewaterhouseCoopers</a> for twelve years, and well remember the early years (in what was then Coopers &amp; Lybrand) working on old Toshiba Satellites with Windows 3.1 and Lotus Notes 3.3. Heady days! Both Price Waterhouse and C&amp;L really steered the product in some respects, so their merger in 1998 (shortly after we in Coopers had moved to Windows 95 and Notes 4.5.3) certainly made sense from a technological perspective if nothing else. This is an interesting piece from ReadWrite Enterprise in which Notes, and the broader collaborative world, are discussed with Sheldon Laube, Chief <a href="http://pwcinnovate.wordpress.com/" title="Link to PwC Innovation blog">Innovation</a> Officer at PwC:</p>

<blockquote cite="http://www.readwriteweb.com/enterprise/2011/09/sheldon-laube.php">The new social media tools are going to have as much of an impact as Notes did in its day, according to Laube. The problem, he said, is that they aren&#8217;t oriented toward accomplishing particular tasks, other than staying in touch with your friends and colleagues. &#8220;It is easy to miss particular things in your news feed in Facebook, but in a business context that isn&#8217;t okay at all,&#8221; he said.</blockquote>

<p>Give the article a read, and more importantly listen to the accompanying podcast: Laube raises some good points (he even mentions the dreaded performance review!)</p>

<p>ReadWrite Enterprise: <a href="http://www.readwriteweb.com/enterprise/2011/09/sheldon-laube.php">How Lotus Notes Changed the Collaboration Landscape</a>.</p>]]></description><link>http://benpoole.com/weblog/201109180949</link><dc:subject>pwc, enterprise, lotus notes domino, collaboration</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201109180949</guid><comments>http://benpoole.com/weblog/201109180949#comments</comments></item><item><title>An album I cannot wait for</title><pubDate>Fri, 16 Sep 2011 20:47 +0100</pubDate><description><![CDATA[<p>In ten days time an album comes out which I simply cannot wait for: <cite><a href="http://www.gracefordrowning.com">Grace For Drowning</a></cite> by <a href="http://swhq.co.uk/">Steven Wilson</a>. Long-suffering readers of this site will know that I am a massive <a href="http://www.porcupinetree.com">Porcupine Tree</a> fan, and will (probably) understand. An amazing producer, songwriter and performer, Wilson is bringing out his most ambitious work to date: a double album of material, apparently veering away from the &#8220;metal-esque&#8221; leanings of recent PT output towards a sound more reminiscent of the golden age of &#8217;70s prog. From what I&#8217;ve heard so far, we&#8217;re in for a real treat&#8212;Wilson is a master when it comes to evocative music, a real conjuror of atmosphere and menace (when required!)</p>

<p class="feature"><a href="http://www.gracefordrowning.com"><img src="http://benpoole.com/bp.nsf/files/201109162047/$file/banner-2-468x60px.jpg" alt="Banner: Steven Wilson, &#8220;Grace For Drowning&#8221;" height="250" width="368" class="feature-image" /></a></p>

<p>Like I say, cannot wait. <span class="smiley smile">:-)</span></p>]]></description><link>http://benpoole.com/weblog/201109162047</link><dc:subject>music, porcupine tree, steven wilson, progrock</dc:subject><dc:creator>Ben Poole</dc:creator><guid isPermaLink="true">http://benpoole.com/weblog/201109162047</guid><comments>http://benpoole.com/weblog/201109162047#comments</comments></item>	</channel>
</rss>

