It’s just data

403 Terrified

Ryan Tomayko: I have very little interest in improving my writing to better serve the Digg “community”.

Perhaps it is time to consider expanding your regex.

Unobtrusive OpenID

I’ve implemented a small amount of glue code that calls out to the JanRain Python OpenID library.

My assumptions are that if your website is OpenID enabled, (1) you want to authenticate, and (2) you don’t want anybody else to be able to “spoof” your ID.  With these assumptions, I can eliminate the need for anybody to “login” to my site.


Examining JSON

I find it amusing that in all of the recent JSON[-RPC] vs XML[-RPC] discussion, I see a lot of opinions, but I don’t see a single instance where the actual wire level bits were discussed.


Rhetorical Question

Dare Obasanjo: How come those errors weren’t pointed out by the validator at

The Feed Validator hasn’t supported Atom 0.3 for quite some time, and it clearly says so.  But I’m assuming that you know that, and you are asking why.  The reason is quite similar to the reason why Atom 0.2 and Atom 0.1 aren’t supported.


Five Things

I was tagged by Jim...

  1. I can willfully stop hiccups
  2. I can make a reasonably loud cork-popping like sound
  3. I have an irrational fear of heights
  4. I have a persistent ringing, but only in my left ear
  5. I only ever dated one person

Outgoing tags: Dave, James, Jim, Ken, Michael


In a matter of a weekend; rusty on COM, unfamiliar with the Mozilla codebase, class libraries, build process, trace facilities, test suites, and debugging aids; and therefore armed only with make, vi, and fprintf; I came up with this modest patch against Minefield HEAD.


Eternal September

John Panzer: What would happen if every AIM user name were OpenID enabled?  What if you didn’t need to even to register to use UnCut Video, AIM Pages, or AOL Journals?


Steve Jones: To use a physical engineering analogy, you check that the wing is put on properly as soon as it is attached, not by looking out of the window at 30,000ft to see if it is still there.



Gran Paradiso

The RewriteCond instructions in this article will be out of date with the release of Firefox 3.0.


MSFT += Jon Udell

Jon Udell: My last day at InfoWorld will be Friday Dec 15. On Jan 15, after a month-long sabbatical, I’ll become a Microsoft employee.

Prediction: despite the fact that this “acquisition” of the unique “Udell brand” will likely cause Microsoft to change more than Jon himself will; what (quite unfortunately) will change most of all is how most people will interpret Jon’s insights.  Thankfully, Jon’s established track record prior to joining Microsoft and the quite evident freedom of expression that Microsoft permits its employees will mitigate this somewhat.

Best of luck with this new endeavor, Jon.

Better Living Through Gravity

Mary Gardiner: I gave a thirty minute presentation at the Open Source Developers' Conference yesterday about the Planet software and the associated communities and conventions, focusing more on the latter since one of my reviewers suggested that the social aspects are more interesting than the code. My slides [PDF format, 2.1MB] are now available for the amusement of the wider public.

First Line of Defense

Michal Wallace: Im sitting here watching sendmail process a mail queue on one of my machines. There’s 846 messages in the queue. It’s on number 5, and it’s taken about 10 minutes so far for just this one message: it’s just sitting there waiting to connect to a server that’s very obviously not answering. Every couple minutes or so it tries another mail server for the same domain.

That machine would happen to be the one that I’m on.  I certainly don’t envy Michal’s job.  One of the recent issues was that he had to deal with was that some spammer decided to generate messages that purported to be from addresses, and the bounce messages alone that this caused were enough to gum up the works.

That’s why I have a lifetime account at cornerhost.

HOWTO Embed MathML and SVG into HTML4

This is a proof of concept.  I’ve gotten it to work on Firefox, and believe similar techniques would work on Opera and nightlies of WebKit.  It does not add MathML or SVG support to browsers that don’t already have it, it merely enables browsers which already recognize these grammars in XHTML5 to render similar structures when found in HTML4 documents.


Inch by Inch

Ian Hickson: I’ve changed the spec to allow a (meaningless) “xmlns” attribute on the root <html> element, for the same reasons /> is allowed on void elements now. I don’t think it’s a particularly useful thing, but I’m curious to see what people think. (Like anything in the spec, we might remove it in due course, based on real world experiences with the spec.)


Abdera DigSig and Encryption

James Snell: Digitally sign and/or Encrypt Atom feeds and entries with generally very little effort

Update: Part 2

Rails Uptake in IBM Customer Environments

James Governor: IBM DB2 Express has had 100k downloads. 20k of those are the Ruby on Rails toolkit. In case your math isn’t so good that is 20% of the total number of downloads from IBM are by potential Rails developers. [via Stephen O’Grady]

Just under one year ago today...

Equal Time

In this echo chamber, it is important to listen to the other side.

What puzzles me is the one size fits all mentality I see everywhere.


The White Pebble

Ian Hickson: Regarding your original suggestion: based on the arguments presented by the various people taking part in this discussion, I’ve now updated the specification to allow “/” characters at the end of void elements.

Now that pebble has been cast, the landslide is sure to follow.


Propagation Delay

James Snell: Fortunately, there is a large and rapidly growing group of folks here that Get It and they’re becoming increasingly more vocal.


And frankly, I’m getting plenty of requests for advice.

Meet the New Boss

Ian Hickson: For what it’s worth, HTML5 requires text/html to only be used for HTML, and defines exact parsing rules, and requires XHTML to only be sent with XML MIME types, and requires that an XML parser then be used, making the whole “send XHTML as text/html” thing completely invalid, and making the whole “but XML is stricter” argument false at the same time.

The more I look at HTML5, the more puzzled I get.


Atom AutoDiscovery

James Snell: In an attempt to wrap up the details of the long dormant Atom autodiscovery draft, I have taken over the role of editor and have resubmitted the draft to the IETF as an individual submission.

Cool.  James has also expressed a willingness to work together with the RSS Advisory Board, which has begun work on their own document.


Feedback on XHTML

Anne van Kesteren: I hope we can all agree that sending XHTML as application/xhtml+xml is silly

Ah, the sweet smell of flamebait.


Detecting Not Modified Reliably

Recommendation to feed producers: don’t send Etag and Last-Modified headers unless you really mean it.  But if you can support it, please do.  It will save you some bandwidth and your readers some processing.

And to feed consumers, while supporting these headers can save you bandwidth, computing a hash on the content may save you processing time.  I’ve now implemented this for Venus.


PHP: A Language Implementor’s Perpective

Patrick Mueller: Julian’s presented on static analysis of PHP, specifically, how static analysis can be used to identify security problems.  Graeme’s presented on looking at the PHP runtime through the eyes of someone who has been developing Java VMs for the last decade.


Not By Example

Anil Dash: That site should probably have a sitemap at some point.

How would we know?

The H stands for Hyper

