<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>The blog of Sam Newman. A Software Developer in London.</description><title>magpiebrain</title><generator>Tumblr (3.0; @magpiebrain)</generator><link>http://blog.magpiebrain.com/</link><item><title>Graffiti On The Portobello Road</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kwdb13bxZa1qzdqfmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Graffiti On The Portobello Road&lt;/b&gt;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/338260786</link><guid>http://blog.magpiebrain.com/post/338260786</guid><pubDate>Sun, 17 Jan 2010 01:34:17 +0000</pubDate></item><item><title>Strictly Not To Be Open The Magazine With Plastic Cover...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_kwdb16fpP81qzdqfmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Strictly Not To Be Open The Magazine With Plastic Cover Otherwise Liable To Charges…&lt;/b&gt;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/338260867</link><guid>http://blog.magpiebrain.com/post/338260867</guid><pubDate>Sun, 17 Jan 2010 01:34:17 +0000</pubDate></item><item><title>That’s not a camera - now this, us a camera!: 

Nikon FM3a...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_krmagu7BRl1qzdqfmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;That’s not a camera - now this, us a camera!:&lt;/b&gt; 

&lt;p&gt;Nikon FM3a with attached MD-12 motor drive.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/214813973</link><guid>http://blog.magpiebrain.com/post/214813973</guid><pubDate>Fri, 16 Oct 2009 18:12:33 +0100</pubDate></item><item><title>Nikon FM3A with MD-12 Motor drive</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_krmagp4fyt1qzdqfmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Nikon FM3A with MD-12 Motor drive&lt;/b&gt;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/214813938</link><guid>http://blog.magpiebrain.com/post/214813938</guid><pubDate>Fri, 16 Oct 2009 18:12:29 +0100</pubDate></item><item><title>Speaking at qcon San Francisco</title><description>&lt;p&gt;I&amp;#8217;ll be speaking at &lt;a href="http://qconsf.com/"&gt;qcon&lt;/a&gt; San Francisco on the 20th of November. &lt;a href="http://qconsf.com/sf2009/speaker/Sam+Newman"&gt;Navigating The Rapids: Real-world Lessons in Adopting Agile&lt;/a&gt; will be a typically rambling affair, drawing on a multitude of war stories from the many projects I&amp;#8217;ve work on at &lt;a href="http://www.thoughtworks.com/"&gt;ThoughtWorks&lt;/a&gt;. Qcon is an invite only conference, so thanks go to Steve Freeman for inviting me to talk as part of his &lt;a href="http://qconsf.com/sf2009/tracks/show_track.jsp?trackOID=299"&gt;Technical Skills For Agile Development&lt;/a&gt; track.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/198202550</link><guid>http://blog.magpiebrain.com/post/198202550</guid><pubDate>Sun, 27 Sep 2009 11:18:58 +0100</pubDate></item><item><title>A Build Radiator for CCTray Feeds</title><description>&lt;p&gt;I spend most of my time working in team areas with other devs, as part of a team who check in frequently and who always use a Continuous Integration tool. When the build is broken, it&amp;#8217;s a problem. Typically, a big problem - it should be the top priority of any team to fix a broken build.&lt;/p&gt;
&lt;p&gt;The problem is that all of the tools out there provide web interfaces that work well on a desktop, but are rubbish as an information radiators. Information radiators sit in the corner of the room, often several meters away.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/bigvisiblewall/"&gt;Big Visible Wall&lt;/a&gt; is a scala webserver which displays the status of one or more cctray feeds. It uses an embedded jetty server. Consider it a software appliance. cctray feeds are supported by multiple different tools, so it seemed like a good choice. It&amp;#8217;s been tested with &lt;a href="http://studios.thoughtworks.com/cruise-release-management"&gt;Cruise&lt;/a&gt; and &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt;, but should work with anything that serves up cctray.&lt;/p&gt;
&lt;p&gt;Grab the &lt;a href="http://code.google.com/p/bigvisiblewall/downloads/list"&gt;distro&lt;/a&gt; and let me know if it works for you.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/187011179</link><guid>http://blog.magpiebrain.com/post/187011179</guid><pubDate>Sun, 13 Sep 2009 17:46:48 +0100</pubDate><category>Scala</category></item><item><title>The Lego XP Game at Skillsmatter</title><description>&lt;p&gt;This is truly awful. A while back I did a run though of the &lt;a&gt;Lego XP Game&lt;/a&gt; for Skillsmatter. I developed the game a few years ago with colleagues help by way of a training excercise. The game isn&amp;#8217;t awful - I actually enjoy running it, and I get a kick knowing how many of my coworkers have run the game for internal and external purposes.&lt;/p&gt;
&lt;p&gt;No - the thing that is awful - truly, mind-bendingly awful - is that someone &lt;a href="http://skillsmatter.com/podcast/java-jee/lego-xp-game"&gt;filmed it&lt;/a&gt;. More specifically, they filmed me.&lt;/p&gt;
&lt;p&gt;Just try to bear in mind three things:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;I forgot I was supposed to run the session until that morning&lt;/li&gt;
&lt;li&gt;As a result of 1. above, I didn&amp;#8217;t have enough lego&lt;/li&gt;
&lt;li&gt;I look better in person&lt;sup&gt;1&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Anyway, all 80-odd glorius minutes are on the &lt;a href="http://www.magpiebrain.com/presentations/the-lego-xp-game/"&gt;Skillsmatter website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Typically  I run the game over a 2&amp;#160;1/2 - 3 hour period, so this session was rather truncated. So be kind :-)&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; - OK, that might be a lie&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/154468445</link><guid>http://blog.magpiebrain.com/post/154468445</guid><pubDate>Sun, 02 Aug 2009 23:19:57 +0100</pubDate></item><item><title>Using Scala pattern matching to implement a URL handler</title><description>&lt;p&gt;I&amp;#8217;ve been playing around with using Scala&amp;#8217;s pattern matching support to create a URL handler for use with an embedded Jetty server. This little code snippet creates a Jetty handler that can not only match URLs, but even extract parts of the URL and pass it into the block&lt;/p&gt;
&lt;pre class="brush: scala;"&gt;protected class SomeHandler extends AbstractHandler {
  override def handle(target: String, request: HttpServletRequest, response: HttpServletResponse) = {
    response.setContentType("text/html");
    val HomePage = "/"
    val StaticResources = new Regex("""/static/(.*)""")
   
    target match {
      case HomePage =&amp;gt; {
        ok(response, "Hello!")
      } 
   
      case StaticResources(resource) =&amp;gt; {
        ok(response, "You asked for resource " + resource)       
      }
	
      case _ =&amp;gt; {           
        notFound(response, "Not Found")       
      }     
    }     
    (request.asInstanceOf[Request]).setHandled(true);     
  }   
} 
&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;ok&lt;/code&gt;, &lt;code&gt;notFound&lt;/code&gt; methods simply write the String out to the response stream with the right HTTP code.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;StaticResources&lt;/code&gt; regex pulls out everything after the &lt;code&gt;/static/&lt;/code&gt; root. It would be easy to imagine some kind of regex which pulled out the year, month and day from a URL - for example:&lt;/p&gt;
&lt;pre class="brush: scala;"&gt;val EntriesOnDay = new Regex("""/posts/(\d+)/(\d+)/(\d+)""")
...

