<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>My two sheds: RSS Feed</title>
    <link>http://www.2sheds.ru</link>
    <description/>
    <language>en-us</language>
    <generator>Symphony (build 1701)</generator>
    <copyright>Copyright © 2002-26 Oleg "2sheds" Kourapov. Some rights reserved.</copyright>
    <item>
      <pubDate>Mon, 21 Apr 2008 05:09:00 GMT</pubDate>
      <title>Tumblelog for 04/21</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;Just discovered for myself the &lt;a href="http://code.google.com/p/blacktree-visor/"&gt;Visor&lt;/a&gt; by &lt;a href="http://www.blacktree.com"&gt;Blacktree&lt;/a&gt; (creators of most wonderful Quicksilver). It gives you Quake-style sliding console - not to mention a lot of geek cred! Visor is activated with a system-wide shortcut, mine set to F1.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 09 Apr 2008 04:16:29 GMT</pubDate>
      <title>Tumblelog for 04/09</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.cushycms.com"&gt;CushyCMS&lt;/a&gt;: CMS as a webservice - how Web2.0 is that! Provided you're cool with giving your FTP credentials to a third-party. What I really would like to see though is an SFTP option and better anonymity. (Use invite code "BETA" to sign up).&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 18 Jul 2007 18:23:14 GMT</pubDate>
      <title>Tumblelog for 07/18</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.plaxo.com/"&gt;Plaxo&lt;/a&gt;, the makers of a cross-platform web-integrated address book syncing service, have posted a generic but thorough &lt;a href="http://www.plaxo.com/api/openid_recipe"&gt;walk-through on enhancing your website with OpenID authorization&lt;/a&gt;. Great read!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 10 Jul 2007 12:09:00 GMT</pubDate>
      <title>Tumblelog for 07/10</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://rememberthemilk.com"&gt;Remember The Milk&lt;/a&gt;, the best web-based task planner &amp;amp; todo list, has &lt;a href="http://blog.rememberthemilk.com/2007/07/twitter-your-tasks.html"&gt;announced&lt;/a&gt; its &lt;a href="http://www.rememberthemilk.com/services/twitter/"&gt;integration&lt;/a&gt; with &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;, popular micro-blogging service. Now you can add, update and review your tasks via SMS, IM, web or any &lt;a href="http://twitter.com/downloads"&gt;third-party Twitter client&lt;/a&gt; by sending direct message to user &lt;a href="http://twitter.com/rtm"&gt;rtm&lt;/a&gt;: &lt;code&gt;d rtm &amp;lt;message&amp;gt;&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 09 Jul 2007 17:31:00 GMT</pubDate>
      <title>Tumblelog for 07/09</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;Us geeks can make a &lt;a href="http://www.catseye.mb.ca/esoteric"&gt;programming&lt;/a&gt; &lt;a href="http://shakespearelang.sourceforge.net/"&gt;language&lt;/a&gt; &lt;a href="http://www.dangermouse.net/esoteric/chef.html"&gt;out of&lt;/a&gt; &lt;a href="http://compsoc.dur.ac.uk/whitespace/"&gt;anything&lt;/a&gt; (or even &lt;a href="http://wouter.fov120.com/false/"&gt;nothing&lt;/a&gt;) - how about &lt;a href="http://www.icanhascheezburger.com"&gt;imaginary cat-talk&lt;/a&gt;? Meet &lt;a href="http://lolcode.com/home"&gt;LOLCODE&lt;/a&gt; - already at &lt;a href="http://lolcode.com/specs/1.2"&gt;version 1.2&lt;/a&gt;, has several compilers and assumed to be &lt;a href="http://en.wikipedia.org/wiki/Turing-completeness"&gt;Turing&lt;/a&gt;-&lt;a href="http://lolcode.com/news/can-has-turing-compleet"&gt;complete&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 28 Jun 2007 21:27:38 GMT</pubDate>
      <title>Tumblelog for 06/29</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;Finally! &lt;a href="http://www.apple.com/iphone/"&gt;Apple iPhone&lt;/a&gt;'s D-day is today! No idea when this uber-gizmo gets to Russia but I'll still be on my toes as the rest of geek world when the stores open. Hoping for live webcasts, first unboxing pr0n and reviews to follow in short time afterwards.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 20 Jun 2007 17:30:00 GMT</pubDate>
      <title>Tumblelog for 06/20</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://wmd-editor.com/"&gt;WMD: The &lt;abbr title="What You See Is What You Mean"&gt;WYSIWYM&lt;/abbr&gt; Markdown Editor&lt;/a&gt; (&lt;a href="http://wmd-editor.com/demo"&gt;demo available&lt;/a&gt;) is a lightweight JavaScript library that turns any textarea into an editor for blog comments, forum posts and other text management duties. It requires exactly one script of code to use on a page, works in all major browsers, provides a live preview (that's second line) and is free for non-commercial use. I'm considering the use of its preview feature here specifically for comments.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 18 Jun 2007 03:29:00 GMT</pubDate>
      <title>Tumblelog for 06/18</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.versionsapp.com"&gt;Versions&lt;/a&gt; (private beta) is a new Subversion client aiming to bring iApps-like experience to version management on Macs. For those who can't wait, there's &lt;a href="http://developer.apple.com/tools/xcode/"&gt;Xcode&lt;/a&gt; by &lt;a href="http://www.apple.com"&gt;Apple&lt;/a&gt; itself which also can do &lt;a href="http://developer.apple.com/tools/subversionxcode.html"&gt;concurrent versions in GUI&lt;/a&gt; but it doesn't look as delicious.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sun, 17 Jun 2007 04:18:00 GMT</pubDate>
      <title>Tumblelog for 06/17</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;A note to my RSS subscribers: I was re-mixing an RSS template lately so if you experienced some funky behavior on my side, it's not a bug - it's a sign of a coming XSLT article, wink-wink.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 14 Jun 2007 21:46:00 GMT</pubDate>
      <title>Google Mashup Editor: Swiss-army tool for a wannabe Google hacker</title>
      <link>http://www.2sheds.ru/blog/2007/06/google-mashup-editor-swiss-army-tool-for-a-wannab/</link>
      <guid>http://www.2sheds.ru/blog/2007/06/google-mashup-editor-swiss-army-tool-for-a-wannab/</guid>
      <description>&lt;p&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/gme-logo.png" alt="Google Mashup Editor logo" title="" style="border: 0; float: right; margin: 3px;" width="222" height="26" /&gt;
