Goodbye, share.opml.org

posted 09:36AM Jan 24, 2008 with tags aggregation opml sharing by Lars Trieloff

Dave Winer announces the end of share.opml.org. share.opml.org was a service that allowed you to upload your reading list in OPML format (or point to an OPML file in the web) in order to find out what people with similar reading habits were recommending, to find out the most read feeds and the people who subscribe to the highest number of feeds (I never made it to the top 10 in this list).

I was using the service in two ways: one the one hand, Blogbridge allows me to export my reading list as a shared OPML file available in the web, so I just pointed share.opml.org to the OPML file generated by Blogbridge service in order to get an always-up-to-date reading list. On the other hand, I subscribed to the top-100 feeds reading list generated by share.opml.org, which is the aggregation of the most relevant blogs according to their number of readers.

Needless to say, I really regret the end of this service as it provided a vendor-neutral way of attention aggregation.

New In my Reading List: Readburner

posted 02:54PM Jan 15, 2008 with tags aggregation atom google rss by Lars Trieloff

Readburner aggregates the most popular items shared by users of Google Reader and offers feeds for popular items, item popular in the last week and upcoming items. So far only a small number of contributors have signed-up (it is opt-in, so it will not aggregate your feed per default), but it will be interesting to see how the whole project evolves.

A Planet a Day, ...

posted 10:59AM Jan 11, 2008 with tags aggregation day jcr planet by Lars Trieloff

I am very happy to announce that dev.day.com, the company blog of my employer Day Software that lives up to the great work of my colleague Michael Marth is now adjoined by PlanetDay, an aggregation of private weblogs of Day employees. So if you would like to know what is going on in the minds of Day's employees, take a look at PlanetDay.

the all-Dave feed

posted 02:07PM Jan 10, 2008 with tags aggregation atom blog by Lars Trieloff

Dave Johnson, author of Roller has create an all-Dave feed, which is an aggregation similar to Plaxo Pulse or my own aggregation. Dave, are you going to implement a social activity meter as well?

| Comments[2]

Why I keep using my own pulse

posted 01:52PM Oct 23, 2007 with tags aggregation atom friendfeed istalkr plaxo pulse rss suprglu by Lars Trieloff

I've been a fan of personal feed aggregation services for a long time. I've been trying: I've even built my own pulse once and twice. Now Plaxo announces something new: The Plaxo Pulse Widget allows you to embed your pulse (your feed of anything you do on the web) in your weblog. Actually it is not that new, because with the help of Mysyndicaat you could already do this before and it is not that good, because you cannot completely control the look and feel, as I can with the custom widget you see in the sidebar of my blog.

How I did it:

  1. I created an OPML file with my feeds. I simply re-used my personal OPML file, I created for the older incarnation of my personal aggregator.
  2. I downloaded and installed Sam Ruby's Planet Venus, a refactored version of the Planet software that powers many websites, for instance Planet Apache.
  3. I created a new profile that reads my OPML file:
