It’s just data

Python on Parrot test status

rubys@rubix:~/pirate$ python
Ran 61 tests in 17.008s
rubys@rubix:~/parrot/languages/python$ make fulltest
cd ../.. ; perl -Ilib t/harness t/dynclass/py*.t
All tests successful.
Files=5, Tests=42, 11 wallclock secs (10.11 cusr +  0.88 csys = 10.99 CPU)
perl t/harness t/basic/*.t
All tests successful.
Files=7, Tests=110, 45 wallclock secs (12.54 cusr +  2.79 csys = 15.33 CPU)
perl t/harness t/pie/b*.t
All tests successful.
Files=5, Tests=35, 39 wallclock secs ( 8.27 cusr +  0.88 csys =  9.15 CPU)

What does this mean?  Pretty much only that these particular tests pass, nothing more, nothing less.  These tests focus mostly on breadth (can I iterate over a dictionary?) vs depth (does dictionary have a keys method?)  As there is no current test case which requires dict.keys, this method is not yet coded.  Not that it would be difficult to add, but it won't be added until there are test cases to back it up.

Bigger issues include unbound methods, dictionaries with non-string keys, and multiple inheritance.  In these areas, I have some "scaffolding" code in place until the real code can be put in place.  While some of these may be difficult to design, all the design work is done in Python, what's left is the implementation.

What is does mean is that there is some hope that pie-thon can be revisited at the next PyCon or OSCON.  While I'm optimistic that Parrot will be competitive, I believe that the real win won't be in performance, but in providing Python programmers access to CPAN.

Things I'd love to do... work with the Jython, iron-python, and CPython folks to work out the details of a common Python compatibility test suite.  And work with the PyPy folks to see if the Parrot work I have done could be leveraged there.

If anybody is interested in helping with any of these things, leave a comment here.

Ill-formed NOAA

Jacques Distler: A recent Wired article to the effect that the National Weather Service is now offering their data in XML format got me intrigued enough to want to test out the service.

Double encoded, ill-formed weather forecasts, via POST.

For those who don't have SOAP::Lite installed, here's a LWP version.

Pirate update

Some people like to do crossword puzzles, lately I've been amusing myself by getting some new feature of Python implemented on Parrot.  Here are some recent successes:



Jacques Distler: You either have to be a programming whiz, a deranged physicist, or some equally atypical character, who’s willing to cobble together something half-way bulletproof.


Parrot classes

It sadly is an all too common story.  Somebody new to a codebase, oblivious to all the history, sees one thing they can't do, and proposes a radical refactoring.  Why should I be any different?


Python vs Parrot

In many ways, it seems like Python and Parrot are from different planets.

In Python, the general approach seems to be to reduce everything possible to a canonical form as early as possible, and then deal with everything consistently.

In Parrot, the general approach seems to be to leave everything in its original form as long as possible, and then deal with everything separately.



Don Box: Had we started with a simpler basis (perhaps Relax NG + some SOAP-specific extensions), my guess is we'd be having different discussions right now.

I don't.


Attractive Nuisance

Slides from my Sells’ DevCon presentation.

Note: the correct display of some characters in the presentation may depend on what fonts you have installed.  Some pages may display better on Mozilla on large screens, but everything should mostly work cross browser.

Python, Parrot, and Lexical Scopes

I've been trying to make sense of Python's scoping in the context of Parrot.  Whereas Dan saw two types of variables, I see three: builtin, module, and lexical.  Consider the following


Wiki Spam Throttle

def isForbidden(self):
   """ only allow two anonymous posts per hour per ip address"""
   if self.request_method == 'POST' and not
     log=os.path.join(config.data_dir, 'event.log')
     for line in file:
       if line>lasthour and line.find("SAVEPAGE")>=0:
         if self.remote_addr == line.split('&')[1].split('=')[1]:
           if len(pages) >= 2: return True

Update: I've changed it to allow only two pages to be updated per hour. A single page may be updated multiple times without penalty.

Left Right Conflict


Unbundling Pirate Tests

Pirate's unittests were structured in the conventional way: one class with a large number of test_* methods, each containing a single test case.  One of my first changes to Pirate was to unbundle these into separate files.  I did this using a trick I picked up from Mark Pilgrim, namely to create a loop which dynamically created test_* methods, one per file, thus:

# For every test/*/ file, create a test_filename method
for test in sys.argv[1:] or glob("test/*/*.py"):
    testName = "test_" + os.path.splitext(os.path.split(test)[1])[0]
    testFunc = lambda self, test=test: self.runTest(test)
    testFunc.__doc__ = testName
    instanceMethod = new.instancemethod(testFunc, None, PirateTest)
    setattr(PirateTest, testName, instanceMethod)

Hobgoblin of Little Minds

While exploring Python on Parrot, I was curious to see how Parrot handled Dealing with Diversity.


Baby Pyrate

I'm putting this out here so that people can poke fun at it.  It is totally TDD, and YAGNI.  In fact, the only portion that has had more than a few moments of thought put into it is in the ast.__init__ source file.

I'm totally impressed by Michal's Pirate, in a put everything in one source file as the author has the whole problem in his head sort of way.

What I would like to see is a refactoring so that blocks of code are objects which understand their own symbol tables.  My goal is to implement patterns which reflect how a human coder would chose to implement something in Parrot.

Comparing Pythons

Comparison of various Python implementations for conformance.


TIOBE Programming Community Index

TIOBE Software: The TIOBE Programming Community index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the world-wide availability of skilled engineers, courses and third party vendors. The popular search engines Google and Yahoo! are used to calculate the ratings. Observe that the TPC index is not about the best programming language or the language in which most lines of code have been written.


Language Ratings Delta Pos
C/C++ 33.188 -1.30 same
Perl/PHP/Python 20.677 +5.05 up
Java/C# 18.694 -5.15 down
VB/Delphi/Pascal/Kylix 14.225 +5.37 same
Other 27.441 -3.97 same


One of the name for Python running on Parrot is Pyrate.  I'm trying to make sense of the current state of the effort.


PHP and Unicode.

Jarek Zgoda: It still doesn't have native unicode support, so all this XML buzz is just that -- a buzz. In modern world lacking of unicode awareness makes any solution incomplete.

I agree with Adam Trachtenberg, Unicode support is on my list of things that would be great to add to PHP 6


False Eyes

False Eyes

make Parrot

Parrot seems to be an eclectic mix of the familiar and the alien.


Pit Viper

Pit Viper


Paul Graham: When one looks over these trends, is there any overall theme? There does seem to be: that in the coming century, good ideas will count for more. That 26 year olds with good ideas will increasingly have an edge over 50 year olds with powerful connections.

In a World of Ends, who needs Connectors?

Vacant Space