In May &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; introduced its new brainchild - &lt;a href="http://code.google.com/gme/index.html"&gt;Google Mashup Editor&lt;/a&gt;. It has been presented as a no-nonsense online interface and an &lt;abbr title="application programming interface"&gt;API&lt;/abbr&gt; for creating mashups and simple applications using Google's own webservices and external data.  Upon its launch it has been compared a lot to rival &lt;a href="http://pipes.yahoo.com"&gt;Yahoo! Pipes&lt;/a&gt; project that enables users to mix, filter and process various data sources available on the web in a simple and visual form.&lt;/p&gt;

&lt;p&gt;Yesterday my beta access application has been approved so now I will give you an inside look at &lt;strong&gt;Google Mashup Editor&lt;/strong&gt; and explain what it is and what it is not.&lt;/p&gt;&lt;p&gt;In fact, Mashup Editor and Pipes are not direct competitors. They compare like &lt;a href="http://www.apple.com/applescript"&gt;AppleScript&lt;/a&gt; and &lt;a href="http://www.apple.com/macosx/features/automator/"&gt;Automator&lt;/a&gt; in Mac OS X - while the first one gives much more power and lets the experienced programmer pull the inner strings of an application by working with source code, the latter trades this power for the concept of drag'n'drop "actions" that is pretty easy to grasp even for newcomers.&lt;/p&gt;

