This is a valid Atom 1.0 feed.
This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
... ution/index.php/blog/?tempskin=_atom" />
^
<subtitle></subtitle>
^
<?xml version="1.0" encoding="utf-8"?><feed xml:lang="en-GB" xmlns="http://www.w3.org/2005/Atom">
<title>My blog</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/" />
<link rel="self" type="application/atom+xml" href="https://submarine.org.uk/b2evolution/index.php/blog/?tempskin=_atom" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/?tempskin=_atom</id>
<subtitle></subtitle>
<generator uri="http://b2evolution.net/" version="7.2.5-stable">b2evolution</generator>
<updated>2025-07-14T19:42:33Z</updated>
<entry>
<title type="text">Bug in BizTalk LogicalAnd functoid</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/bug-in-biztalk-logicaland-functoid" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Rant" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/bug-in-biztalk-logicaland-functoid</id>
<published>2017-06-16T08:38:00Z</published> <updated>2025-07-08T08:56:39Z</updated>
<content type="html"><![CDATA[<p>While unit testing my own functoids, I came across an odd scenario where my map was working with inline C#, but if I switched to testing the external assembly version, the results were completely different. Obviously I started with the assumption that my functoid was broken, but in fact it appears that it's Microsoft's LogicalAnd functoid which is broken, and has been since BizTalk 2006.</p>
<p>I must stress, that the failure only occurs when you are using the external assembly version of the functoid, which would occur only when you have set the script type preference on your map to give higher priority to the external assembly script type than the inline C# script type. And frankly I still don't know why you would ever want to do that. But if you do, the LogicalAnd functoid is broken.</p>
<p>In BizTalk 2004, the functoid used this code which works:</p>
<p><pre><code>
// Microsoft.BizTalk.BaseFunctoids.FunctoidScripts
public bool LogicalAnd(string val1, string val2)
{
bool flag = false;
try
{
flag = bool.Parse(val1);
}
catch (Exception)
{
if (BaseFunctoid.IsNumeric(val1))
{
int num = Convert.ToInt32(val1, CultureInfo.get_InvariantCulture());
flag = (0 < num);
}
else
{
flag = false;
}
}
if (flag)
{
try
{
bool flag2 = bool.Parse(val2);
flag = (flag && flag2);
}
catch (Exception)
{
if (BaseFunctoid.IsNumeric(val2))
{
int num2 = Convert.ToInt32(val2, CultureInfo.get_InvariantCulture());
bool flag3 = true;
if (0 >= num2)
{
flag3 = false;
}
flag = (flag && flag3);
}
else
{
flag = false;
}
}
}
return flag;
}
</code></pre></p>
<p>but at some point, either in BizTalk 2006 or in 2006r2 they changed to this code:</p>
<p><pre><code>// Microsoft.BizTalk.BaseFunctoids.FunctoidScripts
public bool LogicalAnd(string val1, string val2)
{
bool flag = false;
if (!bool.TryParse(val1, out flag))
{
if (BaseFunctoid.IsNumeric(val1))
{
int num = Convert.ToInt32(val1, CultureInfo.InvariantCulture);
flag = (0 < num);
}
else
{
flag = false;
}
}
if (flag)
{
bool flag2 = false;
if (!bool.TryParse(val2, out flag2))
{
flag = (flag && flag2);
}
else if (BaseFunctoid.IsNumeric(val2))
{
int num2 = Convert.ToInt32(val2, CultureInfo.InvariantCulture);
flag2 = true;
if (0 >= num2)
{
flag2 = false;
}
flag = (flag && flag2);
}
else
{
flag = false;
}
}
return flag;
}
</code></pre></p>
<p>The new code is cleaner, and uses the TryParse method of the Boolean, presumably to avoid the overhead of the try..catch block. But the sense of the second parse test is the wrong way round; that second exclamation mark shouldn't be there; and as a result this function will almost always return false.</p>
<p>The fact that this bug appears to have survived for a decade suggests that no-one ever chooses to prioritise external assemblies in their maps, but you never know.</p>
<p>A Boolean and function should be the easiest thing to get right, and it certainly shouldn't be difficult to have unit testing this function.</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/bug-in-biztalk-logicaland-functoid">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">Unexpected Execution Order of Pipeline Components in BizTalk</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/unexpected-execution-order-of-pipeline-components-in-biztalk" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Technology" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/unexpected-execution-order-of-pipeline-components-in-biztalk</id>
<published>2016-11-28T16:26:00Z</published> <updated>2025-07-08T08:57:27Z</updated>
<content type="html"><![CDATA[<p>Recently I ran into an unexpected problem with a custom pipeline component which I thought had been working fine. Suddenly it stopped working, but with an unexpected workaround. Today I worked out what the problem is, and although it makes perfect sense it caught me by surprise. I can't find any mention of this gotcha elsewhere on the internet, so I thought I'd write about it here.</p>
<p>Last year I wrote a custom pipeline component (Message Dump component) which optionally dumps the message body and/or the context of the message, and I use it regularly in my pipelines. Because the dumping is optional, and can be quickly controlled at runtime, I place the component in pretty much all of the pipelines that I use. When turned off, the overhead is minimal, but when you want to check what's going through any given stage of a pipeline you can quickly turn it on and get what you need.</p>
<p>This year we decided that one of our pipelines should <em>always</em> dump a copy of the message body and so I created another cut down version of this component (Archive component) that didn't have the optional switch. It has just 1 configuration option which is the path to the file that should be written, and that file path can contain various macros which can be expanded from the message context.</p>
<p>Everything seemed to work in the development and test environments; we went live with it and it was great. After a period of live commissioning I turned off the Message Dump components in the pipeline, and that's when it all went wrong.</p>
<a href="https://submarine.org.uk/b2evolution/index.php/blog/unexpected-execution-order-of-pipeline-components-in-biztalk#more654">Read more »</a><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/unexpected-execution-order-of-pipeline-components-in-biztalk">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">If..Then..Else mapping in BizTalk</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/if-then-else-mapping-in-biztalk" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Technology" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/if-then-else-mapping-in-biztalk</id>
<published>2015-09-15T15:34:00Z</published> <updated>2025-07-08T08:59:00Z</updated>
<content type="html"><![CDATA[<p>Starting some serious development in Microsoft BizTalk 2013 and I was looking for a way to streamline some of our maps. One common place where we have clutter is in the if..then..else design pattern. Typically you want to map one element if something is true, and if it's not true, you want to map something else instead. </p>
<p>BizTalk doesn't provide functoids that do that neatly, and over the years several people have commented on this; it's a problem that goes right back to at least BizTalk 2006. </p>
<p>In this post I'm going to show you the custom functoids that I created to try to streamline my maps.</p>
<a href="https://submarine.org.uk/b2evolution/index.php/blog/if-then-else-mapping-in-biztalk#more653">Read more »</a><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/if-then-else-mapping-in-biztalk">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">ISP Muppetry</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/isp-muppetry" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Rant" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/isp-muppetry</id>
<published>2007-11-09T13:09:00Z</published> <updated>2025-07-08T08:59:06Z</updated>
<content type="html"><![CDATA[<p>I've just had to help a friend with here broadband email service. It was working on Monday, but at some point during the week it stopped.</p>
<p>It was complaining that it couldn't get a response from the POP3 server. So I double checked all the documentation and rechecked the password. No good.</p>
<p>I had a look through her existing emails and discovered that she'd been sent details of a new email service that she was being moved onto. So I checked through the settings for that.<br />
There were quite a few settings changes and I thought that would sort it, but no.</p>
<p>So then I went to the ISPs extremely slow, and badly organised AJAX enabled website, where eventually I managed to get the help pages to open for me. There I double checked all the settings, still OK and then looked for more help.</p>
<p>"Perhaps your password has become desynchronised in the move to the new service. Go to this page and change your password." It suggested.</p>
<p>I eventually had to find a different computer to get through the website without the AJAX choking and then I changed the password. </p>
<p>It still wasn't working.</p>
<p>I logged into the provider's site again, to be sure the password was right.<br />
I logged into the provider's webmail service, which I discover is now a GMail solution. </p>
<p>There I find, in my friend's inbox, sent after the changeover, a new, and subtly different set of instructions on what to do to get POP3 working. Now you have to log into the webmail service and ENABLE POP3 apparently.</p>
<p>IF you move someone to a new email service.<br />
AND some changes are necessary for them to continue to use it as before<br />
sending them instructions AFTER the changeover is NOT GOOD ENOUGH!!!</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/isp-muppetry">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">Fishcakes</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/fishcakes" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Recipe" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/fishcakes</id>
<published>2007-07-05T18:51:00Z</published> <updated>2025-07-08T08:59:12Z</updated>
<content type="html"><![CDATA[<p>I made some fishcakes yesterday, very easy and extremely tasty.</p>
<p>This should make 4 fishcakes. Enough for 2 people as a main meal with a salad or a handful of chips.</p>
<p>Boil some potatoes, around 250g, until tender. I used new potatoes and then peeled them, but you can use any floury potatoes and peel them first if they have thicker skins. While they were boiling, I was able to steam 180g of fish fillet above the boiling water. You can use any firm fish, cod, haddock or salmon for example. I went for coley because I had some in. It's a little darker in colour than cod, but with a similar flavour, a little less delicate.</p>
<p>Take 2 handfuls of fresh parsley and blend with 15g of cold butter. Then mix with the hot potatoes and mash them with a fork until smooth. Flake the steamed fish into the mash, add two handfuls of fine breadcrumbs and combine thoroughly.</p>
<p>Form the mixture into patties and then chill in the fridge for at least half an hour. They will become a good deal less sticky as the breadcrumbs absorb some of the moisture, and the cooling potato congeals.</p>
<p>When you are ready to cook the fishcakes, beat an egg into a shallow bowl, dip the patties into the egg, coating both sides, and then cover them with a mixture of breadcrumbs and polenta grains. Shallow fry for a few minutes on each side until they are golden brown and the coating has become crispy. </p>
<p>Serve immediately.</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/fishcakes">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">Louise Penny</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/louise-penny" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Review" />
<category term="Books" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/louise-penny</id>
<published>2007-06-04T15:41:54Z</published> <updated>2025-07-08T08:35:31Z</updated>
<content type="html"><![CDATA[<p>There's not enough english language crime fiction featuring French detectives. </p>
<p>The French have a different approach to crime, their entire legal system operates in a way quite different to our own, and though you might not expect it, the difference shows through in the way that crimes are investigated. To be completely honest, Maigret by Georges Simenon is most likely the only French crime fiction that most people are aware of.</p>
<p>Louise Penny's work is set in Quebec a perfect excuse to reveal the Sureté in action within a english speaking world. And it's refreshing to see. Of course Quebec is bilingual but the French that creeps into the work is neither intrusive nor difficult and lends a authentic sound to the proceedings. </p>
<p>Her debut novel, 'Still Life' is extremely well executed. It has a confidence about it that belies the fact that it has a so far shallow background. Many debut's - especially those that introduce us to characters who will re-occur - are noticeably tentative when compared to the works that come later, but with this novel, you could be forgiven for going back to the bookshop to look for earlier works featuring the redoubtable Inspector Gamache.</p>
<p>Penny has created an entire microcosmos here, in one fell swoop. Not just the brilliant and caring Armand Gamache, but a beautiful setting - the village of Three Pines - filled with well fleshed out characters and in an audacious stroke, the monstrous Yvette Nichol.</p>
<p>The follow-up to 'Still Life' is 'Dead Cold' and brings Gamache back to the same village of Three Pines, little more than 1 year after the events of the first novel. Here Penny shows that she can keep up the pace, her richly drawn story brings out ever more detail in the characters and location. This book is everything that the first was, yet slightly more-so.</p>
<p>Three Pines is a glorious setting for a fresh approach to the village murder mystery, and I look forward to the third in the series, 'The Cruellest Month' when it hits the shelves this autumn.</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/louise-penny">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">Bramble Delice</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/bramble-delice" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Food" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/bramble-delice</id>
<published>2007-05-21T13:02:00Z</published> <updated>2025-07-08T08:59:18Z</updated>
<content type="html"><![CDATA[<p>This weekend I cooked what's probably the most complex dessert I've ever attempted.</p>
<p>I got a copy of James Martin's Desserts for my birthday and it's a sweet looking book.</p>
<p>On Thursday, a friend brought round 3 boxes of blackberries, a bottle of Creme de Cassis, some double cream and a jar of glucose syrup - along with a birthday present of a cake ring. A not exactly subtle hint that she would like me to make the Delice au Cassis recipe.</p>
<p>Well it's not really the right time of year for fresh blackcurrants, so the blackberries had to do instead and I didn't need to alter the recipe to make it work. I suspect that the blackcurrants would have given a greater intensity of flavour to the finished pud, but it worked a treat.</p>
<p>Sometimes a complicated recipe has just too much going on for you to get to grips with it first time. This took me a large part of one day to complete, but despite the marathon it worked flawlessly. This is really the sign I think of a good cookery book. My first recipe from the book, the most complex recipe in the book, and it just works.</p>
<p>This was the first time I've used a sugar thermometer, real vanilla, leaf gelatine, stock syrup or Italian meringue and yet the step by step instructions did the job.</p>
<p>This is a really good book to drool over, it's proper food pr0n. But it's also a very practical and workable recipe book.</p>
<p>Try it. And when you've got a day to spare, try the Delice.</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/bramble-delice">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
<entry>
<title type="text">Artemis Fowl - and the Lost Colony</title>
<link rel="alternate" type="text/html" href="https://submarine.org.uk/b2evolution/index.php/blog/artemis-fowl-and-the-lost-colony" />
<author>
<name>Admin</name>
<uri>https://twitter.com/b2evolution/</uri>
</author>
<category term="Review" />
<category term="Books" />
<id>https://submarine.org.uk/b2evolution/index.php/blog/artemis-fowl-and-the-lost-colony</id>
<published>2007-05-21T12:52:00Z</published> <updated>2025-07-08T09:03:41Z</updated>
<content type="html"><![CDATA[<p>My my, I managed to finish two books this weekend.</p>
<p>The Lost Colony is not brand new, but it is the latest in the series of children's books that began with <a href="http://www.amazon.co.uk/Artemis-Fowl-Eoin-Colfer/dp/0141312122/ref=pd_bowtega_2/203-7184856-0308722?ie=UTF8&s=books&qid=1179751437&sr=1-2">Artemis Fowl</a></p>
<p>This time, child genius Artemis Fowl may have met his match. A young girl who might just be cleverer than he is. She's determined to get her hands on a Demon and if she does, it could cause untold havoc above and below ground. Only Artemis, his bodyguard Butler and fairy private eye Holly Short could possibly stop her. But can they?</p>
<p>Eoin Colfer has created a fantastic fantasy world, richly populated by a hidden world of fairies, trolls, dwarfs and such like. This immensely readable book is a thrill-a-minute ride from beginning to end. </p>
<p>It will be a sad day when Artemis finally grows up.</p><div class="item_footer"><p><small><a href="https://submarine.org.uk/b2evolution/index.php/blog/artemis-fowl-and-the-lost-colony">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content>
</entry>
</feed>
If you would like to create a banner that links to this page (i.e. this validation result), do the following:
Download the "valid Atom 1.0" banner.
Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)
Add this HTML to your page (change the image src
attribute if necessary):
If you would like to create a text link instead, here is the URL you can use: