June 03, 2004

I was reading Russell Beattie's weblog this evening in my NetNewsWire RSS aggregator. What I noticed at the bottom of the article inside the RSS aggregator was a little changing image: an advertising campaign for John Kerry.

This has nothing to do with the above advertisement, but I was wondering how long will it be until we see people embedding Google content ads into their RSS feeds. Highly targetted ads to the contents of the article, of course.

October 02, 2003

July 08, 2003

Steven Noels
points out HTMLarea, a nice JavaScript solution for editing HTML inside
a Mozilla. I installed it on my MovableType installation, really cool!
My only complain now is that I don't have undo integrated with the
system, e.g. pressing Cmd-Z doesn't work as expected on my
Powerbook/MacOS X.

Oh yes, did I mention on MacOS X it works in Mozilla 1.4 only? Safari does not seem to work. Unfortunately a lot of other things do not seem to work with it :(

Kevin Burton: Where are the Google Bloggers Matthew Langham: Google goes bloggingAnil Dash: Google's first mistakeJeremy Zawodny: Oh, wait. Google is the enemy. I work for a company that hopes to kick Google's ass.Phil Ringnalda: Guess I'll have to rethink that whole "Google may not set cookies on my computer" thing, eh?Doc Searls: Pretty amazing: I was there and even now I still have less to say about the Bloogle Thing than anybody else.

Suggestions for Google:

Matthew Langham: GoogleBlogs switcher campaign, searches for more like this weblog both in the blogsphere and in GoogleGroups, weblog comments on news articles. Mena Trott: expand weblogs content base

December 11, 2002

November 30, 2002

If you have a Java blog, don't forget to register it at the awesome javablogs.com. It's a simple and effective way of keeping track of people working with Java. Kudos to Mike Cannon-Brookes for coming up with the idea!

Since I switched to NetNewsWire for reading the news, I no longer need to aggregate news on the main page. Instead I now generate the list of subscriptions at the right of each page using this XSLT stylesheet. Quite fun!

To solve the problem of the RSS2 variable namespace, I think a good solution is to have the main stylesheet automatically generate another stylesheet which uses the RSS feed's namespace as default namespace. This will avoid using ugly hacks like local-name() and other oddities in the XSLT aggregator stylesheet. More on this later.

September 26, 2002

I decided to switch to NetNewsWire Lite, as the number of entries generated by my own XSLT-based RSS aggregator became too large to follow on the main Weblog page. NetNewsWire does a very good job so far, I like it!

September 24, 2002

I've implemented support for RSS 2.0 in my XSLT-based news aggregator. It turns out to support it I only had to copy the RSS 0.92 templates, and add the proper namespace. Really simple! Since I was here, I also added a fairly simple fallback mechanism, so if a new RSS is invented, the aggregator simply displays the information specified in the subscription.

I've placed all the files in a CVS repository, together with my MovableType templates.

September 18, 2002

Sam Ruby changed his RSS feed again, which apparently breaks my RSS aggregator that you see on the right hand side of this page. I've removed him from my subscriptions list! At least until I have some time to figure out what's wrong with the XSLT-based RSS aggregator I've written.

September 10, 2002

It's so refreshing to see Mozilla being positioned as a platform, and not just as yet another browser. It will be interesting to see how much this platform will take off. It certainly makes sense to have Mozilla applications built around Web applications running on remote servers, since it would be easier to manage the remote content using a richer, desktop-like interface. Weblogs are a good example of such an application.

To be really successful, the Mozilla platform will need to penetrate the enterprise market. Mozilla could probably succeed better as a development platform for enterprise applications, than as yet another browser the IT departments have to support.

Having backend enterprise applications accessible as Web services would probably make Mozilla's job a lot easier, since there's no need to load proprietary code in the Mozilla application. Thus the only thing to be implemented in such an application will be only the user interface, which interacts with the backend Web services-enabled system.

August 21, 2002

Anders Jacobsen was looking for the perfect RSS aggregator and he found it, as he describes here.

Some of the requirements that he had are described here. In other place he also mentions the ability to read news offline, which I'm not sure is so useful to me: most of the time I sit in front of a computer which has a fast Internet connection anyway.

I think I still prefer an RSS aggregator running on the server side, which is integrated with my Weblog, perhaps running in a separate area, rather than my current setup.

August 15, 2002

Mark Pilgrim has some thoughts on how RSS should be discovered by news aggregators, rather than explicitly being added to them. He points out to a desktop applications which does most of what he'd like. However having to run yet another desktop app to read my news is not very convenient. I would much rather have the RSS aggregated in my Weblog, perhaps in a separate area. Then how would the RSS autodiscovery work when the RSS aggregator is a Web application? They don't know what is that you're browsing, since they live on a different machine.

It would be nice if your Web browser would search for an RSS feed in each HTML page you visit, and propose you to subscribe to it. This would be annoying however for one time only pages that you visit, but if go repeatedly go back to visit the same feed, it could ask you about it. If you choose to subscribe, it could send a subscribe notification to your Weblog over HTTP/XML-RPC. I think a Mozilla extension could do it; I need to investigate some more. Of course, a nice RSS aggregator would also have to be integrated in your Weblog tool.

August 13, 2002

While reading some weblogs this night, I found Kevin Burton's records-mode for Emacs to be a really promising tool to maintain a Weblog from my editor. Browsing the code did not reveal the important component of publishing the news using Blogger API, but it should be easy to add it.

Now if I can only have XEmacs running natively on MacOS X... It's so annoying to run it in X-Windows emulation mode. Maybe after I finish the Cocoon control flow layer, and implement the user feedback application for Anteater using the new Cocoon, I'll look more closely at porting XEmacs.

A friend of mine pointed out that my Weblog is really ugly on Windows using IE5: the fonts are all wrong, and the columns interfere with one another. It looks like I broke the original CSS which came with MT. Some days ago I fixed another problem with the default templates: they were not showing the page correctly on Netscape 4.7. The culprit was the div element, and the way it was used to show the page as a table in the CSS stylesheet. I reverted to using a table. For the IE5 problem, it looks like I need to do more work.

August 07, 2002

I've been using MT for more than a week now, and I started to feel some of its limitations. Here's a small wish list for it, or for any other Weblog tool. In particular, I got prompted by Ugo Cei's message on cocoon-dev, to think about working on Cocoblog as the tool to use for my Weblog.

Here is the list:

As with MT, and unlike Radio, the Weblog tool should reside on the Web site only. No installation on the user's desktop should be required, other than perhaps a simple Weblog editor which communicates over XML-RPC with the server. In my case, this editor would have to be XEmacs, of course. Other free software/open source tools are available as well.

The Weblog tool should have the notion of multiple users or authors, each managing one or more weblogs. It should allow multiple users to author the same weblog.

The system should have the notion of an administrator, which manages the permissions of users. The administrator should not be an user.

As with MT, the system should generate static HTML pages for the Weblog reader. Dynamically generating HTML pages would quickly become a problem when the system is deployed within limited resources available, such as those imposed by cheaper accounts at various ISPs. The management interface for the Weblog author would have to be dynamic though, to permit the management of the Weblog.

The system should provide two views of the generated Weblog. One view should be public, accessible to external viewers. The other view should be visible to the Weblog author only, and it will allow him/her to customize the look and feel of the site without afecting the public view. Once the author is happy with the look and feel of the private view, this could be published as the public view.

With MT you get only one view, the public view. Each time you want to change something in the Weblog look, the changes become immediately visible to the public, which is not a good thing. Of course, you can setup a private area which uses the same data, but that's an administrative headache which could be avoided.

The system should have the ability to run periodic tasks on behalf of the user. This could be used to run blogroll scripts, calendar updates or any other action which causes the static HTML regeneration to happen.

It should be possible to edit Weblog entries in languages other than XHTML. I specifically have in mind the ability to edit entries using Docbook, xdocs or any other custom built XML format. This would give the ability to easily change the generated HTML markup or to generate entirely different markup, like plain text or XSL-FO for PDF generation.

The user should have the posibility of specifying custom XSLT stylesheets for different markup generation. The system should also allow arbitrary XML processing to happen on the original markup.

With the ability to edit Weblog entries in an XML format, a dictionary of abbreviations could be easily defined. This could be implemented either as XML entities or as XML elements which are translated to their definition by custom XSLT stylesheets.

The system should be written using components which plugin into the system easily. Ideally, it should be easy to write such components using any scripting language.

The system should have a clearly defined internal API, which exposes all the major items in it: entries, categories, stories, components etc. These internals should be exposed to all the scripting languages supported. Components written in different languages should be able to inter-communicate.

New components should be easily added to the system. However this task should be under the control of the administrator, which could install these components and make them available to users, perhaps in a selective, per-user maner, to permit a pay-per-use model.

In my opinion, Cocoon can solve most of these problems. One thing it badly misses is the ability to easily add new components to the system, and make them available in a selective manner, and the ability to have these components written in different scripting languages.

August 02, 2002

I've finally managed to integrate my simple Blogroll engine into the MT system. The sytem is a combination of XML/XSLT, MT regeneration of HTML pages and crontab.

This is essentially composed of two components.

The first component is an XML file which describes what are the RSS feeds you're interested in. In this file you specify the location of the feed, and optionally you can give a simple name to it. This name is used in the generated HTML as the title for the news, in case the RSS feed doesn't specify a name in it (like Slashdot for example).

The XSLT stylesheet then takes this document and translates into HTML. The stylesheet knows how to handle RSS 0.91 and RSS 0.92, which are the formats used by Radio, RSS 1.0 (preferred by Radio), and Backslash, which is used by Slashdot.

I defined the generated HTML file as template in MT, which I called RSSFeedNews. In my new templates for MT 2.21, I include this template in the appropriate place so it can appear in the generated HTML.

I want to automatically retrieve the news, create the HTML fragment to be inserted in each page, and then regenerate all the pages with the fresh news. For this task, I've dug into MT to see how to do it. The documentation was quite clear on what needs to be done, but I encountered some problems. Below is the script which seems to work fine now.

The POD documentation for lib/MT.pm does not mention that the Directory parameter in new is required. I found that after few hours of poking around.

To run the translation you need to have an XSLT processor. I use Saxon, a compliant and very fast XSLT processor written in Java. With Saxon you run the translation like this:

java -jar saxon.jar subscriptions.xml rss2html-standalone.xsl

The rss2html-standalone.xsl XSLT stylesheet will generate a complete HTML, you'll need to customize it for inclusion in another HTML document. This is usually done by simply removing the unnecessary HTML tags from the rssfeed template.

I've done some major changes in the way MT generates the HTML files. Previously I didn't like the way the calendar was displayed. Clicking on a blog entry did not show the calendar for the month when the post was made, but the one for the current month. The navigation between months still lacks, since the only way to go back and forth one month is to choose the appropriate month from the Archives section. I like the month navigation Radio has, but it turns out in MT is difficult to implement it, due to how the MT template tags work. I'll tackle this when I'll have more time.

July 31, 2002

I've started working on a simple RSS feed aggregator. It is written entirely in XSLT, and so it has a very small footprint.

The idea is to describe the RSS feeds you're interested in using a simple XML file format. The XSLT stylesheet is then used to process this file, obtain the RSS feeds from the remote sites, and translate them to HTML.

This is a pull model, the program needs to be run at regular intervals to pull the RSS feeds and generate the HTML file, which could then be incorporated in the Weblog. A crontab entry should do the job.

I plan to integrate this with MovableType by having the generated file be a template file instead of a plain HTML file, which could then be imported in another template to assemble a larger page. I still need to figure out all the details.

I'll post the XSLT stylesheet and a sample description file as they become more stable.

Once this foundation is in place, a MovableType user interface can be easily added. The UI will simply generate the XML description file, which could be used to generate the rest of the bits. I'll probably need some help doing this portion, as I'm very new to MovableType and I don't think I'll have the time to build this.

One thing I still need to add is a simple search capability. I tried MT-Search, but I couldn't figure out how to integrate it nicely with the same look and feel as the rest of my Weblog site.

Another thing I'd like to have is the ability to periodically publish RSS feeds from other people's Weblog and news sites. I need to find or write an RSS translator to HTML. This should be a fairly trivial task using Java and XSLT. Integration with the rest of MovableType would be the only problem, but I think that a simple crontab entry to automatically fetch RSS items and an HTTP GET request to MT to regenerate the Weblog should both solve the problem.

I need to start a TODO list on my Weblog: the number of things I want to implement starts growing.