&lt;p&gt;At the core of every mashup is a source code in &lt;abbr&gt;GML&lt;/abbr&gt;-format (where GML probably stands for &lt;em&gt;Google Markup Languge&lt;/em&gt;) which has a syntax in many ways similar to &lt;abbr title="eXtensible Stylesheet Language Templates"&gt;XSLT&lt;/abbr&gt;. &lt;abbr&gt;GML&lt;/abbr&gt; even uses a subset of XPath!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/gme-1editor.png" width="640" height="453" alt="Google Mashup Editor's main screen" title="Google Mashup Editor's main screen" /&gt;&lt;/p&gt;

&lt;p&gt;Current feature set is quite limited. Editor itself is an &lt;abbr title="Asynchronous Javascript And XML"&gt;AJAX&lt;/abbr&gt;'ified text field enhanced with two core features of a programmers' editor: syntax highlighting and auto-indent. To the right is a list of your personal projects followed by examples which include the arbitrary "Hello World" as well as more intriguing "Feed Reader", "Task List", &lt;a href="http://maps.google.com"&gt;Google Maps&lt;/a&gt; mashup etc. Clicking on any of those will save your current project and switch to the selected item.&lt;/p&gt;

&lt;p&gt;Clicking on "Help" link to the right will replace the list of project with &lt;abbr&gt;GML&lt;/abbr&gt; syntax reference. Underneath is another section that shows a list of files that belong to the current project.&lt;/p&gt;

&lt;p&gt;As explained in &lt;cite&gt;&lt;a href="http://editor.googlemashups.com/docs/gettingstarted.html"&gt;Getting Started Guide&lt;/a&gt;&lt;/cite&gt;, &lt;q&gt;&lt;abbr&gt;GME&lt;/abbr&gt; converts every data feed to Atom feed format so that accessing data is standardized&lt;/q&gt;. The second tab, "Feed Browser", lets you peek "under the hood" and see raw data the way your application will see it:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/gme-2feed.png" width="640" height="453" alt="GME feed browser" title="GME feed browser" /&gt;&lt;/p&gt;

&lt;p&gt;Third tab, "Sandbox", is where you can test your applications before publishing them (more on that later). Your mashup will be put into a sandbox every time you click the Test button in the Editor screen.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/gme-3tasklist.png" width="640" height="453" alt="GME feed browser" title="GME sandbox" /&gt;&lt;/p&gt;

&lt;p&gt;When you're satisfied with your creation, it is time to publish it. Once published your mashup will be hosted at Google under a subdomain of &lt;a href="http://www.googlemashups.com"&gt;googlemashups.com&lt;/a&gt;. You can also turn your mashup into a gadget which puts it into a public directory for users of &lt;a href="http://www.google.com/ig"&gt;iGoogle&lt;/a&gt; personalized homepage.&lt;/p&gt;

&lt;p&gt;But keep in mind that published &lt;abbr&gt;GME&lt;/abbr&gt; applications are not "black boxes". In fact, Google has done a great thing by providing the conveniently-named "Source" link in the top-right corner of every mashup's page. This way inner mechanics of any application (its GML file) are instantly revealed to a curious eye.&lt;/p&gt;

&lt;p&gt;Browser support is currently limited to &lt;a href="Firefox"&gt;http://getfirefox.com&lt;/a&gt; v1.5+ and &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx"&gt;Internet Explorer&lt;/a&gt; 6.0+. Support for other popular browsers like &lt;a href="http://www.opera.com"&gt;Opera&lt;/a&gt; or &lt;a href="http://www.apple.com/safari"&gt;Safari&lt;/a&gt; is said to be "on the way". But the greatest limitation so far is lack of support for dialects of XML other than RSS and Atom. There's a reason for this (see above about the conversion of RSS feeds to Atom) but I've posted a &lt;a href="http://groups.google.com/group/google-mashup-editor/web/api-feature-requests"&gt;feature request&lt;/a&gt; on &lt;a href="http://groups.google.com/group/google-mashup-editor/"&gt;GME's Google Group&lt;/a&gt; anyway - let's see if it gets any love from dev's.&lt;/p&gt;

