
I store quite a lot of info in Google Spreadsheets, for the obvious reasons:
- anyone can edit from any place, even at the same time
- the servers are more reliable than a server at the office
- I can use the info (with CSV/Excel export) in other programs through a web link
But there is a problem popping up at random moments with that last export or ‘publish’ functionality. Sometimes when you download the published link of a CSV export (through curl), you get an error ‘Moved Temporarily - The document has moved‘ with a redirect to a www.google.com address. And if you don’t follow HTTP 302 redirects, you can’t get to the actual content. In the past I’ve always worked around it or waited until the error went away, but today I searched a bit further. So for those who have the same question: read and learn!
The redirect is actually for authentication. Although I publish without requiring signing in, so one would expect no authentication process, there actually is one. See what it does (I used wget in verbose mode to get the HTTP headers):
>>>:~$ wget -v “https://spreadsheets.google.com/(…)&output=csv”
-- https://spreadsheets.google.com/(...)&output=csv
(...)
Location: https://www.google.com/... (first redirect)
-- https://www.google.com/(...)/ServiceLogin?=...(…)
Location: https://spreadsheets.google.com/... (second redirect)-- https://spreadsheets.google.com/(...)&output=csv&ndplr=1
(...)
Saving to: ...
So what is the solution: just add “&ndplr=1” to your URL and you will skip the authentication redirect. I’m not sure what the NDPLR parameter name stands for, let’s just call it: “Never Do Published Link Redirection“.


Recent posts + comments in Blogger
One of the disadvantages of using Blogger is that by default, you don’t have categories and recent comments on your blog. There is a trick to put recent comments on this Blogger help page. It involves introducing a new
<Blogger> ... </Blogger>loop in the blog template. A nice trick, but I don’t like the fact that they only show the comment dates.So I developed the idea a bit further: on the main and archive pages of my blog, you now see the normal “Recent Posts” in the sidebar, but the posts that have comments also have those listed (see image at the right). On the individual post pages, I have the normal list of recent posts. I put each comment in a
divwith a height of 25 pixels and withoverflow: auto(defined in the CSS file) so that long comments don’t take too much space. The layout of the thing (e.g. each comment starts with a clickable “>”) is easy to adapt.This is the Blogger template code (in the standard templates, put this instead of the existing code that is much like the part here between the
<ItemPage> ... </ItemPage>tags). Feel free to use it if you want to.<ItemPage>
<h2 class="sidebar-title">Previous posts</h2>
<ul id="recently">
<BloggerPreviousItems>
<li><a href="<$BlogItemPermalinkURL$>" mce_href="<$BlogItemPermalinkURL$>"><$BlogPreviousItemTitle$></a></li>
</BloggerPreviousItems>
</ul>
</ItemPage>
<MainOrArchivePage>
<h2 class="sidebar-title">Previous posts</h2>
<ul>
<Blogger>
<li><a href="<$BlogItemPermalinkURL$>" mce_href="<$BlogItemPermalinkURL$>"><$BlogItemTitle$></a>
<BlogItemCommentsEnabled>
<BlogItemComments>
<div class="recent_comment">
<a href="<$BlogCommentPermalinkURL$>" mce_href="<$BlogCommentPermalinkURL$>">></a> <$BlogCommentBody$>
</div>
</BlogItemComments>
</BlogItemCommentsEnabled>
</li>
</Blogger>
</ul>
</MainOrArchivePage>
You will need a CSS class (in your CSS file, or in the first part of your Blogger template) with something like the following code:
.recent_comment { overflow: auto; border-bottom: 1px #999 dashed; font-size: .8em; height: 25px; }