<?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-7717918</id><updated>2011-07-29T06:41:54.621+02:00</updated><title type='text'>Craig's development blog</title><subtitle type='html'>The development world according to Craig. A bit of this and that from all over.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://craign.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7717918.post-110867634398421140</id><published>2005-02-17T23:39:00.000+02:00</published><updated>2005-02-17T23:39:03.983+02:00</updated><title type='text'>Windows Installer XML (WiX)</title><content type='html'>&lt;P&gt;I remember when WiX made the news for being the first truly open source project by Microsoft. It made waves in the open source community but it seems to have taken a back seat of late. I decided to take a look at it today and I am impressed. I've dabbled around with Orca before trying to edit MSI files so that they publish properly via GPO, but I've stayed a firm fan of &lt;A href="http://www.wise.com/wis.asp"&gt;Wise Installation System 9.02&lt;/A&gt; as it provides a powerful and extensible installation scripting language. I have to admit, I've been scared away opening the latest &lt;A href="http://www.installshield.com/"&gt;InstallShield&lt;/A&gt; and other MSI installers. I think its the sheer amout of GUIDs present.&lt;/P&gt;&lt;br /&gt;&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;br /&gt;&lt;P&gt;The Windows Installer XML (WiX) is a toolset that builds Windows installation packages from XML source code. The toolset provides a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;WiX is an open source project, originally developed by Microsoft and maintained by Rob Mensching, hosted at &lt;A href="http://sourceforge.net/projects/wix/"&gt;SourceForge.&lt;/A&gt; You can download the latest binary and source code releases from there.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;P&gt;But tonight while avoiding to work on my actual deadlines, I discovered the &lt;A href="http://www.tramontana.co.hu/wix/"&gt;WiX tutorial&lt;/A&gt; by G&amp;#225;bor DE&amp;#193;K JAHN. Oh my, does it make things clearer for me. Initially it was quite tedious to build the WXS file, but then I found their little bag of goodies called &lt;EM&gt;Tallow&lt;/EM&gt;. A lekker little utility that can certainly help in my "soon to be crafted" automated build and packaging process.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;Oh and to make things sweeter, they have just released &lt;EM&gt;Votive&lt;/EM&gt; which is a Visual Studio .NET 2003 extension for WiX projects.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110867634398421140?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110867634398421140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110867634398421140' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110867634398421140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110867634398421140'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2005/02/windows-installer-xml-wix.html' title='Windows Installer XML (WiX)'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110302477516709864</id><published>2004-12-14T13:46:00.000+02:00</published><updated>2004-12-14T13:46:15.166+02:00</updated><title type='text'>.netcpuâ¢ looks hot</title><content type='html'>Ok this little chip is certainly going to blow the market away. Yes its a new chip implementing a little CLR (Tiny CLR) and its really way cool from what I've &lt;A href="http://www.windowsfordevices.com/news/NS4666205829.html" target=_blank&gt;read&lt;/A&gt; and it is surely going to give those embedded Java chips a run. More info on the chip and development kits is available &lt;A href="http://www.dotnetcpu.com/productscat.aspx" target=_blank&gt;here&lt;/A&gt;. I can't wait to get my paws on one!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110302477516709864?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110302477516709864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110302477516709864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110302477516709864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110302477516709864'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/12/netcpu-looks-hot.html' title='.netcpuâ¢ looks hot'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110068858129329417</id><published>2004-11-17T12:49:00.000+02:00</published><updated>2004-11-17T12:49:41.293+02:00</updated><title type='text'>15 Commandments to Curb Bad Programmer Habits</title><content type='html'>&lt;P&gt;I hijacked this from &lt;A href="http://dotnet.org.za/eduard/archive/2004/11/17/7099.aspx"&gt;here&lt;/A&gt; and modified it.&lt;/P&gt;&lt;br /&gt;&lt;OL&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt not break the unit tests or system functionality (by checking in half done crap code to source control).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt really understand the requirements driving your work (not make them up or not bother to read them and/or not ask questions when necessary).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt deliver what the customer needs (not that which is easy to implement).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt estimate work effort accurately (and deliver within agreed estimates).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt understand the implications of thy work with respect to others on the team.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt not just comment out code because it causes the test to fail (without understanding why it was there in the first place).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt understand the implications of thy work with respect to other areas of the system as a whole.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt follow the business priorities (not just do what you think is interesting).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt deliver stuff that actually works - including the user interface that can't be unit tested (i.e. actually try it out rather than hoping for the best - test the UI - don't just leave it for the external tester to find as that is "their job").&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt not regard communicating with other members of the team as an unnecessary and tiresome overhead that can be ignored.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt not deviate from the "agreed" development approach without a good reason that has been thought about.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt understand that the external image of the development team is important - even though it does not contribute to your daily work.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt not call the customer a wanker even when it is true. &amp;lt;ok, can't have this on the wall&amp;gt;.&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt understand that sometimes thou must do things because they are important to other people's jobs (thou art not the only person in the universe).&lt;/LI&gt;&lt;br /&gt;&lt;LI&gt;Thou shalt understand that getting the software out there, so others can see something has actually been done, is important (we're not just doing this as an intellectual exercise).&lt;/LI&gt;&lt;/OL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110068858129329417?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110068858129329417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110068858129329417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110068858129329417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110068858129329417'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/11/15-commandments-to-curb-bad-programmer.html' title='15 Commandments to Curb Bad Programmer Habits'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110060214042484338</id><published>2004-11-16T12:49:00.000+02:00</published><updated>2004-11-16T12:49:00.423+02:00</updated><title type='text'>Found a bug in Delphi 7</title><content type='html'>&lt;P&gt;I got irritated with Delphi 7's SOAP implementation today. I was wondering why their XML code didn't produce the correct xs:datetime values with a local-bias for South Africa. So I filed &lt;A href="http://qc.borland.com/wc/wc.exe/details?reportid=9547"&gt;bug# 9547&lt;/A&gt; on Borland's &lt;A href="http://qc.borland.com/"&gt;Quality Central&lt;/A&gt; site.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;The function DateTimeToXMLTime and XMLTimeToDateTime in XSBuiltIns.pas don't apply a local-bias for time-zones without transition times for daylight savings. e.g. South Africa uses GMT+2 (Harare, Pretoria) but we don't use daylight savings and therefore have no transition dates. The GetTimeZoneInformation API function is documented in the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/gettimezoneinformation.asp"&gt;Platform SDK&lt;/A&gt;.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110060214042484338?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110060214042484338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110060214042484338' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110060214042484338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110060214042484338'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/11/found-bug-in-delphi-7.html' title='Found a bug in Delphi 7'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110016643740514517</id><published>2004-11-11T11:47:00.000+02:00</published><updated>2004-11-11T11:47:17.406+02:00</updated><title type='text'>Building Security Awareness in .NET Assemblies</title><content type='html'>&lt;P&gt;I happened to actually look at a CodeProject e-mail today and found some articles by Chua Wen Ching on security in .NET assemblies. He has published 3 parts so far:&lt;/P&gt;&lt;br /&gt;&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;br /&gt;&lt;P&gt;&lt;A href="http://www.codeproject.com/dotnet/NeCoder01.asp"&gt;Part 1 - Learn to break a .NET Assembly&lt;/A&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;A href="http://www.codeproject.com/dotnet/NeCoder02.asp"&gt;Part 2 - Learn to protect your .NET assemblies from being tampered&lt;/A&gt;&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;A href="http://www.codeproject.com/dotnet/NeCoder03.asp"&gt;Part 3 - Learn to break Strong Name .NET Assemblies&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;P&gt;I am eagerly awaiting part 4 to see what solutions he has. Obviously one that comes to mind is obfustication, but that isn't real security, its just a hurdle.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110016643740514517?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110016643740514517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110016643740514517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110016643740514517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110016643740514517'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/11/building-security-awareness-in-net.html' title='Building Security Awareness in .NET Assemblies'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110009513838944698</id><published>2004-11-10T15:58:00.000+02:00</published><updated>2004-11-10T15:58:58.390+02:00</updated><title type='text'>Nothin' but ASP.NET: Use Cache, Save Cash</title><content type='html'>&lt;BLOCKQUOTE&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp11022004.asp"&gt;Nothin' but ASP.NET: Use Cache, Save Cash&lt;/A&gt; &lt;br /&gt;&lt;P&gt;Learn how to use database cache invalidation in ASP.NET 1.1 with a similar technique as the one used by ASP.NET 2.0.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110009513838944698?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110009513838944698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110009513838944698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110009513838944698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110009513838944698'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/11/nothin-but-aspnet-use-cache-save-cash.html' title='Nothin&apos; but ASP.NET: Use Cache, Save Cash'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-110009301366710830</id><published>2004-11-10T15:23:00.000+02:00</published><updated>2004-11-10T15:23:33.666+02:00</updated><title type='text'>.NET disassembly tools</title><content type='html'>&lt;P&gt;There comes a time in every developer's life when you just want to know how someone else did&amp;nbsp;it. Yes I'm talking about disassembly of binary code, or in this case .NET assemblies.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;Most .NET developers will know about a tool like &lt;A href="http://www.aisto.com/roeder/dotnet/"&gt;Lutz Roeder's .NET Reflector&lt;/A&gt;&amp;nbsp;which can do amazing things. Using the CodeDom it is able to reverse engineer methods to IL, C#, VB and Delphi on my machine. Yes I have Delphi 8.0 for .NET installed. But a tool like this is limited until it meets a really cool plugin like &lt;A href="http://www.denisbauer.com/NETTools/FileDisassembler.aspx"&gt;Denis Bauer's Reflector.FileDisassembler&lt;/A&gt;. It is able to dump an entire assembly into a file per class. It works like a charm from my initial experiments - I haven't tried to comple my Delphi.NET code as yet.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-110009301366710830?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/110009301366710830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=110009301366710830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110009301366710830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/110009301366710830'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/11/net-disassembly-tools.html' title='.NET disassembly tools'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7717918.post-109895188057343462</id><published>2004-10-28T10:24:00.000+02:00</published><updated>2004-10-28T10:30:26.593+02:00</updated><title type='text'>Interesting XML tools</title><content type='html'>&lt;P&gt;Don't you just love the web and Google in particular? I was hunting the web looking for a way to solve a particular problem in a W3C Schema I've developed and I stumbled on the following cool tools:&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Font&gt;Architag XRay 2.0 XML Editor - &lt;/FONT&gt;&lt;/STRONG&gt;XRay is a free XML editing enviroment. Now in its second major release, XRay provides support for XML Schema (XSD) and an integrated online XML tutorial system. The best thing about it, other than being &lt;STRONG&gt;FREE&lt;/STRONG&gt;, is that it&amp;nbsp;can do continuous validation as well as&amp;nbsp;continuous XSLT&amp;nbsp;processing. So while you edit, you can see your changes in all related document windows. Download it from here &lt;A href="http://architag.com/xray/"&gt;http://architag.com/xray/&lt;/A&gt;.&lt;/P&gt;&lt;br /&gt;&lt;P&gt;&lt;STRONG&gt;Microsoft XML Tools Team - &lt;/STRONG&gt;A collection of pretty cool tools for working with XML and XSD files.&amp;nbsp;XSD Object Code Generator generates C# and VB.NET data structures from an XSD schema that can serialize and de-serialize to XML and other formats. Microsoft XML Diff and Patch lets you identify changes between two XML files and patch the original XML file with the changes to get the final XML file. The Microsoft XSD Inference can create an XSD from an XML instance document. You can find all of them here &lt;A href="http://www.gotdotnet.com/team/xmltools/default.aspx"&gt;http://www.gotdotnet.com/team/xmltools/default.aspx&lt;/A&gt;.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7717918-109895188057343462?l=craign.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://craign.blogspot.com/feeds/109895188057343462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7717918&amp;postID=109895188057343462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/109895188057343462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7717918/posts/default/109895188057343462'/><link rel='alternate' type='text/html' href='http://craign.blogspot.com/2004/10/interesting-xml-tools.html' title='Interesting XML tools'/><author><name>CraigN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='32' src='http://1.bp.blogspot.com/_p3_uZ2G-WvY/SaMGAm2FTRI/AAAAAAAAD-c/4iQgRvXpsYI/S220/avatar-body.png'/></author><thr:total>0</thr:total></entry></feed>
