Really Simple Syndication
|
Copyright 2003-4 World Readable
|
This morning, I finished my RSS schematron validator. With 1000+ test cases, thanks to Sam and Mark. This will be its permanent residence; yes, a blog entry.
Find a bug, just add a comment here describing it. Now, be nice. I threw this together in two weeks and right now the date validation is a real HACK.
The question of motivation is obvious. My feature requests for the Feed Validator were not being serviced, as the author's were focusing more on Atom than RSS. Additionally, this validator is completely portable, that is, it doesn't require a python run-time. All that you need is a schematron or xslt component. I'll explain this further, at a later time.
Here's the code to add the validator form elsewhere.
<FORM action="https://rssweblog.com/rsv.aspx">
XML URL: <INPUT name="xml" > <INPUT type="submit" value="Validate!" >
</FORM>
Update: I guess it had to be said, but flames in the comments of this entry will be removed.
Dare Obasanjo: Most people looking for a free RSS reader on Windows tend to gravitate towards SharpReader since it is the most popular one on Windows and the first they hear about. Recently I've begin to see more posts from people who've grown tired of its limited feature set and plain user interface that have switched to RSS Bandit.
Randy: Although RSS Bandit is an excellent RSS reader, I doubt you can say that SharpReader has a limited feature set compared to it. Yes, there are some plumbing features in RSS Bandit not available in SharpReader, but end-user features are more plentiful in ... SharpReader. Alternatively, Sauce Reader is an even better choice IMHO, although I miss the item linking feature in SharpReader.
Dare Obasanjo: The ambiguity of URIs have also been a problem in XML namespaces since users of XML often wonder assume a namespace URI should lead to a network retrievable document when accessed. Since they are URIs, this isn't necessarily true. If they were URLs it would be and if they were URNs they would not be.
Randy: Dare nails it again!
Mike Glass: The US Federal Reserve Bank offers an XML feed of 'Foreign Exchange Rates'. As far as I can tell, it is updated twice daily and should be a very accurate source of exchange rate information.
Randy: The FRB of NY also has an FTP server full of awesome and useful data in TXT and XML form.
Dave Winer: Now for the surprise. Yesterday we got a $1000 donation from Google.
Randy: Awesome to see Winer and Google working together to make the blogosphere better.
Dave Winer: So it's with great pleasure that I thank Google for their financial support of BloggerCon, and look forward to their participation in the event.
Randy: Yes, a big thanks to Google, although I will not be attending BloggerCon, as usual. I'll have to move Google even further away from evil on my good/evil spectrum.
I was reading the schematron spec today and my eyes went crossed. It would seem that the schematron schema for schematron is not valid XML. It has two well-formed bugs. Both in the following <pattern>...
<sch:pattern abstract="true" name="requiredAttribute>
<sch:rule context=" $context ">
<sch:assert test="string-length( $attribute ) > 0">
The <sch:name/> element should have a
<sch:value-of select="$attribute /name()" /> attribute.
</sch:assert>
</sch:pattern>
Note the name atttribute-value of pattern is not closed by a quote and the rule element isn't closed either. A validation bug in a validation spec :)
Playing w/ HttpDetect, I captured the following HTTP transaction between Sauce Reader and Adam Curry's blog. Sometimes, it's just nice to view the end results of some 304 Not Modified success stories. Note also the accept gzip encoding.
HTTP Request |
HTTP Response HTTP/1.1 304 Not Modified Date: Tue, 19 Oct 2004 14:42:37 GMT Server: Apache/1.3.6 (Unix) mod_perl/1.21 mod_ssl/2.2.8 OpenSSL/0.9.2b ETag: "374810-4597-4174f70d" |
Brent Simmons, David Watanabe, Rory Prior, Erik J. Barzeski and Graham Parks discuss RSS on the Mac. Erik mentions my little article on RSS feed state.
Source: Dave Walker in my comments.
Lockergnome: What the heck is this RSS thing all about? Why do I keep seeing these little orange XML buttons all over the place?
Source: Chris Pirillo.
Note: Dragging doesn't always work. I'm looking at creating something more reliable. And no, they don't seem to work in Mozilla. Sorry!
Update: Ok, they work in Moz now. W/ help from PlasticThinking.
Update: Improved Feed/RSS Validator.
Update: Added VBS installer. Just run this VBS file and all the links will appear in a folder on your links bar.
Update: Added Feedster Search and Technorati Keyword Search bookmarklet.
Today, I installed RSS Bandit. Actually, that's a lie. What I did, was download the source code, compile it and run it from the Visual Studio.NET IDE. I haven't used RSS Bandit in quite a few months, maybe a year. I was disappointed to find that it really hasn't improved much since my last install. It would be a poor mans version of Sharpreader or Sauce Reader, if the previous two readers weren't already free. More specifically...
I spent a few moments catching up on the Atom mailing list today. Wow! I must say. This is weird. It seems that the Atom mailing list is spending a great deal of time trying to catch up w/ RSS 2.0, which has been frozen for more than two years. Most of the list is now consumed w/ how to get ttl, skipDays, skipHours and enclosures into the Atom syntax. A year has past and Atom remains in the catching up to RSS 2.0 stage.
Another thing I noted today, is that the latest version of the Atom syntax spec doesn't seem to have a version number. We were at 0.3 at one point. Now we seem to be in no man's land. The only version I see is 02, which would be lower, or at least I assume, than 0.3, but that wouldn't make any sense, because it's a later version. Confusion? I thought we put a version attribute in the feed so that readers would have a trigger to determine how to parse various versions of the feed.
Ah, here we are, on page 15 of 28, it says, "The version identifier for this specification is 'draft-ietf-atompub-format-02: do not deploy'." I guess were shit out of luck. See you after Xmas.
...Tim Bray wrote an XSD for Atom. The Atom community pointed to it in all its glory. Having written the original Atom XSD long before, many of my readers pointed this out to me. It took me one second to realize the XSD wasn't even well-formed XML. I couldn't believe that the Atom community were praising an Atom XSD that wasn't even well-formed. At that point, I realized it was going to be a long time before anything came out of the Atom camp.
Dave Winer: Here's what the new ads in the Engadget feed look like in my aggregator. At first I barely noticed them, then they looked like big glitches, but now that I see them in every post and I am starting to think about unsubbing. That says a lot, because it's become one of my favorite feeds. I honestly don't see why they need ads in their feed, because the feed itself is an ad for Engadget. Every time I read an item there's a (let's say) three percent chance I'll link to it and deliver several hundred readers. There's got to be a better way to pay for the feed.
Randy: I'm using Sauce Reader today and the ads look OK. Click the image to enlarge.
TheAge: The iPod has done it again- launched a whole new way of communicating. It is called podcasting, and in less than a month it has built a tidal wave of sound for surfers. Podcasting means automatically transferring to an iPod MP3 files from internet audio sites, called audioblogs, for later digestion.
Source: Dave Winer.
Dare Obasanjo: XML is the appropriate tool for the job if the following criteria are satisfied by choosing XML as the data representation format for a given application.
If the expected usage scenario does not satisfy most or all of the above criteria then it doesn't make much sense to use XML as the data representation format for the situation in question.
Randy: This seems like an over simplification. For instance, in today's world, #1 and #2 are easily satisfied on most projects. That means you only need one of the last three criteria, to satisfy most (meaning more than 50%) of the criteria. Mind you, criteria #5 is nearly impossible to satisfy, as tab, linefeed and carriage return are control characters.
Update: I'm even gonna say that satisfying #1, #2 and #4 is trivial on most projects. I mean, how often is binary content the primary content? This means most projects would pass Dare's criteria.
JustBlogIt is a Mozilla / Firefox extension to allow easy right-click posting to a weblog. From any website your new blog post is only a right-click away.
Source: Jason Shellen.
Wired: Known as podcasting, the technology is a new take on syndicated content feeds like RSS and Atom. But instead of pushing text from blogs and news sites to various content aggregators like FeedDemon and Bloglines, podcasting sends audio content directly to an iPod or other MP3 player.
Source: Adam Curry.
Randy: Only a month after the technology was conceived, podcasting is already on Wired. This could be one of the killer apps that gets the hot technology adopted.
Brandon Fuller: Audio blogging is starting to take off. Currently, Movable Type has no support for audio blogs so I decided to whip up a quick plugin to provide the capability.
The current authenticated Gmail Atom feed won't work w/ most RSS readers. Jonas Galvez's script should allow it to work w/ most, if not all RSS readers.
Source: Dave Walker in my comments.
0xDECAFBAD: So I had an idea for a quick podcasting listening hack on the way into work this morning. Check it out:
xsltproc
to make a playlist that works in iTunes. Atom Mailing List: A New Internet-Draft is available from the on-line Internet-Drafts directories.
Source: Danny Ayers.
Rogers Cadenhead: An aggregator that doesn't strip out script and other dangerous tags is a security exploit waiting to happen.
Randy: Let me wildly disagree. It doesn't matter what you do, somebody will always find an exploit. Javascript is generally safe. If the aggregator fails because of the javascript, then it's not a good aggregator. MHO. A great aggregator can display HTML w/ embedded Javascript, w/out a worry.
Dave Winer: And Julie Leung will lead the emotional life of weblogs.
Julie Leung: Dave Winer invited me to be a discussion leader at BloggerCon III. [Here] is the description of the session on the Emotional Life of Weblogs which I will be guiding on November 6 at Stanford.
Andrew Grumet: iPodder 1.0 is out! iPodder is a "podcast receiver", which means if you subscribe it to the right kind of payloaded syndication feed, it will automatically download the audio and transfer it to your mp3 player. It's got a built-in scheduler, so you can set up overnight downloads and have the audio waiting on your device when you lift it off the cradle to head out on the morning commute. There's a growing list of podcasters eager for your subscription, and a number of mail lists devoted to various aspects of this new medium.
Adam Curry: The windows/mac iPodder development team announces their first public release, which is kick ass!
Dave Winer: iPodder 1.0 is released. Bravo!
Randy: This is a big move for RSS. Atom's got some more catching up TODO.
Sauce Reader is a pretty good RSS reader.
Nathan Wallace: Just wanted to check that you'd noticed "Tools -> Options -> Display -> Over View -> Only show unread items and comments". While all items are shown in the Items window grid, the Browser window will only show unread items with this option turned on.
This is a cool new feature I discovered via Danny Ayers. It's a ranking of some sort. Yesterday, I was #2209 yesterday and #2673 today. Pretty cool! I'm quite surprised I'm that high. Here's a short explanation of the rankings from PubSub.
PubSub: Link ranks are our way of measuring the strength, persistence, and vitality of links appearing in weblogs.
Luciano Evaristo Guerche: Just finished to install Mozilla Thunderbird, it has built in RSS reader, but found no way of importing/exporting my OPML file.
Randy: Built-in RSS reader can mean a lot of things. Unfortunately, most of those things are not very useful. I've been playing w/ Sauce Reader this last week. I'll report-in very soon. It's pretty awesome!
Steve Rubel: Gmail has added Atom web feeds, a format that's akin to RSS. The feeds include a summary of each new message in your Google email.
Randy: The feed seems to be Web forms authenticated, which won't work w/ many aggregators. I don't have this feature in my Gmail yet, so I can't validate if HTTP Authentication will work.
Danny Ayers: Tonight I planned to get to the bottom of problems I encountered last night (while tired), working on a minimal SOAP-based (WSDL-generated, C#) Atom client. My starting point was the marvellous material put forward by Sam and Randy [cut]. But trying to SOAPily POST to Blogger I got all kinds of errors.
Randy: I've encountered the same issues on the numerous times I've tried writing clients. The problem is rooted in the complexity of the Atom SOAP implementation. A large part of the complexity lies in trying to reproduce the RESTful feel in a protocol that has RPC roots. Most of the SOAP tools work well w/ RPC flavored SOAP and don't work at all or not well w/ RESTful SOAP. That's because SOAP was an RPC before it was RESTful.
That said, the problems Danny is having are not SOAP related. Blogger SOAP requires a BlogID. I assume the REST implementation would also require a BlogID. Typepad SOAP requires you know your password. I assume the REST implementation would also require knowledge of your password, or at least I hope it does ;)
After a slow start, getting less than 0.5 CPC, I've got my CPC up to between 1 and 15 CPC. That's comparable to Adsense. But the best part is that advertisers are specifically bidding for placement on my Website, which means the price will increase as more advertisers find value in adversiting on my Website. Now, of course, this could all change very quickly, but I'm getting very happy w/ Bidvertiser.com. I still think it's too difficult to bid and haven't bid on any ad real estate, because it's not trivial enough.
Update: The 15 CPC never realized. Bidvertiser doesn't actually pay the amount people bid, rather they pay one cent more than the second highest bid. That sort of makes Bidvertiser less useful.