Mark Baker: Yet another service which opts for REST rather than SOA. Victory is mine! Muhahaha! 8-) getitems: n=1 - mark unread items as read

You know what distinguishes this "definition" of REST from WS-*?  A blank line.

But I suspect it will be popular anyway. certainly is.  And it is even further away from REST.  Here's code that will do a posts/add request using HTTP GET.  Sweet.

You know what people like in APIs?  Hint: it is not where you put the blank line.  People like it when you don't need to throw in the kitchen sink to make this work.

FeedDiff for Roller

Yesterday, I had lunch with Dave Johnson.  He asked me how hard would it be to add support for the RFC 3229 "feed" instance manipulation method to Roller.  I said that I would take a look into it.


Copy and Paste

Cory Doctorow: The theme for this year's ETech is "Remix," encompassing those nexus points of iterative hacking and large ideas that have a way of transforming technology:

I now know what I am going to be submitting as a proposal.


Road Less Travelled

Rebecca Dias: often times you take detours only to experience a different road.


Aaron Swartz: Afterwards, we went over the dos and don’ts of campus life. You know: smoke your pot over by the lake, keep your vomit from binge drinking off the floor, and never, ever share files over the Internet.

Public Email

Doc Searls: There have been prolific times in the history of this blog. But, on the whole, I doubt its bulk exceeds the outbound text in my daily emails, or even (lately) my daily instant messaging. In fact, I think of this blog as public email. A way to do cc: everybody.

A-IM: feed support

User agents of clients that provide support for the RFC 3229 "feed" instance manipulation method:


Feed Your Reader

Michael Koziarski: Once you’ve installed FYR you’ll see a new Feed Icon (FYR icon) in the status bar, that behaves just like the live bookmarks menu. However, instead of opening the bookmarks menu, selecting an item will launch your Feed Reader. [via Nick Bradbury]



Is the source to this extension available?

RFC3229 enabled

Experimental support for RFC 3229 "feed" instance manipulation method:

RewriteCond %{REQUEST_URI} /blog/index.atom$
RewriteCond %{HTTP:A-IM} \bfeed\b
RewriteCond /home/rubys/blog/history/index.%{HTTP:If-None-Match}.asis -s
RewriteRule index.atom$ /blog/history/index.%{HTTP:If-None-Match}.asis has the delta function.

mod speedyfeed

Garrett Rooney: What does it do?  In short, it allows you to only send new entries in your Atom feeds down to the clients. The client program adds a few HTTP headers (a If-Modified-Since to tell you what the last time they got was and an A-IM that indicates you support the 'feed' IM) and things just magically work.  Best of all, the content that's sent down, while smaller, remains valid Atom XML, so no real change is needed on the client side other than sending the new headers.

It looks to me that the delta required for clients that already support If-Modified-Since is to add exactly one header on the request: A-IM: feed.  This would work together with support for things like gzip, making the total request look something like this:

GET /asdf/atom.xml HTTP/1.1
If-Modified-Since: Fri, 17 Sep 2004 00:18:36 GMT
Accept-Encoding: gzip
A-IM: feed

... with the last line being the only addition.  Note: compression techniques (like gzip) can be handled either as content-encoding or instance-manipulation.

Now, the question is: can we get one or more major hosting providers to deploy this filter (and patch)?  And clients to add this one line?

Update: Removed gzip from A-IM example above.  It is legal to include it there; but for now, let's settle on the example above as being recommendation for the moment.

Bad Move

Shelley Powers: That was a mistake on his part.

Syndication with RFC3229

James E. Robinson, III: Bob Wyman suggested i implement RFC3229 to make proxies and caches behave nicely with sending only modified content.  The new wp-rss2.php file does just that.

In addition to the lack of Apache support that James mentions, I see three problems


SimpleXML + POST

Nelson Minar: If you're comfortable parsing XML, you're comfortable parsing doc/lit SOAP. But SOAP also offers the possibility of automatic data bindings (no parsing required) and WSDL (service description). Alas, those technologies still don't work so well in Perl, Python, or PHP where doc/lit support is weak. It does work pretty well in Java and .NET.

Automatic data bindings is not as important in dynamically typed languages.  Parsing XML in PHP is pretty easy with things like SimpleXML.  Taken together, this leads to the conclusion that a toolkit approach may not be required.

At the moment, in PHP if you want to do an HTTP POST, you need to use functions like fsockopen.  A built-in function that made it easier to do a arbitrary POST would be useful in its own right.

Bounty Posted

Bob Wyman: is willing to offer a $5,000 bounty to whoever builds the "best" full implementation as an open source Apache module by Jan 1, 2005.

It seems that some of the smaller but more aggressive feed consumers have the most to benefit from bandwidth reduction measures than even the mega colossal feed producers do.  Uncompressed, undelta'ed, full text feeds may be becoming the barrier to entry to the next Bloglines, Feedster, PubSub or Technorati.

Vary: ETag

Another bandwidth reduction idea, compliments of FooCamp04.  The core idea is that, sites that are willing to trade a little CPU for a bandwidth savings, subsetting the feed that is returned on a GET based on the ETag that was provided on the request may make sense.



FeedMesh is a group working to establish a "peering network" for decentralized web(site|log) update notifications and content distribution.