# subscription list
[http://weblogs.goshaky.com/weblogs/lars/page/OPML]
content_type = opml
  1. I created a new theme that creates a JSON feed from my aggregated feed using following XSLT stylesheet:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                xmlns:atom="http://www.w3.org/2005/Atom"
                xmlns:xhtml="http://www.w3.org/1999/xhtml"
                xmlns:planet="http://planet.intertwingly.net/"
                xmlns="http://www.w3.org/1999/xhtml"
                exclude-result-prefixes="atom planet xhtml">
 
  <xsl:output method="text" omit-xml-declaration="yes"/>

  <xsl:template match="atom:feed">
var planet = [
    <xsl:apply-templates select="atom:entry[position()&lt;51]"/>
];
  </xsl:template>
 
  <xsl:template match="atom:entry">
  {
    title: "<xsl:call-template name="strip-quotes">
  <xsl:with-param name="text">
    <xsl:value-of select="atom:title" />
  </xsl:with-param>
</xsl:call-template>",
    href: "<xsl:call-template name="strip-quotes">
  <xsl:with-param name="text">
    <xsl:value-of select="atom:link[@rel='alternate']/@href" />
  </xsl:with-param>
</xsl:call-template>",
    icon: "<xsl:value-of select="atom:source/planet:css-id" />.png"
  }
  <xsl:if test="position()&lt;50">
  ,
  </xsl:if>
  </xsl:template>
  
  <!-- remove everything else -->
  <xsl:template match="@*|node()"></xsl:template>

  <xsl:template name="strip-quotes">
    <xsl:param name="text" />
    <xsl:if test="contains($text, '&#x22;')">
      <xsl:value-of select="substring-before(translate($text,'&#10;',''), '&#x22;')" />
      <xsl:text>\"</xsl:text>
      <xsl:call-template name="strip-quotes">
        <xsl:with-param name="text">
          <xsl:value-of select="substring-after(translate($text,'&#10;',''), '&#x22;')" />
        </xsl:with-param>
      </xsl:call-template>
    </xsl:if>
    <xsl:if test="not(contains($text, '&#x22;'))">
      <xsl:value-of select="translate($text,'&#10;','')" />
    </xsl:if>
  </xsl:template>
  
</xsl:stylesheet>
  1. Finally, I customized my blog's sidebar template to include the JSON feed as a list:
<li id="container">
    <h2>Activity</h2>
    <p><script type="text/javascript" src="http://del.icio.us/feeds/js/networkbadge/trieloff?name;nwcount;icon=s"></script></p> 
<script type="text/javascript" 
        src="http://internal.mindquarry.com/venus/lars/index.json"></script>

<script type="text/javascript">
    function showImage(img){ return (function(){ img.style.display='inline'; }) }

    var ul = document.createElement('ul')
    for (var i=0, post; post = planet[i]; i++) {
        var li = document.createElement('li');
        var a = document.createElement('a');
        a.setAttribute('href', post.href);
        a.appendChild(document.createTextNode(post.title));
        li.style.backgroundImage = "url(http://internal.mindquarry.com/venus/lars/"+post.icon+")";
        li.style.backgroundRepeat = "no-repeat";
        li.style.paddingLeft = "20px";
        li.appendChild(a);
        ul.appendChild(li);
    }
    document.getElementById('container').appendChild(ul);
</script>
   </li>

Using this method I am more flexible in adding feeds and supporting services, I can easily customize the appearance of the widget in my sidebar and I have all the super-powers that Planet Venus offers, for instance filtering Feedburner spam from my feeds.

Build your own iStalkr, Suprglu, etc.

posted 09:07AM May 25, 2007 with tags aggregation atom istalkr rss suprglu by Lars Trieloff

I am a fan of all kinds of RSS and ATOM aggregation (no wonder with an OPML file of 1,454 feeds), escecially of personal information aggegation. As a good Web 2.0 citizen, I create a number of feeds that allow to track my interests, thoughts and activity, e.g. my weblogs, my bookmarks, or my software development builds. A personal information aggregator or lifestream aggregates all those feeds that are specific to a person and offer a one-stop interface.

The first service of this kind I have seen isSuprGlu (my personal page looks like this. Unfortunately this service has been offline for weeks after I created my account and it limits the number of feeds you can track to nine. If anyone knows the reason why nine, not eight or ten, please tell me.

So I was delighted to find a similar service with some additional personal profile info and a better interface for adding feeds, a nice timeline view, no feed limitation and an even stranger Web 2.0 style-name: iStalkr (my personal page looks like this). Unfortunately this service went offline for the last week and I thought iStalkr to be the second personal information aggregator I killed by my mere membership.

I told this problem to Marjolein, the No. 1 RSS authority in the blogosphere and within ten minutes I had my own lifestream aggregator. These were the steps:

Lars
My personal information aggregator is broken. Do you know an alternative?
Marjolein
Do you have an OPML file of your feeds?
Lars
Wait a minute. (I created an OPML file using my Roller Bookmarks and my custom OPML template)
Marjolein
See http://mysyndicaat.com/myfeed/feed/cc1_Lars%20Trieloff%20-%20River%20of%20News feed created with Mysyndicaat
Lars
Thank you, that's cool. But is there some way to embed this in my weblog??
Marjolein
the way I'd do it, is add this feed back info your OPML, make sure it's listed at the top of your OPML, by naming it so that it sorts at the top, then go to Grazr.com and add the feed

Grazr.com is a service that allows you to add news aggregation widgets to your weblog and that's what's how we did it. And in minutes I had my own personal lifestream aggregator. Thank you very much for the help, Marjolein.

| Comments[2]