It’s just data

Select coffeeshop from * where town=...

Doc Searls Hey, coffee and wine shops, I'll be in town for the next day with a laptop and a PDA that are wondering who's ready for my business ?

This problem doesn't seem all that much harder to me than syndicating and aggregating weblogs.  In particular, both ends of the equation are likely to be behind a combination of firewalls, NAT, proxies, etc.  Question to ponder: what technical, sociological, and legal innovations will be required to make this come about?

One interesting thing this scenario highlights is the potential need for multiple credentials to be transmitted along with the request


Towards robust intermediaries

Jon Udell The basic LibraryLookup bookmarklet is a kind of intermediary. It coordinates two classes of services -- Amazon/BN/ and your local library's OPAC -- to facilitate a lookup. I couldn't resist trying to create another intermediary that would facilitate a purchase request.


Question to ponder: what is the chance that this code will continue to work, unmodified, three years from now?  What technical, sociological, and legal innovations will be required to make this come about?

Trackback Threading

Greg Reinacker: So, everyone, how about implementing TrackBack and/or Pingback on your weblogs - and let's see where it takes us?  My guess is that the next logical step is trackback threading.  This represents a small challenge for those of us who comingle trackbacks and direct comments, but I'm sure that this can be overcome.

Amusingly, trackback is to linkbackparser as Mark's cite logic is to mine.

Show Me the Code!

Shelley Powers: Additionally, I would also like people to start putting their code online. This last week there was a great deal of discussion about the CITE tag and how it can be used to provide specialized processing. Well, that's great and good, but let's see the processing? Can we see the code that Mark used. Or Sam's code?

I publish the code for my weblog, such as it is.  Search for "cite" in blosxom.  The index page is generated by a separate script.  You can see the similarity between the two... given how quickly this was thrown together (I had no advanced knowledge of what Mark was working on), I did a bit of cut and paste instead of a proper refactoring.  Also note that contrary to popular belief, my implementation is not based on the cite tag.

Command line RSS validation

curl -i -d "<rss><channel/></rss>"
curl -i -d "<rss/>"

The latter demonstrates a bug in the validator, which I will leave unfixed for the moment to demonstrate fault responses (complete with server side python stack traceback).  This can be put into a script on Unix/Windows thus:

curl -i -d "`cat $1`"
curl -i -d "@%1"

Thanks go out to Jeffrey Winter for this nugget.

bookmark me

Mark Pilgrim: Now, there is a way to specify permalinks in HTML, but virtually nobody uses it.  Ok, I've updated my templates so that the preferred permalink is marked with a rel=bookmark. 

Open Source Dynamics

Stefano Mazzocchi it's an design pattern: "good ideas and bad code build communities, the other three combinations do not". This is extremely hard to understand, it's probably the most counter-intuitive thing about open source dynamics.

Obligation Free

Sam Gentile: it seems very difficult to get people to collaborate freely and consitently in a medium where they feel like they have an obligation.

Something worth saying

Words for the day: serenity, triage, and quixotic.

Rich Content

Mark Pilgrim: I am amazed, bordering on appalled, at the attention garnered by my use of the cite tag.  I too, am amazed, and quite frankly amused.  Mostly, I'm amused that a number of people assumed that I had used the cite tag, when in fact, everything was done with a few regular expressions strategically placed in the code that selects entries to be displayed.

Like Mark, I want to be able to reuse my own content in millions of ways, including things nobody has thought of yet.

Weblog backed by SQL Server

It looks like Greg Reinacker has felt the itch, and is writing his own weblogging software.  He claims to be pingback enabled, but hasn't pinged me yet.  ;-)

Simon continues to amaze

Give Simon a challenge in the evening, wake to a solution in the morning.  Despite bugs on my part, unclear specs (it looks like the space is legal, in any case it is inserted for me by the Apache/CGI interface), Simon comes up with an complete and elegant solution for a VB client to the RSS validator:

    Dim v As New Rss.Validator
    Dim vr As Rss.Response
    Set vr = v.Validate(tFile.Text)

Welcome Rodent of Unusual Size!

Fellow ASF director, Ken Coar has a blog!  Though it looks like he as yet to learn about referrer logs or rss.  He's a quick learner though, and I'm sure he will be teaching us a thing or two on these subjects quickly.  Meanwhile, he does have permalinks, (note to Andy: look for the thingies that look like quite substantial chain links).

Hmm, I wonder if we should invite Ken to lunch?  Hmmm, Ken and Andy in the same room?

Update: It looks like Ken has been outtedLOL!

WSDL Wizard

Simon Fell: Finally wrapped up RC1 of the WSDL Wizard. It supports doc/lit and rpc/encoded, SOAP headers, enumerations, complex types and import . Can it handle this?  What would a VB/VBScript client look like?

Universal Personal Proxies

It looks like Les Orchard and Russell Beattie are discussing unwarranted leaky abstractions.  Sounds like fun!

P.S.  FWIW, the original REST thesis explicitly endorsed the idea of intermediaries.

Weblogs and Discovery

Mena Trott: weblogs are changing the way we're finding (and asking for) information on the web. I especially like the reference to mini-universes coming into existence within the comments of a post.

Eclipse on .NET

Jeroen Frijters: I got Eclipse to run  I wonder if something like NGEN could be used to address the startup time issues.

Andy's Gump saga

Andy Oliver: I suspect is the configuration that Sammy boy uses to run Gump on his Thinkpad... It is building all of Jakarta/XML/etc., so its understandibly a lot for my T-30 to do.   Somehow, I manage on my T-23.  Also, I think you underestimate the communityCentipede is getting on board - by starting small.  My guess is that the JAXP stuff can all be removed.  FYI: here is a complete list of dependencies that are required for a full build.

SOAP Routing

Phil Windley: Level 5 Routing for Web Services.  See also Rohit Kare's presentation and notes.

Blosxom 0+6i BETA 1

Rael Dornfest: I spent a little time over the holidays whipping up a nice little prezzie for y'all: Blosxom 0+6i BETA 1 -- now with STATIC RENDERING!  It seems to me this could be mixed with a little funky caching.  After all, why generate citations hourly when they can be generated on demand and cached.

Posts by citation.

Mark Pilgrim: Posts by citation.  What a cool idea!  Done.

Mr. Subtle

Andy Oliver I hate programmers, everything has to be stated precisely or argued to the bitter end. I think I'm done arguing. Dont agree? Bite me...or just EAT MY CODE.

St. Nick

Robert Scoble: here's the truth about Coca Cola and Santa.

Optical Illusions

Reverend Jim: I don't generally announce this sort of thing, but these Optical Illusions are really good. Number 6 is my personal favorite. It literally knocked me out of my chair. (Flash Required)

Validate XHTML with SOAP anyone?

Ben Hammersley: Now, if the XHTML validator had the same thing, we could start seeing self-validating blogging tools, that use the SOAP interface (or a REST one, whatever) to check their own output.  OK, I've inquired on the list to see if I can help.  Furthermore, I will assert that this is a REST interface.

Critical thinking

I wake up this morning to find this story at the top of both DayPop and Blogdex.  My first reaction is apparently not like most.  It seems that many people today feel that "the story is on the internet so it must be true".  However, my mind doesn't work that way. 

What I see is an article which is well written, including a number of elements which tend to pander.  Perhaps it is 100% accurate.  Perhaps it contains a bit of hyperbole.  Then I see a donate button at the bottom.  Perhaps this is a new-found appreciation for implications of the new security policies, in which case I would give the article a bit more credibility.  So I click on the Back to Home Page to see what I find there.


OK, this article definitely gets filed into the unsubstantiated pile.  No particular reason to believe it is false.  No particular reason to believe it is true.  Just in a limbo state.

Update: it looks like DarkZero also has some interesting questions.

Validate your RSS with SOAP

It's alpha, it's got bugs in it, but if you feel so inclined, give it a spin.

If you followed either the SOAP by Example or the BDG to WSDL part III, then RSSValidator.wsdl is all you need to get started.

Why a SOAP interface?  Suppose you have a site that is not published on the internet.  Or suppose you want to test your feed before you deploy it.  Of course, you can run it locally, but even though we made it real easy, not everyone wants to install and maintain another program.  Wouldn't it be nice if you could simply send your RSS feed off some place and have the results sent back?

Well now you can.  Simply POST your feed to the RSS Validator.  Since this code is liberal in what it accepts, neither a SOAP Envelope nor a SOAP Body is required.  Since it is conservative in what it does, you will always receive either a fully compliant SOAP response or a SOAP fault back.