target match {
  case EntriesOnDay(year, month, day) =&amp;gt; {
    // use year, month, day etc to pull back posts or whatever
  }
}
&lt;/pre&gt;</description><link>http://blog.magpiebrain.com/post/149007683</link><guid>http://blog.magpiebrain.com/post/149007683</guid><pubDate>Sat, 25 Jul 2009 19:37:00 +0100</pubDate><category>scala</category></item><item><title>Finally, mercurial push working over https on my own VPS. Now to write some code&amp;#8230;</title><description>&lt;p&gt;Finally, mercurial push working over https on my own VPS. Now to write some code&amp;#8230;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/148927182</link><guid>http://blog.magpiebrain.com/post/148927182</guid><pubDate>Sat, 25 Jul 2009 16:35:54 +0100</pubDate></item><item><title>I have just recieved an IOU from the state of Califonia. Some people claim the govenment owes them...</title><description>&lt;p&gt;I have just recieved an IOU from the state of Califonia. Some people claim the govenment owes them money - in my case it&amp;#8217;s true.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/146368261</link><guid>http://blog.magpiebrain.com/post/146368261</guid><pubDate>Tue, 21 Jul 2009 23:59:18 +0100</pubDate></item><item><title>Getting my own mercurial repo up and running next on the list.</title><description>&lt;p&gt;Getting my own mercurial repo up and running next on the list.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/146304376</link><guid>http://blog.magpiebrain.com/post/146304376</guid><pubDate>Tue, 21 Jul 2009 21:58:40 +0100</pubDate></item><item><title>Upgrading my slice at slicehost was a dream. Updating gutsy to hardy on the command line more...</title><description>&lt;p&gt;Upgrading my slice at slicehost was a dream. Updating gutsy to hardy on the command line more painful than expected.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/146304379</link><guid>http://blog.magpiebrain.com/post/146304379</guid><pubDate>Tue, 21 Jul 2009 21:58:40 +0100</pubDate></item><item><title>Film stash: 