The initial discussion happened on Sept 10th at Foo Camp. Companies and representatives involved so far are: Scott Johnson (Feedster), Mark Fletcher (Bloglines), Jim Winstead (, Jeremy Zawodny (Yahoo!).

The current plans are to stage the implementation into a series of concrete, tangible steps.


HTTP Best Practices

Rob Howard: We're going to try and get back to the point where full RSS feeds can be offered. While there are lot of good RSS clients out there, there are also plenty of bad ones that don't honor all the HTTP codes.

To be fair, most of the HTTP headers involved are optional, and most developers are not accustomed to dealing with the protocol at this level.

Despite being optional (which is fair given the range of applications HTTP supports), many of the HTTP features were explicitly designed to solve the problems posed by applications such as syndication.  After all, If implemented properly, the check for new content is an "infinitesimal" burden.

What may help is guides and compliance test suites.

Target Audience

JR Conlin: Yo’ product weenies, pay attention: Influencers use weird crap.

Deleterious Guesswork

Sean Mc Grath: My belief is that Postel's Law cannot be applied without understanding the context of its application. I am all in favour of smart software but I am also all in favour of knowing exactly what is doing guesswork and where it is doing it.

The problem is bigger than syntax and markup.  For starters, why doesn't the article validate?


Mandajan: you are looking for a 35 mm film canister with a neon green top.

Interesting adventure game for GPS users.  Or even mapquest users (hint: zoom in).  Either the map or a GPS device will get you close, and if you look hard enough, you will find this.

Solar Roller

Dave Johnson: It's official. Roller is now my full time job. I just accepted a job with Sun Microsystems to "design, develop, and deploy the primary blogging system for Sun in conjunction with other engineers" and to evangelize blogging both inside and outside of Sun.


Adam Jack: Ok, so I used RDFLIB to allow Gump to generate some RDF... Even this small foray allowed me to come up with some questions, and want more input

Rumor has it, some people who have experience with RDF read this weblog (go figure!).  Responses on the mailing list are preferred, but I will see to it that any comments posted here are relayed.

Preserving Identity

Mark Pilgrim's Identifying Atom article indirectly makes three assertions about what would be ideal in a syndication protocol with respect to ids, which I will paraphrase thus



Mark Johnson: When a protocol ends with "bis," it means that it's the second version of that protocol.

Electronic Forgery

Bruce Schneier: It's time for us all to migrate away from SHA-1.

What triggered this?  A collision in MD5.  I am not an expert in cryptography, but I do find this subject fascinating.  Here is what I have pieced together so far:


Curious Incident

Joel Spolsky: I must warn you not to start reading it before you go to sleep because nobody I know has been able to put it down without reading through to the end.

And Joel still doesn't.  I picked up this book this afternoon.

Over Pronation

So I got some new shoes.  That was about a month ago.

Yesterday, I walked out in bare feet after it had rained.


DevCon 5

Chris Sells is at it again.  Applied XML Developers Conference 5.

Hey Chris... do me a favor and change the title of my presentation from "Atom in Depth" to "XML is an attractive nuisance".  Most of the examples will come from my experiences with the feedvalidator, and will cover pretty much the same territory as Atom in Depth did, but to a much deeper level.

Electoral Vote

The votemaster: it may all come down to Missouri. Watch it closely.

MSN Blogs

Phil Ringnalda: Sam will be delighted to know that they validate out of the box. Charles will be delighted to know that they include both Last-Modified and Etag headers, and apoplectic over the way that when presented with the proper If-Modified-Since and If-None-Match headers to reply to a request with a 304 Not Modified, they instead return a 200, with the exact same Last-Modified and Etag headers, and the exact same content.

I would share Charles's concern.  On the plus side, I'm pleased to see utf-8 used consistently throughout (in both the content and the HTTP headers, and in both the html and feed).  I'm also delighted to see feed autodiscovery being used.

If you have an aggregator, or are running one of those popular planet* type of sites where you republish a combination of the feeds of others, then you really should make sure that you pass these aggregator tests.


Passes the tests defined in PaceCanonicalIds.  Passes all but three of the tests defined in MNot's, as I interpret the specs differently for these three.

Only exercised significantly for http URIs.

Testcases welcome.


Doc Searls: So I note with relief that a small grace of aging is giving a progressively smaller shit about stuff for which giving a shit would still do no good.

URI Equivalence

In researching how Atom and the FeedValidator should handle URI equivalence, I took a look at how language environments with built in URI classes implement equality methods.



Russell Beattie: Navigate to Links, then "Install AtomME". It should download and install. I tested it on the phones I have handy at the moment: a Nokia 7610, 6200, SonyEricsson 616 and a Motorola v400.

How to have a Fiasco

Ben Hyde: Things fall apart when the organization starts getting highly invested in the analogy between a nail and screw. Then they start engaging in various thought stopping processes and begin singing in unison: "I gotta hammer, I hammer in the morning..."  For a while they think they are happy!

Vigilance is hard work.

Finer points of serving feeds

Kevin Railsback: As InfoWorld's CTO, Chad Dickerson, posted here, InfoWorld has been noticing a lot of congestion at the top of the hour when thousands of RSS clients all hit our servers simultaneously to check for updated feeds. We've done a number of things to alleviate this

Excellent!  Kevin, since you have popped the hood anyway, here are a few things to consider:


Getting the Word Out

Dare Obasanjo: At this point I'd like to note that HTTP provides two mechanisms for web servers to tell clients if a network resource has changed or not. The basics of this mechanism is explained in the blog post HTTP Conditional Get for RSS Hackers which provides a way to prevent clients such as news readers from repeatedly downloading a Web document if it hasn't been updated.

The functionality is clearly there in HTTP.  The word is clearly not getting out to everywhere it should be.


I can't change the world, but these two actions I can take.

Recognizing openness

Michael O'Connell: I sense that Microsoft has been rather concerned about Linux lately. Why else would their top dog, CEO Steve Ballmer, get so riled up when asked this week


Base64 of SHA1 for J2ME

The motivation for this implementation was Java enabled cellphones with tight memory requirements.  Russell Beattie ported this code to Java, I then inlined everything that was called once to reduce the footprint.

J2SE implementations can use the builtin classes.  demo


Ben Hyde: If you drag this bookmarklet into your bookmark bar: Tasty? Then when visiting a page you can click on it to see how many people thought it was interesting enough to bookmark at You can read their comments and category assignments.

Cool!  I find the feed to be of less than fully useful as it doesn't have anything that I can identify as a permalink.  Now with five lines of code, I can rectify that in my extractor script.

Ideally, at some point, people will converge on standard for  feeds for link blogs, and these special purposes hacks can be retired.

Rendezvous for Windows

Jonas Luster: It's the often overlooked things, that are truly great. Amidst all the hype for bigger screens, RSS in Safari and Apple ripping off Konfabbulator's Widget technology, the real revolution won't be broadcast widely.

Yesterday, Cupertino released the first preview version of its ZeroConf/Rendezvous technology for Windows XP and 2000.

Unicode Enabled Trackbacks

I've changed my weblogging software to send trackbacks in utf-8, and to try to respect the charset, if specified, on trackbacks received.

This involved four changes.


Knot Theory

In response to a question from Christian Romney: this web page was the inspiration for my current favicon.ico.


Trackback in, valid out (mostly)

Jacques Distler: You gonna turn off Trackbacks (which don't declare a charset, and could be sent in any charset imaginable, but very frequently are Windows-1252)? Unless you have a way to guess the charset and re-encode the result to UTF-8, they will invalidate your pages as quick as you can sneeze.

It turns out that by design it is rather hard for a string of bytes to accidentally be valid utf-8, unless that string is pure US-ASCII, in which case it doesn't much matter which encoding you presume.


Car Rides

Susan Campbell: Think about this a moment, and then look into the shining faces of your loved ones. You didn't opt for the DVD option on the minivan, did you? And you will be trapped for hours in an area roughly the size of a kitchen table with the people who know how to push your buttons better than anyone.

If you have kids, a DVD option is a wise investment.

Mystery Solved

Andrew Grumet and I finished debugging this problem yesterday.  It took a number of sessions, via AIM, phone, and email, to finally track it down.


Converting Manilla

Scott Hanson: I was unable to quickly apply my script to Susan’s files (i.e. I’ve gotten stuck), and I’m short of time. Since a number of people had publicly offered to help export Manila sites, people with a probably a better understanding of Manila and XML than I have, I decided to plea for help via a Wiki page entitled ConvertingManila.  Any help would be greatly appreciated.

I'll see what I can do, and will contribute to the wiki.


Ross Mayfield: Identity and messaging are deeply intertwingled. Right now, email has the identity of Receivers and syndication has the identity of Senders. Doc points out that the combination may allow us to circumvent tier 3 identity. But assume for a moment that Sender ID becomes adopted, perhaps even before the next Exchange upgrade cycle. Then email gains end-to-end identity. Its doubtful you will see a similar push in RSS/Atom unless transport begins to leverage Atom’s API functions for tangental benefits to transmission.


This is not a time for religious debate or partisanship.  It is a time for compassion and an opportunity to learn and improve.  Enough so that I am willing to step forward and offer to help with writing of conversion and migration tools.


Apocalypse Now

Dan Sugalski: If anyone sees a bunch of guys on horses, don't forget to offer 'em some carrots.

Gone. Really. I mean it.

Rogers Cadenhead: If you're going to point a dead site's feed to nowhere, why not simply delete it? Any decent aggregator will eventually dump a feed that results in "file not found" errors

If your server supports it, a 410 status code means gone.  Whereas a 404 status code may be transient, a 410 is clearly intentional, so you would think that any decent aggregator would respect a 410, wouldn't you?


Atom/W3C redux

Matt May: We at W3C like Atom.

Speaking for myself, my concern remains about openness, not time to market.  The one thing that I felt that was not adequately explored in the meeting was the possibility that there might be a difference from a legal perspective between these two organizations.


Aggregator utf-16 tests

I've converted yesterday's utf-8 tests to utf-16 (little-endian, with the appropriate BOM).  For those that want to play along with RSS, there also are RSS 1.0, RSS 2.0, and RSS 2.0 + Atom versions.

Aggregator i18n tests

Here is a simple set of tests for verifying that an aggregator properly handles various combinations of international characters and character references.  The desired result is that the title of every entry should be displayed as Iñtërnâtiônàlizætiøn.

This is not meant to be comprehensive, in particular, it focuses only on one encoding (utf-8, which is guaranteed to be supported by any conformant XML parser), and doesn't do mode base64.

i18n in Tomcat and JSTL

Russell Beattie: Everything I did in the past two hours was trial and error. My HTML web pages were working, my XML feed pages were not.


Brent Simmons: My job is to treat Atom and RSS as peers, and to do a great job supporting both formats. I do not prefer one over the other, and I go out of my way to stay far away from the fighting. (One of the beautiful parts of newsreaders is the Unsubscribe button.)


Get It Done

Doc Searls: I'm on the phone with somebody who just said "Open source doesn't do R&D. It does D." It was meant as flattery. A get-IT-done thing.

Cool!  I didn't even know that Doc had a Garage.  Subscribed.


Tim Bray: I don’t think it’s that useful as a business book, but it’s fascinating (particularly towards the end) as a study of how a closed belief system reacts to the introduction of fact-backed heresy. Since the human race in general and technology profession in particular tend to the development of closed belief systems, this I think will find a lot of resonance with a lot of readers.


Trackbacks, Queries, and Encoding

This morning, I got a trackback from a Korean weblog.  Unfortunately, if you look at how a typical trackback is sent, you see that character encoding information is not provided.

Something to think about the next time you are tempted to think that you can get queries for free.  While both HTTP and XML provide mechanisms for defining encoding, support in widely deployed implementations is much better in XML than in straight HTTP.

URI's seem to be converging on UTF-8, albeit at an excruciatingly slow pace.  Don't leave this to chance - if you are defining a GenerativeNaming scheme today, make this explicit.

If you are defining a protocol based on HTTP POST, encourage the use of the charset parameter on the Content-Type header.  Require it if you can.



False Positives

Dan Sugalski: So, if you've not heard from me, don't be too surprised, and try again--you might've gotten caught by a rogue bayesian network.

First Choice

I've been thinking and reading about the IETF and W3C lately.  A lot.  A brain-dump of my current thinking



To the ASF Board of DirectorsAgain.

Ken Coar has the details.

Notable: for the first time, I'm no longer the token Jakartan.  New to the board are Geir and Stefano.  A personal goal of mine is to get more non-core people to view the ASF board as their own.  Beware: that likely will involve more active nominations the next cycle...

Two of the new members are also bloggers: Bertrand Delcretaz and Leo Simons.

Users Who Share Locations

Dion Almaer: The "User Threads" view shows the various threads that a community member has participated on. We have added some more information below the threads, which shows a list of other community members who have posted from the same location as this user.

FYI: I capture the same information (you can see it by hovering over a name in  a name in the comment thread), the real innovation here is exposing the information in a user friendly manner.

Open Frontier

Frontier Dave Winer: At some point in the next few months, there will be an open source release of the Frontier kernel.

Does anybody remember Domino Go WebServer?  Anybody?  Bueller?

The thought process that Dave describes exactly mirrors the thought process that IBM went through a few years back when it decided to participate in Apache.

Freedom 0+1ⅈ

Matt Croydon: I'm still using Radio on this blog, mostly because the thought of cleaning up and converting 3000 some entries scares me.

Matt, you really need to face your fears.  There is absolutely no data lock-in in Radio UserLand.  This is all you you need to migrate to Blosxom.  I'd recommend that you do the migration just to convince yourself that it can be done, and then go back to using whatever software you are most comfortable with.

It is not just about the code...

Blogging ecosystem

Simon Phipps: It's not enough to listen to the conversation; success in business will increasingly depend on participating in the conversation

And trackbacks have proven to be one rather effective way to start a conversation.  Unlike Simon, I do hope my colleagues in marketing are listening because there are some pretty tricky questions to answer about using this medium for business.

Taught by Tweak

Shelley Powers: if you’re going to learn about MySQL or PHP, especially if you want to learn about both, grab any one of the many freely available open source applications, install it, and then learn by tweaking.

Sophie's Choice

Don Park: How about doing it like the way XML-DSig specs were done?  FYI, XML-DSig specs were under both IETF and W3C and Joseph Reagle managed to push it along rather fast.

Product Management 101

Lauren Wood: Four basic rules. WordPress gets them right. Other products do too, even when they don’t have the same amount of support from a user community. Call it Product Management 101.

I feel the same way.


Atom at W3C?

I wonder how the draft IETF Charter would need to change in order to become a W3C Charter.  It would seem to me that someone from the W3C would be in the best position to answer this.  Any takers?


Excellent Driver

Tim Bray: reachservices is a good example of what the SOA deployments of the future will look like. I think that if there are any protocols, technologies, or standards that turn out not to be necessary for this project, then maybe they’re not that necessary at all.

Let's read the fine print:


Me too... almost

Evan Williams: Today, I added better permalinks

Yesterday, all my relative links worked.  And all content was served with the correct file type.


Atom + MIME?

I've mocked up what I think an Atom POST request for Tim Bray's How Fast is This Thing Growing? blog entry would look like using the MIME Multipart/Related Content-type.  I chose this particular entry as it has a title, a summary, full content, and two pictures - one displayed inline, and one by reference.

I've posted two versions: a 7 bit safe version using Quoted-Printable and Base64 transfer encodings, and a 24% smaller 8 bit version using 8-bit and binary encodings.  Clients would be permitted to transmit any combinations of these.  Note: what you are seeing is the actual bits that would be transmitted - HTTP + MIME + XML + Atom + XHTML + PNG, complete with authentication.

Unless somebody identifies a showstopper, I'll submit a proposal.

Pulling on a string

Mark Nottingham: In a nutshell, XOP is an alternate serialisation of XML that just happens to look like a MIME multipart/related package, with an XML document as the root part. That root part is very similar to the XML serialisation of the document, except that base64-encoded data is replaced by a reference to one of the MIME parts, which isn’t base64 encoded.

I guess I am supposed to take comfort in the assertions that the serializations look like and are very similar to XML and MIME respectively.  Hopefully, I'll find more rigor in the working draft.



Mark Nottingham: The real question here — and boy, is this the elephant in the virtual room — is whether XML is the best way to model data. This is something I’ve been musing on lately, and I’ll get back to you soon with some preliminary results.


iesg-secretary at A new IETF working group has been proposed in the Applications Area.  The IESG has not made any determination as yet. The following description was submitted, and is provided for informational purposes only. Please send your comments to the IESG mailing list ( by May 12th.

Atom Community Meeting

Tim Bray: We’re going to have an Atom Community Meeting June 2nd at Sun’s Silicon-Valley offices.

Reality is Corrosive

Bill de hÓra: From the MC Escher school of standardization

It seems that there is a feeding frenzy over this tasty morsel which was tossed in the shark infested waters of the internet.

I'll not sure what I am about to say is either agreeing with or disagreeing with Sean McGrath on this subject, but here goes: Reality is Corrosive.

Public Discourse

Tim Bray: The real goal isn’t to get everyone at Sun blogging, it’s to become part of the industry conversation.


Beyond words

Barbara Walters to host a contest where the prize is a baby.  Uri Geller threatens to file lawsuit based on patent.  [source: BoingBoing]

Feedback loops

Is this feed valid?  Both SharpReader and Bloglines handle it flawlessly.  In fact, there are active blogline subscribers.

The feedvalidator chokes on it.


Consquences of Standards (and the lack thereof)

Jon Udell: This time, though, I heard something I hadn't the first time -- about standards. When the construction project drew in artisans from the 13th-century French countryside, the first order of business was to agree on standard weights and measures.

It seems to me engineers who were brought up in the late 20th century could learn a lot from the 13th century artisans.



Shannon Campbell: I'm moving to North Carolina next weekend  Fayetteville, apparently (approximately an hour away from me).  Coolness.  Perhaps some day we can do lunch.

Software Upgrades

Now running

Hopefully, these notes will make it easier for me the next time I upgrade.

The HTTP charset parameter

Martin J. Dürst: It is very important to always label Web documents explicitly. HTTP 1.1 says that the default charset is ISO-8859-1. But there are too many unlabeled documents in other encodings, so browsers use the reader's preferred encoding when there is no explicit charset parameter.

Martin describes how to set the charset in a number of popular servers and scripting langauges.  If you see something missing, let him know.

utf-8 musings

Jacques Distler: If I converted to UTF-8, presumably, this problem would be solved. Unfortunately, the last time I tried it, the interaction between UTF-8 and MT’s Comment Form was such a horror story that I’m loath to try it again.


Building a community

Gareth Simpson: Objectively speaking, if I downloaded FeedThing in its current state, I’d not bother with it again (I know this by the pile of dead aggregators in my recycle bin).


Unicode for Syndication Consumers

Torsten Rendelmann: Hey, partitially good news: my local RSS Bandit beat build 109 does not fail anymore on Sam's test feed, if it is compiled with .NET 1.0

Whether that is good news or (or even news at all) is debatable, in any case, this should not be an accidental feature.  If this is to be pursued, here a few more things to think about.

Small Dent

Brad Wilson: THAT is the reason you buy a car that's over-designed like a tank.

Have you considered putting the car on EBay?

Periodical Cicada

Robert Scoble: The blogosphere is a passion chamber.  This comes as the echos of Scoble's piece on persuasion die down.


Unicode and weblogs

Hossein Derakhshan: We should promote Unicode standard among English speaking programmers. Many tools do not work well with Unicode and this sucks.

Spread the meme  Please test your clients, servers, comments, and feeds.


It's the data

Tim O'Reilly: The big question to me isn't privacy, or control over software APIs, it's who will own the data.

Character Encoding and HTML Forms

Joe Gregorio: lacking any other indications, a browser will submit the data from a form using the same character encoding that the page is served in.

This mind blowing statement was embedded in an otherwise interesting article on Atom and Wiki's.  It has caused me to rethink how I serve pages on my weblog, and has caused me to begin the switch to utf-8.  Here's why:


Survival guide to I18n

In the next installment of the atom guide, I tackle what may very well be the number one issue in ill-formed feeds: character encoding in general, and smart quotes in particular.  In the process of producing this documentation, I am struck by two things:

Perhaps the former is the reason for the latter.


DanBri pointed me to a specification named GRDDL.  It looks like exactly what I was looking for last August.  Any XML file is one namespace declaration, one attribute definition, and one XSLT file away from RDF.

Oddly, it defines a completely different mechanism for XHTML.  I'm not sure what I think about that.

Definately something to watch, and probably something to include in a best practices guide to Atom.

HTTP for syndication consumers

It seems to me that there is a real need for a one stop shop for the information necessary to understand the 'how' behind syndicating, archiving and editing episodic web sites.  Specs are good, but they only tend to cover what is not covered by other specifications.  Blogs and mailing lists often provide a much needed missing context for the information, but the discussions found there are often inconclusive and it is virtually impossible to determine if the decisions made have been superseded.

Here's a first installment.

Bathroom Fixtures

Bathroom Fixtures

Soap on Cell Phones

Joi Ito: traditionally, the (content) industry has been wrong about how consumers use these devices.


I have mild myopia and tinnitus.  Neither are much of an issue in close range, but each imply data loss and/or require extra concentration for picking up signals at a distance.  Normally, I compensate for this by choosing a seat up near the front and/or the middle of any grouping whenever possible.


Blogging is like Karaoke

Janne Jalkanen: It's a way of self-expression and relaxation, not a method for nursing your inner diva ... It's just a song.  It's just text.  Don't worry about it too much.

Business Cards

I've gotten away for nearly twenty-three years without the need for business cards.


Simple examples

People who want to produce a syndication feed in a consistently correct manner will find that they will need to master not only the syndication format, but also HTML, and XML.  It is all too easy to underestimate the total learning curve involved.  I continue to be surprised at the subtle interactions that continue to trip up even the most knowledgeable and careful.


Social Computing in a Nutshell

Shelly Farnham: I came away from the symposium with the sense that the most exciting research in the space will occur with a) the integration of web services and mobile technology -- taking your network with you b) always on, multi-level communication, blogging/chatting/IMing/SMS/email/web surfing/ all in one moment, and c) implicit social "computing"; processing social metadata across people through implicit, inferred behavioral patterns.  The biggest problem to be solved in a social networking, profile-centric age is the control of multiple personas/identities across private, public, and social spaces.