&lt;p&gt;All in all, &lt;strong&gt;Google Mashup Editor&lt;/strong&gt; looks pretty solid (for an early beta) and it already allows power users to create some &lt;a href="http://sfgiants.googlemashups.com/"&gt;interesting&lt;/a&gt; &lt;a href="http://earthquakes.googlemashups.com/"&gt;web&lt;/a&gt; &lt;a href="http://tasklist.googlemashups.com/"&gt;apps&lt;/a&gt;. So if you ever wished to develop your own Google Maps mashup, now is a great time to start! &lt;a href="http://code.google.com/support/mashupeditorsignup"&gt;Get in&lt;/a&gt;, hack away and share your ideas with the rest of the world!&lt;/p&gt;

&lt;h3&gt;Reference&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/gme/index.html"&gt;GME home page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/support/mashupeditorsignup"&gt;GME beta access application form&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://googlemashupeditor.blogspot.com/"&gt;Google Mashup Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://groups.google.com/group/google-mashup-editor/"&gt;GME's Discussion Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/support/bin/topic.py?topic=11558"&gt;Google Mashup Editor FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://editor.googlemashups.com/docs/gettingstarted.html"&gt;Getting Started Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Coming soon:&lt;/strong&gt; Free source code for your own Google mashup!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 13 Jun 2007 08:00:00 GMT</pubDate>
      <title>Tumblelog for 06/13</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;After two weeks my application for &lt;a href="http://editor.googlemashups.com/"&gt;Google Mashup Editor&lt;/a&gt; beta test has been approved. I'm just taking a look around but it's already clear that this thing will blow &lt;a href="http://www.ning.com"&gt;Ning&lt;/a&gt; out of the water!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 08 Jun 2007 13:48:32 GMT</pubDate>
      <title>Tumblelog for 06/08</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;The makers of &lt;a href="http://www.divx.com"&gt;DivX codec&lt;/a&gt; are giving away a &lt;a href="http://www.divx.com/dff/index.php?lang=en&amp;amp;version=mac"&gt;free DivX Pro license &lt;/a&gt; today ($20 any other day) - act quickly to get your freebie!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 05 Jun 2007 14:18:09 GMT</pubDate>
      <title>Tumblelog for 06/05</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.apple.com/macbookpro"&gt;www.apple.com/macbookpro&lt;/a&gt;!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 04 Jun 2007 16:26:56 GMT</pubDate>
      <title>Tumblelog for 06/04</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.apple.com/iphone"&gt;www.apple.com/iphone&lt;/a&gt;!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 02 Jun 2007 15:36:00 GMT</pubDate>
      <title>Widon't in XSLT: don't be a widow-maker!</title>
      <link>http://www.2sheds.ru/blog/2007/06/widont-in-xslt-dont-be-a-widow-maker/</link>
      <guid>http://www.2sheds.ru/blog/2007/06/widont-in-xslt-dont-be-a-widow-maker/</guid>
      <description>&lt;p&gt;Bad typography on the Web doesn't exactly kill people (even if it is believed to be &lt;a href="http://www.informationarchitects.jp/the-web-is-all-about-typography-period"&gt;95% of what web design is&lt;/a&gt;) but it can still make widows - typographic widows, that is. To quote &lt;cite&gt;&lt;a href="http://shauninman.com/archive/2006/08/22/widont_wordpress_plugin"&gt;Shaun Inman&lt;/a&gt;&lt;/cite&gt;:&lt;/p&gt;

&lt;blockquote cite="http://shauninman.com/archive/2006/08/22/widont_wordpress_plugin"&gt;For those who donвЂ™t know, in typesetting, a widow is a single word on a line by itself at the end of a paragraph and is considered bad style.&lt;/blockquote&gt;

&lt;p&gt;Compare these:&lt;/p&gt;

&lt;div align="center"&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/widow.png" width="399" height="101" alt="This is a widow" title="This is a widow" /&gt;&lt;/div&gt;

