<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Darren Ferguson - Umbraco, Dev, Pho</title><link>http://feeds.feedburner.com/darrenjferguson</link><pubDate>2008-08-25T19:33:00</pubDate><generator>umbraco 3.0.5</generator><language>en</language><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/darrenjferguson" type="application/rss+xml" /><item><title>Umbraco certified professional</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/374530029/umbraco-certified-professional.aspx</link><comments>http://www.darren-ferguson.com/2008/08/25/umbraco-certified-professional.aspx#comments</comments><pubDate>2008-08-25T19:33:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco,Work</dc:subject><category>Umbraco,Work</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/08/25/umbraco-certified-professional.aspx</guid><description><![CDATA[ <p><img alt="Umbraco certified professional" style="float: left; margin-right: 10px;" src="/media/13762/WindowsLiveWriter_TestBlogpost_F524_cert_2.jpg"/>After 10 years in the web development business I finally have my first certification. The week before last I headed off to Copenhagen and attended the level two course. Happily I passed the certification test!</p>
<p>I’d toyed with the idea of getting certified for some time but delayed due to the cost. After the announcement of <a href="http://www.umbraco.tv/">umbraco.tv</a> at codegarden my idea was to wait and take certification via this route to keep the costs down. I’d always been slightly dubious about certifications and considered them to be a venue stream for the product vendors. </p>
<p>In a moment of assertive decision making I decided to go ahead and book based on the following:</p>
<ul>
<li><a href="http://www.umbraco.org/">Umbraco</a> is a great product. I’m happy to support it financially. 
<li>I quite like Copenhagen and wanted to go back. 
<li>I can’t be a constant sceptic on certification programs without ever having experienced one.</li></ul>
<p>I made the right choice! The venue was great (excellent lunches), the course was concise and well structured - though In typical Umbraco style <a href="http://www.hartvig.com/">Niels</a> constantly stressed that we could ask as many questions as we like which opened things up and allowed us to get exactly what we wanted out of the course as well as covering the essentials.</p>
<p>I went into the course considering myself a bit of a "know it all" but was pleasantly surprised to discover a number of new tricks and tips, my favourite being livewriter support out of the box in Umbraco 3.x . </p>
<p>Backing up the Umbraco claim of being "the friendly CMS" we were taken out for dinner and got some good social time with <a href="http://www.objects.dk/">Per</a>, Niels and the other participants. Niels even got a round of beers in! I also had the pleasure of chewing the fat with <a href="http://www.web-garden.co.uk/">David Conlisk</a> who was also on the course. David has taken the leap into freelancing full time something I hope to do at some point soon so we had plenty of ideas about processes, costing etc to bounce off one another.</p>
<p>So in summary I’m entirely positive. If you have a couple of years of Umbraco under your belt you may find some of the level 2 course material quite simplistic, but trust me you’ll gain much more and if you are getting ahead of the examples provided Niels is smart enough to realise this and set you some additional tasks to get you thinking.</p>
<p>There always has to be a negative right? Well yes. Upon arrival at the much hyped CabInn I was told that they only had a room with "No electricity and water". Luckily I walked down the road to the Mariott and although they were full the friendly Concierge hooked me up at <a href="http://www.hotel27.dk/">Hotel 27</a> which I’d highly recommend. </p>
<p>So to sign off, I’m certified now. Get in touch for packages, XSLT and all your Umbraco needs! If you are dithering on booking your training, I highly recommend you bite the bullet and do it.</p>]]></description><content:encoded><![CDATA[ <p><img alt="Umbraco certified professional" style="float: left; margin-right: 10px;" src="/media/13762/WindowsLiveWriter_TestBlogpost_F524_cert_2.jpg"/>After 10 years in the web development business I finally have my first certification. The week before last I headed off to Copenhagen and attended the level two course. Happily I passed the certification test!</p>
<p>I’d toyed with the idea of getting certified for some time but delayed due to the cost. After the announcement of <a href="http://www.umbraco.tv/">umbraco.tv</a> at codegarden my idea was to wait and take certification via this route to keep the costs down. I’d always been slightly dubious about certifications and considered them to be a venue stream for the product vendors. </p>
<p>In a moment of assertive decision making I decided to go ahead and book based on the following:</p>
<ul>
<li><a href="http://www.umbraco.org/">Umbraco</a> is a great product. I’m happy to support it financially. 
<li>I quite like Copenhagen and wanted to go back. 
<li>I can’t be a constant sceptic on certification programs without ever having experienced one.</li></ul>
<p>I made the right choice! The venue was great (excellent lunches), the course was concise and well structured - though In typical Umbraco style <a href="http://www.hartvig.com/">Niels</a> constantly stressed that we could ask as many questions as we like which opened things up and allowed us to get exactly what we wanted out of the course as well as covering the essentials.</p>
<p>I went into the course considering myself a bit of a "know it all" but was pleasantly surprised to discover a number of new tricks and tips, my favourite being livewriter support out of the box in Umbraco 3.x . </p>
<p>Backing up the Umbraco claim of being "the friendly CMS" we were taken out for dinner and got some good social time with <a href="http://www.objects.dk/">Per</a>, Niels and the other participants. Niels even got a round of beers in! I also had the pleasure of chewing the fat with <a href="http://www.web-garden.co.uk/">David Conlisk</a> who was also on the course. David has taken the leap into freelancing full time something I hope to do at some point soon so we had plenty of ideas about processes, costing etc to bounce off one another.</p>
<p>So in summary I’m entirely positive. If you have a couple of years of Umbraco under your belt you may find some of the level 2 course material quite simplistic, but trust me you’ll gain much more and if you are getting ahead of the examples provided Niels is smart enough to realise this and set you some additional tasks to get you thinking.</p>
<p>There always has to be a negative right? Well yes. Upon arrival at the much hyped CabInn I was told that they only had a room with "No electricity and water". Luckily I walked down the road to the Mariott and although they were full the friendly Concierge hooked me up at <a href="http://www.hotel27.dk/">Hotel 27</a> which I’d highly recommend. </p>
<p>So to sign off, I’m certified now. Get in touch for packages, XSLT and all your Umbraco needs! If you are dithering on booking your training, I highly recommend you bite the bullet and do it.</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/374530029" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/08/25/umbraco-certified-professional.aspx</feedburner:origLink></item><item><title>Six Firefox plugins that make my life easier</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/363945130/six-firefox-plugins-that-make-my-life-easier.aspx</link><comments>http://www.darren-ferguson.com/2008/08/13/six-firefox-plugins-that-make-my-life-easier.aspx#comments</comments><pubDate>2008-08-13T15:11:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Work,Misc</dc:subject><category>Work,Misc</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/08/13/six-firefox-plugins-that-make-my-life-easier.aspx</guid><description><![CDATA[ <p>
<a href="http://getfirebug.com/"><img alt="FireBug" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://weblogs.mozillazine.org/asa/firebug.png"/></a> Everyone knows about <a href="http://getfirebug.com/">Firebug</a> right? If not and you are a web developer, you are missing out and making your life much harder!<br clear="all"/>
</p>
<p>
<a href="http://developer.yahoo.com/yslow/"><img alt="YSlow" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/logo_32x32.png"/></a> <a href="http://developer.yahoo.com/yslow/">Yslow</a> is an add-on for firebug that analyses the download time of a webpage and gives you tips on how to improve. Test results are graded A-F and displayed in a very simple format. You can click on each test which takes you to a Yahoo page explaining the test in detail and the steps that can be taken to get a better grade and ultimately better page performance.
<br clear="all"/>
</p>
<p>
<img src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/perfview.png"/>
</p>
<p>
<a href="http://www.foxmarks.com/"><img alt="Foxmarks" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://wiki.foxmarks.com/w/images/2/2a/Foxmarks.png"/></a> <a href="http://www.foxmarks.com/">Foxmarks</a> synchronises your bookmarks to/from a remote server. Excellent if you use several different computers on a day to day basis.
<br clear="all"/>
</p>
<p>
<a href="http://www.markdbd.com/proyectos/google_reader_notifier/">Google reader notifier</a> – An unobtrusive widget that displays the number of unread items in your Google reader account. Rolling over the notifier shows you the feeds that have unread items and clicking launches Google reader. This is a great time saver as it removes my temptation to check if there are any new posts in my reader every 5-10 minutes which obviously interrupts my productivity.
</p>
<p>
<a href="http://www.naan.net/trac/wiki/TwitterFox">Twitterfox</a> – A Twitter client that sits in your browser bar displaying the number of unread Tweets. Clicking the icon opens up the UI overlaying the current web page that you are browsing. The UI allows you to do all the basic updating/replying operations that you’d expect. A lot of people would argue that twitter is a waste of time during a working day but I frequently us it for crowd sourcing solutions to the technical problems that I am having.
</p>
<p>
<a href="https://addons.mozilla.org/en-US/firefox/addon/469"><img alt="PasswordMaker" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="https://addons.mozilla.org/en-US/firefox/images/addon_preview/469/1"/></a> <a href="https://addons.mozilla.org/en-US/firefox/addon/469">PasswordMaker</a> generates passwords by applying a hash algorithm to a master password and the domain name of the site that you are visiting. The result is strong passwords for each site that you register with. In my line of work I am creating dozens of accounts a week and I really don’t like to reuse passwords as I never know who may be looking at them.
<br clear="all"/>
</p>
<p>
What are your favourite Firefox plugins?
</p>]]></description><content:encoded><![CDATA[ <p>
<a href="http://getfirebug.com/"><img alt="FireBug" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://weblogs.mozillazine.org/asa/firebug.png"/></a> Everyone knows about <a href="http://getfirebug.com/">Firebug</a> right? If not and you are a web developer, you are missing out and making your life much harder!<br clear="all"/>
</p>
<p>
<a href="http://developer.yahoo.com/yslow/"><img alt="YSlow" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/logo_32x32.png"/></a> <a href="http://developer.yahoo.com/yslow/">Yslow</a> is an add-on for firebug that analyses the download time of a webpage and gives you tips on how to improve. Test results are graded A-F and displayed in a very simple format. You can click on each test which takes you to a Yahoo page explaining the test in detail and the steps that can be taken to get a better grade and ultimately better page performance.
<br clear="all"/>
</p>
<p>
<img src="http://us.i1.yimg.com/us.yimg.com/i/rt/yslow/perfview.png"/>
</p>
<p>
<a href="http://www.foxmarks.com/"><img alt="Foxmarks" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="http://wiki.foxmarks.com/w/images/2/2a/Foxmarks.png"/></a> <a href="http://www.foxmarks.com/">Foxmarks</a> synchronises your bookmarks to/from a remote server. Excellent if you use several different computers on a day to day basis.
<br clear="all"/>
</p>
<p>
<a href="http://www.markdbd.com/proyectos/google_reader_notifier/">Google reader notifier</a> – An unobtrusive widget that displays the number of unread items in your Google reader account. Rolling over the notifier shows you the feeds that have unread items and clicking launches Google reader. This is a great time saver as it removes my temptation to check if there are any new posts in my reader every 5-10 minutes which obviously interrupts my productivity.
</p>
<p>
<a href="http://www.naan.net/trac/wiki/TwitterFox">Twitterfox</a> – A Twitter client that sits in your browser bar displaying the number of unread Tweets. Clicking the icon opens up the UI overlaying the current web page that you are browsing. The UI allows you to do all the basic updating/replying operations that you’d expect. A lot of people would argue that twitter is a waste of time during a working day but I frequently us it for crowd sourcing solutions to the technical problems that I am having.
</p>
<p>
<a href="https://addons.mozilla.org/en-US/firefox/addon/469"><img alt="PasswordMaker" style="float: left; padding: 5px; border: 1px solid black; margin-right: 10px;" src="https://addons.mozilla.org/en-US/firefox/images/addon_preview/469/1"/></a> <a href="https://addons.mozilla.org/en-US/firefox/addon/469">PasswordMaker</a> generates passwords by applying a hash algorithm to a master password and the domain name of the site that you are visiting. The result is strong passwords for each site that you register with. In my line of work I am creating dozens of accounts a week and I really don’t like to reuse passwords as I never know who may be looking at them.
<br clear="all"/>
</p>
<p>
What are your favourite Firefox plugins?
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/363945130" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/08/13/six-firefox-plugins-that-make-my-life-easier.aspx</feedburner:origLink></item><item><title>Translate your website to Chinese</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/350781280/translate-your-website-to-chinese.aspx</link><comments>http://www.darren-ferguson.com/2008/07/30/translate-your-website-to-chinese.aspx#comments</comments><pubDate>2008-07-30T19:40:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Misc</dc:subject><category>Misc</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/07/30/translate-your-website-to-chinese.aspx</guid><description><![CDATA[ <p>Exciting times at <a href="http://www.fergusonmoriyama.com/">Ferguson Moriyama</a>! In the week that China overtook the US to have the world’s largest online population we are now able to offer <a href="http://www.fergusonmoriyama.com/news.aspx">professional translation</a> from English to Mandarin (or  vice versa).</p>

<p>Obviously with our existing technical knowledge we can offer solid consultancy on the best way to go about performing translation using your existing infrastructure.</p>

<p>We’ll also be looking at localising the Umbraco UI for Mandarin.</p>]]></description><content:encoded><![CDATA[ <p>Exciting times at <a href="http://www.fergusonmoriyama.com/">Ferguson Moriyama</a>! In the week that China overtook the US to have the world’s largest online population we are now able to offer <a href="http://www.fergusonmoriyama.com/news.aspx">professional translation</a> from English to Mandarin (or  vice versa).</p>

<p>Obviously with our existing technical knowledge we can offer solid consultancy on the best way to go about performing translation using your existing infrastructure.</p>

<p>We’ll also be looking at localising the Umbraco UI for Mandarin.</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/350781280" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/07/30/translate-your-website-to-chinese.aspx</feedburner:origLink></item><item><title>Backup for Umbraco is dead</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/346605513/backup-for-umbraco-is-dead.aspx</link><comments>http://www.darren-ferguson.com/2008/07/26/backup-for-umbraco-is-dead.aspx#comments</comments><pubDate>2008-07-26T14:11:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco,Umbraco Backup</dc:subject><category>Umbraco,Umbraco Backup</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/07/26/backup-for-umbraco-is-dead.aspx</guid><description><![CDATA[ <p>Backup for Umbraco is dead. I’m “officially” retiring it as a project despite the fact that it has pretty much been inactive for a couple of years. I’m just posting this as I toyed with reviving it after codegarden and I had a couple of enquiries. </p>

<p>With the event of Umbraco 4 and particularly the new data layer it becomes much more complicated to write a solution that will back up a complete installation. Also, to be completely realistic there wasn’t really the demand for the product to sustain development anyway.  Courier and Concierge are also under development and there is some likely overlap in functionality, I don’t see the point in competing with the core team (I had the chance to be part of the courier dev team a while back – I should have stuck with it!).</p>

<p>I thought about releasing the Backup for Umbraco source into the wild but to be honest, it was never well commented and documented and it would be an unenviable task for anyone else to get to grips with it.</p>
<p>So to conclude, Backup for Umbraco was an interesting project which I learned a few lessons from. Firstly, I was wildly optimistic with the price I tried to charge. Second, Umbraco wasn’t ready for commercial packages at the time I tested the water (IMHO). Third, software has to be really really good in order for you to charge for it. Customers will settle for imperfections in freeware, but not when there is cold hard cash involved.</p>
<p>I may be back on the commercial package “scene” one day if I come up with the right idea. I’m  watching the Umbraco store with anticipation to see who releases the first killer Umbraco app.</p>
<p>If anyone has any wonderful ideas about the Umbraco package that they would happily pay for, leave me a comment. We’ll go 50/50 ;)</p>]]></description><content:encoded><![CDATA[ <p>Backup for Umbraco is dead. I’m “officially” retiring it as a project despite the fact that it has pretty much been inactive for a couple of years. I’m just posting this as I toyed with reviving it after codegarden and I had a couple of enquiries. </p>

<p>With the event of Umbraco 4 and particularly the new data layer it becomes much more complicated to write a solution that will back up a complete installation. Also, to be completely realistic there wasn’t really the demand for the product to sustain development anyway.  Courier and Concierge are also under development and there is some likely overlap in functionality, I don’t see the point in competing with the core team (I had the chance to be part of the courier dev team a while back – I should have stuck with it!).</p>

<p>I thought about releasing the Backup for Umbraco source into the wild but to be honest, it was never well commented and documented and it would be an unenviable task for anyone else to get to grips with it.</p>
<p>So to conclude, Backup for Umbraco was an interesting project which I learned a few lessons from. Firstly, I was wildly optimistic with the price I tried to charge. Second, Umbraco wasn’t ready for commercial packages at the time I tested the water (IMHO). Third, software has to be really really good in order for you to charge for it. Customers will settle for imperfections in freeware, but not when there is cold hard cash involved.</p>
<p>I may be back on the commercial package “scene” one day if I come up with the right idea. I’m  watching the Umbraco store with anticipation to see who releases the first killer Umbraco app.</p>
<p>If anyone has any wonderful ideas about the Umbraco package that they would happily pay for, leave me a comment. We’ll go 50/50 ;)</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/346605513" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/07/26/backup-for-umbraco-is-dead.aspx</feedburner:origLink></item><item><title>Recent packages added to Codeplex</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/332570771/recent-packages-added-to-codeplex.aspx</link><comments>http://www.darren-ferguson.com/2008/07/11/recent-packages-added-to-codeplex.aspx#comments</comments><pubDate>2008-07-11T11:02:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/07/11/recent-packages-added-to-codeplex.aspx</guid><description><![CDATA[ <p>
I've added three of my recent Umbraco packages to the <a href="http://www.codeplex.com/umbracoext">Umbraco extensions project on Codeplex</a>.
</p>
<p>
The packages are:
</p>
<ul>
<li><a href="/2008/06/24/auto-twitter-update-package-for-umbraco.aspx">Auto Twitter update</a></li>
<li><a href="/2008/06/19/broken-link-check-package-for-umbraco.aspx">Broken link checker</a></li>
<li><a href="/2008/06/14/feed-cache-package-for-umbraco.aspx">Feed Cache</a></li>
</ul>
<p>
All of my packages are located in a FergusonMoriyama sub-folder from the root of the project.
</p>
<p>
Feel free to add any enhancements, and check them back in.
</p>
<p>
There is no real documentation, but the packages are reasonably simple and should be quite easy to understand.
</p>
<p>
Feel free to get in touch should you have any questions.
</p>]]></description><content:encoded><![CDATA[ <p>
I've added three of my recent Umbraco packages to the <a href="http://www.codeplex.com/umbracoext">Umbraco extensions project on Codeplex</a>.
</p>
<p>
The packages are:
</p>
<ul>
<li><a href="/2008/06/24/auto-twitter-update-package-for-umbraco.aspx">Auto Twitter update</a></li>
<li><a href="/2008/06/19/broken-link-check-package-for-umbraco.aspx">Broken link checker</a></li>
<li><a href="/2008/06/14/feed-cache-package-for-umbraco.aspx">Feed Cache</a></li>
</ul>
<p>
All of my packages are located in a FergusonMoriyama sub-folder from the root of the project.
</p>
<p>
Feel free to add any enhancements, and check them back in.
</p>
<p>
There is no real documentation, but the packages are reasonably simple and should be quite easy to understand.
</p>
<p>
Feel free to get in touch should you have any questions.
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/332570771" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/07/11/recent-packages-added-to-codeplex.aspx</feedburner:origLink></item><item><title>Unobtrusive AJAX blog comments for Umbraco</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/328823881/unobtrusive-ajax-blog-comments-for-umbraco.aspx</link><comments>http://www.darren-ferguson.com/2008/07/07/unobtrusive-ajax-blog-comments-for-umbraco.aspx#comments</comments><pubDate>2008-07-07T12:44:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/07/07/unobtrusive-ajax-blog-comments-for-umbraco.aspx</guid><description><![CDATA[ <p>
Recently I've been building a lot of sites that make use of AJAX using <a href="http://extjs.com">extJS</a> and <a href="http://jquery.com">jQuery</a>, but hadn't really worked with any AJAX in .net.
</p>
<p>
As an experimental project I decide to build unobtrusive AJAX blog comments for this blog - which are now live.
</p>
<p>
My goals were:
</p>
<ul>
<li>Include a spam filtering service - <a href="http://www.defensio.com/">defensio</a></li>
<li>Unobtrusive - work without JavaScript enabled</li>
<li>Identical UI with/without JavaScript</li>
</ul>

<p>
I achieved about 90% of what I wanted.
</p>
<p>
In the end, the comments utilise an asp.net UpdatePanel. I looked at Page Methods and Umbraco base but in the end went with the UpdatePanel in order to use the standard asp.net validation controls and a ValidationSummary. In my mind the main disadvantage of UpdatePanel - aka partial page loads - is the amount of data exchanged between server and client, but in the end I figured that I probably don't have that many readers who are going to be put off by a 40k round trip.
</p>
<p>
The whole process was a lot more painful than anticipated. The ValidationSummary control forces a page to scroll to the top when it appears. Lots of blog searching was required to find a hack to get around that. There were several similar irritating issues.
</p>
<p>
I use jQuery to add the comment to the page on successful submission as the comment list is rendered using an Umbraco XSLT Macro.
</p>
<p>
There are a couple of glitches that I couldn't get around. Firstly when JavaScript is disabled a submit of the comments form leaves you at the top of the page, I couldn't find any way to anchor a postback to the comments form. Second, my Umbraco macro to display the comments seems to get run before the new comment is created in Umbraco so you have to refresh to view your new comment - again only when JavaScript is disabled.
</p>
<p>
I'd like to add some effects so that the comments and validation messages appear with some kind of fade effect but it does get tricky to try and override MS default behaviour.
</p>
<p>
The code is at best hacked right now. If you'd like a copy, drop me a mail. I'll look at making it nicer and 'packaging' it should the interest arise.
</p>
<p>
Finally I just need to give a few credits. <a href="http://www.objects.dk/">Per</a> for building the .net API for defensio, <a href="http://www.creativewebspecialist.co.uk/">Warren</a> for some CSS I stole from his blog :) and anyone else who participated in <a href="http://forum.umbraco.org/yaf_postst5291_Has-anyone-implemented-AJAX-blog-comments-with-net-AJAX-extensions.aspx">this thread</a>.
</p>
<p>
Oh, and Peter D got this finished before me. His implementation is <a href="http://www.dijksterhuis.nu/blog/2008/6/29/ajax-comments.aspx">here</a>, but I still think it is worth posting this as our approaches vary somewhat.
</p>]]></description><content:encoded><![CDATA[ <p>
Recently I've been building a lot of sites that make use of AJAX using <a href="http://extjs.com">extJS</a> and <a href="http://jquery.com">jQuery</a>, but hadn't really worked with any AJAX in .net.
</p>
<p>
As an experimental project I decide to build unobtrusive AJAX blog comments for this blog - which are now live.
</p>
<p>
My goals were:
</p>
<ul>
<li>Include a spam filtering service - <a href="http://www.defensio.com/">defensio</a></li>
<li>Unobtrusive - work without JavaScript enabled</li>
<li>Identical UI with/without JavaScript</li>
</ul>

<p>
I achieved about 90% of what I wanted.
</p>
<p>
In the end, the comments utilise an asp.net UpdatePanel. I looked at Page Methods and Umbraco base but in the end went with the UpdatePanel in order to use the standard asp.net validation controls and a ValidationSummary. In my mind the main disadvantage of UpdatePanel - aka partial page loads - is the amount of data exchanged between server and client, but in the end I figured that I probably don't have that many readers who are going to be put off by a 40k round trip.
</p>
<p>
The whole process was a lot more painful than anticipated. The ValidationSummary control forces a page to scroll to the top when it appears. Lots of blog searching was required to find a hack to get around that. There were several similar irritating issues.
</p>
<p>
I use jQuery to add the comment to the page on successful submission as the comment list is rendered using an Umbraco XSLT Macro.
</p>
<p>
There are a couple of glitches that I couldn't get around. Firstly when JavaScript is disabled a submit of the comments form leaves you at the top of the page, I couldn't find any way to anchor a postback to the comments form. Second, my Umbraco macro to display the comments seems to get run before the new comment is created in Umbraco so you have to refresh to view your new comment - again only when JavaScript is disabled.
</p>
<p>
I'd like to add some effects so that the comments and validation messages appear with some kind of fade effect but it does get tricky to try and override MS default behaviour.
</p>
<p>
The code is at best hacked right now. If you'd like a copy, drop me a mail. I'll look at making it nicer and 'packaging' it should the interest arise.
</p>
<p>
Finally I just need to give a few credits. <a href="http://www.objects.dk/">Per</a> for building the .net API for defensio, <a href="http://www.creativewebspecialist.co.uk/">Warren</a> for some CSS I stole from his blog :) and anyone else who participated in <a href="http://forum.umbraco.org/yaf_postst5291_Has-anyone-implemented-AJAX-blog-comments-with-net-AJAX-extensions.aspx">this thread</a>.
</p>
<p>
Oh, and Peter D got this finished before me. His implementation is <a href="http://www.dijksterhuis.nu/blog/2008/6/29/ajax-comments.aspx">here</a>, but I still think it is worth posting this as our approaches vary somewhat.
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/328823881" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/07/07/unobtrusive-ajax-blog-comments-for-umbraco.aspx</feedburner:origLink></item><item><title>Keeping up with the Umbraco community</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/325896624/keeping-up-with-the-umbraco-community.aspx</link><comments>http://www.darren-ferguson.com/2008/07/03/keeping-up-with-the-umbraco-community.aspx#comments</comments><pubDate>2008-07-03T14:44:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/07/03/keeping-up-with-the-umbraco-community.aspx</guid><description><![CDATA[ <p>
Keeping up with the Umbraco community can be quite exhausting.
</p>
<p>
I maintain an Umbrao pipe at <a href="http://pipes.yahoo.com/darren/umbraco">http://pipes.yahoo.com/darren/umbraco</a>
</p>
<p>
From this URL you can get an <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=LpsMqTW93BGWDsk2mLokhQ&amp;_render=rss">RSS</a>, <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=LpsMqTW93BGWDsk2mLokhQ&amp;_render=json">JSON</a> or a number of other formats.
</p>
<p>
I'd like the pipe to to be as complete as possible. If you run an Umbraco related blog and you aren't listed in the pipe sources on the left of the <a href="http://pipes.yahoo.com/darren/umbraco">screen</a> please let me know so I can add your site (by commenting on this post).
</p>
<p>
This is potentially a very useful resource and can save several hours of browsing from site to site. It also beats having tens of feeds in your reader as posts on the pipe average 3-4 per day.
</p>
<p>
I'd also encourage any Umbraco blog owners to provide a comments RSS if possible. I often participate in comment discussions and have to revisit the site to check for updates. It'd be great to have them all in my reader. I looked at <a href="http://www.cocomment.com/">cocomment</a> to address this, but in my opinion it is over complex and doesn't seem to work very well.
</p>
<p>
The XSLT I use to produce my comments RSS is as follows:
</p>
<pre class="sh_xml sh_sourceCode" style="border: 1px solid black; padding: 10px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxml="urn:schemas-microsoft-com:xslt"
 xmlns:umbraco.library="urn:umbraco.library"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 exclude-result-prefixes="msxml umbraco.library"&gt;


    &lt;xsl:output method="xml" omit-xml-declaration="yes"/&gt;

    &lt;xsl:param name="currentPage"/&gt;

    &lt;xsl:variable name="howMany"&gt;
        20
    &lt;/xsl:variable&gt;
    &lt;xsl:variable name="posts" select="$currentPage/descendant-or-self::node [@nodeTypeAlias='umbracoBlogComment']"/&gt;
    &lt;xsl:variable name="total" select="count($posts)"/&gt;
    &lt;xsl:variable name="pubDate"&gt;
        &lt;xsl:for-each select="$currentPage/descendant::node [@nodeTypeAlias='umbracoBlogComment']"&gt;
            &lt;xsl:sort select="@createDate" data-type="text" order="descending"/&gt;
            &lt;xsl:if test="position() = 1"&gt;
                &lt;xsl:value-of select="@createDate"/&gt;
            &lt;/xsl:if&gt;
        &lt;/xsl:for-each&gt;
    &lt;/xsl:variable&gt;

    &lt;xsl:template match="/"&gt;
        &lt;rss version="2.0"&gt;
            &lt;channel&gt;
                &lt;title&gt;
                    Darren Ferguson - Blog comments
                &lt;/title&gt;
                &lt;link&gt;
                    http://www.darren-ferguson.com/?altTemplate=CommentRSS
                &lt;/link&gt;
                &lt;pubDate&gt;
                    &lt;xsl:value-of select="$pubDate"/&gt;
                &lt;/pubDate&gt;
                &lt;generator&gt;
                    umbraco 3.0.5
                &lt;/generator&gt;
                &lt;language&gt;
                    en
                &lt;/language&gt;

                &lt;xsl:apply-templates select="$currentPage/descendant-or-self::node [@nodeTypeAlias='umbracoBlogComment']"&gt;
                    &lt;xsl:sort select="@createDate" order="descending"/&gt;
                &lt;/xsl:apply-templates&gt;
            &lt;/channel&gt;
        &lt;/rss&gt;


    &lt;/xsl:template&gt;

    &lt;xsl:template match="node"&gt;

        &lt;xsl:if test="position() &lt;= $howMany"&gt;
            &lt;item&gt;
                &lt;title&gt;
                    &lt;xsl:value-of select="@nodeName"/&gt;
                &lt;/title&gt;
                &lt;link&gt;
                    http://www.darren-ferguson.com/&lt;xsl:value-of select="@id"/&gt;.aspx
                &lt;/link&gt;
                &lt;pubDate&gt;
                    &lt;xsl:value-of select="@createDate"/&gt;
                &lt;/pubDate&gt;
                &lt;dc:creator&gt;
                    &lt;xsl:value-of select="./data [@alias='name']"/&gt;
                &lt;/dc:creator&gt;
                &lt;guid&gt;
                    http://www.darren-ferguson.com/&lt;xsl:value-of select="@id"/&gt;.aspx
                &lt;/guid&gt;
                &lt;content:encoded&gt;
                    &lt;xsl:value-of select="concat('&lt;![CDATA[ ', ./data [@alias='comment'],']]&gt;')" disable-output-escaping="yes"/&gt;
                &lt;/content:encoded&gt;
            &lt;/item&gt;
        &lt;/xsl:if&gt;
    &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre>]]></description><content:encoded><![CDATA[ <p>
Keeping up with the Umbraco community can be quite exhausting.
</p>
<p>
I maintain an Umbrao pipe at <a href="http://pipes.yahoo.com/darren/umbraco">http://pipes.yahoo.com/darren/umbraco</a>
</p>
<p>
From this URL you can get an <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=LpsMqTW93BGWDsk2mLokhQ&amp;_render=rss">RSS</a>, <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=LpsMqTW93BGWDsk2mLokhQ&amp;_render=json">JSON</a> or a number of other formats.
</p>
<p>
I'd like the pipe to to be as complete as possible. If you run an Umbraco related blog and you aren't listed in the pipe sources on the left of the <a href="http://pipes.yahoo.com/darren/umbraco">screen</a> please let me know so I can add your site (by commenting on this post).
</p>
<p>
This is potentially a very useful resource and can save several hours of browsing from site to site. It also beats having tens of feeds in your reader as posts on the pipe average 3-4 per day.
</p>
<p>
I'd also encourage any Umbraco blog owners to provide a comments RSS if possible. I often participate in comment discussions and have to revisit the site to check for updates. It'd be great to have them all in my reader. I looked at <a href="http://www.cocomment.com/">cocomment</a> to address this, but in my opinion it is over complex and doesn't seem to work very well.
</p>
<p>
The XSLT I use to produce my comments RSS is as follows:
</p>
<pre class="sh_xml sh_sourceCode" style="border: 1px solid black; padding: 10px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxml="urn:schemas-microsoft-com:xslt"
 xmlns:umbraco.library="urn:umbraco.library"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 exclude-result-prefixes="msxml umbraco.library"&gt;


    &lt;xsl:output method="xml" omit-xml-declaration="yes"/&gt;

    &lt;xsl:param name="currentPage"/&gt;

    &lt;xsl:variable name="howMany"&gt;
        20
    &lt;/xsl:variable&gt;
    &lt;xsl:variable name="posts" select="$currentPage/descendant-or-self::node [@nodeTypeAlias='umbracoBlogComment']"/&gt;
    &lt;xsl:variable name="total" select="count($posts)"/&gt;
    &lt;xsl:variable name="pubDate"&gt;
        &lt;xsl:for-each select="$currentPage/descendant::node [@nodeTypeAlias='umbracoBlogComment']"&gt;
            &lt;xsl:sort select="@createDate" data-type="text" order="descending"/&gt;
            &lt;xsl:if test="position() = 1"&gt;
                &lt;xsl:value-of select="@createDate"/&gt;
            &lt;/xsl:if&gt;
        &lt;/xsl:for-each&gt;
    &lt;/xsl:variable&gt;

    &lt;xsl:template match="/"&gt;
        &lt;rss version="2.0"&gt;
            &lt;channel&gt;
                &lt;title&gt;
                    Darren Ferguson - Blog comments
                &lt;/title&gt;
                &lt;link&gt;
                    http://www.darren-ferguson.com/?altTemplate=CommentRSS
                &lt;/link&gt;
                &lt;pubDate&gt;
                    &lt;xsl:value-of select="$pubDate"/&gt;
                &lt;/pubDate&gt;
                &lt;generator&gt;
                    umbraco 3.0.5
                &lt;/generator&gt;
                &lt;language&gt;
                    en
                &lt;/language&gt;

                &lt;xsl:apply-templates select="$currentPage/descendant-or-self::node [@nodeTypeAlias='umbracoBlogComment']"&gt;
                    &lt;xsl:sort select="@createDate" order="descending"/&gt;
                &lt;/xsl:apply-templates&gt;
            &lt;/channel&gt;
        &lt;/rss&gt;


    &lt;/xsl:template&gt;

    &lt;xsl:template match="node"&gt;

        &lt;xsl:if test="position() &lt;= $howMany"&gt;
            &lt;item&gt;
                &lt;title&gt;
                    &lt;xsl:value-of select="@nodeName"/&gt;
                &lt;/title&gt;
                &lt;link&gt;
                    http://www.darren-ferguson.com/&lt;xsl:value-of select="@id"/&gt;.aspx
                &lt;/link&gt;
                &lt;pubDate&gt;
                    &lt;xsl:value-of select="@createDate"/&gt;
                &lt;/pubDate&gt;
                &lt;dc:creator&gt;
                    &lt;xsl:value-of select="./data [@alias='name']"/&gt;
                &lt;/dc:creator&gt;
                &lt;guid&gt;
                    http://www.darren-ferguson.com/&lt;xsl:value-of select="@id"/&gt;.aspx
                &lt;/guid&gt;
                &lt;content:encoded&gt;
                    &lt;xsl:value-of select="concat('&lt;![CDATA[ ', ./data [@alias='comment'],']]&gt;')" disable-output-escaping="yes"/&gt;
                &lt;/content:encoded&gt;
            &lt;/item&gt;
        &lt;/xsl:if&gt;
    &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/325896624" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/07/03/keeping-up-with-the-umbraco-community.aspx</feedburner:origLink></item><item><title>Auto Twitter update package for Umbraco</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/325896625/auto-twitter-update-package-for-umbraco.aspx</link><comments>http://www.darren-ferguson.com/2008/06/24/auto-twitter-update-package-for-umbraco.aspx#comments</comments><pubDate>2008-06-24T20:18:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/06/24/auto-twitter-update-package-for-umbraco.aspx</guid><description><![CDATA[ <p>
I have created an Umbraco package that updates your <a href="http://www.twitter.com/">Twitter</a> status when you publish certain types of document. You can <a href="/media/13042/ferguson_moriyama_auto_tweet_1.0.umb">download it here</a>. 
I never thought I’d get into twitter but a number of friends and techies use it to micro blog what they are interested in or indeed what they are blogging.
</p>
<p>
The package is an Umbraco action handler. After install the configuration can be found in /umbraco/plugins/FergusonMoriyama/AutoTweet/twitter.config and is as follows:
</p>
<p>
<pre>
&lt;?xml version="1.0"?>
&lt;config>
	&lt;authentication>
		&lt;username>you@gmail.com&lt;/username>
		&lt;password>secret&lt;/password>
	&lt;/authentication>
	&lt;doctypes>
		&lt;doctype>
			&lt;alias>umbracoBlogPost&lt;/alias>
			&lt;titlePropertyAlias>Title&lt;/titlePropertyAlias>
			&lt;message>has blogged '{title}'&lt;/message>
		&lt;/doctype>
	&lt;/doctypes>
&lt;/config>
</pre>
</p>
<p>
I hope this is pretty self explanatory. You can add as many document types as you wish. The message element is the content of the tweet plus the link to the document appended, the token {title} is replaced with the title which is extracted from the document.
</p>
<p>
Now for the test. When I hit publish on this blog post my twitter status should be updated. Obviously it’ll be quite embarrassing if it doesn’t work.
</p>
<p>
This is a very beta/hacked together package based on an idea I had this morning. As ever comments, thoughts and suggestions are welcome.
</p>]]></description><content:encoded><![CDATA[ <p>
I have created an Umbraco package that updates your <a href="http://www.twitter.com/">Twitter</a> status when you publish certain types of document. You can <a href="/media/13042/ferguson_moriyama_auto_tweet_1.0.umb">download it here</a>. 
I never thought I’d get into twitter but a number of friends and techies use it to micro blog what they are interested in or indeed what they are blogging.
</p>
<p>
The package is an Umbraco action handler. After install the configuration can be found in /umbraco/plugins/FergusonMoriyama/AutoTweet/twitter.config and is as follows:
</p>
<p>
<pre>
&lt;?xml version="1.0"?>
&lt;config>
	&lt;authentication>
		&lt;username>you@gmail.com&lt;/username>
		&lt;password>secret&lt;/password>
	&lt;/authentication>
	&lt;doctypes>
		&lt;doctype>
			&lt;alias>umbracoBlogPost&lt;/alias>
			&lt;titlePropertyAlias>Title&lt;/titlePropertyAlias>
			&lt;message>has blogged '{title}'&lt;/message>
		&lt;/doctype>
	&lt;/doctypes>
&lt;/config>
</pre>
</p>
<p>
I hope this is pretty self explanatory. You can add as many document types as you wish. The message element is the content of the tweet plus the link to the document appended, the token {title} is replaced with the title which is extracted from the document.
</p>
<p>
Now for the test. When I hit publish on this blog post my twitter status should be updated. Obviously it’ll be quite embarrassing if it doesn’t work.
</p>
<p>
This is a very beta/hacked together package based on an idea I had this morning. As ever comments, thoughts and suggestions are welcome.
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/325896625" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/06/24/auto-twitter-update-package-for-umbraco.aspx</feedburner:origLink></item><item><title>Broken link check package for Umbraco</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/325896626/broken-link-check-package-for-umbraco.aspx</link><comments>http://www.darren-ferguson.com/2008/06/19/broken-link-check-package-for-umbraco.aspx#comments</comments><pubDate>2008-06-19T09:16:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/06/19/broken-link-check-package-for-umbraco.aspx</guid><description><![CDATA[ <p>
I've created a package to check for broken links in Umbraco pages. You can download it <a href="/media/12892/ferguson_moriyama_link_checker_1.0.umb">here</a>.
</p>
<p>
While reading through some of the notes on open space sessions conducted as part of codegarden day 2 I saw this requested as a 'most wanted' package. I remembered that I had the code to do this from a couple of years ago, so I cleaned it up a little and decided to release it.
</p>
<p>
The package is implemented as an Umbraco action handler. When you publish a node, it's content is scanned for broken links. If any are found then a report is emailed to the document publisher. You need to have Umbraco configured so it is able to send email.
</p>
<p>
The package will handle external links as well as internal absolute and relative links.
</p>
<p>
As ever, thoughts, suggestions, comments and feature requests are all welcome.
</p>]]></description><content:encoded><![CDATA[ <p>
I've created a package to check for broken links in Umbraco pages. You can download it <a href="/media/12892/ferguson_moriyama_link_checker_1.0.umb">here</a>.
</p>
<p>
While reading through some of the notes on open space sessions conducted as part of codegarden day 2 I saw this requested as a 'most wanted' package. I remembered that I had the code to do this from a couple of years ago, so I cleaned it up a little and decided to release it.
</p>
<p>
The package is implemented as an Umbraco action handler. When you publish a node, it's content is scanned for broken links. If any are found then a report is emailed to the document publisher. You need to have Umbraco configured so it is able to send email.
</p>
<p>
The package will handle external links as well as internal absolute and relative links.
</p>
<p>
As ever, thoughts, suggestions, comments and feature requests are all welcome.
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/325896626" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/06/19/broken-link-check-package-for-umbraco.aspx</feedburner:origLink></item><item><title>Feed Cache package for Umbraco</title><link>http://feeds.feedburner.com/~r/darrenjferguson/~3/325896627/feed-cache-package-for-umbraco.aspx</link><comments>http://www.darren-ferguson.com/2008/06/14/feed-cache-package-for-umbraco.aspx#comments</comments><pubDate>2008-06-14T19:08:00</pubDate><dc:creator>Darren Ferguson</dc:creator><dc:subject>Umbraco</dc:subject><category>Umbraco</category><guid isPermaLink="false">http://www.darren-ferguson.com/2008/06/14/feed-cache-package-for-umbraco.aspx</guid><description><![CDATA[ <p>I've created an umbraco package that will cache XML feeds - or any other http URL - to disk on your web server. <a href="http://www.darren-ferguson.com/media/12796/ferguson_moriyama_feed_cache_1.0.umb">Click here</a> to download the package</p>
<p>
The idea came about as a lot of people are displaying feeds on their  web pages - flickr feeds, twitter etc. In Umbraco you can cache marcos that read external URLs, but ultimately when the cache expires one user will have to take the hit of requesting this external URL as part of their page download. If the third party server is down - which twitter frequently is - then this can result in a hefty wait until the request times out.
</p>
<p>
Instructions for using the package are in the readme prior to installation so be sure to read this before proceeding with the install.
</p>
<p>
Questions, comments, feature requests etc are all welcome.
</p>]]></description><content:encoded><![CDATA[ <p>I've created an umbraco package that will cache XML feeds - or any other http URL - to disk on your web server. <a href="http://www.darren-ferguson.com/media/12796/ferguson_moriyama_feed_cache_1.0.umb">Click here</a> to download the package</p>
<p>
The idea came about as a lot of people are displaying feeds on their  web pages - flickr feeds, twitter etc. In Umbraco you can cache marcos that read external URLs, but ultimately when the cache expires one user will have to take the hit of requesting this external URL as part of their page download. If the third party server is down - which twitter frequently is - then this can result in a hefty wait until the request times out.
</p>
<p>
Instructions for using the package are in the readme prior to installation so be sure to read this before proceeding with the install.
</p>
<p>
Questions, comments, feature requests etc are all welcome.
</p><img src="http://feeds.feedburner.com/~r/darrenjferguson/~4/325896627" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://www.darren-ferguson.com/2008/06/14/feed-cache-package-for-umbraco.aspx</feedburner:origLink></item></channel></rss>