Microsoft Social Software Symposium

It's been fun participating vicariously in the recent Microsoft Social Software Symposium via weblogs, IM, and IRC.



It seems that both Blogdex and KeepMedia seem to think that they each have exclusive rights to the domain of small positive integers.  I wonder what part of Globally Unique Identifier people have difficulty understanding?  Seems clear enough to me.


Gump Sysadmin

The last few days I've been playing Sysadmin for one of the new IBM xSeries 345's that will be used as a dedicated Gump Server. And having a blast.


Ice Breaker

David Weinberger: I love meeting new people — not a statement I would have made before the Net — but I like meeting them because we first engage in discussion about some topic. An email to me saying, "I disagree with your blog entry about X or Y, and let me tell you why" is much more likely to lead to a friendship than one that says, "Hey, I see we're both interested in video games and Peeps art!" That's just the way I am.


Elitist rant

Joseph Walton: I’ve put de-xhtml up as a hack. It’s a simple transformation from XHTML to HTML, essentially the identity transformation with the right xsl:output attributes. It’s not all that complicated, but I couldn’t find it anywhere else.  Like all technology, it’s also a statement, in this case about the web’s implied evolution from tag soup to XHTML 2.0.

Hey, that's me!

Joe Gregorio: I actually recognized the first speaker on this NPR Radio Postcard by his voice and not his blog. See how many of the voices you can identify.