Everybody seems to be linking to Pete Lacey’s The S stands for Simple.  And for good reason.  In addition to being quite funny, I can honestly say — having lived through it myself — that it is quite accurate.  But as Paul Harvey is wont to say, it is time for the Rest of the Story (no pun intended).


Forging connections

Paul Downey: So Planet Interwingly just saved me 120CHF!

While I am pleased to have played a small part in this, that isn’t what I had set out to do.


Open Source Duke

One of the fun things Sun did earlier this week was to open source Duke, the Java mascot.  But what was made available is files in somewhat bloated binary, and often product specific, formats.  This can be corrected with open source tools.


Spider Threads

Joe Gregorio: This branch includes httplib2 to handle the fetching. I have added a new config option ‘spider_threads’ that you can set to the number of threads you want to use when spidering. The default is 0. When spider_threads is set to zero httplib2 is not used and feedparser is used to fetch the feeds. Note that the threading only applies to HTTP(S) URIs, all other URI types are done in the main thread and handled by feedparser. All parsing is also handled only in the main thread.

I’ve merged this work into my branch.  While there is more work to be done (e.g., better reporting of status codes, IRI support) a rather dramatic speedup is possible with this option, even with a relatively low setting, like 5.

You can see this in action by viewing my log file.


Apparently, Java™ is now Free.  Or will be by 1Q07.  When everything settles down, the world won’t look all that much different.  Except that some of those that who didn’t even realize that they had a hankering for Iced Tea will have found another perfect Pepsi.


That’s Not Write

I learned something new today.  I’ve known for a while that pretty much all the browsers don’t implement document.write when found in the context of XHTML documents — even in the case where both the enclosing document and string are separately well formed.  The solution is to use createElementNS instead.  So far, so good.  The only piece left to the puzzle is where to append the child that you created.



Frank Hecker: Adobe has now taken the code for that AVM2 virtual machine implementation and released it as open source through the Mozilla project as Tamarin.

If we take as a given that this runtime will be ubiquitous, debugged, and performant; and couple this with the recent trends to retarget popular languages to run on a common VM, then why not port some of these same languages to a runtime which actually was designed for a dynamic language?

MeMeme Twistie

I put a little twistie on the MeMeme list in Planet Intertwingly.  The display uses Unicode characters, so you may have to install a font to see it.  Additionally, the server code now caches the pages for both performance and robustness reasons.


Open Media Profile

Anil Dash: With the launch of Vox, bloggers have wanted to include data from all their other services, like Flickr, YouTube, iFilm, PhotoBucket, and many more. But it doesn’t make sense to reinvent the wheel or create a proprietary API for this feature. It should just be present for any service that wants to make use of it.

To solve the problem, we’ve created the Open Media Profile. It’s based on the Amazon A9 team’s work in leading the OpenSearch community, along with Yahoo’s work in leading the Media RSS community, and Google’s work in creating the GData set of APIs. While we’re proud to integrate all these technologies, we should point out how much we’re not inventing. In many ways, this is a mash-up of many of the most popular APIs on the web.


Leonard Richardson: Are all these architectures mutual opposites, or points on a gradient?

My answer: neither.  But before we get there, indulge me for a moment.


One-way Discovery


Bloglines Team: Viewing an RSS-capable page that you want to subscribe to? Just click on the big orange RSS button in your Firefox toolbar. You’ll be automatically subscribed to it as a Bloglines feed.

Except on Bloglines hosted weblogs, like Sanjiva’s.



Leonard Richardson: The “POX” in HTTP+POX basically means “no SOAP”, but what specifically don’t HTTP+POX people like about SOAP? Is it the complexity of the SOAP message itself? Plain old XML can get pretty complex too. Or is it the fact that the SOAP message contains information (like the method name) that they think should go in the URI?

The closer you look, the less obvious the distinctions are.



I’d like to know how the ODF-converter blog was created, as it is so tantilizingly near being valid that there clearly is some significant attention to detail going on here, likely with some last mile problem.  I’m pleased to see that there is a valid Atom 1.0 feed I also see that they also provided a valid RSS 1.0 feed for people who haven’t upgraded their aggregators in the last few years.


REST Web Services

Leonard Richardson: I’m writing a new book and it’s called REST Web Services. It will be be the only book of its kind, and everyone should buy it who writes computer programs that work over the web

Benched, again

Nick Sieger: So if you’re living on the edge using the newly minted ActiveResource fetching XML from remote resources like a champion, you just got benched as soon as you tried to fetch XML that had normalized entities inside.

REXML ticket #44.


Planet Webtuesday

Planet Webtuesday is a aggregator of member blogs.  One cool feature is that members can add new feeds to the list simply by editing their member page to include a wiki link to a feed along with the word “feed” in the link description.


Pundit’s Monitor

Elias Torres: I spent the last three days coding what we set out to do in the first place: to create a political blog monitoring tool

Validation using Firefox

Subscribe to this feed using validate:

import os, sys, urllib
os.system('firefox' +

Upgrading to Edgy Eft

Mark Pilgrim: Ubuntu Edgy is the first version of Ubuntu that symlinks /bin/sh to /bin/dash instead of /bin/bash

Users of mts-client_0.9.6c-7_i386 may wish to

sudo perl -p -i -e "s/\/sh$/\/bash/" /usr/lib/mts-client/2.6/*

XHTML, as practiced

Tim Berners Lee: The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn’t work.

Nor, apparently, did the attempt to get people to separate attribute names and attribute values with an equal sign as Firefox, IE, and Opera all display this blog entry just fine.  (Can somebody test this for me in Safari?)

This common behavior isn’t reflected in the WHATWG draft.

I am growing increasingly of the belief that one of the ramifications of driving towards “Radical Simplification” is that one must plan for, and accommodate, those that use simple text editors and templates.


It has been three months since my 25th anniversary, so I’ve been with IBM for 25¼ years.  I was pleased by the responses I got to that post, but have been surprised by how many companies view relocation as either a hard, or even a soft, requirement.

However, so far one company has stood out: WSO2.  They are geographically disbursed, committed to open source, and focused on wire level protocols.  What’s not to like?

I’d like to see increased focus on scripting languages and REST, but I’ve worked with Sanjiva before, and in the context of a small company, I’m confident that one person can make a big difference.

Failing to Fault Correctly

Simon Fell: no, there’s still no magic switch to allow PocketSOAP to parse stuff that looks like it might be XML, but isn’t XML

Ruby 2.0 -= Continuations?

I see that the rumor that Ruby 2.0 is dropping continuations is spreading.  Can anybody provide a definitive reference?  The best I can find is this, and the decision doesn’t seem quite as final to me.


Markup Language Validation Framework

olivier Thereaux: the idea to make a framework that would manage test suites for markup language validators and conformance  checkers was born.

I’m in.

I’d also like to encourage the likes of Brian Jones and Rob Weir to consider participating.

I don’t care where the materials are hosted.  I don’t believe that specifications can be measured by weight alone.  I don’t believe that the gold standard for interop should be either works with Microsoft Office 20xx or works with Open Office 2.x.y.

Instead, I believe that producers of documents should be provided with the tools necessary so they can voluntarily self-certify that the documents that they produce are compliant, if they should chose to do so.

Venus/WordPress integration

Morten Frederiksen: Prompted by a question on the planet development list I finally got around to putting together a plugin that would power a WordPress installation through the use of Planet Venus.

I integrated a version of the patch.

Update: I found the remove_accents method to be amusing.



Planète Web Sémantique

One of the more innovative uses of Venus is Planète Web Sémantique.  This web site focuses on French language posts on the topic of the Semantic Web.  By default, posts that are not in French and are off-topic are hidden via JavaScript, but this can overridden.

What makes this innovative isn’t the JavaScript, but how the metadata is gathered.  This is best illustrated by a doing a view-source on the generated Atom feed.  Entries are annotated with xml:lang attributes, and many sport a <category term="WebSemantique"/>.

The key is that this data does not depend on the original authors inserting it there.  Instead, it is inserted via filters: guess-language and categories.xslt.

IBM Blogroll

Michael O’Connell: I am glad to see this new IBM-wide blogroll, and continue to be impressed by IBM’s adoption of blogs, as well as podcasts and other communications tools.

Some feedback:

Perhaps somebody could come up with a “IBM” theme/stylesheet for the site?  Also, if there is a more central location that this should be hosted, I’ll gladly redirect this traffic there.

Update: I was able to snarf a theme.

Ego searches

Robert Scoble: on my ego search for “scoble” is much better than Google ( lists my current blog first, Google lists my blog that I haven’t posted to for a year first).

For me, this is reversed.  Google lists this blog first.  Live misses this blog entirely — I haven’t found it at all in the first ten pages.

Integrity on the Web

Gordon Weakliem: I don’t think that simply publishing to the web is sufficient in itself.

What Gordon wants is called non-repudiation.


Firefox XHTML innerHTML quirk?

Test case

Adding more brackets to the tail end of the string results in the last two being removed.  Adding a space at the end makes the brackets show up.

Syndication Interop

Rob Sayre: Good job, everyone. This made my day.

Try this feed.


A bit of quasi-coherent quasi-incoherent rambling on this gorgeous Friday afternoon.


License Wish

Patrick Mueller My biggest issue is if someone used some art which identified me, or even worse, other folks, in a way I, or the person identified, wasn’t happy about.

Bingo.  I’ve mocked the CC in the past, but quite frankly, I’m not happy with any of the popular license choices.  My focus isn’t on maximizing my revenue, avoiding becoming “exploited”, or even changing the world; instead it is on minimizing my obligations.

Quite often I have people asking me if they can make use of my code — all the while assuring me that they will give me my due credit.  I wish there was a license that says the opposite; credit me only if you feel you must, otherwise if you take the time and effort to remove all identifying characteristics from the work, feel free to modify, use, and perhaps even sell it as you see fit.


DeWitt Clinton: And thus I find myself happily one week into my new role at Google.


Generation e-gap

Jim Jagielski: My son asked me if I thought that, in 30 years or so, my generation would have the same problems with that future technology that the older generation of today has. I don’t think so; sure it will be more advanced than what we have now, but we’ll understand it, at least the core principles of it. It will be an evolutionary change, not a revolutionary one, and the former is much easier to handle.

The more I look at generational changes, the more I am astonished by the ability of people to simultaneously (1) accept the rage of change in the past, and (2) presume that what is now ubiquitous will remain so.



There’s a new validator out there (at least new to me), that not only validates HTML, XHTML, WML, XML, DTD-Schema, and Google Sitemaps, but also is an “Advanced” Feed-Validator for RSS and Atom.  It does appear to be pretty good


Regression Testing for Python 2.5

Yesterday, Python 2.5 was released.  That means that it is time to find out how good the test coverage is on the various tools I care about.


Text Constructs

Ben Smedberg: Announcing the release of the Atom 1.0 plugin for Wordpress, version 0.5

Looking at the output, it is valid.  Bravo!

Looking closer, the plugin marks titles as html as they might contain markup.  Most don’t.  It marks content elements as html as they might not be well formed.  Most are.  And it uses CDATA, even though the text might contain the characters ]]>.  Admittedly, most don’t, but they might.

Last time I checked, PHP has the ability to do if-checks.  :-)

This might be overkill, but I’m just throwing it out there for consideration.  text.phptext.phps.  Test cases are near the bottom.

FeedValidator on FastCGI

If you spot any problems, please report them; meanwhile feel free to use the W3C shadow.

XPath Sifter

Just for grins, I created an xpath_sifter filter for Venus.  As the name suggests, it allows you to filter for the existence or non-existence of any XPath expression.  You can also find an example of how it would be used in the tests/data/filter directory.


OpenSearch Description Validation

Yesterday, DeWitt Clinton IM’ed me that the feed validator is already proving helpful in working out an issue with an OpenSearch description document.  While this is cool, knowing that this code is actually being used motivated me to make a sprint to complete my first pass.


Dominion and Sovereignty

I enjoyed the humorous exchange between Tim Bray and Leon Spencer.  While my response isn’t going to be as entertaining, I suspect that it will be a bit more educational.


OpenSearch results validation

Given the relaunch of OpenSearch, and given that OpenSearch results can be included in feeds, it seemed time to spend some of my recreational programming time on adding Feed Validator support for the OpenSearch namespace extensions.


Kudos to IE7

Sean Lyndersay: We have invested a great deal of time in hardening IE7 across the board, and nowhere more seriously than in our RSS features. It is an ongoing process, however, and we deeply appreciate the efforts of those in the community who have developed additional security tests and allowed us to use them.

When the IE team screws up, it makes front page news everywhere.  If life were fair, items like this one would get equal coverage.

Facebook uproar

danah boyd: As Fred Stutzman noted, Facebook Broke Its Culture this week. In an attempt to provide something that would make people’s lives easier, they created a privacy trainwreck.

Both my kids have Facebooks.  Both my kids don’t like the Mini-Feed changes.  But what I hear from my kids is a quite different story than what I see out on the blogosphere.


JVM futures

Charles Oliver: Once we’ve solved JRuby’s issues, why not find a way to raise all ships? Support for invokedynamic, open classes, and closures at the VM level? Hooks for code generation, alternative typing systems, and deeper threading, IO, and memory integration? Seamless cross-app connectivity for dynlangs + Java EE with all the tasty agility we’ve come to love?

JPerl6 anyone?  With Classpath+[Kaffe|GCJ|Jikes RVM] or Harmony or Sun’s ongoing process, one significant inhibitor has been/is in the process of being removed.

What impresses me about IronPython is its voluntary compatibility with CPython.  JRuby seems to be heading in the same direction.

Feed Security

James Snell it’s time to start talking a bit about what those specific vulnerabilities are.


Those that haven’t been listening up to this point, probably should start listening now.  These vulnerabilities are not new.  I  don’t know anybody’s tool who isn’t affected.  Security is a continuous dialog, not a destination.

Wordpress Atom Plugin

Ben Smedberg: After having mucked yesterday with my WordPress to add threading to my Atom feed, I found there’s a better way. I’ve taken James Snell’s Atom 1.0 templates, fixed them up a little bit, and packaged them as a WordPress plugin (instead of uploading them directly into the WordPress install, which makes it hard to upgrade WordPress) [via James Snell]

MeMeme Deployed

The net effect of this function is to pluck items out of the raging rapids that a river of news can often become.  These items tend to reflect subjects that are important to the people that you subscribe to.  At your leisure, you can go back and check on the cosmos of these items to see what people outside of your immediate subscription list are saying about these items.


FOAF OnlineAccount support

Elias Torres: if you want to get some of the OnlineAccount magic, add the following to your foaf:Person: …

I’m pleased that Elias wrote the code.  Somehow, he must have forgotten to commit the testcase for this function.  :-)

No matter, I’ll rectify that.  First, I took Elias’s foaf file.  Then I made a small test config.ini.  Finally, I added the following code:

def test_online_accounts(self):
    feeds = config.subscriptions()
    self.assertEqual(['' +
        ''], feeds)

Now, the code that Elias wrote will continue to work.


DeWitt Clinton: I would like to invite everyone to visit the new website for the OpenSearch community

MeMeme 2.0

Gabe Rivera: filters based on the editorial approach used for Techmeme/memeorandum don’t work well outside of a few topic domains (like politics and tech), because cross linking is typically too sparse to produce a compelling mix of news.

Luckily, I did not know it can’t be done.

A small tweak to the algorithm (going from one post one vote to one site one vote) produced much better results.


Stream Editing

As discussed on Nick Bradbury’s weblog, guids/ids are the ideal way to identify duplicates, except of course for when they don’t work.  Like, for example, in this feed.



Ross Mayfield: Cue up not what is popular, or what the people I subscribed to produced.  Cue up what my social network has found interesting.

Herewith, a simple demonstration of what aggressive canonicalization can produce.


Venus Reading Lists

Jeff Waugh [via IRC]: what do you think about configuring reading lists the same way as feeds, and sniffing their content?


Venus Filters

Avi Bryant: With Dabble, anyone can now import data from a feed, combine it with data from elsewhere, restructure and filter it as needed, and push it out as another feed so the process can repeat.

What Avi is describing is right on target.  But the reality is that in today’s world you need to deal with feeds that aren’t well formed.  Are in multiple feed formats.  Consist of tag soup.  And may contain evil.


Congressional Werewolf

One of the guilty pleasures at FOO is the late night Werewolf games, where I got to meet Suw Charman.

I return to find that a bunch of villagers are preparing to lynch Senator Ted “the Internet is a series of tubes” Stevens.

Fun Stuff.

Kids Say the Darndest Things

Bill de hÓra: “Dad, will you turn on Google. I want to play miniclips

Sounds familiar.

Nothing's Final

I’m enjoying Tim’s Ruby Ape Diaries, but really wish he had comments.

In any case, Tim: take a look at another way to do it.

Feed Security and FeedDemon

Nick Bradbury: In the future I plan to write about how the specific vulnerabilities were resolved, but I don’t want to do that until I’m sure that other feed readers have patched them. In the meantime, if you’re the known author of a feed reader and would like details on the solutions, please feel free to contact me - I’d be happy to share the logic behind the fixes.

Atom and Land-Grant Universities

At the request of Kevin Gamble, I gave a presentation today to the Extension Committee on Organization and Policy (ECOP) of the National Association of State Universities and Land-Grant Colleges (NASULGC).  The latter being a consortium of 75 colleges.  The former having recently deciding to standardize on Atom 1.0 for the content aggregation system that they are working on.


APP for WordPress

Elias Torres: Simply drop app.php into your root wordpress install directory and have some Atom/APP fun.

Update: now works with PHP4

Themes for Planet

The next feature I added to Planet Venus (though it could easily be backported to classic Planet) is that of themes.


Full Disclosure

Charles Miller: Often, full disclosure is explained as a way to make sure vendors are responsive, using “naming and shaming” to force a faster patch schedule. This is certainly one aspect of the practice, but far more important is the fact that it gives those people who might be running the vulnerable software enough information to make informed decisions about their security. [via Stefan Tilkov]

If you are involved with the development of any tool that consumes feeds, I encourage you to read James Snell’s recent post.  It is clear now that giving people months to react only advantages the wrong people.  So in early September, I plan to create a page on the Atom wiki where users can record how responsive various feed consuming tools are to the tests that James has created.

One thing for sure, FeedDemon will rank highly.

Quack Squared

In response to this, a suggestion:

uri = AtomURI.check alleged_uri
return report_error(uri) unless uri.methods.include? :path

request =

First, I believe that it is important that the error recovery impacts the flow of meaningful text to the least extent possible.  The original version might as well have used exceptions.

Second, and in the spirit of duck typing, consider checking for a required behavior or characteristic instead of checking on the class of an object.  The above code is superior to the original in that it can handle the possibility of non-string messages.

Venus Rising

Today I’m making available Planet Venus, which can only be described as a radical refactoring of the Planet code base.

The reasons for a radical refactoring are several.


Time for a new HTML Validator?

Ian Hickson: If we truly want to make authors have better tools for making their content more compliant, a start would be having the W3C invest more genuinely in its validators. The W3C HTML Validator is one of the user agents that ignores the Content-Type header when it comes to HTML vs XHTML; filed as bug 1500 about a year ago, still unfixed.

Saying that the validator is somebody else’s problem only works if you don’t believe that the problem is important.


Blogger Update

Ionut Alex. Chitu: The default format of the feeds will be upgraded from Atom 0.3 to Atom 1.0.

Perhaps it is time to consider updating sitemaps.

Content is King

Tony Baer: For much of the corporate world, documenting who has access to what version of the truth and when is becoming a matter of survival

Speak Softly Love

Anant Jhingran: We are building something called MAFIA — which stands for Mashup Fabric for Intranet Applications.

Must See TV

Let’s face it, while Jon Stewart often smacks one over the fence; most nights the news simply doesn’t cooperate and he has to settle for getting a base on balls alone.

Today, the news is fast, low, and right over the plate.

Attack Delivery TestSuite

Last week, SPI Dynamics presented a whitepaper on this topic.  Underreported at the time was the cooperation and dedication that a number of authors of popular feed reader software have demonstrated to date.  Also underreported is the difficulty of reliably detecting the presence of JavaScript in feeds.  If you are developing software that consumes feeds, please get a hold of either James or myself and we will share these tests with you.  Contributions of additional MIT licensed tests are, of course, also welcome.



Dion Hinchcliffe introduces WOAAlex Bunardzic prefers ROA.  Both articles are excellent — as far as they go.

My problem is that they don’t go far enough.  They don’t address what has become pretty much unthinkable in these layers of abstractions.


Ruby rate of growth drops 800%

David Heinemeier HanssonTim O’Reilly recently shared book sales showing Ruby jump another ~700% (on top of the 1500% last year) to become bigger than Perl in addition to being bigger than Python.

Feeds As Attack Delivery Systems

Niall Kennedy: Robert Auger and Caleb Sima of security firm SPI Dymanics gave a 50-minute security briefing on RSS and Atom feed vulnerabilities at yesterday’s Black Hat conference in Las Vegas. Their talk, Zero Day Subscriptions: Using RSS and Atom feeds As Attack Delivery Systems detailed how many blogging systems and feed aggregators do not block against malicious code insertion by third parties and often run at elevated permission levels on a user’s machine, exposing an entire operating system to a potential scripting attack.

It would be useful if specific examples were included, otherwise this is merely needless defamation.  My experience is that the companies listed are ones that respond quickly, once notified of the problem.

Update: A whitepaper on the exploits, including example feeds, is available from SPI Dynamics.

atom icon

If you are the type of person who tends to update their Weblog’s HTML template to include a link to your favicon, consider updating your feed template too.  The atom:icon you select “SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size”.

Bloglines will already display this information discretely on the top right (example).  Others may use this in a left pane list of feeds.  By including the following in my Planet template, I have this icon preceding every entry in Planet Intertwingly:

<TMPL_IF channel_icon><img src="<TMPL_VAR channel_icon>" class="icon"/></TMPL_IF>

John Panzer

John Panzer: The slides from my RSS/Atom Feeds Best Practices talk from lunch today are up now.

Feed Access Control


Python vs Ruby

Jeremy Zawodny: Should I Learn Python or Ruby next?

When I learned Python, my use of Perl dropped dramatically, but did not quite go away.  Basically, if it could fit on a page, I would tend to write it in Perl; for everything else, I would use Python.  Needless to say, one can do a lot in one page of Perl.

Since I learned Ruby, my usage of Perl for new stuff has essentially been eliminated.


Continuous Listening

Christine Herron: Even the most intelligent design will miss the mark, if community members are not involved in setting purpose and norms. This implies that a healthy community will bake in “continuous listening,” and its purpose and norms will evolve over time.

This reminds me of Martin Fowler’s characterization of the Web 2.0 Development Model: There is this culture of just give the product to the customer. Then see how they use it. Ship the product, then gather the requirements. The opposite of the traditional process. Fire, aim, fire, aim. As long as the bullets are cheap.

REXML on Expat

Tim Bray: Ruby has a kind of stand-offish attitude towards two of my favorite pieces of infrastructure, XML and Unicode. REXML provides a nice API, but, as Sam Ruby discovered, has big-enough holes that you can’t point it at Arbitrary Internet XML and hope for good results.

I talked to Tim about this at OSCON, and took a look at it on the plane ride back.  It also gives me an opportunity to demonstrate something I only talked about previously: namely converting a SAX parser to a pull parser via continuations.


Sushi with Don Box

As I was already in the Pacific north-west, I took the opportunity to meet up with Don Box, and a number of his friends, including Chris Anderson and Omri Gazitt.  We talked about a number of topics, like Longhorn, Indigo, and Open Source.  Both the toro and the people made this side trip well worth my time.


OSCON Favorite

This year’s OSCON set a new high bar.  R0ml rocked, Damien was entertaining, and meeting people too numerous to mention were all key factors, my favorite presentation was by Rasmus Lerdorf.


Beyond Blogging

Dave Johnson: here are the slides: TriXML2006-BeyondBlogging.pdf

Planet Planet

Planet Planet: The first official release of Planet is 2.0 — for all the wrong reasons! — available in tzr.bz2 and zip formats.

Quarter Century Club

Today completes my twenty-fifth year with IBM.

That was fun.  Anybody have any suggestions for the next 25?  ;-)

Difficulty: no relo

NPUC 2006

My presentation at NPUC.

For those interested in speculation about further into the future, the name of the book I couldn’t quite remember on my feet was Rainbows End, as recommended by Cory Doctorow.


I’ve wanted to add an HTML Diff to Planet for some time, and the notion itself raises a number of interesting questions.

In my investigation, I took a peek at Aaron Swartz’s HTMLDiff, which turns out to be a thin wrapper around Python’s difflib.  My first test was to try taking a single word and make it bold: before, after.

Easy enough?  See for yourself.

Bloglines Rocks!


I’ve given Bloglines a fair amount of grief over the past few months over their pathetic-at-the-time handling of Atom feeds.  I’m not ego-centric enough to believe that I got them to change – at most, I may have increased awareness of the issue to the point that the Bloglines team got around to addressing the issue slightly earlier than they would have otherwise.

But address the issue, they did.  I’m pleased to say, they flattened it.  They nailed it.


Queso Example

Wing Yung:

select ?price ?lat ?lon ?time
where {
  ?entry <price> ?price ;
    <latitude> ?lat ;
    <longitude> ?lon ;
    <time> ?time .
    filter (
    	?lat > 5 && ?lat < 10
    	&& ?lon > 7 && ?lon < 12
    	&& ?time > "2006-07-17T00:00:00"

Roomba Repair

Yesterday evening, a box arrived.  In it was a Roomba, a brick, and


Stop That

Mike Champion: <title>The &amp;quot;Halloween Problem&amp;quot; for XML APIs</title>

Please stop doing that.  In fact, look here.  Same problem.

I was told that it would be fixed towards the end of this month.  That was in early May.

QEDWiki demo

Demonstration of QEDWiki using DB2 V9/XML and Atom.


Elias Torres: Queso is a J2EE-style application that implements the Atom Protocol specification currently in draft-09 atop an RDF server called Boca (the restaurant’s name is Boca Grande, a.k.a. Big Mouth) using Henry Story’s Atom OWL for the model and of course opening up a SPARQL endpoint to query the contents the store.  All of that of course it is just the beginning, we will be creating more compelling demos that bridge the Semantic Web and Web 2.0 some of which will include RDFa techniques.

Can it do this?


Is That Your Final Answer?

Tim Bray: the increase in the total fetch count is for the moment unexplained

Theory: Perhaps some are subscribed to which is returning a 302 a.k.a. a temporary redirect.  This means that consumers will continue to fetch the original address, and then follow the redirect.  Each time.

More likely, it is due to consumers not properly interpreting a 301 status code.  Radio UserLand used to have this problem, but that particular tool has long since been fixed.

Apparently, others haven’t. Despite having coded a permanent redirect over three months ago, I still received 69,142 requests last week for feeds in one of several RSS formats.

I would think that three months is more than sufficient for those with a clue to catch on, so accordingly, this is the last entry that such readers will see.

Another Month

Jennifer Michelstein: <title>Academic features: citation &amp;amp; bibliography tools</title>

Deja Vu.


Open Clip Art Library [via Chimezie Ogbuji]

Also available via:

apt-get install openclipart

Collapsing the Stack

Werner Vogels: Yep, the best way to completely automate operations is to have to developers be responsible for running the software they develop. It is painful at times, but also means considerable creativity gets applied to a very important aspect of the software stack. It also brings developers into direct contact with customers and a very effective feedback loop starts. There is no separate operations department at Amazon: you build it; you run it.

Sounds like a very good idea.

Where this gets tricky is with dependences.  Trivial, but concrete, example:  Werner’s Atom feed contains (in part):

<summary><![CDATA[ … Q&amp;A … ]]></summary>

Over time, I would expect Amazon’s policy to advantage people who tend to shun dependencies (do I really need an RDB here?), complex frameworks (which make your life easier 95% of the time, but a living hell the other 95% of the time), and even those that avoid conveniences like IDEs.

SMS for Geeks

Liz McLean Knight: Instead of awkwardly typing on your phone’s keypad something to the extent of “cant find yr house” or “theyre charging a cover here at this venue,” try using server response codes!

For the Want of a Nail

_why: Camping is specifically geared for Architects of the Modern Age. Apart from that, its authentic wood-smoked hickory smell only attracts some feral cats. To these I say: mepw.

This should be fun to watch.


SVG vs Canvas

I ported my incremental Penrose Tiling from SVG to Canvas, and am at a loss to explain the difference in performance.  If you have an SVG and Canvas aware browser, give this a whirl and tell me what you see.

The issue seems to have something to do with setTimeout (both run virtually instantaneously with this small sample — it is when the image is rendered incrementally that the inexplicable slowdown occurs).  What is even more puzzling is that the difference in timings is about the same on both Firefox 1.5 and Opera 9.0.

Note: whichever is run second seems to get a minor boost from whatever initialization is already done, so be sure to refresh and try the tests in the other order before reporting results.

Dapper-Commercial Repository

ubuntonista: Canonical, Ubuntu’s parent company has announced the dapper-commercial repository, where one will hopefully find packages released by commercial companies (read non-open-source) for use by Ubuntu users. Right now, all the repository has is Opera 9, and RealPlayer 10. Hopefully as time progresses, we will see more software, like, say, Skype, that are useful to users presently, though they are not open source, in this repository.

What would it take to get DB2 into that repository?

Bloglines Edge Cases


Tim Bray: Sam Ruby tells me there are some lingering corner-case bugs; report ’em and I bet they’ll fix ’em

Let’s find out


Blame... Somebody

Steve Loughran: Last yearI blamed O/X mapping, this year, lacking that excuse, I have to pick on WS-Addressing and WSRF. Bit of a trend there. I guess if I switch to REST I will have to go after XML and HTTP1.1.

Been thereDone that.

Penrose Tiling

The Wikipedia entry on Penrose_tiling describes an L-system for generating an aperiodic tiling of a plane.  Just for grins, I converted it to SVG and ECMAScript; the results appear to work with either Firefox 1.5 or the Adobe SVG viewer.

"Just" a Technical Detail

DeWitt Clinton: I don’t really care if RSS becomes a generic brand name for content syndication, just like “Kleenex” has for tissues.  I think it is fine if engineers recommend to their directors, “we should support RSS in our applications.  Content syndication is what our customers want.”

Update: DeWitt has a follow up.



Repave Periodically

Bill de hÓra: I don’t have time to change OSes

My recommendation is that even if you don’t actually switch operating systems, it is still helpful to repave occasionally.


Podcast Category Shuffle

Scott Simpson: Please take the time to change your podcast feed as soon as possible. Please note that we will support the use of the old category names for the next few months, so there is no immediate deadline for making these changes. We will send another message before discontinuing support for the old category names.

The Feed Validator has been updated.

Update: The FeedBurner team figured out the mappings, and I've updated the Feed Validator documentation accordingly.


BoingBoing: I’ve been a Mac user since 1984, and have a Mac tattooed on my right bicep.


Christian Metts: By our best estimates, over 90% of the 550 people at RailsConf 2006 are using Apple laptops.

Non-conformants at the conference took two forms: leading edge (Ubuntu), and trailing edge (Windows).


Apparently, day 1 of RailsConf was merely the appetizer, as day 2 of RailsConf contained the entrée, or rather, the entrées.  I am particularly looking forward to Streamlined and ActiveResource.


People I met at RailsConf, and XChar related happenings


Feed Thread Standard

James Snell: I’m happy to report that the IESG has approved the Atom Threading Extension as a Proposed Standard.

Sculpting the Future

James Boyer: We’re adding support for the DELETE method, which is more reasonable can be done now that the return code will be available. One practical result of this is that you will be able to write an XForms that speaks ATOM. [via James Governor]

This is très cool from a “positive” epidemic point of view.


Agile Web development meets DB2

Edd Dumbill: As a result of following this article, you now hopefully have your first Rails application up and running against DB2. This article has only been able to touch on the aspects of Rails, but the benefits of its pragmatic approach to Web development to productivity ought to be clear.

Politeness Counts

Martin Dittus: I wonder what their developers are doing right now.

Forward Motion!

The Bloglines Team: As we continue to develop new features, small and large, we also make necessary improvements to existing systems. Expanding our support for the Atom 1.0 syndication standard is the latest of these. You may notice duplicate posts coming from atom feeds as we make the switch from the old to the new atom parser. But have no fear, these duplicates will fade away and soon be a distant memory.

Thank you for the upgrade, and thanks in advance for your consideration of these requests.


Hire Joe

Joe Gregorio: If you are unable to hire me please do me a favor and link to this entry.

Semper fidelis

Tim Bray: In the past few days I’ve been watching two debates on the subject of Unicode

This lead me to a morning full of exploration, where I learned quite a few thing about m17n, a term I had not come across before.



Sam Ruby has asked whether the WCF RSS Toolkit supports ETags which is really a proxy for asking whether WCF supports manipulating HTTP headers directly. In my conversations with WCF folks like Yasser &amp; Doug, the answer is that although the WCF RSS Toolkit doesn’t support ETags that this was due to time constraints than any limitations in WCF.

No, the question is more of a proxy for asking if the WCF RSS Toolkit supports caching.


Accidentally Closed

Openness is not a binary quantity.  Some things are intentionally open.  Some things are intentionally closed.  But more often, some things are accidentally open.  Or accidentally closed.


Inline SVG

Bench, Forest Gump Box of Chocolates Bench

How many browsers and aggregators support inline SVG?  Let me know if you see a little bench over there on the right.


Google Calendar and Open Search

Byrne Reese: For a geek like me, their documentation was actually fun to read.

Value of Being Predictable

I got a chuckle out of seeing this on internal email: Let me go ahead and pre-answer Sam’s first question: No, we don’t currently support ETags.



Robert Scoble: Did you miss that I turned into an international news story that has gotten more attention than everything Microsoft announced at its big TechED conference this week?

I’m not convinced by all of Robert’s answers, but I do think he asks some rather important questions.

Update: A day later, and it appears that Microsoft has figured out a way to make an even bigger story.


import urllib, feedparser
print len(feedparser.parse(u).entries[0].content[0].value)


300Python 2.2.3Red Hat Linux 3.2.3-54
666Python 2.2.3+Debian 4.0.1-4ubuntu6
666Python 2.4Red Hat Linux 3.2.3-49
666Python 2.4.2Ubuntu 4.0.1-4ubuntu8
666Python 2.4.3Ubuntu 4.0.3-1ubuntu5

Now, remove so much as one of those X’s in the file, and Python 2.2.3 on Red Hat Linux works just like the rest.


Clemens Vasters: empox v. (ĕm-pŏks)

  1. The act of adding POX endpoints to an application.

Will the application that is produced support ETags?


It looks like Share Your OPML’s top 100 list has blown a head gasket Update: It is back.  64 bit integer underflow error, perhaps?  Curiously, the site’s aggregator seems to be operating off of a completely different list of feeds.

This had been a good test of Planet (now it is merely a test of Cyrillic support)

Does anybody else publish a list of popular feeds in an export format?  TechnoratiBloglines?  It need not be in OPML.  Other formats like FOAF or XOXO would be fine.


Niall Kennedy: MSReadr is an information aggregator for all of the product team blogs across Microsoft’s Windows Live division. Search, Messenger, Mail, they’re all in there. You can view the latest news right in your browser, subscribe to one feed for updates from all of the blogs, or add the site’s OPML file as a reading list.

The site is powered by Python and Sam Ruby’s branch of Planet Planet. The domain name is missing an “e” because that’s the Web 2.0 thing to do.


Beware of the New Line

After all these years, two separate Python runtime library bugs affected me in one day.  This one caused the Feed Validator to blow up, but now has a workaround.


Sgmllib patch

The last place I figured I would be patching when I saw this bug was the Python runtime library.


River of NewsClips

While I am a fan of full-content feeds, bandwidth heavy approaches are not always appropriate.  As such, I’ve begun experimenting with producing summary pages which limit the length of each entry, and make other changes such as replacing images with links.


Database Formerly Known As Viper

Todd “Turbo” Watson: I’ve just linked you to the high-level skinny, but there are a few really cool features worth highlighting, including Ruby on Rails support.

Simple Things

Joe Friend: <title>Simple things like copy &amp;amp; paste</title>

A month later, and this problem still isn’t fixed.


Tim Bray: the notion of a championship hockey team from Carolina seems all wrong somehow

See the title up there?  That was my seat number.  Seated in kitty-corner in front of us?  Garry Bettman.

Planet Musings

Jacques Distler: Introducing my very own Physics-oriented “river of news”: Planet Musings. If you’d rather view it in your feedreader, there’s an atom feed, too

I like environments where contributions are cumulative.


BarCamp vs RailsConf

Decisions, decisions.


Elevator Pitch

Tim Bray: Stop the Metaphors!

Fully Disagree.  Metaphors are perfectly good thing to have, in a P.T. Barnum sense.  And, it is working.  Go with it.


Feed Validator Message Improvements

Zeyad Rajabi: At a minimum, our goal will be to always validate as XHTML 1.0 Transitional compliant code. For a basic blog we will validate as XHTML 1.0 Strict compliant code. For those blogs that use features where we cannot output Word supported CSS, our aim is to be XHTML 1.0 transitional compliant.

It certainly looks like there will be a lot more use of the style attribute in feeds in the future.


Starter Toolkit for DB2 on Rails

Antonio Cangiano: You can now download the Starter Toolkit for DB2 on Rails from alphaWorks

Feeling a Bit Dapper

Allison Randall: I just installed Ubuntu 6.06 ("Dapper Drake") on my shiny new linux desktop. I’m quite happy with it. It seems almost too easy. X works, the sound works. I didn’t spend hours tweaking the configuration. It just works.

The new install surprised me.  I booted off of “live” CD, saw that things were working, and went ahead with the install.  As I knew that was coming, that didn’t surprise me.  What did surprise me was the that at the end, I was simply informed that I could reboot into the system I had just installed.

What hadn’t occurred to me — even though it is obvious in retrospect — is that I had a functional Ubuntu system available to me — even during the install.

IRI support

I didn’t realize that James Holderness had stealthily launched a blog.  That’s sufficient reason in my book to add IRI support to Planet and UFP (note: this support is only available if Python 2.3 or later is used).

Oh, and James, cute use of internal entities.


Jacques Distler: Unable to leave well enough alone, I tinkered some more with itex2MML.


June Bug

Paul Querna: RSS Feeds of the search results are built in. You can sub to them from any reader


Oh, joy.  Markup in titles, and dates without timezones.

All Roads Lead To ... Abdera

Patrick Chanezon: I propose in this post to the ROME developer community to move the project to Apache, and merge ROME with Abdera, and Dave Johnson’s blog tools, in order to create a single coherent stack of Java tools to deal with syndication data.

Bleach Alternatives

Retaining style attributes when they are safe; per feed customization; and longer term thoughts to replace this mess with a plug-in based on Mozilla.


VP on Rails

Anant Jhingran: The challenge I faced was that the books and tutorials used MySQL, and I was going to do it on DB2, if I was going to do it at all.

Captcha this!

I’ve noticed an uptick of spam lately.  Not just on my weblog, but on a number of weblogs I follow.  Each time I do this, I adjust my defenses slightly, and the problem goes away for a while.


Re-syndicating vs sanitizing

Just over a month ago, Tim Bray pointed both to Jacques’ Atom Torture Test, and Planet Intertwingly. Regarding the later, he noted with evident delight that NetNewsWire was able to tell him which entries he had already seen due to the fact that Planet made an effort to retain atom:id’s.

Until today, it didn’t occur to me that those two were related.



Jon Udell: Now that we’ve shared our OPML, will SYO share it back so we can create and contribute our own data mashups?

Apparently, on the same day I reported that there were over three hundred people subscribed to TechMeme’s HTML page, every single last one of them, and a few more, unsubscribed from it, and subscribed to the XML feed.

While the intentions behind this particular change are innocent, the fact remains that SYO in its current state is essentially un-auditable.

Finding Feeds

At the moment, Share Your OPML reports that the 16th most popular “feed” is, an HTML page.  At the moment, the Universal Feed Parser can’t handle such “feeds” unassisted, so I added some code to my branch of Planet to enlist the assistance of feedfinder in such instances.


Dan Cederholm: Words I Can Easily Type With My Left Hand


Sniffing Titles

In RSS 2.0, HTML has not only crept into titles, but also into other nooks and crannies.  Can you put HTML in copyright elements?  The RSS Advisory Board says no. But CNet News does it anyway.

I’ve committed a change (with tests!) to the Universal Feed Parser which attempts to guess the content type of various RSS feed elements based on a few primitive heuristics.  I’m trying it against the Share Your OPML’s top 100 feeds list.

So far, so good.

Pick ONE

Nick Bradbury: So, may I suggest to anyone who offers multiple feed formats to stop doing this? Just pick a format - any format. If RSS does what you need, stick with it and dump your Atom feed. If you need the extra features that the Atom format offers, dump your RSS feed. Either way you’ll be fine, and your readers will be happier.  And if you’re just starting out, pick one format and forget about the other one. It doesn’t matter to your readers which one you choose, so there’s no need to agonize over the decision (and you can always switch to the other format later on).


This is also consistent with the Microsoft Best Practices.


Mark Nottingham: I’m trying HTTP Web Services to see if it will stick. The HTTP is just to disambiguate, for the benefit of folks with muddled heads like mine.

I can just hear it now... but, but, but, I’m using SOAP (or XML-RPC) over HTTP, doesn’t that qualify?  Um, no.

I’ve been using web services (lower case), but perhaps I should give WOA a try.

Intertwined Principles of Multicellular Computing

Steve Burbeck: In biology, the four principles stand together.  So should they in multicellular computing

I found the last paragraph jarring.  Why are “architecture” and “design” in quotes?



I was looking up one of my favorite links to pass along to a colleague, and got this instead.

Umm, it’s called GET.

Observer Effect

Mike Mariano: Uh oh, who just went red-dashed-underline on Planet Intertwingly?

It worked!  ;-)

Actually, that’s unfair.  The fact that anybody but me would read who I am subscribed to is a surprise to me.  But it has regular readers and dozens of subscribers.

Some are even using bloglines.

Vitriolic Trash Talk?

Tim Bray: I would have thought that making it a little less painful for GNU/Linux users to install Java would generally be regarded as a good (not huge, but good) thing—I know that Simon Phipps, Mark Shuttleworth, Rich Sands, and a bunch of other people worked damn hard on it—but instead (see Simon), it provoked a load of vitriolic trash talk. I’m disappointed.

First on Simon’s list?  Me.  Vitriolic?  Trash Talk?  You decide.


Planet set for first release?

Jeff Waugh: This looks sweet, but it (and the reading lists stuff you’ve been working on) is a great candidate for creating a new feature branch. I don’t think I’ll take these changes before 1.0, so until then, I’ll just have to skip some of the stuff in your repo.

If that means that 1.0 is imminent, that’s very good news.  Meanwhile, I’ve started providing tgz and zip files for easier downloading.  I’m not sure why I didn’t do this earlier.


James Robertson: I just had that conversation with a friend before he left for JavaOne. He’s frustrated by a number of things in Java, which all go back to the needs of the security model - his point being that it has less relevance for a server side application. I’m running this application on a Smalltalk server, where arbitrary code could be loaded in at any time. Here’s the catch though - only two people have permissions on the system. So in order to mount such a code loading attack, one of the two of us would have to do it. Hmm - seems unlikely.

/me affirmatively whispers Specialization.

FOAF Reading Lists

Danny Ayers: Ok, procrastination over, I haven’t time to look into how you might integrate this with PlanetPlanet, but that shouldn’t be difficult - the Python RDFLib (as used in Sam and co’s FeedValidator, no less) has had some SPARQL support for a while, not sure of the current status. But the interesting stuff only really starts after being able to read foafrolls - there’s all kinds of other info available in RDF that could be useful to a Planet-style aggregator (especially if you did FOAF autodiscovery/XFN/Geo tag snagging/hCalendar GRDDL on the blogs).

The version of Redland’s librdf that you get with Breezy (and Dapper, I checked) isn’t able to handle that particular SPARQL query.  But SPARQL is probably a bit of overkill for this particular application.

code, tests

Feel free to identify interesting data that should be made available to templates.

One line

Rogers Cadenhead: One line can cause an incredible amount of trouble, which is why every line in a spec has to be precise, thoroughly vetted, and developed within a framework for resolving disagreements and moving on.

One minor point of clarification, of little consequence.


Cooperate on Standards...

Danese Cooper: So...I’m wondering how long it will take the various Linux distros to figure out that they can ship Harmony (as they ship Apache) pre-installed and ready to use (even while they continue to put Sun’s JRE in the “non-free” directory, where its still two clicks away from users).


VB9 and Atom

Don Box: This program is a console app that serves up an ATOM feed containing data about the running processes of the host machine.

Recommendation: DO NOT DEPLOY


Implementing the Atom Protocol

Dave Johnson: Based on the attendance at my talk, Mark’s talk and the number of times I’ve heard or seen the acronym REST mentioned, I’d have to say that Java folks are pretty interested in putting the web back into web services (is that a Jon Udellism?)

Secure and Authenticated HTTP Server in Python

Before implementing any unsafe methods, like POST, in my Planet Server, I thought it best to take a detour to add authentication and security to the server itself.  This turned out to be straightforward, if not obvious, so it seemed worthwhile to share separately.


Esse Quam Videri

Simon Phipps: Yes, you can now “apt-get sun-java5-jdk” and have it install without fuss on Debian and Ubuntu.


Comments Please

Tim Bray: I hope soon to begin implementing a comment system for ongoing. This space is my notebook where I’ll work out the design. Since, as of this writing, the system exists only in theory, if you have a suggestion you’ll have to send me an email. I’ll publish the helpful ones.


Planet Server

I’ve committed a initial, and somewhat rough, version of a Planet HTTP Server into my Planet repository.  To use, simply run as you normally do, but add a -s option.


Parsing OPML At All Cost

It occurred to me that if Planet is going to have Reading List and OPML™ import facilities, the implementation of these features really should aspire to the same level of quality and thoroughness as the other components, most notably, the Universal Feed Parser.

This means handing common problems and other confusion, including well-formedness, escaping, and encoding issues.


Personal Planets?

Alex Harden: I’m actually tempted to roll my own Planet and call it a day

What would it take to convince you?


Blogging with Style

Joe Friend: For example we are encoding smart quotes incorrectly so I had to turn off that feature in Word, but the goal is to output just what is needed to make your blog post clean and readable (code and rendered HTML).

Cool!  There’s hope yet.  ;-)