&lt;div align="center"&gt;&lt;img src="http://www.2sheds.ru/workspace/upload/widont.png"  width="404" height="107" alt="Now with Widon't!" title="Now with Widon't!" /&gt;&lt;/div&gt;

&lt;p&gt;Helping website owners to fix the most frequent errors automagically will hopefully make online texts more readable and stylish as well. Mr. Inman came up with a simple yet perfectly working solution: replace the regular whitespace between last two words of a title with a non-breaking space (i.e. &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; entity) - and released it in a form of an easy-to-use &lt;a href="http://shauninman.com/archive/2006/12/05/widont_2_wordpress_plugin"&gt;Wordpress plugin&lt;/a&gt;. It is now also ported for &lt;a href="http://www.lowest-common-denominator.com/2006/08/widont_for_movable_type.php"&gt;Movable Type&lt;/a&gt;,  &lt;a href="http://loweblog.com/archive/2006/08/29/ee-widont-plugin/"&gt;Expression Engine&lt;/a&gt;, &lt;a href="http://yatil.de/Weblog/egg_widont"&gt;Textpattern&lt;/a&gt; etc.&lt;/p&gt;

&lt;p&gt;Today I make Widon't available for &lt;a href="http://21degrees.com.au/products/symphony/"&gt;Symphony&lt;/a&gt; and other &lt;abbr title="eXtensible Markup Language"&gt;XML&lt;/abbr&gt;/&lt;abbr title="eXtensible Stylesheet Language Transformation"&gt;XSLT&lt;/abbr&gt;-based engines via an XSL template. Read on for full source.&lt;/p&gt;&lt;p&gt;Edit your &lt;em&gt;Entries&lt;/em&gt; utility (or any other file that you want to make use of this method) to include this &lt;a href="http://www.2sheds.ru/workspace/upload/widont.txt"&gt;template&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;xsl:template name="widont-title"&amp;gt;
    &amp;lt;xsl:param name="temp"/&amp;gt;
    &amp;lt;xsl:param name="text"/&amp;gt;

    &amp;lt;xsl:choose&amp;gt;
        &amp;lt;xsl:when test="contains($text, ' ')"&amp;gt;
            &amp;lt;xsl:variable name="before" select="concat($temp,' ',substring-before($text,' '))"/&amp;gt;
            &amp;lt;xsl:variable name="after" select="substring-after($text, ' ')"/&amp;gt;
            &amp;lt;xsl:choose&amp;gt;
                &amp;lt;xsl:when test="contains($after, ' ')"&amp;gt;
                    &amp;lt;xsl:call-template name="widont-title"&amp;gt;
                        &amp;lt;xsl:with-param name="temp" select="$before"/&amp;gt;
                        &amp;lt;xsl:with-param name="text" select="$after"/&amp;gt;
                    &amp;lt;/xsl:call-template&amp;gt;
                &amp;lt;/xsl:when&amp;gt;
                &amp;lt;xsl:otherwise&amp;gt;
                    &amp;lt;xsl:value-of select="concat($before, '&amp;amp;#160;', $after)" /&amp;gt;
                &amp;lt;/xsl:otherwise&amp;gt;
            &amp;lt;/xsl:choose&amp;gt;
        &amp;lt;/xsl:when&amp;gt;
        &amp;lt;xsl:otherwise&amp;gt;
            &amp;lt;xsl:value-of select="$text"/&amp;gt;
        &amp;lt;/xsl:otherwise&amp;gt;
    &amp;lt;/xsl:choose&amp;gt;
&amp;lt;/xsl:template&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: By request from &lt;a href="http://joshnichols.com/"&gt;Josh&lt;/a&gt; I've modified the source to drop the non-breaking space if the combined length of two last words is longer than desired so that it won't break the layout in a bad way. The default is 35 characters but it can be modified either by editing the template or using an optional &lt;var&gt;maxlen&lt;/var&gt; parameter. Download &lt;a href="http://www.2sheds.ru/workspace/upload/widont-maxlen.txt"&gt;the updated template&lt;/a&gt; if you prefer this behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;N.B.&lt;/strong&gt; &lt;code&gt;&amp;amp;#160;&lt;/code&gt; entity is a proper way to place a non-breaking space in a generic XML document because &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; is only defined in (X)HTML!&lt;/p&gt;