Testing MoinMoin 1.2.1

I've installed and configured a test version of the Atom wiki using MoinMoin 1.2.1.  The intent is to cut over so that Acess Control can be used to require valid logins on selected pages in an attempt to reduce WikiSpam.


ASF Machines

Four IBM xSeries 345 machines have been delivered to the ASF in response to this request.

Non-reversable transformations

Jay Allen: In fact, these days, there are tools and plugins that make this a bit easier like wiki formatting, Textile and, most recently, Markdown.  So what’s not to like? Why don’t I personally use one? Because of lock-in.


Tom Chi and Kevin Cheng: Ridiculously Easy Monetization of a Web Savvy Audience  LOL!  Note the panelist named Sam Emerald.  Clearly this had nothing to do with this panel.

Right on target.  I do believe that the panel format works best if there is some controversy..


WikiSpam seems to be on the rise.  Today, a link to a porn site was added.  It didn't last long, but perhaps we should begin planning for the inevitable.

I'm not a big fan of blacklists, nor do I think this would be particularly effective in this case.  The latest was by somebody simply surfing in on a Google query for wiki.

Things I am considering:

Suggestions welcome.


Atom IETF I've asked Tim Bray to co-chair the IETF working group, and optimistically updated the draft charter on the wiki.

Sunny Boy

