ralphm.net

ralphm's blog

Wednesday, 28 April 2004

TYPO3 & Jabber Publish-Subscribe

Stop pulling!

A while ago, herb contacted me because he was writing his thesis in Brazil. He said he was very interested in my work on Publish-Subscribe using Jabber. So, I said: Ask away. Just now he contacted me again, stating that he was very interested in testing out Mimír and that he was busy working on an RSS component for the TYPO3 Content Management System.

I don't know any CMS systems that well, but I am told that TYPO3 is a great, powerful, Open Source CMS. Herb's plan is to hook up TYPO3 up to Jabber, using pubsub to publish items to interested parties. Very nice! I've written about Mimír on a few occasions, and initiatives like this might bring us further to the goal of having news pushed to you instead of having to pull it yourself.

I've set up a pubsub node (mimir/news/typo3_test) for him for testing, and had the Mimír news bot subscribe to it for its accociated channel. The only thing he has to implement is some magic to send a snippet like this to the pubsub component:


<iq to="pubsub.ik.nu" type="set">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="mimir/news/typo3_test">
      <item id="{$url}">
        <news xmlns="mimir:news">
          <title>{$title}</title>
          <link>{$url}</link>
          <description>{$description}</description>
        </news>
      </item>
    </publish>
  </pubsub>
</iq>

Of course, the stuff in curly brackets needs to be filled in. At the moment Mimír uses a simple proprietary namespace for holding the data, but I can imagine using a format like Atom for this instead. Anyway, herb has not coded anything so far, but I'll keep you posted of his progress. If anyone is interested, let me know.

By coincidence, I had been thinking about the future of Mimír again this morning (under the shower, good thinking place). Ideally, when systems like TYPO3 have pubsub capabilities, you would want to optimize the distribution of notifications. For now, the pubsub JEP only talks about direct subscribers, but it would be far more efficient in terms of bandwidth and speed to have a distribution tree, where the root of the tree is the original content provider, the leaves are the end users (human or not), and the nodes in between pubsub repeaters. Compare with mirrors of websites and the way real world gossiping works.

I think I'll be working on that next. Maybe we need a JEP on that. For verifying the origin of a notifications, you could use either trusted repeaters, or signed notifications.

On the BOFH channel

Using the eyes...

Giving the BOFH page another look, I noticed a little orange button on the bottom of the page. I could have saved myself the trouble of fixing the scraper, since they have a nice RSS 2.0 feed now. They have probably moved to a new CMS, which explains why all the URLs have changed, and got feeds along the way. Good for The Register.

Updating Mimír feeds

Missing out on things...

A few of my Mimír channels had been very quiet recently. One of them was the channel for the BOFH stories over at The Register. This channel is being screenscraped by a little Perl script that uses LibXML and LibXSLT to turn the HTML into a nice RSS file. Then this RSS file is simply aggregated by the modified Janchor aggregator that feeds Mimír. Aparently, they've also changed the URLs to the stories, so a lot of old stories came up as being new.

While checking if Janchor now did get the new BOFH feed, I saw a error warning for offline offlineDizzyd's blog, Gradual Epiphany. Turns out he's moved to Movable Type for holding his blog, and the URL for the RSS feed also changed. Seems he did not migrate his archive (yet?), so that is too bad. Need to ping him on that. Also, it seems he has not sent presence to my site's bot for over a week. Hmm.

Tuesday, 27 April 2004

Catching up

Filling the void...

My last entry was about receiving a grade for my Master's. I didn't really party all the way into today, but I did have fun!

After a two-day vacation (the weekend), I started working as Scientific Programmer at the Eindhoven University of Technology, Mechanical Engineering department. I started setting up my environment (installing my desktop machine with FreeBSD and GNOME), and slowly started getting to know people and finding out what I am to do over here.

Since I am the second programmer in the group, we needed a way to work on code together. CVS came into mind, but we also needed ways to handle bug reports, feature requests, etc. Also, in the near future, other people will probably start producing code, in related projects, but still separate from our stuff. So, I decided to try out GForge, the Open Source variant of the well-known SourceForge. I found an unused box (Dual Pentium 350Mhz), and started setting it up. Much fun, since there is no (good) port to FreeBSD.

Also, the machine this site is hosted on mag.ik.nu, has been moved to a co-location facility in Amsterdam on 1 April. This has been a wish for me and a couple of friends for a long time, and we can now enjoy good bandwidth, and maybe also host other stuff. With the money collected from that, we might be able to cover the bills for co-locating the machine.

And a week ago, I finally received my Master's degree during the official ceremony, so I may call myself Master of Science from now on. Nice.

More to come...