&lt;p&gt;Call this template where appropriate, e.g. if you use Symphony stock data source and template, replace these lines in &lt;em&gt;Entries&lt;/em&gt; utility's source:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;a href="{$root}/entries/{@handle}/"&amp;gt;
    &amp;lt;xsl:value-of select="fields/title"/&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;with the following (don't forget to modify both "brief" and "full" modes):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;a href="{$root}/entries/{@handle}/"&amp;gt;
    &amp;lt;xsl:call-template name="widont-title"&amp;gt;
        &amp;lt;xsl:with-param name="text" select="normalize-space(fields/title)" /&amp;gt;
    &amp;lt;/xsl:call-template&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Notice how I used &lt;code&gt;normalize-space()&lt;/code&gt; function to remove any extra spaces that may occur in your string. That's important: a stray trailing space can make this algorithm fail since non-breaking space will be placed &lt;em&gt;after&lt;/em&gt; the last word!

&lt;hr /&gt;

XSLT code used in this article is based on the work of &lt;a href="http://xstsl.sf.net"&gt;XSLT standard library&lt;/a&gt; project and is in turn licensed under a &lt;a href="http://creativecommons.org/licenses/LGPL/2.1/" rel="license"&gt;GNU Lesser General Public License&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 02 Jun 2007 07:52:30 GMT</pubDate>
      <title>Tumblelog for 06/02</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;Solved &lt;a href="http://www.coudal.com/thefish.php"&gt;Einstein's fish puzzle&lt;/a&gt;! Feel myself pretty smart.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 31 May 2007 22:38:00 GMT</pubDate>
      <title>Tumblelog for 06/01</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://editor.googlemashups.com/"&gt;Google Mashup Editor&lt;/a&gt; - is it like &lt;a href="http://pipes.yahoo.com"&gt;Yahoo! Pipes&lt;/a&gt; for &amp;#252;ber-geeks? Applied for a &lt;a href="http://code.google.com/support/mashupeditorsignup"&gt;beta access&lt;/a&gt; - will see.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 30 May 2007 20:58:00 GMT</pubDate>
      <title>Tumblelog for 05/31</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://www.getfirefox.com"&gt;Firefox&lt;/a&gt; was updated to &lt;a href="http://en-us.www.mozilla.com/en-US/firefox/2.0.0.4/releasenotes/"&gt;v2.0.0.4&lt;/a&gt; (still don't get the extra dot) feat. security fixes, Vista support and &lt;abbr title="localization"&gt;l10n&lt;/abbr&gt; updates.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 30 May 2007 16:36:55 GMT</pubDate>
      <title>Tumblelog for 05/30</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/a&gt; is omnipotent - &lt;a href="http://gpl.internetconnection.net/"&gt;they&lt;/a&gt; &lt;a href="http://gpl.internetconnection.net/vi"&gt;ported&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Vi"&gt;vi&lt;/a&gt;! Now I'm waiting for a &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/#graphics"&gt;&amp;lt;canvas&amp;gt;&lt;/a&gt;-based &lt;a href="http://en.wikipedia.org/wiki/DOOM"&gt;Doom&lt;/a&gt;, then - &lt;a href="http://en.wikipedia.org/wiki/NES"&gt;NES&lt;/a&gt; emulator!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 28 May 2007 20:09:57 GMT</pubDate>
      <title>Tumblelog for 05/29</title>
      <link>http://www.2sheds.ru/</link>
      <guid>http://www.2sheds.ru/</guid>
      <description>&lt;p&gt;Post your &lt;a href="http://www.twitter.com"&gt;Twitter&lt;/a&gt; updates from the comfort of &lt;a href="http://getfirefox.com"&gt;Firefox&lt;/a&gt;'s address bar with &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4664"&gt;TwitterBar&lt;/a&gt; extension.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