Tim Bray: As of today, I work for Sun.


Wikiwiki, What?

This panel did not result in any bloodshed.  Which is a bit unfortunately, really, as I believe that the panel format works best if there is some controversy.  Unfortunately, each of the participants were too damn agreeable.



So, I was sitting at a table and the fellow sitting next to me looks over and says "hi Sam! I've been following your weblog for six months or so. I'm Dave Shea".


Information axioms

This working document distills Information axioms for emerging policy networks. We culled these information axioms from a variety of analysts whose work examines primarily - but not wholly - emerging commercial information networks on the Internet. These "axioms" do not necessarily apply to non-profits, or true communities, but rather, are to serve as a starting point in understanding the role of information and information technologies in the policy process.


Spread the meme

Joe Gregorio: I am now the number one result for the google search naked operating table valium.  The only reason I know this is because I found it in my referer logs. Which means someone out there typed that into google and ended up at my site. I sure hope they found what they were looking for.

#sxsw on IRC

Paul Bausch: #sxsw on IRC (link opens the channel in IRC-aware browsers.)

There also appears to be two blogs.  A search for wiki's turned up one at JoiIto's site.

Resources vs Services

Sean McGrath: I normally find myself in agreement with Bruce but not on this one. The way I see web services, its almost like your saying the machine doesn't matter. What matters is the abstraction of the machines behaviour - a "service".

My guess is that Bruce was reacting to a description of a single endpoint which implemented a bazillion services, and made the observation that the endpoint is the noun.  The way to "objectify" such remote procedure calls would be to move the object reference outside of the request.

See also: REST + SOAP

Java vs .NET

Ted Leung: If I'm looking for thought leadership from the community, in the Java community, I'm looking towards the non Sun bloggers -- these are the folks doing AOP, Groovy, SGen, Prevalence, WebWork, etc. This shows the rich ecosystem that has grown up around Java. If I look at the .NET community, I pretty much look for the MS bloggers.

Let's not confuse cause and effect here.  There used to be plenty of .Net bloggers who didn't work for Microsoft.  I still haven't forgiven Microsoft for what they did to Peter Drayton.

Something old, something new,

... something borrowed, something blue.

What started me down this path was posts by Tom Coates and Phil Ringnalda.  Together, they started me thinking about rethinking my original story vs. post dichotomy, and toward what is emerging as the blog standard of post vs. remaindered links dichotomy.

I've also updated a number of my feeds - notably, I've updated the rss 1.0 and rss 2.0 feeds to conform to description being an optional synopsis.  My RSS 2.0 feed has replaced link with guid - I think all aggregators that have RSS 2.0 support can handle this, but if there are any that have lagged behind, I still have plenty of other feed formats to choose from.  Finally, I've removed a number of usages of admin and dublin core namespaces from the rss 2.0 feed (I still use dc:creator in my comment feed to avoid revealing email addresses).

While the header is shamelessly borrowed from Bob Congdon, I plan on evolving it.

I've tested all this under a number of browsers and aggregators, and I don't believe I have broken anything, but if I have, let me know.

IETF Working Group Guidelines and Procedures

The next meeting of the IETF is scheduled for August 1-6, 2004 in San Diego, CA, USA.  Excerpts from RFC2418.


Blosxom excerpts