Either that, or there a bug.  If so, let me know.  Once the bug smashing dies down, I'll write up information on how the client and server of this interface works as parts II and III of SOAP by Example.

Groove, Radio, and Leaky Abstractions

Tim KnipGroove needs a SOAP-header for security reasons and as Sam Ruby points out, SOAP-headers are around for some years now. Ok, Radio is BDG-compliant - clear - but then soap.rpc.client has to be dropped for interop with Groove.

Rick Olson: I had the same issue trying to get the Muse.Net client to work. It was a little more difficult to use the lower level Radio methods to send headers, but I just wrapped it up in my own wrapper and all was good.

Unquestionably, functions like soap.rpc.client provide value, but abstractions fail.  When they do isn't it nice to know that you can drop down to a lower level interface when necessary?

The Lion Sleeps Tonight

Joshua AllenBut, there is reason for optimism.  Thanks, Jon!

P.S.  This post is a riddle.  Let's see who gets it first.

Fade to white - update

Anybody remember Fade to White?  Want to see it in action?  Take a look here

The end of the year is quickly approaching... if your name is in here, it might be a good time to either drop or update your links.

Update: Rahul Dave got the hint!  Thanks Rahul!

Get creative

Lawrence Lessig: creative reuse of creative content is what CC is all about   It appears that these licenses were designed in according to the Jon Udell's philosophy Expect, and encourage, unintended use.

All the way to SOAP

Apparently, the Monastic one (a.k.a., my personal albatross) seems some value in a data binding package, and he correctly points out that validation may not be necessary part of the equation.  I'll take what I can get.

Meanwhile he states surprise, not once but twice, that I would be willing to go all the way to web services and all the way to SOAP in order to achieve this.

So, I felt it instructive to explore exactly how far that is.  This resulted in a new essay, entitled, Soap By Example.  Enjoy.

Nobody expects the spontaneous integration

Jon Udell Why was this unexpected? Because we think coordination of distributed resources has to be hard. The Web keeps showing us how it can be easy, but we never quite believe that. We invent fancy remote-procedure-call technologies and forget to make them document-oriented and URI-addressable -- an oversight that is now, happily, being corrected.

Life at the Edge of Chaos

Dave Winer: Sam Ruby will probably appreciate this loose definition of continuity in software standards from this day in Y2K.  I do.  See also functionally stabilized.

creativeCommons RSS validation

I just committed code which validates the new creativeCommons rss module.  What this entails is the following:

This continues the effort to codify RSS Best Practices.  The first bullet above is the same concern as the one expressed on <a> and <img> tags previously.  The second is to avoid confusion.  The third is because while the following are both valid RSS 2.0, there is no precidence rule used to arbitrate between them should they differ:

<cc:license rdf:resource = "" />

<creativeCommons:license> </creativeCommons>

What are schemas for?

Source: Noah Mendelsohn [PPT, page 9]

Creative Common's Genius

In response to Matt, there are lots of Open Source licenses.  I suspect that many of the CC licenses will qualify.  And, yes, Jon Udell recently released some software under a license that some would have you believe was anti-competitive and a cancer.

The key difference between by-sa and GPL is one of marketing genious.

Had Jon merely copyrighted his work, you could have copied it had you asked for and obtained Jon's permission.  All Jon has done is let you know in advance under what conditions you are not even required to ask.

Update: Lawrence Lessig says that CC licenses won't interact with software licenses.  This ignores the fact that they already have.  The most he can say is that his energies are focused elsewhere, which is fair enough.

All you need is love

Andy Oliver: I learned this kind of rat bastard behavior from Sam. smiley

Wrapping XML-RPC in SOAP

Rich Salz So what we've started work on is a SOAP profile, defined in WSDL, that should make it easy for "legacy" XML-RPC applications to interoperate.

 The XML-RPC implementation are drop-dead simple.


Clemens VastersAll numbers are worthless if you don't look at how they were achieved

Dare ObasanjoMy Impressions of Don Box's XML 2002 Keynote

Dave Winer:  ...thanks to the magic of namespaces...

IK.VM.NET: now on SourceForge

Pelle BraendgaardStrangeberry a cryptic (dare I say Stealth) startup in Palo Alto have released a LGPL'd library for publishing and listening for Rendezvous services.  In Java.

WinfessorWe've just announced our .NET Jabber SDK for Mono.

Dive into RSS

Catch Mark Pilgrim, now on

Thank you, Andy!

Nicola Ken: Andy is pushing me into making Centipede work with Gump. He just wants to make it work at all costs. I hope he know what the price is when you do these kind of things.  Thank you, Andy.

That's Dedication

Matt Croydon: RTP Roadtrip.  Looks like Matt will be joining the RTP Bloggers on Monday.  Made that trip many times - though when I made it I would make a left at 495 and up 270 to Gaithersburg.  Hitting Springfield at the right time is the determining factor as to how long the trip will take.

Jakarta PMC Report

With a dash of civil disobedience and a healthy dose of overall perspective, I've submitted my quarterly Jakarta PMC chairman's report to the ASF Board.

Where’s my cricket bat?

DiveIntoMark: There’s something scary about stupidity made coherent.

Jelly sucks

Actually, this looks pretty cool.  Unfortunately, Jelly seems content to perpetually remain in sandbox mode.  Furthermore, it depends on unstable components.  What's worse is that nobody cares.

Nudge, nudge.

Getting Creative

Read this.  Want more?  Watch this.  See the connection?  Make the connection.

Partying like it is 1999

Tim KnipSo... Dave: HTTP/1.1 + SOAP-headers? Please? ;-)  HTTP 1.1 is dated June 1999, and I covered headers in my sequel to Dave's BDG which I entitled Headers and Hrefs.

Data: yum, yum

MicrosoftWatch [via ScriptingNews]:  Box went on to call the development of a "data-oriented language" one of the "most interesting areas for innovation in the next five years."  Pardon me while I wipe the drool off my chin.  Hopefully, this new language will have explicit support for distributed operations.  Perhaps even along the lines of what I outlined in Neurotransmitters.

Where can I sign up?


Erik Hatcher: I decided to rename my current pet project to blogscene as I'm going to use Lucene as its underlying storage/retrieval mechanism rather than the filesystem.   Now that sounds innovative!  Using the search engine as the primary data store for a blogging tool.  Cool!


I'm making available a near final draft of the Busy Developers Guide to WSDL, Part III: a.k.a. document literal.  I may do some more tweaks and respond to suggestions and bug reports. 

The example in this essay is based on the RESTLog create news interface, modified to be compliant with the SOAP 1.1 specifications.

I can't help but note that this document shows how it is possible to answer yes to all eight questions in Paul Prescod's Slippery Soap.  It is also related to the irony that Jon Udell deemed priceless, and, of course, the REST+SOAP essay.

Let the fireworks begin.  And Joe, if the result is any forward progress at all, I promise to go back and address your questions, once the embers have died down, of course.

Open Office Wars, part 3

Simon St. LaurentFor some reason, seems hung up on the issue of what schema Microsoft is using. doesn't seem to grasp that you can do lots of things with XML with or without a schema, and perhaps the most powerful feature of Office 11 is that you can use it to process documents using your own schemas, applying Microsoft's tools to formats you (not Microsoft!) control directly. 

I still think there are two sides to this story.  On one side, the ability of MS tools to adapt to formats that users can describe will be an incredible step forward.  On the other hand, this doesn't explain an unwillingness to working with others to describe the semantics that PowerPoint 11 uses to capture a pie chart.

See also parts 1 and 2.

Capital Center goes boom

WashingtonPost [via Matt Croydon]:  Fans Turn Out For Cap Centre's Roaring Finale  Sad to see it go.  I grew up a few miles from there and remember it being built.  It looks like the DC bloggers are organized.

I'm glad IANAL

Why don't CCPL licenses (example) have copyright statements on them?  Gotta love the <div class="fineprint"> sections...

I Read it for the Articles

MozillaZineThe January 2003 (print) edition of Playboy has a glowing review of Mozilla in its Living Online section on page 36. It starts: 'Microsoft's Internet Explorer is the most popular browser in the world. But it's not the best. That title belongs to Mozilla...

Humano-Tech Weblogging Conference - East?

Ed Cone has some suggestions for RTP conference locations.  Perhaps Matt Croydon would consider driving down.

Green Eggs and Ham

Renowned RESTian and self proclaimed tech-curmudgeon Mark Baker says I think good thoughts when I talk about converging REST, SOAP, RSS, and Blogger.

Meanwhile, the monastic Mr. St. Laurent prefers to spit out the seeds I'm trying to plant.  First he objects to the xsi:type's, and SOAP as a transfer protocol.  I point out that I am proposing neither.  Now he returns to the idea that I am proposing a substantial change, when all I suggested is that two tags be permitted and ignored.

