Unblogging
Tue, 16 Mar 2010 19:39:00 +0000
Google Reader is more than just a feed reader. It's a cache and an archive: http://www.google.com/reader/atom/feed/FEED_URL?r=n&n=X displays the last X posts from FEED_URL even if FEED_URL itself does not contain all of its last X posts. If the author of FEED_URL deletes an old post it will not be removed from the cache. This is nothing strange, caching and archiving are part and parcel of the Internet.
However, there are a number of issues with this type of caching. Firstly, many authors try a number of "test" posts after creating a blog. If they check the posts in Google Reader, they become difficult to delete. Secondly, there is no indication when browsing Google Reader that a post may have been deleted and that the author no longer wishes the post to be public. Thirdly, there is no robots.txt mechanism to restrict caching. Fourthly, Google does not delete posts from the cache by request.
In Google's own words: "Reader caches all entries in your feed as your feed most likely only contains your most recent entries. Unfortunately, there isn't a way for Reader to tell which items have been deliberately removed from your site as opposed to having just fallen off the end of your feed. You can create a blank item with the same GUID tag as the original item to at least remove the content from Reader and other feed readers. Contact your blogging software provider for more help with this issue."
So, how do you find the GUIDs of your deleted posts? Assuming you have a Google Account and an account with Blogger, the following Ruby script will output the GUIDs of your deleted posts:
Next, you need to edit the contents of each post using http://www.blogger.com/post-edit.g?blogID=12345&postID=67890. You may also have to bring the post dates forward so that Google Reader will notice the changes.
The Electronic Campfire
Fri, 27 Nov 2009 15:05:00 +0000
"What is wrong? Why is mere opinion so dominating discussions held on the easiest medium there has ever been that can provide substantiations with just a little curiosity and work? Is the world completely reverting to an oral culture of assertions held around an electronic campfire?" (Alan Kay, 2009)
Two days ago, Standard & Poor's declared Dubai World's decision to delay their debt repayments a default. For the last two days, Dubai is trending on Twitter and blogs are awash with links to various financial reports and news items. All of these are secondary sources with more or less the same information. Although I have no interest in these developments, I have tried to locate the actual text of Dubai World's statement and failed. There has been a flurry of "they-don't-owe-us-anything" statements from financial institutions. However, there is no accessible list of creditors, authoritative or suspected. A Google search with the date range restricted to 2000-2007 is littered with news reports and blog posts from the last two days. It is unfortunate that the social and "in-the-news" aspects of the Internet can over-shadow its ability to provide substantive information when uncertainty arises.
Irish Discussion Trends
Thu, 22 Oct 2009 09:48:00 +0000
Inspired by an analysis of computer science research trends, I wrote a simple application using Adobe Flex and Apache Lucene to analyze trends on the Irish discussion website boards.ie from 1998 to mid-2008. For example, computing only term frequencies within posts, one can observe the rise and fall of Ireland's mobile phone networks:

Please note that the 2008 dataset is incomplete, and so the results trail off for this year.
A Book for Dummies
Sat, 19 Sep 2009 11:13:00 +0000
While leafing through Twentieth Century History For Dummies (don't ask), I came across the following dubious description (pg. 50) of Albert Einstein's contribution to twentieth century physics:
"Albert Einstein (1879-1955) sought to use quantum theory in his work on the nature of matter. Taking the tram to his work in Zürich each day, the German-born Einstein noticed that the buildings he passed appeared tall and thin when the tram was moving but settled into their old shape when the tram stopped. Were his eyes deceiving him, or perhaps did those houses actually change shape? And why didn't they change shape for the people inside them? The answer was that, unlike the people in the houses, Einstein was moving past at speed, so to him, the houses didn't just look thin. They actually were thin. Because of the speed and the direction of the tram, Einstein was looking at the houses in a different combination of space and time from people outside the tram; or, to put it another way, the nature of space and time depend on where you are. Einstein put his ideas into his Special Theory of Relativity in 1905, followed in 1907 by his General Theory of Relativity, arguing that space and time change and as they do so, they affect matter - hence the thin houses. The only thing that doesn't change, Einstein said, is the speed of light."
Trams in the early twentieth century must have traveled really fast ;-)
It's Not a Feature, It's a Bug
Thu, 03 Sep 2009 15:15:00 +0000
The Flex compiler (mxmlc) has the following feature: It will only include classes in the output swf that are explicitly referenced either within the .mxml files or any explicitly referenced .as files. There is a request for a compiler option to support the inclusion of all classes, but it's still in the works.
The following is one such example where this feature causes difficulties. Suppose I have a Flex client that uses BlazeDS to make an RPC. The RPC returns a Java object that is explicitly mapped to an ActionScript object using [RemoteClass(alias="...")] above the definition of the ActionScript class. This ActionScript class may never be referenced within the Flex code yet is needed to de-serialize the response! The end result is an "Server.Acknowledge.Failed" fault code:
[RPC Fault faultString="Didn't receive an acknowledge message"
faultCode="Server.Acknowledge.Failed" faultDetail="Was expecting
mx.messaging.messages.AcknowledgeMessage, but received null"]