<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3174400193625003779</id><updated>2011-07-30T19:59:24.228-07:00</updated><category term='sql cursor t-sql 2005'/><title type='text'>Mono-rail Cat</title><subtitle type='html'>A vaguely C#/.Net related blog, but with more cat.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-3500988822098656042</id><published>2010-01-01T06:48:00.000-08:00</published><updated>2010-01-01T06:48:37.975-08:00</updated><title type='text'>Raw Sushi</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aG08rYlagzg/Sz4LNh1xUzI/AAAAAAAADJc/L-HrnZaSR3o/s1600-h/Raw+Sushi+011.JPG"&gt;&lt;img alt="" src="http://4.bp.blogspot.com/_aG08rYlagzg/Sz4LNh1xUzI/AAAAAAAADJc/L-HrnZaSR3o/s400/Raw+Sushi+011.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;Some raw sushi that I made today.&lt;br /&gt;&lt;br /&gt;Parsnip Rice&lt;br /&gt;Wasabi Aioli on the top&lt;br /&gt;&lt;br /&gt;It was delicious!&lt;div style="clear: both; text-align: center;"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-3500988822098656042?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/3500988822098656042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=3500988822098656042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/3500988822098656042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/3500988822098656042'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2010/01/some-raw-sushi-that-i-made-today.html' title='Raw Sushi'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aG08rYlagzg/Sz4LNh1xUzI/AAAAAAAADJc/L-HrnZaSR3o/s72-c/Raw+Sushi+011.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-3287267520845556578</id><published>2009-09-13T07:31:00.000-07:00</published><updated>2009-09-13T07:37:34.272-07:00</updated><title type='text'>Learning to code</title><content type='html'>OK,&lt;br /&gt;&lt;br /&gt;Interesting conversation with another "developer" - in the loosest sense of the word, regarding a mutual friend who is just starting to learn C#&lt;br /&gt;&lt;br /&gt;I mentioned that the world would be a nicer place to be if all developers were given a grounding in things such as:&lt;br /&gt;&lt;br /&gt;- Source Control&lt;br /&gt;- Design Patterns&lt;br /&gt;- Unit Testing&lt;br /&gt;&lt;br /&gt;Before being let loose on the world of code.&lt;br /&gt;&lt;br /&gt;The question is, should your first "hello world" application be unit tested? Developed using TDD? Adhere to the MVC pattern? Be in source control and properly labelled?&lt;br /&gt;&lt;br /&gt;I think the answer is a pretty resounding "yes, of course".  The reams and reams of substandard C# I see every week (mainly from code posted on the interweb) demonstrates the fact that people don't "pick up those things later on".  They simply don't.  How many code/function snippets have you seen on various blogs (mine included) which have associated unit tests?  Hardly any.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, I'm as guilty of this as the next man - but maybe...just maybe...if I'd started out writing code in the correct manner, maybe I would find it easier to do so now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-3287267520845556578?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/3287267520845556578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=3287267520845556578' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/3287267520845556578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/3287267520845556578'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/09/learning-to-code.html' title='Learning to code'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-5515520356002436519</id><published>2009-06-23T00:45:00.000-07:00</published><updated>2009-06-23T00:55:48.221-07:00</updated><title type='text'>NDepend and Cruise Control .Net</title><content type='html'>Well, it had to happen, I finally got around to posting my fix/hack/dirty for this problem.&lt;br /&gt;&lt;br /&gt;1. The problem: NDepend html results are very pretty, but don't work when you integrate NDepend into CC.Net, CC.Net's own xslt log parsers mean that the pretty images created by NDepend (dependency diagrams, Zone diagram, etc) are not shown.&lt;br /&gt;&lt;br /&gt;2. The fix!&lt;br /&gt;&lt;br /&gt;Create new file called image.ashx (ashx = cut-down webpage without the tedious events wired up)&lt;br /&gt;&lt;br /&gt;Stick this in there:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;%@ webhandler language="C#" class="ImageHandler" %&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Drawing.Imaging;&lt;br /&gt;using System.Globalization;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Caching;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ImageHandler : IHttpHandler&lt;br /&gt;{&lt;br /&gt;  public bool IsReusable  { get { return true; }  }&lt;br /&gt;  public void ProcessRequest(HttpContext ctx)&lt;br /&gt;  {&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;      string name = ctx.Request.QueryString["name"];&lt;br /&gt;      string project = ctx.Request.QueryString["project"];&lt;br /&gt;      string label = ctx.Request.QueryString["label"];&lt;br /&gt;      string imagePath = ctx.Request.QueryString["imagePath"];&lt;br /&gt;      string cacheKey = string.Format("{0}|{1}|{2}|{3}", name, project, label, imagePath);&lt;br /&gt;&lt;br /&gt;      if ( name != null &amp;amp;&amp;amp; name.Length &gt; 0)&lt;br /&gt;      {&lt;br /&gt;        Byte[] imageBytes = null;&lt;br /&gt;&lt;br /&gt;        // Check if the cache contains the image.&lt;br /&gt;        object cachedImageBytes = ctx.Cache.Get(cacheKey);&lt;br /&gt;&lt;br /&gt;        // Use cache if possible...&lt;br /&gt;        if ( cachedImageBytes != null )&lt;br /&gt;        {&lt;br /&gt;          imageBytes = cachedImageBytes as byte [];&lt;br /&gt;        }&lt;br /&gt;        else // Get the image from the project/build directory.&lt;br /&gt;        {  &lt;br /&gt;          if ( !Path.IsPathRooted(imagePath) )&lt;br /&gt;          {&lt;br /&gt;            imagePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, imagePath);         &lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          try&lt;br /&gt;          { // Get the image stream from the provided path.&lt;br /&gt;            using ( FileStream fs = new FileStream(Path.Combine(imagePath, name), FileMode.Open, FileAccess.Read) )&lt;br /&gt;            {&lt;br /&gt;              using(Image inputImage = Image.FromStream(fs))&lt;br /&gt;              {&lt;br /&gt;                using(Image outputImage = new Bitmap(inputImage))&lt;br /&gt;                {&lt;br /&gt;                  using(MemoryStream stream = new MemoryStream())&lt;br /&gt;                  {&lt;br /&gt;                    outputImage.Save(stream, ImageFormat.Jpeg);&lt;br /&gt;                    imageBytes = stream.GetBuffer();&lt;br /&gt;                  }&lt;br /&gt;&lt;br /&gt;                  ctx.Cache.Add(cacheKey, imageBytes, null,&lt;br /&gt;                    DateTime.MaxValue, new TimeSpan(2, 0, 0),&lt;br /&gt;                    CacheItemPriority.Normal, null);  &lt;br /&gt;                }&lt;br /&gt;              }&lt;br /&gt;            }&lt;br /&gt;          }&lt;br /&gt;          catch ( Exception ex)&lt;br /&gt;          {&lt;br /&gt;              ctx.Response.Write(ex.Message);&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        ctx.Response.Cache.SetCacheability(HttpCacheability.Public);&lt;br /&gt;        ctx.Response.ContentType = "image/jpg";&lt;br /&gt;        ctx.Response.BufferOutput = false;&lt;br /&gt;        ctx.Response.OutputStream.Write(imageBytes, 0, imageBytes.Length);&lt;br /&gt;      } &lt;br /&gt;    }&lt;br /&gt;    finally&lt;br /&gt;    {&lt;br /&gt;      ctx.Response.End();   &lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Put image.ashx in the root directory of the CC.Net Web application (Program Files\CruiseControl.NET\webdashboard)&lt;br /&gt;&lt;br /&gt;Then edit your ndepend&lt;xxx&gt;.xsl and whenever there's a reference to an image, replace it with a reference to the .ashx file, passing in the project, imagePath, label and name as below:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;xsl:attribute name="src"&gt;\ccnet\image.ashx?&lt;span style="font-weight: bold;"&gt;project&lt;/span&gt;=&lt;xsl:value-of select="$project"&gt;&amp;amp;&lt;span style="font-weight: bold;"&gt;imagePath&lt;/span&gt;=&lt;xsl:value-of select="$imagePath"&gt;&amp;amp;&lt;span style="font-weight: bold;"&gt;label&lt;/span&gt;=&lt;xsl:value-of select="$label"&gt;&amp;amp;&lt;span style="font-weight: bold;"&gt;name&lt;/span&gt;=AbstractnessVSInstability.png&lt;/xsl:value-of&gt;&lt;/xsl:value-of&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/xxx&gt;&lt;br /&gt;&lt;br /&gt;et voila! Nice pictures in your combined report in CC.Net&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-5515520356002436519?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/5515520356002436519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=5515520356002436519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/5515520356002436519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/5515520356002436519'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/06/ndepend-and-cruise-control-net.html' title='NDepend and Cruise Control .Net'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-7988878724107033346</id><published>2009-05-14T00:59:00.000-07:00</published><updated>2009-05-14T01:06:44.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql cursor t-sql 2005'/><title type='text'>Non-cursor cursors</title><content type='html'>So I've been doing SQL queries for a while now, but only just worked out that 99 times out of 100, whenever you think you need a cursor, you probably don't.  You probably need some sort of loop and some sort of track of where you are...but the answer to that is NOT a cursor.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;You have a list of portfolios that you wish to value, but you need to call a proc/function against each in turn, so doing a single query is out of the question.  The answer would appear to be a cursor, iterating over a list.  WRONG.&lt;br /&gt;&lt;br /&gt;Here's how NOT to do it:&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;DECLARE pfo_cursor CURSOR FOR&lt;br /&gt; SELECT pfo FROM #id&lt;br /&gt; OPEN pfo_cursor&lt;br /&gt; FETCH NEXT FROM pfo_cursor INTO @pfoLoop&lt;br /&gt; WHILE @@FETCH_STATUS = 0&lt;br /&gt;&lt;br /&gt;      ...do stuff with @pfoLoop&lt;br /&gt;&lt;br /&gt; FETCH NEXT FROM pfo_cursor INTO @pfoLoop&lt;br /&gt; CLOSE&lt;br /&gt; DEALLOCATE&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And here's a quicker, easier, cheaper, better way:&lt;br /&gt;&lt;br /&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;SET @pfoLoop = (SELECT TOP 1 pfo FROM #id ORDER BY pfo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    WHILE @pfoLoop is not null&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        ...do stuff with @pfoLoop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        SET @pfoLoop = (SELECT TOP 1 pfo FROM #id WHERE pfo &gt; @pfoLoop ORDER BY pfo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    END&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Easier, non? Quicker non? No cursors!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-7988878724107033346?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/7988878724107033346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=7988878724107033346' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/7988878724107033346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/7988878724107033346'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/05/non-cursor-cursors.html' title='Non-cursor cursors'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-1099615407628701275</id><published>2009-04-29T00:15:00.000-07:00</published><updated>2009-04-29T00:40:59.495-07:00</updated><title type='text'>Pfaffikon and Chicago</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_aG08rYlagzg/SfgDjdEjOZI/AAAAAAAACrw/bD89gRMEE5g/s1600-h/IMG_0270%5B1%5D.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_aG08rYlagzg/SfgDjdEjOZI/AAAAAAAACrw/bD89gRMEE5g/s320/IMG_0270%5B1%5D.jpg" alt="" id="BLOGGER_PHOTO_ID_5330014066627000722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Apologies for the lack of recent updates.  My work-life has taken a turn for the better recently, with several business trips abroad working on a new Scrum with the potential to deliver even more business benefit, quicker.&lt;br /&gt;&lt;br /&gt;To that end, I've been working with some guys in Switzerland, and for the last two weeks have been working with some guys in Chicago.&lt;br /&gt;&lt;br /&gt;I would have added a picture of Pfaffikon, but it's mainly populated by farms and coos, so not very picturesque.&lt;br /&gt;&lt;br /&gt;So, that was the first time I'd been to the USA for about 20 years or so, and I have a number of things to report:&lt;br /&gt;&lt;br /&gt;1. The adverts for prescription drugs&lt;br /&gt;&lt;br /&gt;...are hilarious.  20 seconds of details about the drug, then a full minute on its side-effect; may cause Coma, Low blood pressure, High blood pressure, hair-loss, weight-gain, hair-gain, weight-gain, blurred vision, cataracts, nausea and death.  If you die whilst taking this, please contact your GP.  Best advert award "Extenze", which is a sort of Viagra/Cialis clone; "Performance AND Size? This could be fun!"&lt;br /&gt;&lt;br /&gt;2. Eating sweets with a spoon&lt;br /&gt;&lt;br /&gt;...seriously, if you want to be the size of a goodyear blimp, please carry on eating your sweets with a spoon&lt;br /&gt;&lt;br /&gt;3. Cheerleaders&lt;br /&gt;&lt;br /&gt;That's all.  Normal service-ish resumed, as soon as I've had a good scrub in the bath; this is due to my good self being FORCED to use a Cursor in a T-Sql query.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-1099615407628701275?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/1099615407628701275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=1099615407628701275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/1099615407628701275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/1099615407628701275'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/04/pfaffikon-and-chicago.html' title='Pfaffikon and Chicago'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aG08rYlagzg/SfgDjdEjOZI/AAAAAAAACrw/bD89gRMEE5g/s72-c/IMG_0270%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-8937616466207550206</id><published>2009-03-02T02:50:00.001-08:00</published><updated>2009-03-02T02:51:23.879-08:00</updated><title type='text'>Code Coverage</title><content type='html'>&lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt;  Today I have been mostly OBSESSED by upping my unit test code coverage.&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; When I inherited this current codebase all the way back in August 2008, the code coverage was 0%, nothing, nada. No unit tests and the code was in a right 2 and 8, and no mistake.&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; It's taken a LONG time and a lot of effort (and a lot of referring to my Design Patterns books, GOF and HeadFirst, both highly recommended, even if the examples in both are in Java rather than a proper language) - but I'm there, today I hit 93.7% with the remainder of the code being reasonably un-unit-testable (mainly in the datalayer, where no amount of fiddling will let me properly mock out OleDb connections...)&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; I have started work on a "Refactor to Abstract Factory" method - which I intend to demonstrate at the next "Show and Tell", just to bore the life out of the Product Owners when they ask "so what have you delivered this month?".&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; The upshot of this is that the codebase is now fit for purpose and can now be feature branched effectively between here, Pfaffeikon and Chicago - new development will be along the lines of extending the existing factories to include new concrete instantiations of the various factory interfaces (and some abstracts) that have been generated as part of this.&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; 'tis all cool.&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family: verdana;font-family:verdana;font-size:85%;"  &gt; :) &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-8937616466207550206?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/8937616466207550206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=8937616466207550206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/8937616466207550206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/8937616466207550206'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/03/code-coverage.html' title='Code Coverage'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-6477388986406136908</id><published>2009-03-02T02:45:00.000-08:00</published><updated>2009-03-02T02:51:05.750-08:00</updated><title type='text'>Subversion is rubbish</title><content type='html'>&lt;span style="font-family: verdana;font-size:85%;" &gt;Subversion&lt;br /&gt;&lt;br /&gt;Is&lt;br /&gt;&lt;br /&gt;Rubbish...&lt;br /&gt;&lt;br /&gt;On the version we are using here, 1.4.2 or somesuch, I had huge trouble committing some .xml files (which were dataset stub data for testing, so I called them names such as "dsInvestor.xml")&lt;br /&gt;&lt;br /&gt;The server threw a fit, asked me for my security credentials, and refused to commit them to the repository.&lt;br /&gt;&lt;br /&gt;I thought it WAS permissions, so created a new blank text file called "text.txt" (imaginative, I know) and commited that...and it worked fine.&lt;br /&gt;&lt;br /&gt;hmmm, maybe it's something in the XML causing some problems...does subversion parse the xml in order to get a diff? So I copied the XML content into the .txt file, and THAT worked too.&lt;br /&gt;&lt;br /&gt;OK, maybe it's the extension, so I changed the extension to .xml.&lt;br /&gt;&lt;br /&gt;and THAT WORKED TOO.&lt;br /&gt;&lt;br /&gt;...I checked the encoding, both files were UTF-8 (as you'd expect) so it wasn't that.&lt;br /&gt;&lt;br /&gt;...the final thing was to delete the old file, rename the exisiting file, and try again.&lt;br /&gt;&lt;br /&gt;...and that did NOT work.&lt;br /&gt;&lt;br /&gt;Removing the "ds" from the start of the filename, DID WORK. Do NOT try and commit files that begin with "ds", it doesn't like it.&lt;br /&gt;&lt;br /&gt;What a pile of *()&amp;amp;$£(*$£*($&lt;br /&gt;&lt;br /&gt;Still, at least I figured it out.&lt;br /&gt;&lt;br /&gt;Oh, and TortoiseSVN is rubbish, I hate the way it lets you do a filesystem rename of a folder without affecting the underlying SVN structure. Not even a warning, like "do not do this as it'll barf your repository and set fire to your house/wife/cat*".&lt;br /&gt;&lt;br /&gt;However, it's still better than VSS.&lt;br /&gt;&lt;br /&gt;:)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-6477388986406136908?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/6477388986406136908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=6477388986406136908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/6477388986406136908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/6477388986406136908'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/03/subversion-is-rubbish.html' title='Subversion is rubbish'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-1087543571459751250</id><published>2009-01-11T11:41:00.000-08:00</published><updated>2009-01-11T11:41:19.933-08:00</updated><title type='text'>Zebradillo</title><content type='html'>&lt;div style="MARGIN: 0px auto 10px; TEXT-ALIGN: center"&gt;&lt;a href="http://2.bp.blogspot.com/_aG08rYlagzg/SWpLXhPzY8I/AAAAAAAACfI/MoJ4BU7OJcI/s1600-h/Zebra+Ant-eater+001.JPG"&gt;&lt;img alt="" src="http://2.bp.blogspot.com/_aG08rYlagzg/SWpLXhPzY8I/AAAAAAAACfI/MoJ4BU7OJcI/s400/Zebra+Ant-eater+001.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style='clear:both; text-align:CENTER'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-1087543571459751250?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/1087543571459751250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=1087543571459751250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/1087543571459751250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/1087543571459751250'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/01/zebradillo.html' title='Zebradillo'/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aG08rYlagzg/SWpLXhPzY8I/AAAAAAAACfI/MoJ4BU7OJcI/s72-c/Zebra+Ant-eater+001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-7981050670528255236</id><published>2009-01-02T07:24:00.000-08:00</published><updated>2009-01-02T07:24:21.688-08:00</updated><title type='text'></title><content type='html'>&lt;div style="MARGIN: 0px auto 10px; TEXT-ALIGN: center"&gt;&lt;a href="http://4.bp.blogspot.com/_aG08rYlagzg/SV4xpPWX8CI/AAAAAAAACeQ/Zy9zLkrAEU4/s1600-h/Bea+Chocolate+012.JPG"&gt;&lt;img alt="" src="http://4.bp.blogspot.com/_aG08rYlagzg/SV4xpPWX8CI/AAAAAAAACeQ/Zy9zLkrAEU4/s400/Bea+Chocolate+012.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;Kate and Beatrix chilling out with some raw chocolate&lt;div style='clear:both; text-align:CENTER'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-7981050670528255236?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/7981050670528255236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=7981050670528255236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/7981050670528255236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/7981050670528255236'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/01/kate-and-beatrix-chilling-out-with-some.html' title=''/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aG08rYlagzg/SV4xpPWX8CI/AAAAAAAACeQ/Zy9zLkrAEU4/s72-c/Bea+Chocolate+012.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-5621060758761552099</id><published>2009-01-02T07:17:00.000-08:00</published><updated>2009-01-02T07:17:21.413-08:00</updated><title type='text'></title><content type='html'>&lt;div style="MARGIN: 0px auto 10px; TEXT-ALIGN: center"&gt;&lt;a href="http://2.bp.blogspot.com/_aG08rYlagzg/SV4v_ylufrI/AAAAAAAACdw/4Sg_jgA4z_Q/s1600-h/Bessie%27s+new+bike+009.JPG"&gt;&lt;img alt="" src="http://2.bp.blogspot.com/_aG08rYlagzg/SV4v_ylufrI/AAAAAAAACdw/4Sg_jgA4z_Q/s400/Bessie%27s+new+bike+009.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;Bessie's new bike!&lt;div style='clear:both; text-align:CENTER'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-5621060758761552099?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/5621060758761552099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=5621060758761552099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/5621060758761552099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/5621060758761552099'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/01/bessies-new-bike.html' title=''/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aG08rYlagzg/SV4v_ylufrI/AAAAAAAACdw/4Sg_jgA4z_Q/s72-c/Bessie%27s+new+bike+009.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-4119887943597162638</id><published>2009-01-02T06:18:00.000-08:00</published><updated>2009-01-02T06:19:01.662-08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_aG08rYlagzg/SV4iUj0yhoI/AAAAAAAACdQ/wUBiLqsGZe0/s1600-h/Raw+Cooking+006.JPG"&gt;&lt;img style="CLEAR: both; FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://1.bp.blogspot.com/_aG08rYlagzg/SV4iUj0yhoI/AAAAAAAACdQ/wUBiLqsGZe0/s400/Raw+Cooking+006.JPG" border="0" /&gt;&lt;/a&gt;Some raw chocolate ganache thingies, with a dusting of Carob powder, as modelled by Bessie and JohnBean.&lt;div style='clear:both; text-align:LEFT'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-4119887943597162638?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/4119887943597162638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=4119887943597162638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/4119887943597162638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/4119887943597162638'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2009/01/some-raw-chocolate-ganache-thingies.html' title=''/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aG08rYlagzg/SV4iUj0yhoI/AAAAAAAACdQ/wUBiLqsGZe0/s72-c/Raw+Cooking+006.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3174400193625003779.post-802578191018651583</id><published>2008-11-30T06:19:00.000-08:00</published><updated>2008-11-30T06:19:59.616-08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_aG08rYlagzg/STKhD9WFPWI/AAAAAAAACYM/QcGaxKiozBE/s1600-h/monorail+cat+001.JPG"&gt;&lt;img style="CLEAR: both; FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://1.bp.blogspot.com/_aG08rYlagzg/STKhD9WFPWI/AAAAAAAACYM/QcGaxKiozBE/s160/monorail+cat+001.JPG" border="0" /&gt;&lt;/a&gt;Hello,&lt;br /&gt;&lt;br /&gt;Love from,&lt;br /&gt;&lt;br /&gt;Mono-rail cat.&lt;div style='clear:both; text-align:LEFT'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3174400193625003779-802578191018651583?l=monorailcat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://monorailcat.blogspot.com/feeds/802578191018651583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3174400193625003779&amp;postID=802578191018651583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/802578191018651583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3174400193625003779/posts/default/802578191018651583'/><link rel='alternate' type='text/html' href='http://monorailcat.blogspot.com/2008/11/hello-love-from-mono-rail-cat.html' title=''/><author><name>Mister Bee</name><uri>http://www.blogger.com/profile/12949844567293352469</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_aG08rYlagzg/Sau9ZS9LitI/AAAAAAAACn4/l3rHUD8HFNE/S220/monorail+cat+001.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aG08rYlagzg/STKhD9WFPWI/AAAAAAAACYM/QcGaxKiozBE/s72-c/monorail+cat+001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