My weblog software's design is based on blosxom's, with entries stored in the familiar title followed by body format.  On my longer entries, such as this one, the first element in the body is a div tag with a class of excerpt, something that I parse out with a set of regular expressions.  This approach can be implemented in blosxom as a plugin




Orkut Death

Huy Zing: My death was a slow painful one that lasted 1.5 hours starting at 20:44 on Monday, February 23, 2004. [via Danah Boyd]

Trackback authentication

Jacques Distler: The anonymous nature of the internet makes the problem of “identity” a hard one. In physics, when we encounter an intractably-hard problem, our most frequent dodge is to redefine the problem to one which admits a solution, and hope that the result is a “good-enough” stand-in for the original problem. In that spirit, I (re)defined the problem as reliably associating comments posted with the websites of the commenters.

Just a suggestion: a lesser, but very much related and much more tractable, problem is trackbacks.  The reason why it is more tractable is that the trackbacks are issued by software which could reasonably be expected to have direct access to your weblog's private keys.  This could make signing totally automatic - simply check a box once, and your template could be updated and all future trackbacks would be automatically signed.

The signatures could be passed as a new CGI parameter or as a HTTP header.  Neither would likely affect any existing software that wasn't expecting this information.

Once trackback signing is widely enough adopted, people may feel comfortable turning off the ability to accept unsigned trackbacks.  And then much of the infrastructure will be in place to tackle the harder, and more important problem, of comment signing.

The key nut to crack there is to make it easy and painless to sign a comment.

Network printing

Sharing my experiences with installing a network printer using CUPS and Samba.


Million tiny mirrors

DLP There are a few more options in large screen televisions than there used to be.  In addition to CRTs and projection TVs, LCDs and plasma have come into their own.  There are also several new options like DLP, which this thinly disguised advertisement for Samsung explores.  It turns out that Gateway also has an offering in this area, as does RCA.

I found the techology behind this fascinating.  A color wheel, a light bulb, and a million tiny mirrors.

Open Source Java

Rod Smith: Here is the offer: IBM would like to work with Sun on an independent project to open source Java.

Wikiwiki, What?

Rebecca Blood invited me to join this SXSW Panel.  That makes two.

XMPP Pub/Sub


Joe Hildebrand posted some thoughts about how Atom could integrate with XMPP (and therefore Jabber).


Draft Atom IETF charter

AtomI've posted a draft IETF working group charter for Atom on the wiki.  I've presumptuously placed my name as (one of the) chairs of this group, but there really shouldn't be any surprises in this draft.

In March, I expect the names of the IETF director(s) and advisors to be filled in, each bullet in the description to be replaced by a paragraph, and dates to be determine in the goals and milestones section.

Messaging and Presence @ IETF


After perusing the IETF's Working Group Guidelines and Procedures, I went perusing the web for charters to 'crib' from.  I came across SIMPLE and XMPP.  These are not just interesting from a potential future IETF bretheren point of view, but also from a basic syndication and API point of view.  In particular, such protocols can avoid the scalability problems associated with a polling based architecture and can potentially navigate through gateways, firewalls and routers.

Authentication is the one area where I expect things to be different, but the uniform layout of the feed and entries are something that I don't expect to vary based on the transfer mechanism.

New Jakarta Chair

Apache TomcatYesterday, the Apache Software Foundation's Board of Directors appointed Geir Magnusson Jr. as the new chair of the Jakarta Project Management Committee.  I will remain on the PMC as well as the board.

Apache AntI was appointed as the chair just under three years ago after having served as the release manager for both Ant and Tomcat.  For the past year, I have been actively seeking a replacement.  The reason is simple: while at first, I had an itch that needed scratching and I sought to make a number of good things happen, over time those itches were scratched and my role evolved into one of stopping bad things from happening (project members misbehaving, addressing criticisms from within the foundation, etc.).  Focusing exclusively on defense is not a sustainable model: there also need to be a focus on building.

JavaIn addition to Geir and my world views being very much aligned, Geir is also the ASF's representative to the JSPA's SE/EE Executive Committee.


I had heard good things about BlogLines, so I thought I would give it a spin.  I didn't plan on switching, but I did: that's how good it is.


The case of the missing keys

Adriaan Tijsseling: The uniqueness of this situation is that one guy in SF is without car keys, and it takes IRC and IM via Japan to make the connections that will lead Jonas to his treasure. Unreal.

FeedValidator updates

11 bugs, 4 patches, 1 feature, and 12 messages to the mailing list.  All resolved.  Noteworthy: the validator will now support gzip encoding; unknown and misspelled attributes will now be flagged; timezone, character encoding, and email address checking has been tightened up; and the distinction between relative and invalid URLs has been made clearer.

Special thanks go out to Joseph Walton who submitted three quality patches.

Six Geeks

Last week at the ETCON, James Duncan Davidson posted this picture which captures so many different themes to me.


HTML charset vs XML encoding

Dare Obasanjo: Mark Pilgrim has a post entitled Determining the character encoding of a feed where he does good job of sumarizing what the various specs say about determining the character encoding of an XML document retrieved on the World Wide Web via HTTP. The only problem with his post is that although it is a fairly accurate description of what the specs say it definitely does not reflect reality.

OK, so given this, what should a feedvalidator do?  Should it follow the specifications?  Should it follow Dare's recommendations?  Should it issue a warning if the specifications and Dare's recommendations differ for a given feed?

Blogging via Atom API on Nokia 6600

Christian Lindholm: Pertti Korhonen, Nokia’s new CTO introduced PhotoBlog for Series 60 in his keynote at ETech in San Diego. This application proof-of-concept is supporting the Atom API enabling users to post to leading blog platforms. The application was developed by Futurice, who is developing a Photblog platform.

This made my day.

!Echo Wiki

Slides from today's presentation [source]

BlogDex for Books

Davd Sifry: Technorati Hack - Most popular products people are talking about today. This uses the Technorati API combined with the Amazon API to get aggregate information on the products people are linking to on Amazon, in real-time, and then showing a combined view of the product picture along with the context from the most authoritative blogger who has posted about the product in the last 24 hours.

Mail Malfunction

If you have found me to have been even less responsive than usual to email in the past few days, it is because I have had a mail malfunction.


First patch

Andrew Grumet: This patch catches 404 Not Found errors and inserts them into the standard error handling flow, which until now was just dealing with parser-generated errors.

This patch has been applied on  If all goes as planned, this will automatically propagate to and in a matter of hours.  Sourceforge propates all changes to the anonymous cvs servers every 5 hours.

Stalking the wild PVR...

As with many journeys, most of the interesting things happen in the tangents and detours taken.



Feed validators seem to be popping up everywhere...



One of the nice side effects of the efforts towards fortifying my weblog against comment spam and floods, is that I've invested some time into logging of various unusual server conditions.  Initially, this was for forensics, but it has proven much more useful than that.