Me thinks Mr. St. Laurent doth protest too much.  Dave Winer calls this Stop Energy.

The correct response to this, as always, is A Bias for Action.

Symbiotic conference planning ideas

Vancouver is certainly not a day trip for me.  If the conference ends up being there, I will undoubtably try to see if I can combine the trip with other things.  When planning the last SOAPBuilders and DevCon, we intentionally made it so that people could plan to attend both.  The last ApacheCon was near Comdex for similar reasons.

Now look at the speakers to the last O'Reilly ETCON.  Or SuperNova.  The next ones are in May/Santa Clara and June/Washington DC respectively.  Perhaps some of the interesting people could be encouraged to come early and/or stay after...

Imagine a caravan full of RTP bloggers descending on Washington DC in June...

Scripta Volant, Notitia Manent

Sean McGrath: everything is a document exchange, choreographed over time.   Sweet!

There are lots of gems in this essay.  Example: Don't let some API get in the way of your understanding of XML systems at the document level. If you do, you run the risk becoming a slave to the APIs and hitting a wall when the APIs fail you.

Whirls, eddies, and petrie dishes

A while back, I wrote an essay called Managed Serendipity.  It described a magical time when things are created by sponteneous collaboration.  The current term in vogue for appears to be the lazy web.  Whatever it is called, now is another such magical time... library lookup, more like this from others, rsd.

Bootstrapping Gump

Nicola Ken Make Gump use Centipede and Forrest .  Why does this say " Using Apache Ant version 1.6alpha compiled on December 1 2002"?  Now read "What is Gump?".  Many of the contributors to Gump are, or have been, active Ant developers. 

Think bootstrap.

RFC: Really Simple Discoverability

I hope this isn't too late.  Perhaps not, the spec isn't listed as 1.0 yet.  In any case, I feel really bad about not reviewing RSD before, expecially given that the RFC links to not one but three of my essays.  I have three comments, which I will give in decreasing order of importance:

1) In the examples, there is an "rsd" namespace which is defined but never used.  In order to use it, one would have to prefix each element with "rsd:".  A simpler fix is to simply define this as the default namespace for the document, by dropping the ":rsd" entirely from the declaration.  As it stands, I would say that the examples don't comply with the spec.

2) rpcLink presumes, well, RPC.  With protocols like the RESTLog Interface, there is not a single URL, but rather a set of them.  Yes, there is a base URL and one could munge it into this slot, but it really doesn't fit, and furthermore calling the slot RPC unnecessary provokes the more radical RESTians out there.

3) I would prefer to see a simple URL instead of a centrally managed list of "well known names".  That's not to say that there can't be a list of known URLs.  This is for two reasons: (1) to decentralize the maintenance, and (2) to provide more value by providing a direct link to the documentation of the protocol supported.

Emergent Taxonomies

Ben Hammersley: Perhaps taxonomies should be entirely emergent...What if we just forget about taxonomies altogether and go with trackbacks.  How about Second Order Trackbacks?  Sounds to me like TrackBack Threading.

Personally, I've not yet quite convinced about the value of predetermined taxonomies.  I'd rather see a site which supported ad hoc queries than one which is extensively categorized (similarly, I prefer Google over Yahoo).

Update: Ben continues this discussion here, but I have no record of a trackback.  Bug?  Snub? 

Unification: REST, SOAP, RSS, Blogger

Joe GregorioThere is a lot of discussion on the proposed Blogger API Version 2.0 and Ben brings up some very good points. This gives me a chance to trumpet REST in general and RESTLog specifically in how they solve these problems.

Seed planting time.

What if allowed for the posibility that <item> elements it receives using an HTTP PUT may be enclosed in Envelope and Body elements, as described here.  All I am asking is that these be ignored... the one exception is if some XML element contains a mustUnderstand attribute with a value of "1", then you return an appropriate SOAPFault.

I'm not suggesting that such an envelope be required, or that any other changes be made to the API.  Merely that it be tolerated if it were present.

I can donate the Python server code for generating a SOAPFault message.


Timothy AppnelIf you havn't seen it, Joe's prototype and RESTful API can be found here.  A RESTful API for updating weblogs is a good idea. 

Overall, I'm positive on the notion of a Well Formed Web... though I would actually rather see a Valid Web.  The ability to automatically discover and generate dynamic or static proxies is a powerful notion.  One that need not necessarily require that all methods are POSTs or that actions be embedded inside the data.

Designing for recombinant growth

No sooner had I finished up my previous blog entry did I see this one. Jon Udell certainly has a sense of timing.

The only thing constant is...

...change.  Blogger API 2.0.  Sigh.  It looks like the future of blogging clients and servers is to have more code in if/switch/case statements and configuration options than actual logic.  What's worse is a future where - despite all the interfaces being "open" - the only real guarantee you will have is that vendor A's clients will work with vendor A's servers.  That's called vendor lock-in.

At the time the MetaWeblog APIs were written, I wrote this.  Deja vu all over again.

IMHO, the right thing to do is to focus on the bits and bytes that go across the wire.  Define an XML message for each interaction.  In fact, divide the XML message into two parts - a header which contains "login" information, and a body which contains "post" information.  Allow tool specific extensions through namespaces to support "filters", "actions", etc..

WebLogs in MeatSpace

Dave Winer posts a lot of insightful ideas about the future of conferences. My instincts are that a hybrid of approaches are what is required - a combination of common experiences (keynotes), structured communications (sessions), and adhocracy.

The closest I have seen come to this was the ApacheCon, which had a parallel hackathon running during most of the sessions. What the hackathon had was 802.11, power strips, tables, chairs, and a few whiteboards. In my experience, power strips are the most overlooked accessory by conference organizers.

I know many West Coasters that are just hitting their stride at midnight, so if you want to truly even the playing field, make the keynotes all happen at 7 a.m..  Las Vegas is also a great location in that nobody lives there, and everybody can get there easily. 

I'm not a fan of speakers during eating.  Eating is a wonderful opportunity to talk to the person next to you.  Rooms with PC's or Mac's are so last century, these days most people bring their own internet access devices.

Frictionless web services

Jon UdellFor me, C# was easier in one way and harder in another. It was easier because Visual Studio .NET made consumption of the WSDL APIs frictionless.  I'm curious as to why this isn't true for, say, Python.  There are existing libraries that purport to do this.  Is the issue awareness, license, deployment, functionality?

If there are issues, and interest expressed by Groove developers and/or users in collaboration on flattening them, then I would be willing to contribute.

REST starts with R

Mark Baker: Figure out what are the identifiable objects in your system, give them all URIs, and make sure they answer GET requests. Much of REST will flow naturally from that.  That is a good first step.  The next step is to agree on common representations.  Sometimes consensus can be reached on these representations, and that is goodness.  Otherwise, extensibility and/or discovery mechanisms may be helpful in providing the right amount of coupling.

Demise of e-mail?

Chris Sells: Of Eggs and Omelets.  What is most notable about this to me is that I first saw the e-mails that he is referencing when I went looking for them after seeing the reference on his weblog.  