About two-thirds of my current film stash....</title><description>&lt;img src="http://25.media.tumblr.com/qTFHdLrFtq3h2sgesqdU5T9zo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Film stash:&lt;/b&gt; 

&lt;p&gt;About two-thirds of my current film stash. I’ve developed a colour scheme for the 35mm - red for slide film, green for colour negative, yellow for B&amp;W.&lt;br/&gt;&lt;br/&gt;
Not in shot - ten rolls of 120 &amp; 200 Velvia 50. As you can tell, I like my velvia :-).&lt;br/&gt;&lt;br/&gt;
I’m working through the 35mm at quite a decent rate due to my new FM3a - but I should really start making a dent in all that 120…&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/144761777</link><guid>http://blog.magpiebrain.com/post/144761777</guid><pubDate>Sun, 19 Jul 2009 16:33:45 +0100</pubDate></item><item><title>Rather myopic AP piece on McNamara makes no mention of his work for the world bank. Bad journalism....</title><description>&lt;p&gt;Rather myopic AP piece on McNamara makes no mention of his work for the world bank. Bad journalism. &lt;a href="http://bit.ly/ACfU3"&gt;http://bit.ly/ACfU3&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/137621519</link><guid>http://blog.magpiebrain.com/post/137621519</guid><pubDate>Wed, 08 Jul 2009 09:14:24 +0100</pubDate></item><item><title>Hmm - I&amp;#8217;d love it if #tweetie had built in bit.ly support&amp;#8230;</title><description>&lt;p&gt;Hmm - I&amp;#8217;d love it if #tweetie had built in bit.ly support&amp;#8230;&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/137621518</link><guid>http://blog.magpiebrain.com/post/137621518</guid><pubDate>Wed, 08 Jul 2009 09:14:24 +0100</pubDate></item><item><title>Robert S Mcnamara has died. How am I just finding out about this now?</title><description>&lt;p&gt;Robert S Mcnamara has died. How am I just finding out about this now?&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/137621520</link><guid>http://blog.magpiebrain.com/post/137621520</guid><pubDate>Wed, 08 Jul 2009 09:14:24 +0100</pubDate></item><item><title>O2 broadband now up and running. As efficient as it should be. Great communication from O2 - very...</title><description>&lt;p&gt;O2 broadband now up and running. As efficient as it should be. Great communication from O2 - very impressed.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/136635568</link><guid>http://blog.magpiebrain.com/post/136635568</guid><pubDate>Mon, 06 Jul 2009 22:18:54 +0100</pubDate></item><item><title>Well, setting up SMTP is a bit of a faff - they should realise most people already have an email...</title><description>&lt;p&gt;Well, setting up SMTP is a bit of a faff - they should realise most people already have an email account and make SMTP config more obvious&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/136635524</link><guid>http://blog.magpiebrain.com/post/136635524</guid><pubDate>Mon, 06 Jul 2009 22:18:48 +0100</pubDate></item><item><title>Given the leading topic, one suspects we may be seeing the end of the trending topics. Crowd...</title><description>&lt;p&gt;Given the leading topic, one suspects we may be seeing the end of the trending topics. Crowd sourcing only works when crowds are smart.&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/136022702</link><guid>http://blog.magpiebrain.com/post/136022702</guid><pubDate>Sun, 05 Jul 2009 22:46:37 +0100</pubDate></item><item><title>Currently experiencing the guilty pleasure that is watching The Waterboy. No, it isn&amp;#8217;t Punch...</title><description>&lt;p&gt;Currently experiencing the guilty pleasure that is watching The Waterboy. No, it isn&amp;#8217;t Punch Drunk Love but Kathy Bates rocks&lt;/p&gt;</description><link>http://blog.magpiebrain.com/post/136022704</link><guid>http://blog.magpiebrain.com/post/136022704</guid><pubDate>Sun, 05 Jul 2009 22:46:37 +0100</pubDate></item></channel></rss>

