<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Tom Moertel's Weblog: Tag bloglines</title>
    <link>http://blog.moertel.com/articles/tag/bloglines?tag=bloglines</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Quality rants on programming theory and stuff geeks like</description>
    <item>
      <title>Bloglines doesn't handle inter-element white space properly</title>
      <description>&lt;p&gt;If you&amp;#8217;re reading my blog via &lt;a href="http://bloglines.com/"&gt;Bloglines&lt;/a&gt;, you
may have noticed that some of my posts look terrible, especially when
they contain code snippets.  I am sorry for that, but it&amp;#8217;s not my
fault. Bloglines doesn&amp;#8217;t handle white space properly.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s the more detailed explanation.  When you request one of my
feeds in, say, Atom format, you get back a bunch of &lt;span class="caps"&gt;XML&lt;/span&gt; that contains
the most-recent posts from my blog.  Each post is represented as
lovingly crafted &lt;span class="caps"&gt;HTML&lt;/span&gt;, escaped per the Atom specs.  When Bloglines
gets its hands on this very same &lt;span class="caps"&gt;HTML&lt;/span&gt;, it attempts to scrub it nice
and clean &amp;#8211; get rid of any naughty bits, you know.  And there&amp;#8217;s
nothing wrong with that.  Except when the scrubbing goes horribly,
horribly wrong.  Which is exactly what happens when Bloglines
encounters perfectly legitimate markup that represents
syntax-highlighted code snippets.&lt;/p&gt;


	&lt;p&gt;What does Bloglines do then?  It strips out &lt;em&gt;all&lt;/em&gt; of the significant white
space, turning each block of code into a single, mile-long,
unbreakable line of NoSpaceText that forces your web browser to expand
the page until it is wide enough to enshroud a small solar system.  Then
&lt;em&gt;you&lt;/em&gt; are forced to scroll forever to read each line of the text
column.  Ugg.&lt;/p&gt;


	&lt;p&gt;More specifically, each syntax-highlighted code block is
represented in &lt;span class="caps"&gt;HTML&lt;/span&gt; as a preformatted (PRE) text block.
Each word in that block is wrapped in a &lt;span class="caps"&gt;SPAN&lt;/span&gt; element
whose class attribute indicates the word&amp;#8217;s role in the
original source code.  Keywords get one
class, identifiers another, and so on. For example,
the code &amp;#8220;&lt;tt&gt;import List&lt;/tt&gt;&amp;#8221; might be represented
as follows:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;span class="kwd"&amp;gt;import&amp;lt;/span&amp;gt; &amp;lt;span class="name"&amp;gt;List&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;But when Bloglines gets its hands on that markup, it strips
out the whitespace between the &lt;span class="caps"&gt;SPAN&lt;/span&gt; elements:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;span class="kwd"&amp;gt;import&amp;lt;/span&amp;gt;&amp;lt;span class="name"&amp;gt;List&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Thus the markup renders as &amp;#8220;&lt;tt&gt;importList&lt;/tt&gt;&amp;#8221; when it hits your web
browser.  Now imagine the same space-denuding bad behavior applied to
&lt;em&gt;all&lt;/em&gt; of the inter-element white space in a full-length block of code.
That&amp;#8217;s right, what you end up with is a single, insanely long
LineOfUnbreakableText that your web browser chokes on. Again:
Ugg.&lt;/p&gt;


	&lt;p&gt;The folks at Bloglines &lt;a href="http://intertwingly.net/blog/2006/04/13/Bloglines-Breakages"&gt;have had similar problems in the past&lt;/a&gt;, most of which have been fixed.  I hope they fix this particular problem soon, too.&lt;/p&gt;


	&lt;p&gt;Until that time, however, you might want to consider other feed readers.&lt;/p&gt;</description>
      <pubDate>Tue, 11 Sep 2007 12:51:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:6f848f04-4c76-496e-b518-7d86d1899be6</guid>
      <author>Tom Moertel</author>
      <link>http://blog.moertel.com/articles/2007/09/11/bloglines-doesnt-handle-inter-element-white-space-properly</link>
      <category>rants</category>
      <category>bloglines</category>
      <category>rants</category>
      <category>markup</category>
      <category>atom</category>
      <category>xml</category>
      <category>html</category>
      <trackback:ping>http://blog.moertel.com/articles/trackback/576</trackback:ping>
    </item>
    <item>
      <title>Claiming my blog on Bloglines</title>
      <description>&lt;p&gt;&lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt; now offers a way to &lt;a href="http://www.bloglines.com/about/news#108"&gt;claim your blogs&lt;/a&gt;.  Ordinarily, I never bother to do stuff like this. But Bloglines has at least three versions of my blog in their catalog.  I would like to consolidate these into a single entry, something Bloglines claims I can do if I register my blog.&lt;/p&gt;


	&lt;p&gt;The registration process is somewhat annoying, but I can see why it is necessary. In short, I must add a Bloglines-given identifier to my blog&amp;#8217;s &lt;span class="caps"&gt;HTML&lt;/span&gt; template.  Then I must add another Bloglines-given identifier to a blog post.  These allow Bloglines to verify that the blog&amp;#8217;s website and feed are both under my control.&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;ll let you know how it goes.&lt;/p&gt;

&lt;div class="update"&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I was able to claim my blog but not its outdated entries in Bloglines's catalog.  Neither Bloglines's instructions nor error reporting is specific enough for me to figure out what is wrong. I'm giving up for now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 2 (2006-07-15):&lt;/strong&gt; I was able to claim one of the outdated entries that had caused Bloglines to choke before. The other entries, however, are still problematic.  Bloglines does have more-descriptive error reporting now, but those reports do not inspire confidence:&lt;/p&gt;

&lt;blockquote&gt;&lt;div&gt;&lt;em&gt;Verification Failed:&lt;br /&gt;

An Unidentified Error occured &lt;/em&gt;[sic]&lt;em&gt; while talking to (null) or http://blog.moertel.com/xml/rss/feed.xml?snip=start.&lt;/em&gt;
&lt;/div&gt;&lt;/blockquote&gt;

&lt;p&gt;Capitalizing &amp;#8220;Unidentified Error&amp;#8221; is a nice touch: it makes the error seem both mysterious &lt;em&gt;and&lt;/em&gt; important.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 3 (2006-07-20):&lt;/strong&gt; All of my feeds on Bloglines are now consolidated under a single entry. What's the secret? Ruthless URL canonicalization. I perused my logs and found all of the various URLs that Bloglines was using to access my feed. Then I configured my front-end proxy server to redirect (401 permanent) all of them to my preferred feed URL.  After a week or so, Bloglines's software took the hint and consolidated the entries.&lt;/p&gt;

&lt;/div&gt;


&lt;!-- ckey="7C2EDA33" --&gt;
&lt;!-- ckey="56A922DE" --&gt;
&lt;!-- ckey="7F3E6657" --&gt;
&lt;!-- ckey="0C22B934" --&gt;

</description>
      <pubDate>Wed, 05 Jul 2006 10:44:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:df654e6c9dd9bf84b43ce62c8349ff91</guid>
      <author>Tom Moertel</author>
      <link>http://blog.moertel.com/articles/2006/07/05/claiming-my-blog</link>
      <category>site news</category>
      <category>bloglines</category>
      <category>identity</category>
      <trackback:ping>http://blog.moertel.com/articles/trackback/74</trackback:ping>
    </item>
  </channel>
</rss>