The reason is simple: my corporate email address is getting so overrun with spam that I instituted a rather aggressive filter a few weeks back: everything that did not originate from within the firewall is filed into a folder.  (Note: that doesn't mean a forged SMTP address either, it means that the particular e-mail never saw a gateway ever).

I scan this folder periodically, but as this folder has such a low signal to noise ratio, I often miss things.  Meanwhile, my aggregated news feeds have a much higher signal to noise ratio for me.

You want to catch my interest?  Say it on a weblog.

Update: Steven Noels has the right idea.

Welcome Nicola Ken!

Steven Noels: Nicola now as a weblog. I've subscribed, even though his RSS doesn't validate.

Open Source J2EE 1.4 gets Sun green light

ComputerWire Fleury said JBoss would now seek standards certification for its implementation. JBoss stands to become the first open source group to deliver a version of J2EE 1.4 under the revised JCP.   None of this would have been possible without the hard work of Jason Hunter.

Write once, run everywhere

Graham Glass is doing some experiments with running some Java code on the CLR.  It would be interesting to know how IK.VM.NET compares.

Seasons Greetings

James Duncan Davidson:. As forwarded onto me from an unknown source...

Please accept with no obligation, either express or implied, my best wishes for an environmentally conscious, socially responsible, low stress, non-addictive, gender-neutral celebration of a holiday on or near the date of the winter solstice, practiced within the most enjoyable traditions of the religious and/or secular persuasions of your choice, with respect for the religious/secular persuasions and/or traditions of others, inclusive of the choice not to engage in the practice of any religious or secular traditions.

May you have a fiscally successful, personally fulfilling, and medically uncomplicated recognition of the onset of the generally accepted Western calendar year 2003, but not without due respect for the calendars of choice of other cultures whose diverse contributions to society have helped make America great. (This statement made without implication that America is of relatively greater value than any other nation, country, kingdom, realm, emirate, sultanate, principality, or geopolitical state of any kind, whether or not officially recognized by any other nation, country, kingdom, realm, emirate, sultanate, principality, or geopolitical state, or that the United States of America is the only "America" in the western hemisphere, and without regard to the race, creed, color, age, gender, physical ability, religious faith, or choice of computer platform of the wishee.)

By accepting this greeting, you are accepting these terms. This greeting is subject to clarification or withdrawal. It is freely transferable with no alteration to the original greeting. It implies no promise by the wisher to actually implement any of the wishes for her/himself or others. This greeting is void where prohibited by law, subject to all Federal, state, and local taxes, and further is revocable at the sole discretion of the wisher. This wish is warranted to perform as expected within the usual application of good tidings for a period of one year, or until the issuance of a subsequent holiday greeting, whichever comes first, and warranty is limited to replacement of this wish or issuance of a new wish at the sole discretion of the wisher.

Supernova conference notes

Dave Winer Decentralization is a really ugly word. It's the fundamental underlying trend that's going to form the industy the next few years. It's a threat for centralized industries like the music industry that depends on control of users. Supernova is what happens when a star blows up.

Just do it

Shelley Powers We are out there... i.e., sitting by the phone, waiting for it to ring?

I have a lot of respect for people who do what they can, based on what they know how to do, even if it is suboptimal or even occasionally outright wrong.  Clay had a Social Software Summit.  Jon Stevens organizes Java Meetups in the Bay Area.  Andy Oliver does something similar here in RTP.  I hosted the first public SOAPBuilders F2F.

As Shelley points out, this is beyond the means and abilities of many.  More importantly however, she demonstrates that a comment enabled weblog is vastly underrated agent for engineering social awareness... a precursor to social change.


Erik Hatcher is rewriting blossom in Java.


Looks like a number of people are commenting on IBM's purchase of Rational.  I first worked with Rational in the mid eighties when their one product was an integrated hardware/software R1000 product focused on software development with Ada (funky 8.5" wide by 11" tall monitors with an excellent sofware configuration management system).

Rational has grown a bit since then.

A night club with a valid RSS 2.0 feed

Fellow Apache Member Jon Stevens, (yes, that Jon Stevens) has put together an RSS 2.0 feed for StudioZ.  It even validates.

I wonder how many other nightclubs can say that they do that?

Power's back

Joe Gregorio: Welcome to the weather of North Carolina. When it comes to the weather here it's not the average that will get you, it's the standard deviation.  The power went out here just before dinner was ready.  Just came back now... just as we were all preparing to go to sleep again in the family room around the fireplace. 

The radio is calling this Fran on ice.  To me, there is no comparison... with Fran we lost 7 trees, including two rather big ones... the first time I ever used a chainsaw it was on a tree that was nearly twice the blade width in diameter.  When the ground shook when the tree landed and the stump snapped back upright I realized how dumb I was to attempt such a thing... despite the fact that everything went exactly as it was supposed to.

With this storm, the roads are dry and passable during the day.  And I only lost two relatively small trees.

Weblog: Morgan Delagrange

Another Apache member with a Radio weblog.  Morgan, if you haven't discovered them yet, check out referers and rss subscriptions.

[I was the one who nominated Morgan for ASF membership]

Ice storm

Power went off yesterday morning, came back briefly this morning, and has been off and on every since.  Here is a view from my front door, taken first thing this morning.

Update: Mark reminds us that, No electricity == no heat, no stove, no refrigeration.   As I am on a well, in my case the first thing I notice is no heat = no water.  The first thing we did when the power came back on was flush and shower, in that order.

Design Principles and Code Ownership

Martin Fowlerstrong code ownership and refactoring are a right pain in the butt

Making Decisions Online

Rael Dornfest has some observations on why Open Source projects are able to make decisions online whereas other areas seem less able to do so.  This complements my A Bias for Action post.  A follow up to that post: Jim Jagielski thought I had added some cool additons.   Ask Bjørn Hansen apparently wasn't satisfied, so he refactored it a bit.  From the comments at the top of the new source file:

# Original version by Sam Ruby, written in Python.
# Ported to Perl, and enhanced by Jim Jagielski
# Enhanced to have links to personal pages by Sam Ruby.
# Enhanced to have the code suck less by Ask Bjoern Hansen.

Gotta love it!

Java language improvements

JSR 201 [via Andres Aguiar].  I personally don't care who gets to claim credit for this, it is just nice to see forward motion.

Update There are current draft specs for enumerations, autoboxing, enhanced for loop, static import. [via James Strachan]

Three years ago today

Craig McClanahan: In accordance with the project guidelines as described on the Jakarta web site (, I hereby propose that Sam Ruby be granted Committer status in the Jakarta Project.

Blog Browser Format

Phil Ringnalda. Even though I can hear Sam muttering digital magpie in my ear...  Phil, you say this like it is a bad thing. :-)   I believe that you and I have common tendencies when it comes to exploration, but when it comes to choices, I find that I have a tendency to pick the dull and boring ones.

As to the topic of blog browsers, I do have a number of thoughts.  One set of thoughts is that the data being captured is not merely hierarchical, it is actually  hierarchical faceted metadata.  But mostly my thoughts are to the dull and boring topics of the file format itself.

For starters, my site is generated dynamically.  This means that you can see any blog entry, day, month, or year in any of several formats.  Here's August in rss2June 11th in txtEntries containg "Ringnalda" in esf.  I could also slice by categories if I were to use that particular feature.  You get the idea.  So, for starters, I'd like some name other than simply ".xml" for the files.xml format... then I could enable it everywhere.

Now as to the file format itself, it appears tailored to blogging applications that statically render their content.  What are the created and modified dates for each of the dynamically renderable slices I identified above?  Should I calculate number of bytes in each in anticipation that it might need to be generated?

It is also not clear how one extends this format.  If you look at my archives page, you can see that I have readily available a count of the number of entries.  Might this be useful?

Unfortunately, I can see how this dicussion will play out.  Somebody will say that  "files.xml is not a brilliant format. It is a compromise. It is for blog browsers. That's all it is for, for the 18,000th time."   Then three months later will say that it is the perfect format for some other application that none of us have thought of yet.  And nobody will be clear as to what applications are out there using this format, let alone know what the impact will be of any change.

We've played this game before.  Why not learn from the past?

All I am saying is: give this format a name.  And a namespace.  And specify from the beginning how (or even if) it can be extended.

Java VM for .NET

Jeroen FrijtersI've been working on getting the SWT (the Eclipse windowing toolkit) examples to run [on .NET].  This is totally wicked!

A Bias for Action

Steven Noels and Andy Oliver have been providing interesting commentary on the evolution of an published list of Apache committers with links to personal home pages / web logs.  What most seem to miss is that this is a classic bikeshed discussion, complete with predictions of dire consequences from individuals if their particular point of view is not adopted.

The way that these disputes tend to get resolved in Apache is that somebody steps up to the plate and builds the darn thing as best as they can and solicits input in the form of "patches" (tangible suggestions in the form of working code).  The original code provided is generally not important - it tends to get refactored away anyway into oblivion.  What is important is that it focuses discussion into the form of constructive and tangible input.

In this case, I have done exactly that.  List and source.  Patches welcome.

Fickleness as a Virtue

Andy Oliver: Be your own man don't get so religious about technology that you're just a pawn in their game.

The last three felt like ten

Doc Searls: The next ten years will feel like three.  Later this month I turn 41.  For me, the last three felt like ten.  In a good way.  How many people reading this weblog knew I existed three years ago?  Apache Jakarta had just been formed. Tomcat 3.0 has not been released, and I was not yet a committer.  SOAP 1.1 was still in committee.  Dr. Fielding's thesis on REST was not complete.  It would be nearly another year before I heard about what was to become .NET.  And RSS was a mess.

What changed it all for me?  PHP.


OpenMatt That’s the lesson that I came to in my life, but it’s the same in the film. A character in a dream tells Clooney to not try and find the answer, but to choose a path and move forward. That there are no answers, only choices. This is true.

Two simple words

Cedric Beust [via Guido Casper]: The reason for lousy software lies in two simple words.

Inadequate testing.

Another PHP blogger

Hi Sterling!

RSS help

Halley Suitt Can anyone help me out with an RSS error?  Short answer: turn off smart-quotes.

The RSS validator will provide a clearer error message.  The problem is that your weblog contains characters which will not be read the same by everybody on all platforms.  You can fess up by changing the first line of your RSS feed to declare the character set, i.e., something like this:

<?xml version="1.0" encoding="windows-1252"?>

Or, you can simply change the characters to something more universal.  There are even tools that can help.

eXtensibility and convergence

It looks like people are starting to wake up to the notion that XML is, well, extensible.  You don't need separate syndication and archiving formats.  You don't need separate syndication and display formats.  The most extreme example I have seen to date is still this one - a blog that validates as RSS.

My weblog validates as XTML 1.0.  If recommendations emerge as to CSS class names for aggregation purposes, I will comply.

Burningbird's Anonymous

Hello, my name is Sam Ruby, and I'm not afraid to admit that I read Shelley Power's weblog  (Hi Sam!)

Speaking of what people are afraid to admit, apparently a large number of people prefer not to cry in public.  Some of the male of the species say that it's because it is not perceived as masculine to do so.  Some of the female of the species say that it's because it is perceived as too feminine to do so.

I believe that in most cases, it is because the person does not wish to appear vulnerable (or perhaps, in Shelley's case, exploitative).  Unfortunately, the reasons people state for this behavior perpetuate the myth that the female gender is the weaker sex.

Those that believe that the female is the weaker sex have not met my wife.  I can guarantee that those who are reading this weblog and have met my wife have a knowing smile on their faces right now.  For the rest, let me describe a shirt that she often wears.  It has a snarling cat on it.  The caption reads "don't mess with me, I draw blood".

It is not an idle threat.

Nice is better than mean!

Ben Hyde reviews Robert Axelrod's 1984 book Evolution of Cooperation.  Summary:

IBM's autonomic umbrella

Jon Udell But it was hard to avoid concluding that "autonomic" for IBM has become what ".Net" is for Microsoft: an umbrella marketing term that encompasses everything and nothing in particular.  Ouch!  No, not for IBM or autonomic, but for MS and .NET, which apparently has now become the standard by which zealous marketing is measured against.  And, for the record, my perception is that push for autonomic is low key, but I might be biased.

My own thoughts on autonomic computing are not fully formed.  But I do see an analogy to the SEI Capability Maturity Model for Software, with the steps being reordered 1, 4, 5, 2, 3.  And instead of automating human processes, it is applying biological principles to computer processes.

My own belief is that as things scale, we won't see an Internet Operating System in the classical sense.  An operating system is centrally planned and managed economy.  It is what occurs within a cell.  Surrounding a cell is trust boundary.  Cells will communicate via messages.  More on this in neurotransmitters.

How much extensibility?

Then and now.  Interop and extensibility.  One can do both.  Bing!

Vegas hotels

Ben Hyde: I suspect you could bankrupt a [Vegas] hotel by dumping a little Ritalin into their water treatment facility.  By the way, apparently the Alexis was built in 1985.  But it did have a number of classic touches that you don't see very much any more.  Things like a timed sun lamp in the bath room, separate hot and cold faucet handles on the shower (along with a retrofitted waterpick head), and a bottle opener screwed into the wall - you know the types that used to be on coke machines when coke came in glass bottles with tops that didn't screw off.  And if you are too young to remember, just think of the scene in Back to the Future.

A critique of ApacheCon

Ugo Cei: I think there was too much focus on the trees and too little on the forest.  Submit a patch.

This birthday greeting validates as RSS

Burningbird: Happy Birthday, Mark.  Make sure you read the comments. 

rss + css = blog

This blog is valid rss.  View source if you don't believe me.

Raising the Bar on RSS Feed Quality

Timothy Appnel: Raising the Bar on RSS Feed Quality.  Perhaps the RSS validator should optionally issue warnings (as opposed to errors) nudging people in the directions of best practices such as the ones that Tim has outlined?

Open Office Wars, part 2

It is kinda cool to wake up to find comments from both Microsoft and OpenOffice on my blog.  I've followed the links provided by both Dare and Nick, and but this seems to only reinforce my earlier impressions.

It looks to me like the Open Office format is too closed, and the Microsoft Office 11 direction is too open.

Looking at the DTDs for Open Office, I see a well thought out set of definitions that build upon prior art like Dublin Core and SVG.  This is all goodness.  I may have missed it, but I don't see any provisions for additional user or tool specific elements.  Expect More.

Looking at how Office 11 will support XML, the sales pitch seems to me to be of the form "pick my browser because it supports Unicode".  That's nice, but does it fully support CSS level 2, a specific application of Unicode?  Ubiquitous higher level open and interoperable standards are important too.

FWIW, my recommendation to the OASIS TC is to define this standard using XML schema.  Feel free to support other schema standards, just make sure that you support the XML schema definition in a first class way.

Again, FWIW, my recommentation to the Microsoft Office team is to read and write documents that conform to the XSDs that will be defined by OASIS.  Feel free to support other schemas, just make sure that you support the OASIS defined schemas in a first class way.

All this is just my humble opinion.  I am not under any illusions that I have any real "pull" in either of these efforts.

Office XML Format Wars

It looks like battle lines are brewing once again between Sun and Microsoft.  So far, I've only read what is published in popular press, and what is out there is a bit confusing.  But from what I see, there is value in both positions.

Microsoft seems to be pushing the idea that users can define and document new XML vocabularies, and providing tools that will assist with creation of documents that conform to such vocabularies.  This is goodness.

Sun seems to be pushing for the idea of standardized and interoperable vocabularies for such concepts as pie charts.  This is also a good idea (much as a standardized and interoperable vocabulary for unordered sets of key, value pairs would be a good idea, but I digress).

I don't know if either ideal can be pulled off, but any effort to produce XML vocabularies that are widely supported, not mandatory, and extensible is a good thing.

Back from ApacheCon

Best part was the Town Hall meeting, where we discussed what being an Apache member meant to us, and the differences between projects.  I thought it was quite healthy to get this out in the open.  In general, differences seem to melt away when you get the opportunity to talk face to face.  Then I see this.  (note: search for "between times" as the permalinks are broken at the moment.) Kinda sad, really.  I do not get this impression from Brian, Roy, Dirk, or Greg.

Biggest missed opportunity: I saw Ugo Cei twice in passing - once when I was in a rush to get some place, and once when apparently he was.  Damn.  At least I got to spend some time with Stefano Mazzocchi (how I wish he had a weblog).  And to meet Ben Hyde.  And, as an unexpected bonus, I had a lengthy conversation with Tim O'Reilly.

Back atcha

Shannon Campbell: Hey, Y'all.

Neighborhoods and ecosystems

Stefano Mazzocchi is working on ways to visualize the Apache community and we talked at length about how to capture the raw data.  To me, the problem seems fundamentally equivalent to the one that we have been exploring in blogspace, whereby people are identified as Experts, Mavens, and Connectors.  I demonstrated Mark's newdoor effort, and it became clear that all we needed to bootstrap the data that Stephano wanted was to start encouraging Apache committers to start posting personal web sites with links to people that they are interested in.

ApacheCon tips

Rich Bowen has a set of ApacheCon tips.  Make sure that you read all three.

Groundhog's day

Ever get the feeling that the universe is trying to tell you something but for the life of you, you can't figure out what?

At ApacheCON

Arrived at ApacheCON about an hour ago... will be here through Wednesday.

Objects without methods

Gordon Weakliem: Sometimes, a string is just a string.

Infrastructure taxes

For those who wonder about such things, must of my play time over the past few weeks has been consumed by two things: tweaking and reinstalling software, and the evolving Apache reorg.

As for the former, I knew I was living on borrowed time as my Windows installation on my thinkpad was well beyond its half life, and when it got to the point where my VPN software refused to work, I knew it was time for a complete reinstall.  This time I invested the time to track down the patches required to get XP to run more or less stably.  I also upgraded to JDK 1.4 on my linux machine, had to move where Gump builds were placed due to space concerns, etc.  Each required more effort than they should, as leaky abstractions and outright lies ("fully compatible with previous J2SE releases") abounded.  And one should never hard code a URL in a script.  'nuff said.

All in all, I am still way behind on several things I promised to get done over the last few weeks, but I think I've turned the corner on this one for now.  Meanwhile, the clock is ticking on my new install of Windows...

You never believed it could be this good

Phil Wainewright The moral of the story is to be prepared for any and every outcome when implementing web services — especially for the eventuality that it really will live up to all its promises.

The Law of Leaky Abstractions

Joel on Software "learn how to do it manually first, then use the wizzy tool to save time."

Perception is Reality

Steven Noels. Perception is reality: please make sure your perception isn't the product of a designed reality.

New C# Language Features (someday)

Chris Sells: "On November 7th, at the OOPSLA Conference in Seattle, WA, C# creator Anders Hejlsberg unveiled several potential language features for the next major release of Visual C# .NET. The four primary features Anders spoke about were:

-Generics, a form of C++ templates that makes reusing existing code easier
-Iterators, a construct that makes traversing collections of data significantly faster and easier
-Anonymous methods, an easier way to perform simple tasks using delegates
-Partial types, a means for programmers to split code across multiple files"

Another Axis customer

David Watson: I am pleased to report that my migration from Mind Electric Glue to Apache Axis is well under way.

Voice of an Angel

Returning back to the land of the living, I spend a moment and download a song that Phil and Shelley are raving about.  It blows me away.  Then I read about how it came about.  I am thrilled.  Makes my adventures with managed serendipity look tame.  Then I come across this.  I am speachless.  My only reaction is that I'm not worthy.  My wife beats me at Trivial Pursuit (though I am the one who knows how many feet are in a mile).  I can play twinkle twinkle little star on the piano only because I memorized the numeric sequence 1,1,5,5,6,6,5...

All in all, this story and song makes me glad to be alive.  Again.

P.S.  Shannon - your RSS does validate.

The siren call of autumn

Around these parts, this is the time of year for gorgeous fall colors on the trees, temperate days, crisp nights, and hacking coughs.  This particular household has been down for much of the week - missed school, doctors visits, heavy medication and the like, though things are seem to be getting better now.

Harmony and abstraction

Greg Reinacker: Can't we all just get along?  The first step is to stop making sweeping statements about "most .NET people" and "many Java people".  Want me to point out prominent .NET webloggers who are prone to make statements like "Java sucks"?  Don't worry, I won't.

EJBs are an abstraction that allow some global optimizations to be done on large systems that otherwise wouldn't be possible.  Small examples are needed sometimes to help people understand how to write such software.

Value of specs

Dave Winer: Now, while we totally appreciate Computerworld doing RSS feeds, they don't validate. And of course, most popular aggregators don't care, today.  Ouch.  The more people who don't follow a specification, the less value there is in that specification.

Stefano Mazzocchi: Cocoon as official Apache project.  +1!

Animal house

PointCounterPoint.  Almost as bad as those election campaign ads on television.

Planting a seed

When I was in my twenties, I did not respect authority.  I colored outside the lines. When a teacher or a boss told me what they thought I should do, I asked "why?".  Most didn't like this much.  When I told others what to do, they didn't ask me why, nor did they particularly enjoy the experience.  I found the satisfaction of being able to tell them "I told you so" later to be quite hollow.

When I was in my thirties, I did not respect authority.  Telling people what to do and asking "why" continued to yield similar results with people who "ranked" higher than me.  But I found that more and more people were coming to me and asking me for my opinion.  Some of them even asked why.  Those that did seemed to like the fact that I would try to answer the question.  Once, one of the people who had sought my opinion remarked about my tendency to color outside of the lines.  My response was instantaneous: "What lines?".

Now, I am forty.  I still do not much respect authority.  I still occasionally ask why.  But mostly I plant seeds.  I do things that cause other people to ask why. Generally, the response is along the lines of "why not?".  When asked for clarifications, I rarely respond with generalities any more, I try to cite specifics. It doesn't always work right away, but I've learned to be patient.  Trying to rush things that can't be rushed doesn't work.  

I rarely have the opportunity to tell people "I told you so" any more.  Instead, I now have people who come back to me and say, "it would have been more helpful had you been more direct in the first place".  To which, I smile, nod politely, and resume my planting of seeds.

Microsoft lowers their standards

Either that or Peter Drayton just got his PhD in CompSci.  In any case, a very heart felt congratulations go out to Peter for landing his personal  Dream Job.

Experiments in Blogging at MM DevCon 2002

Timothy Appnel: For fun and kicks I banged out a quick script that converts the data from [Macromedia's DevCon] SOAP Web service to an RSS feed every 15 minutes. My feed can be found here. It even validates. Bing!

Is it getting cloudy?

A bit earlier this year, added support "for services like and to share their data in real-time".  Perhaps if the participants were open to feedback, we could come up with a solution where no one organization controls the information.  It seems that already has an extendedPing API with support for both the url of the weblog and the rss feed.  And a changes.xml which includes the rss information.

Content encoded

Phil Ringnalda makes some excellent observations on encoded HTML in RSS feeds.  What is needed is a glyph which visually looks like less than and greater than signs but with none of the semantics.  I'm tempted to use single guillemet characters.


Update: apparently double guillemet characters are more widely deployed.  «doubleFoo»

No Safety Net

James Duncan Davidson: I'm sitting in Dave Thomas' talk on Pragmatic Programming and he's making the point that a developer's career and their growth is up to them. I entirely agree. And I think it's true in life in general.  I have been employed for 21 years.  It took the first 18 for me to figure that out.  Some people are slow learners.  In my case, it was PHP that opened my eyes.

RSS Best Practices

Brent, Phil, and Ben are discussing whether RSS feeds should have relative or absolute URLs in encoded HTML.  This has bothered me in the past, particularly when viewing Joel On Software's RSS feed through the lens of the Radio Aggregator.  His feed has a number of instances of <a href="news/...> and <IMG src="pictures/...">.  Is it valid RSS?  Absolutely!  Does it provide the greatest value to the widest possible audience?  Well, perhaps it could be improved a little.  And perhaps the aggregators can do better too.

There probably are a number of things which are quite legal RSS, but are less than neighborly.  For example, a <script> tag.  Or a <meta> tag.  Or an <embed> tag.  Or an <object> tag.  You get the picture.  What I would like to do is to have the greater community discuss this for a few days, and then Mark and I will implement it in the RSS validator.  As always, validation and compliance will be completely voluntary.  We will clearly separate errors from warnings.  In fact, we will provide an option to not see the warnings at all, if that is your preference.

Dumbledore dies

Richard Harris dies at 72.  His 11 year old granddaughter talked him into playing Dumbledore in Harry Potter films.  "She called me up and said, 'Poppa, if you don't play Dumbledore, I will never speak to you again."  "I hung up and called my agent and said I'd do it. I can't afford to lose that kid"


I got a few chuckles out of this: Sam Ruby.  Thanks Kasia!

Rotor Community Site

Werner Vogels reports that he is close to having a professionally hosted Rotor Community Site which would be a site similar to sourecforge for Rotor. He has worked out a contract with CollabNet, a professional collaboration hosting company, and Cornell. Exciting stuff! [Sam Gentile's Weblog]



Dave WinerFor ten points, guess what this is the start of.  Mind if I make a few suggestions?  Actually, only one suggestion, and then a few nits.  The suggestion is to change "when=" to "etag=".  That way aggregators which support etags won't have to track an additional item.  As for the nits, I'm not sure that name is worth the bandwidth, but it would be nice if this element were renamed title.  Is this format only useful for weblogs or could it be used for other things?  And please don't name the file rss.xml, that's a bit confusing.

WSDL validator?

Don Box: Sam and Mark's RSS Validator Rocks!...I just took five minutes to convert my 0.91 feed to 2.0...Perhaps when the first CR goes out for WSDL/1.2, I'll hack one up for WSDL.   Care to collaborate?  Now that would rock.

Credit is not a zero sum game

Dave Winer: On the other hand, with my source out there, all of it, I don't see how I can get credit, in any way, for what I've created.  Those that seek credit are often disappointed.  Those that seek to minimize the public perception of their own role are often surprised.

Dave will verify this - when he called me, I minimized my role in all of this.  Yet Mark states that I deserve at least half the credit. All I can say is wow.

RSS Validator Open Source.

Trackback UI

Dave Winer: Question for MT experts. I want to send a Trackback message to Mitch's weblog referencing this post. I know how to do it with a script, but how do I do it through MT's user interface?

In MT 2.5, on the HTML page where one enter weblog titles, entries, and excerpts, there is a simple textarea for URLs to Ping, thus:

<textarea class="short310" name="to_ping_urls" rows="3" wrap="virtual"></textarea>

In my case, the user interface is Radio.  During my publishing process, I run a script which parses the entry for hrefs and automatically issues any pingbacks or trackbacks.

The devil is in the details

Jon Udell: I care enormously about RSS interoperability.

Pair Programming

Mark Pilgrim: No ego, no argument, no crap; just working code. It was glorious.  Working with Mark was easy.  First you have to agree to use Python...

RSS Validator

Perhaps in a small way, the world is a better place today than it was yesterday.  RSS Validator.  Top of blogdex.  Top of daypop.  Wow.

Let them eat cake

Dave Winer introduces a new XML format, guaranteed to make existing aggregators go Huh?

Perhaps I may use it when all other approaches have failed.  Meanwhile I have too much respect for my non-Radio readers to simply cut them off like that.

Meanwhile, I still advocate that people who run servers on behalf of weblog users consider adding support for HTTP level redirect.  Furthermore, that people who are thinking about creating a weblog consider this in chosing their server.

The Digital Magpie Crows

Joel contemplates autogenerating a different rss feed for less polite aggregators.  Within hours, Dave adds the code to Radio.  Phil promptly takes credit for not inventing the idea.

In the process, a new and somewhat more apt description for Phil's weblog emerges...

Update: LOL!  Phil updated his webpage and RSS description. :-)

The Future and Its Enemies

Thanks go out to Shannon Campbell for digging up this link.

Please ignore

Dave Winer: Subscribe to this channel.

RSS bandwidth costs

Phil Ringnalda weighs in on Joel's RSS problem.  It is worth noting that there is an existing solution that significantly reduces bandwidth without affecting latency or content.  It is called HTTP HEAD requests.  Amphetadesk already supports it.  Check your server logs.

Whoa.  Am I becoming a ReST guy?  First advocating HTTP 301, now HTTP HEAD... what's next?  Aaahhgghh!

Power Vultures

Ernie/the/attorney: I have one important responsibility here at the conference, which is to provide power to people like David Weinberger and Dan Gillmor.  I acquired this responsibility merely by being the only one to bring and extension cord with a power-strip.  I'm surrounded by people that David has termed "power vultures."

Type Safety in a Loosely Coupled World

Chris Sells: I have always turned up my nose at run-time type checking until I realized (and this is the insight I got from Tim's talk) that *all* marshaling-based type checking is done at run-time.  Excellent!

Now for fun: what is '1' + '2'?  The answer may surprise you.  C# and Java agree (insert obvious joke here), but get a different answer than C, Perl, or Python do (which get three different answers).  Here's some test programs.

public class test {
  public static void Main(string[] args) {
    System.Console.WriteLine('1' + '2');

public class test {
  public static void main(String[] args) {
    System.out.println('1' + '2');

More on this subject can be found in Dealing with Diversity

RSS Usability testing

Mark Pilgrim: Guess what this means.  I'm quite interested in hearing the results.  People are welcome to leave their feedback here.

RSS2 comments

Dave Winer: When Radio reads an RSS feed that contains links to comments, it shows them on the News page, so if you read something there and want to comment (and the site supports them) you can just click on the Comments link and you're there.  I'm in.  I've added a comments element to my rss2 feed.  I also continue to provide the number of comments made on the entry to date.

Nooks and crannies

Possum update:

Kasia: You're not allowed to read this... .. if you live in the US of A.  Thank you DMCA, for bringing absurdity into our daily Internet-based lives.

An Introduction to WSIL

Timothy Appnel: The WSIL model is more RESTful then UDDI. In many ways, WSIL is like RDF Site Summary (RSS) for Web services. RSS is a file format with pointers to published content that can be syndicated and aggregated. WSIL is a file format with references to published Web services that can be discovered and bound.


A Blogger Code of UnProfessional Ethics and Wetware, the Killer App.  Both are must reads.

P.S.  Doc's RSS feed is not valid XML.  Something about a reference to an undefined entity 'ouml'.

One line of code

data=["Redirect permanent /0101679/rss.xml\n"]
print r['message']

Can't save one or more files because it was not a legal type, or it's too large.


Update: added the permanent keyword.  Thanks Mark!


BurningBird: ...but the cycle was too much for nature and a big wormhole opened up and sucked Mark into another dimension. Probably one without Python. LOL!

Redirection encouragements

Jeff Cheney has redirected his subscription of my new rss feed.  Thanks!

For the first time since mid August, the number subscriptions reported by to my old feed has fallen below 144.

Most have thought my "fade to white" campaign is pretty funny.  Other suggestions I have received: simply post a notice on my blog asking people to move (that certainly hasn't worked to date).  Start dropping random letters (like, vowels) from my feed.  Insert pop-up adds.

For the moment, I'm sticking with more subtle encouragements.  Some lucky Radio users who are subscribed to my old feed but not my new feed will find a little present in their referrer logs.

non-hierarchical Sam

Dave Winer So, is your brain really hierarchic? Nope.  Mine is definately intertwingly.  Regular expressions are filed under BOTH Perl and Python.  Can't find a screwdriver?  Perhaps a butter knife will do.  I don't divide people up into east coast vs west coast, or even blonde, brunette, and redheads... all I see is the code. (multiple semi-obscure references in that last sentence).

SOAP 1.2 webmethod feature

Glen Daniels: Enable SOAP 1.2 webmethod feature. Use it like this:

Call call = new Call("http://localhost/~glen/soap.xml");
call.setScopedProperty("soap12.webMethod", "GET");
SOAPEnvelope env = call.getResponseMessage().getSOAPEnvelope();

RESTful SOAP.  +1.

HTTP 301

Phillip Pearson: There's one thing I'd like to mention: the importance that the method used doesn't require separate RSS feeds to be generated for old and new locations.

To cope with existing aggregators that understand HTTP redirects but not the new redirect semantics, we want to be able to use an HTTP 301 redirect to point from the old to the new location. However, this means that RSS fetched from both URLs will be *identical*.

This makes perfect sense to me.  HTTP 301 redirect is the RESTful solution.  Blog hosting services should offer it.  RSS aggregators should not only follow it, but follow the instructions specified in RFC1945:

The requested resource has been assigned a new permanent URL and any future references to this resource should be done using that URL.

The problem?  Some aggregators are not currently layered properly to handle this.  Dave Winer indicates that Radio is one such aggregator at the moment. I suspect that this problem is widespread.  Update: Dave Winer indicates that he is testing a fix!  Bravo!

The solution?  The solution is not to do something instead of an HTTP redirect.  If there is a desire to do something in addition to an HTTP redirect, then any solution must deal with constraint that a redirect happened "under the covers" and that the feed the aggregator is actually reading is, in fact, the desired target feed.

Jon Udell seems to prefer one such solution.  I describe how it would work here.  Other solutions are possible.

My preference, however, would be to have HTTP 301 supported correctly on both the clients and servers.

Fade to white

Despite my pleas, the number of subscribers to my radio feed is actually increasing. I don't want to force when everybody switches their subscriptions over to intertwingly, but perhaps a little good old fashioned social engineering might help...

if adritemcache^.when > date.set(14,10,2002,0,0,0) {
 add ("<description>&lt;div style=&quot;color:#" + contrast + contrast + contrast + "&quot;&gt;" + adritemcache^.text + "&lt;/div&gt;</description>")}
else {
 add ("<description>" + adritemcache^.text + "</description>")}

Eclipse plugin for Apache Axis WSDL2Java

Andres AguiarI built an Eclipse plugin that calls the Apache Axis WSDL2Java Emitter, so I have VS.NET's 'Add Web Reference' functionality in Eclipse.  Would you be willing to contribute it to Apache Axis?  If so, post it here and I will commit it for you, will full attribution.


Bill Kearney: Look at the dcterms module. Specifically a very nice little element called "isReplacedBy".

Ben Hammersley: Works well for me.

Works for me too.

RSS redirection

Dave Winer: Also, I realize there's a need for a RSS module for redirection. I noted that Jon Udell needed it, and that Rogers Cadenhead needs it now. Not everyone can control their server enough to program an HTTP-level redirect. Would someone like to propose a module? It should be easy to program Radio to support it and we can evangelize it to other aggregators. This could be a first experience at really working together, with no flames. What do you think? Is it time??

If Dave wants to see whether or not it will be possible to work together, he certainly has found an interesting test to do it on.

As Jon Udell discovered, a solution already exists which is simplicity onto itself.  Channel elements have an "about" element which specify where the rss feed can be found.  If present and different, then readers should follow.

What makes this test case interesting is the namespace that this attribute is defined in.

This should be interesting to watch.

Schema Secrets

With Noah Mendelsohn's permission, I am posting his slides from this week's devcon.  He wishes it to be noted that the opinions and analysis are his alone, and not necessarily IBM's, and that the contents are copyright 2002 IBM Corporation.

Still pingbackable

Kryogenix: Unless I'm missing something, Intertwingly is no longer pingbackable.  My policy at the moment is that the specific entry pages (/blog/xxx.html) are eligable for trackback and/or pingback, but not my daily archives (/blog/yyyy/mmm/dd#xxxx).

As to the rest of the sentiments, it seems to me that one could view pingback as nothing more than an automated "look at me".  Not that I mind at all...

Band of Brothers

I dropped my wife off at the airport this morning.  The details vary considerably, but the overall theme is quite similar to Shelley's Band of Brothers.  I wish I was with my wife right now, but we agreed that this was best for the kids.  So, for now I am focused on some serious subliminating.

DevCon parting thoughts

First, Brian Jepson's notes (day 1 and day 2) rocked.  The sessions were of the same top notch quality as the previous devcon.  Here are some parting thoughts:

My favorite part was the "Ask the speakers" Q&A in the middle.  One thought for future conferences: schedule a few point/counter point sessions where opposing views are explored.  Peter's presentation on REST to a SOAP crowd came close.  For example, it would have been fun to see Yasser and Clemens discuss on whether XML should be a primary focus or an implementation detail.

Feedback loop?

I was about to deploy Mark's latest toy on my site, but now I'm not so sure it would be a good idea.  Over the past few days I have had 82 hits from Mark's site, with 36 being to specific blog entries.  The problem is that none of the excerpts which would be Mark's words.  (The actually wouldn't be mine either, try


to see what I mean)

A random thought that might both solve this problem and provide even more reliable excerpts: if what is obtained from the targetURL has a RSS autodiscovery link, then perhaps the primary RSS feed for the site should be harvested instead.

Passive referback

What trackback and pingback accomplish by requiring active pings, Mark Pilgrim has accomplished without requiring any prior agreement with his Further reading upgrades.  he seems to have done a good job at the hard part - excerpting the quote.

Counting the bloggers

Sam Gentile: I have attached faces to so many faces of bloggers (over 15 so far). The really nice thing is that everone already feels close with one another, like we already know each other to some degree.  Sam has a good list of bloggers going.  I've also spotted John Burkhardt, Chris Dix, Dave Seidel , Glen Daniels, and Chris "not a blogger" Sells

Deprecation warning

One year ago today the discontinuity for was being planned.

Look closely at the last picture

One year ago todayFBI: Most Wanted Terrorists.

Consumer hostile bloggers

Mark Pilgrimlet me say here and now that no, in my experience, RSS content producers pay virtually no attention at all to what their content looks like or how difficult it is for content consumers to consume.

Devcon slides

My devcon slides are now onlineBrian Jepson blogged the session, as well as several others.

Yes, I presented using mozilla and perl.  And svg for that matter.  The css was lifted from here.  I started organizing my thoughts as I often do in vim when it occured to me that I could apply some of what I had learned from blosxom and wikis and everything just came together on the plane ride up.  The result: and outlet.svg.  These are only meant as quick hacks.


Ray Ozzie: Imagine the field day that Google could have if 1) all email files had access controls removed, and 2) people started surfing each others' email messages.  I don't find this hard to imagine.  It would look something like this.  The social norm on open source projects that I participate in discourages off list discussions.  Any results - and more importantly any decisions - are to be shared with the group. 

And now for something completely different

Shelley Powers: The Parable of Languages.  Well worth a read.

Keynote preview

For a preview of Thursday's keynote at the devcon, see Mark Pilgrim's In praise of evolvable formats.  That might also explain the apparent obsession of late on the topic of RSS.  Hopefully I still have a few novel ideas left that you won't see first on Mark's blog.

Defying classification

Peter Draytonthe .NET blogging community expanding so rapidly - we're going to give the Web Services bloggers a run for their money yet :-).  Just curious, does this qualify me as a .NET blogger?  Sometimes it seems that my true goal in life is to defy every categorization scheme known to man.

Bean town


Today and Tomorrow: SOAPBuilders @ Sun

Thursday and Friday: Chris Sell's WebServices DevCon

Fail fast

Dare Obasanjo: Checked vs. Unchecked Exceptions Again.  I agree partially with both positions, but I don't believe that they go far enough.  If you believe in design by contract, then pick a language like Eiffel in which you can declare all of your pre and post conditions. 

On the other hand, the logic that a system should not fail at compile time but should only fail when presented with unexpected conditions at runtime can also be applied to strong typing.  Languages like SmallTalk support this latter paradigm.

While by training, I am in the former camp, I'm increasingly finding myself resonating with the arguments made by latter camp.  What makes this work is a switch from "it compiles, check it in" to "it passes all tests, check it in".  All too often, I see people making exceptions to this "just this one time", and my experience has been that it rarely works out.  JUnit, NUnit, and PyUnit are your friends.

While Java and C# battle over who is the rightful successor to C++, it is quite possible that a language like Python (or, dare I say it, Ruby) will ultimately be the one that wins out.

Axis 1.0

I'm pleased to announce the Apache SOAP engine known as Axis just had it's first release. Performance, interoperability, and JAX RPC compliance have been significant focuses of this effort. Download it here.

The Real Battle

Doc Searlsthe F-word is the most common sales pitch in the world

Aaron goes to Washington

Aaron Swartz: I will be attending oral argument for the Eldred case before the Supreme Court.  Awesome!

Great things coming

John Robb: We are going to remake the world of online publishing.

XSS draft 2

Timothy Appnel: The XSS profile defines a restricted subset of previous RSS formats that balances ease of use and authoring with ease of consumption by applications while maintaining the richness necessary to extended and adapt to various problem domains.  I'll support it.  Any aggregator which can pass Simon's tests should have no trouble supporting this profile.

Wondrous Curse of Interoperability

Steve Loughran: This is a presentation on Web Service Interoperability

Society to Help Allieve Redundant Effort

Mark Pilgrim: ...when it was proposed “as exclusively a tilde in USA to appease SHARE”. I can find no further reference as to what this acronym means.  I'm pretty sure it stands for United States of America.

It makes perfect sense that SHARE (arguably the longest running computer user's group who's tagline, "It's not an acronym, it's what we do" codifies the organization's mission: sharing information and experience for the good of all. SHARE meets twice annually.) would have advocated the tilde in 1966.  After all, the tilde was nestled between the lowercase "r" and lowercase "s" in the original version of EBCDIC.  Of course, there were versions of EBCDIC before the original version of EBCDIC, but they had the foresight to leave a gap for this important character.

Update: it has been educational watching Mark's history of the tilda grow before my eyes.  Makes me wonder, however, if I shouldn't have been posting Apache's SOAP interop information here lest some web proxy decides to block it.

.NET Saves Boy Down Well

In the early hours of the morning, .NET, Microsoft's platform for XML Web services, saved a five-year-old boy who fell down a well in Ottumwa, Iowa. [more]

Blame it on emacs

Don Box: Six weeks away due to emacs-based blog editor.

Mass Amateurization of Publishing

Clay Shirkey: destruction of value is what makes weblogs so important.

Titles matter

Reading the analysis of the recent Google changes on Mark's and Doc's web site, the consensus appears to be that the "knob" which controls the relevance of the HTML title of any particular web page has been adjusted upwards.  After a few random tests, I tend to agree.  My "rambling essay" is no longer in sight (thanks Google!), and all it takes now is the mere mention of the word Manufactured to summon this essay to the first page.  Want to know about " Rest and SOAP"?  Or " Neuro transmitters"?  In fact, all of my essays do quite well after this change.

No pingbacks yet

Doesn't seem to be much in the way of adoption of pingback amoung people in my circle of friends.

Happy Birthday Joel!

How I wish I could be there to celebrate it with you this time.

Bad timing

It looks like I picked a bad day yesterday to suggest that people change their links from my radio URL to my intertwingly one.  Why was it a bad day?  Well, it looks like the first of the month is going to become bash UserLand day until this bug is fixed.  Like David Watson, I regularly recommend Radio to friends.  Everyone I know who has tried it has been up and running in minutes.  And while every product I have ever used (including Radio) has had bugs, I've had nothing but great response from Lawrence Lee whenever I have had a problem.

Why then am I switching to blosxom?  I'm a DIY kinda guy.  Yes, Radio will have all sorts of module support shortly, but I want to play now.

Update: First of the month bug fixed!

There are four lights

Mark Pilgrim: One year ago today...


As we enter the final quarter of the year, I'd like to suggest that people who have my 0101679 site on their blogroll or have subscribed to my 0101679 feed consider updating to point to my intertwingly site and feed.  I've been doing this migration slowly and carefully with due consideration to all those who chose to visit here.  Just be aware that at some point (probably the end of the year) the 0101679 site will no longer be updated.