Bad Timing

Continuing adventures with Time Warner Cable...


Snow Days

Welcome to Raleigh, North Carolina, where the official snow removal strategy is "pray for sunshine".


Defying classification

What is Planet ApacheWhat is Technorati?  These questions fascinate me.

Mailing list vs comments as a venue for dialog?  To me, that's like comparing board meetings vs pubs for as venues for making business decisions.

I am told that using information at the IP layer to affect behaviour two layers up isn't going to work?  And yet I run firewall programs filter outgoing connections based on the path of the main program which issued the request.  Despite coming up with "perl.exe" for a fair number of commands, it does seem to catch a lot of spyware.

Classifications are so impossible, yet so darn useful.

FeedValidator @ SourceForge

Project info here.

Over the next few days I will be setting up an archived mailing list, bug tracker, importing the source code and documentation...

Beware of Strangers

If they don't come back, it is not possible to have a two way conversation, is it?


Client side validation

Brent Simmons: What I could do—what I’d like to do—is include Mark’s and Sam Ruby’s validator in NetNewsWire.

+1.  I'm in.

This will require some work, none of it hard.  Prereqs are Python 2.x and pyxml.  There currently are three interfaces: a CGI/web interface, a command line, and a web interface.

In any case, none of this work is difficult, and I would be glad to do it.

PVR 350 order placed

I've gone ahead and ordered a PVR 350 from newegg.  This should be fun.

I picked this card primarily because of it's support by products such as MythTV and VideoLan.

You might be a spammer if...

How would you complete this sentence: You might be a spammer if



Stefano Mazzocchi: I am very happy to announce that I have accepted a two-years research position at the MIT Libraries. This means that I will be moving to Boston in a few weeks. I will be involved with the SIMILE project, the goal is to show that the semantic web can work.

I'm reminded of Niobi's line from Matrix Revolutions: "I don’t believe in the one. I believe in him".  SIMILE is now officially a project to watch.

Validate on subscription?

I've thought about Brent's proposed compromise, and to borrow a phrase that is a favorite of Tim Bray, I think that there is a way that 80% of the value can be obtained with 20% of the effort.  Is there really a market requirement to be selectively pedantic on a feed by feed basis?


A Modest Browser Proposal

Tristan Louis: Robert Scoble mentions on his blog that he had a meeting with the IE team and that they are solicitating feedback from the blog community about what to include in the next update of the browser. While particular features are nice, I'd like to suggest something much more radical...

Spam Update

Based on the lively discussions of the past few days, it certainly appears that requiring a preview does not impede the flow of discussion.  Cool.

Spam also is way down, despite my having removed and relaxed a number of other defenses.  Notably, my spam throttle has not been activated for over two weeks.  Apparently some spammers do read weblogs and warnings deter these folks.

My initial implementation of requiring a preview was simply to omit the submit button from the page - the underlying code did not change.  Amusingly, about 40% of the spam I did receive did not do a preview first, indicating that they had bypassed the html pages.  This is easy enough to fix - a nonce is now provided on the preview form, and verified on the submit.

As currently implemented, nonces can only be used once, and expire after 30 minutes... so if more than 30 minutes elapses between preview and submit, then the submit will effectively be interpreted as a second preview, resetting the clock.

Final test

What does your aggregator think of these feeds?  While UserLand's Validator and the FeedValidator both declare them to be invalid, the W3C validator indicates that these feeds are valid Disney RSS 0.93.

Does your parser accept this namespace?  Does it handle the date format?

Is my weblog well formed?

Can I ever be sure?


Pop Quiz #2

What does your aggregator do with this?  Is it valid?

Update: The above was updated to point to a snapshot of this this feed as it existed at the time this blog entry was originally posted.

P.S.  Hint.

Laws of Explanation

Tim Bray: When you’re explaining something to somebody and they don’t get it, that’s not their problem, it’s your problem; When someone’s explaining something to you and you’re not getting it, it’s not your problem, it’s their problem

Instant classic.  Added to my favorites.

Peek a Boo


Video iPod

Robert Scoble: those of us who fly coach often sure would love a nice "video iPod."  I agree.  However, the road there is likely to be rocky.

Last month, I bought a Casio EX Z4 camera.  I'm quite pleased with the form factor and the quality not only of the pictures, but of the monitor screen.  In fact, I remarked to my wife that this would be an ideal form factor for a Location Free TV, and she readily agreed.

So I did a bit of research, and found that EX-Z4U marketed in North America does not include the Movie Mode.  Thanks, Casio.

Now, let's take a look at the video formats supported by proposed Portable Media Center.  Windows Media Video, and an assorted set of still image and audio formats.  No mention of Real.  No Quicktime.  And most importantly, no MPEG.  While I intend to keep an eye on this, for the moment, I'll pass.

For the short term, I'm looking into the WinTV-PVR-350, and possibly MythTV.  Since I tend to travel with my laptop anyway, for the moment, that will be my target device.

Scientific Method

What does your aggregator do with this?  Is it valid?

Note: in the proper application of scientific method, observation precedes the formulation of a hypothesis.  In that spirit, I’d like to ask that people indulge me for a moment and refrain from rationalizations, justifications, and explanations, and focus for the moment on simply gathering data.


John H. Robinson, IV: I will show you a way that you can have apt mix-and-match between Stable, Testing, and Unstable sources. This will allow you to run a mostly-Stable system, but also track the latest and greatest of those packages that you are most keenly interested in.

It is much easier to install XML::Atom on a Debian system if you have first issued the following command:

apt-get -t testing install libxml-libxml-perl libdatetime-perl libdigest-sha1-perl libwww-perl libxml-libxslt-perl

Assigning 802.11b Channels

Jim Geier: As a design rule, access points within range of each other should be set to channel frequencies with minimal overlap. Otherwise, you'll find that roaming doesn't work well, and performance will degrade because of interference between access points.

Preview prototyped

OK, an initial implementation of my preview required functionality is complete.  Other than requiring a preview, most of you should not see any different behavior.  I've also relaxed my spam throttle to allow three comments - this allows the first to go through and two warnings before someone is temporarily shut down.

Now I plan to watch and see what action is warranted next.

Preview required?

This is a trial balloon.  What I am trying to explore is what would happen if I were to convert the act of posting a comment into request/response interaction.  I would very much like to do this in a way that does not significantly inhibit the sponteneity that an comment system which does not require prior registration allows.


Comment spam

Don Box: To date, the few times I've wanted comments, I've pointed people over to Sam's place and let the peanut gallery operate on Sam's bandwidth dime. I think this time around I'll do it mainly because I want to experiment with some anti-troll/anti-spam ideas.

Comment spam has gone from a curiosity to an irritant to an amusement of mine.