Apache Community
The mailing list archives for the Apache Community are now URL addressable.
It’s just data
The mailing list archives for the Apache Community are now URL addressable.
Clemens Vasters: I once again realized that there's a lot more work to do in terms of educating people about the significance of XML.
Many
people had digital cameras at the
blogger
dinner. Mine was low on batteries, so I had to run out and pick
some up halfway through the event and didn't get many pictures, and
most of what I did get was the victim of poor lighting. However,
many people had cameras, so there should be plenty of pictures
posted shortly.
Meanwhile, here's one that did turn out: Miguel de Icaza sells Dare Obasanjo and Joshua Allen on Mono.
More later...
Cool! Subscribed.
Pretty cool. Eric's comment system has a "You Know Me" button and will import data from your FOAF profile. Furthermore the address of the foaf profile is retained for later exploitation (e.g. authentication of requests to modify entries?). My two cents is that autodiscovery is the next important step as I'm not convinced that entering the URL of your FOAF profile is any easier than entering the URL of your website.
As soon as I return from travelling, I plan to catch back up, implement this on my site and resume my status as early adopter/exploiter
Joshua Allen: but Apache's heavy dependence on BigCo funding (IBM, Sun, etc.) kind of disqualifies them and spoils the romance.
InfoWorld: The Internet owes much of its success to a core infrastructure that is free and commoditized. The Apache Axis project's gift to the world is a powerful, high-performance, open-source Web services stack.
I don't plan to blog from there, but I will put up a blog entry that people can trackback to, pingback, or simply link to (assuming they have a tag to their RSS feeds). This way, those that participate (and even those that don't) can find out what everyone else had to say.
And, if you don't have a weblog but were able to make it and have something you want to say, simply leave a comment.
Todays new essay is a follow up to a blog entry posted over 8 months ago. The MetaWeblog API has since evolved with the introduction RSS 2.0, and this lead to a new RFC. My questions on that RFC have gone unanswered, and I have expanded upon them in this essay.
Jon Stevens has a weblog.
From Dave to Ben to Bill to Justin to Eric, an idea is forming on how to do decentralized and secure comments. Stripping away all the implementation details here's the basics as I see them:
I like the idea of validating against something I can find in somebody's weblog. I'd also like to suggest that instead of sending back responses and presuming that the recipient is online, that I merely produce a personalized feed and leave it on my server to be fetched whenever the client desires.
Ken Coar: shouldn't the responses to a ping to Weblogs.Com be valid XML?
Clemens Vasters: On mornings like these, "HTTP is the one and only protocol" purism makes handsome gunwounds in both of your feet.
Now I can add Keith to my blogroll
Note: the quotation above was valid at the time I swiped it. The link above was asserted to be a permalink. For all I know, it may now be 404 or contain gay porn. Follow the link at your own risk.
My favorite essay on the subject is In Praise of Evolvable Systems.
DiveIntoMark goes commercial.
The question as to what the RSS validator should validate is not an easy one to answer.
I can't help but notice that Dare's RSS 0.91 feed does not have an image tag in flagrant disregard for the specification.
Of course aggregators like Radio's have no problem with such a feed
Congratulations Sam and Sue!
C:\>telnet www.markbaker.ca
80
Trying 207.236.3.141...
Connected to markbaker.ca.
Escape character is '^]'.
PUT /2002/09/ HTTP/1.0
HTTP/1.1 405 Method Not Allowed
Date: Thu, 23 Jan 2003 21:47:10 GMT
Server: Apache/1.3.23 (Unix)
Allow: GET, HEAD, OPTIONS, TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method PUT is not allowed for the URL
/2002/09/index.html.<P>
<HR>
<ADDRESS>Apache/1.3.23 Server at www.markbaker.ca Port
80</ADDRESS>
</BODY></HTML>
Connection closed by foreign host.
Now I have my first dillema. I want to do static rendering for scalability, but in accordance with the teachings of REST, I also want my URI to identify resources that can serve both GETs and POSTs.
Meanwhile, the temptation to ditch Perl for Python is growing...
CBS Marketwatch: MSNBC.com, a leader in breaking news and original journalism on the Internet, announced Glenn Reynolds, who has carved out his own niche in cyberspace with his independent Weblog, InstaPundit, has joined the MSNBC.com family of Weblogs at weblogs.msnbc.com.
Mark Pilgrim: Regular expressions are the messy solution to all of life's messy problems. Want to parse invalid HTML and XML? Regular expressions. Want to parse invalid RDF? Regular expressions. And may God have mercy on your soul.
James (from Jakarta), Cocoon and Web Services (both from XML).
There are all sorts of interesting responses to Ken's inner thoughts on openness. My point of view seems to be closest to Sterling's. In fact, my thoughts on the subject are very much related to, and again quite distinct from, Ken's thoughts on rights. And indirectly related to what lead to my parody of the Creative Commons licenses.
Since code costs essentially zero to distribute, my first thoughts are not on what rights I want to assert, but what obligations I wish to assume. If you look at software licenses, both commercial and open, this is something that they are careful to enumerate. In most cases, it essentially comes down to: "if it breaks, you get to keep both halves". This is harder to get away with if you are a commercial vendor, but most try anyway.
If I choose to keep source to myself and I know and accept that others are depending on it, I feel that I have an implicit obligation - even if I received no recompense for their depending on me.
If somebody copies something that I have done, then generally I am quite flattered. If they chose to give me attribution, I am OK with that as long the recipient takes responsibility for making the copy.
If somebody makes a change to code that I wrote, my first thoughts aren't "what right does he/she have!", but instead, "tag, you're it!".
You know this is the type of thing I can't resist ;-)
It seems to me that it should match what you use on the link tag.
Tuesday, the 28th of January, at or shortly after 6pm PST a bunch of ne'erdowells will decend on an unsuspecting Crossroads food court. This is totally adhoc - no invitation required.
Consider yourself warned.
Given that I only had to made some minor tweaks to my comment system to make myself trackback enabled, it only makes sense that the reverse is true!
DJ Adams: It seems that beyond carrying syndication information, RSS is a very useful and flexible way to get all sorts of application data pushed to a user over time.
I'll leave the "when a new entry is noticed" part to you, but I've implemented all the rest and for good measure added in a pingback client. You might want to tweak the excerpting logic to your needs. Enjoy!
Tom Hume: Solving the global identity problem: yep, that's a worthwhile cause, but it's a big problem, and I want to track comments *now*! :)
If things go according to plan, the next time I get a Pingback, I will attempt to extract an excerpt from the item from the weblog's associated RSS feed. Anybody care to test this out? Ping this item...
Every entry on this weblog has a separate rss feed for comments. You can even automatically discover it. Simply subscribe...
Parody of the Creative Commons license icons.
Trying just a little bit harder to find your RSS feed
Simon Fell: I think I GET REST (pun intended) better than most SOAPer's but I still strugle with some of Mark's arguments.
Brad Wilson: Joshua...
Don't worry about breaking your blog for non-IE users. It's
already broken.
If you are viewing this weblog using IE and are wondering what
that empty space on the left is, it is the picture that I was going
to post with my Front Porch story. If someone can tell me how to
coax IE into displaying it, I would appreciate it.
This pages is
Valid XTHML 1.0 Transitional and
Valid CSS. That doesn't mean that I didn't do something wrong
and tell it to layer the picture under the text, but if so, I can't
figure it out, and it does render correctly with Mozilla...
Update: Olivier Travers provided a workaround. Thanks!
Update: Peter Stuer provided a better workaround. Thanks!
"There used to be a time when southern houses were known for their
front porches: a place to cook off, to watch the world, to talk things over.
The home and the road came together at the porch, and people who didn't meet
anywhere else could meet there for conversation and business. Today, in a
world of air conditioning and mass-market subdivisions, the front porch is
not as prominent in southern life as it used to be...
"Some porches, of course, were built to overawe visitors, not to entertain
them. And there are rules about who could and could not use the door. Our porch
is not like that."
Harry L. Watson and John Shelton Reed, editors, inaugural issue of Southern Cultures, pp. 1-3. 1993 Duke University Press
I have now been a weblogger for a year. My weblog has become my front porch. Next week I am going to have lunch with a number of close friends, most of them were people I didn't even know existed one year ago. The following week, I am going to repeat this with some new friends on the west coast.
Hun Boon Teo: ... why .NET is better than java. I especially like #16, 7, and 3.
Very cool. Like Rael, I don't really want to be in the weblog tool business; I'd much rather other do that and am thrilled when the seeds I have played with take root elsewhere.
Anil John: I for one DO use the Title option that Radio provides
The cronical of my adventures trying to subscribe to Ted Leung's RSS feed.
Reactions to Don's somewhat truncated rant
Thoughts on what has worked, and what has not worked so well, with my automated linkback excerpter function thingamabob
The O'Reilly Emerging Technology Conference information is now online, and it looks like one of my proposals was accepted: a tutorial on Understanding the Web Services Stack.
Actually it looks like the web site is still being populated: " our speaker list is growing daily". I note, for example, my bio is not yet there, nor is my partner in crime on this particular endeavor listed. Anyway, sounds like fun!While most of the RSS 1.0 modules are valid in RSS 2.0, few of these can be completely transported using the MetaWeblog APIs using only the instructions found in this RFC, due to a lack of description of how to handle things like attributes in namespaces, and elements with elements.
For now, I'll simply update my example based on the new RFC (as the encoding of source elements changed), and ask one question related to a core element:
Does XML RPC permit multiple members of a struct to have the same name?
Gary Burd: I'm interested. [01/13/2003]
I'm psyched! And quite frankly, a big overwhelmed by the response to my dinner query yesterday...Hi Costin! FWIW, I wrote up my early experiences. Short version: link often, and chase referrer links. Meanwhile, I've subscribed to your feed. ;-)
Way Cool!
I certainly hope so.
Update: Ken Coar: I'm curious about Sam's position; I hope he'll explain it.
Hmmm... perhaps an example would help?
As I'm more and more seeing my words appear excerpted on other people's site ( Hi Mark!), I decided to go after another source for related reads: RSS feeds. To participate, you don't need to use weblogging software that supports trackback or pingback, you simply have to update your templates to have a link to your RSS feed.
Sterling Hughes: Remember the users
).
Any bloggers in the area up for a dinner that week?
Dave Johnson: Introducing: Automatic Linkbacks in Roller!
Matt
Croydon: Translating
that into an XML-RPC call hurts my head. That's because
the MetaWeblog
API doesn't specify how to deal with required attributes. Or
with namespaces. Or with nested XML elements... Of
couse, one could one by one address these items, and in the
process reinvent XML.
For reference, here again is a
RESTLog
post for this item. Now here it is
in XML
RPC, with the troublesome attribute included as a
comment. Finally, here a hypothetical
SOAP
version, with the
blogger
API defined control parameters passed as a SOAP header.
IMHO, if one can find a way to work with transfer level authentication and authorization, one should. If application level control information is required, then an alternate header mechanism may be appropriate. And this need not totally be an either/or situation. One can use transfer level authentication and authorization with SOAP. Ideally, the blogid would not be a parameter, but would be included in the URI. Things like that.
And, again, the offer is open: if consensus were reached around a weblog post API which either wrapped or subsetted (or both) RSS 2.0, I would work with others to provide the validator.
Update: The XML RPC example has been updated based on the instructions in the MetaWeblog API specification.
Update: An RFC has been issued which provides different guidance as to how the text of the source element is to be passed.
Let's give it a try. For ever trackback I've ever gotten, I've appended a [more] which will go forewards. Now I've gone back and added [back] which will go backwards.
This is perhaps best explained by example. Go here and click on [back]. Repeat with the last back on the page. Do it again, and again, and again, and again.
Simon Fell: If everything went according to plan, the archive pages are now trackback enbabled. Now that he fixed the typo on dc:identifier, he should get two trackbacks from this entry.
Simon Fell: The RSS Validator sample is up. Sweet!
LOL! I think Cory Doctorow had something to say about this...
Update: even funnier: hyperorg's trackback blew up processing this...
The way to find it is to take my simple challenge. Try it on the small sample I identified. Then we'll talk...
OK, I've implemented basically that functionallity, with a few minor changes. For example, I want to continue to support old-style trackback requests which unfortunately were based on HTTP GET. But the end result is that now a GET the URI does what you would expect.
I am now. Generally I wait until somebody finds a compelling use case for a feature, and you certainly have a humdinger. I kinda suspect that this is the type of thing that Jon Udell would like to see. ;-)
The first usage of RSS was to flow data from news producer to portals. Over time, this evolved into a flow from weblog servers to aggregators.
One of the first truly novel uses of RSS is as a weblog archive format. In the case of Radio, this required the addition of some tool specific elements, but that is not a problem as RSS 2.0 is extensible through namespaces. Now, we have a flow from weblog servers to weblog servers.
With the SOAP interface to the RSS validator, we have RSS (with some optional wrapper elements) flowing from weblog software to a validator. Dave already demonstrated that weblog archives validate as RSS. This is the beginnings of the network effects that can be possible if common exchange formats are adopted - no new validator needed to be written.
I have suggested that Wouldn't It Be Nice If a converged pingback / trackback mechanism were to focus on a simple POSTing of an RSS fragment (i.e., with perhaps some of the unnecessary RSS wrapper elements removed). If such a suggestion were adopted, I would gladly modify the existing RSS validator to be able to validate such requests.
At the moment, there is a schism between the Blogger API and the MetaWeblog API. These both may have their place, but I would like to suggest that weblogging software consider support of the dramatically simpler RESTLog API, possibly in addition to one or both of the above.
Why do I say it is dramatically simpler? Let's propose a challenge. In the spirit of the BDG to SOAP 1.1 which exposed all of the machinery of SOAP, I'd like to request that proponents of either the Blogger API or the MetaWeblog API produce a similar BDG for their protocols, and would like to request that it include the first item from the Radio Weblog Post Module example. I'll start by providing a sample for RESTLogPost.
Any takers?
Harumpf. We can't have that now, can we?
OK, so without further ado, I think I implemented this API correctly (at a cost of three lines of code and a new template). Here's the list of trackback pings to the "Trackback Threading" blog entry. But the threads still don't seem to be connecting...
What did I do wrong?
Dave Winer: It's true, it's true. I've been offered a fellowship at the Berkman Center for Internet & Society at Harvard Law School, and have, of course, accepted.
There's a discussion going on where the participants are linking to me. I can't help but feel that they are trying to draw me into a discussion that I don't want to be a part of.
I said what I want to say on the subject here. To expand upon this slightly, among other things, the first two words say that it is possible to subscribe to a mailing list without feeling like you personally have to respond to every post. The third word gives clues as to when to ignore the advice of the first two.
I knew you could do it. ;-)
On the question of PB vs TB, I see the primary advantage of PB over referrer logs is that PB provides access to the fragment id. I see the primary advantage of TB over PB is that TB adds access to the excerpt. In terms of implementation, PB requires more logic on the server (how'd you get those titles?), and TB requires more logic on the client (scanning for trackback:ping).
Update: Here is a simple plugin for Eclipse that allows you to post entries to blogs supporting the Blogger API. Set the appkey, Blogger API host, username and password in the preferences and use the Blogger API view to post messages.
Sterling Hughes: I should wear a sign: "DO NOT ALLOW NEAR KITCHEN WHILE COMPUTER IS IN HOUSE."
+1
Clay Shirkey: A LazyWeb item in RDF has only four elements, set by the Trackback spec -- title, link, description, and date. Thus almost all the onus on filtering the feed is on the subscriber, not the producer. An RDF format with optional but recommended tags (type: feature, schema, application, etc; domain: chat, blog, email, etc.) might allow for higher-quality syndication, but would be hard with the current version of Trackback
Trackback 1.0 used HTTP GET to transfer state data from the client to the server, a no-no from a REST perspective. I noticed this, suggested to Paul Prescod that he work with Ben, and they did all the hard work. The result was Trackback 1.1. A model of RESTitude.
Now along comes another application which would like to extend this API. Wouldn't It Be Nice If instead of URL encoded parameters, one could simply POST the RSS item that contains all the yummy goodies that one could imagine and let the server decide what pieces it wanted to keep and what pieces it chooses to ignore?
This is how the RESTLog API works today...
Andy Oliver: I just discovered Nick Chalko of the Centipede crew has a blog! I'm subscribed.
Dave Winer: an essay to kick off the new year
Dave and I see some of the same data, but we interpret it differently. Here's my take.
Where interfaces are of the simple client/server kind, and where all the state is on the server, the trend I see for the future is that new interfaces will increasingly be defined as a simple HTTP GET.
When there is a wide range of clients implementations, some developers may choose to transcribe this document into machine readable forms, like XML schema and/or RELAX NG so that both static and dynamic bindings can be automatically generated for a wide range of programming environments. When there is a wide range of server implementations, others may write validators using tools as simple as XML parsers and regular expressions to ensure that the there is consistency, conformance to the specifications and that best practices are encouraged.
When there is anticipation of a wide range of clients or servers, then the protocol will be defined to be extensible so that it can be adapted to a wide range of purposes.
RSD is an example of such an interface that has started out along these lines. RSS 2.0 is an example of such an interface that has recently converged onto a similar path.
When the interfaces are simple client/server, but where most or all of the state is on the client, the trend I see for the future is that new interfaces will increasingly be defined as a simple HTTP POST. Human readable docs, and optional machine readable docs, validators, and extensibility characters will also be factors, for much of the same reason.
The TrackBack Specification and RSS validator SOAP interface are both examples of this.
The most important of the non-simple client/server interactions is one of alerts or notification. All sorts of DigID information will need to be added to the data in order to traverse the gauntlet of gateways required.
Once again, the data will be well formed XML, with docs of both human and machine readable forms, and with validators and extensibility provisions.
Once this is in place, polling mechanisms for things like RSS will be replaced with something a bit more bandwidth friendly.
After that, there are still more interesting usage scenarios to consider.
Welcome back!
Didier Girard: For the first time http://www.intertwingly.net ranks better than http://radio.weblogs.com/0101679 when searching with google. I can now use "I'm feeling lucky". It tooked 6 months to achieve this !
Warning: Parental discretion is advised. Some content may not be "suittable" for all audiences.
Joshua Allen: I'll use this as an opportunity to give testament to the virtues of Semantic Web.
Forgive me, Joshua, but it seems to me like you have made a compelling case for voice, but done so in a way that includes pretty much everything and excludes virtually nothing.
Just curious, how does this fit into the picture? I hate Detroit. Don't get excited, I have no personal opinion on Detroit, it is just an example.
Tantek Çelik: we now have Trackback and Pingback to help automate generating comment hyperlinks to blog-on-blog commentary. While I certainly applaud these efforts at automating the plumbing, I must ask - why is there any distinction in the presentation? I ask because many blogs present separate and different interfaces for their comments, trackbacks, and/or pingbacks. [via Simon Willison] I agree.
Looks real cool, though.
Ken Coar: So why aren't there any links or adverts? I can't speak for others. Would I be offended by tasteful adverts on other pages? Heck no. Would I consider putting such a link on my page? Not yet.
I've had people offer to "exchange links". I've had people offer to send me stuff if I would mention it on my weblog. I've even had people send me stuff "with no obligation".
Quite frankly, I have enough obligations. Wife. Kids. Work. Associations of various sorts.
Now look at the simple blogroll. Mine is generated automatically. It isn't even particularly representative - if people post too often, I take them out and visit their site directly. If they don't post at all, they stay on. Others, I visit frequently anyway and it doesn't occur to me to add them
Now, what happens when you remove someone from your blogroll? [links compliments of Bb. Always give attribution]. I've had a similar experience when I was overloaded at work and removed a bunch of people from my blogroll and somebody got their feelings hurt.
Now, would I willingly incur such an obligation in exchange for a few bucks? Perhaps if it was enough bucks to retire on. Otherwise, I have enough people who don't pay me a dime telling me what I have to do.
No thanks.
Comments can now be previewed before submitting.
My comment system started out as a WYSIWYG kinda thing. If you typed in <foo>, you got <foo>. This works for many. Unfortunately, I found out that some other people were expecting to be able to type in HTML.
So what I have been doing is looking for the most common usage and specifically enabling it. But the results aren't always what people expect, so I've now added support for you to preview before you submit.
What did it take? Probably about 4 or 5 lines of code and a new template. I love blosxom.
My advice is to test it on Joe's and Shelley's feeds. This requires two simple, albeit a bit unconventional, rules: anything in the namespace of the DocumentElement is equivalent to the null namespace, and items can be either inside or outside of channels.
And then there are synonyms, e.g., dc:subject vs category...
Agreed. [Maven | Centipede] for daily development, Gump for advanced warning.
One place I differ, however, is that I think that there is an easier solution than requiring developers to perform extra steps. All it takes is for people to take notifications of gump failures seriously and follow this advice.
Meanwhile, a big thanks for all of your help this week!
B. W. Fitzpatrick posted some pictures from the last ApacheCon.
Left to right: Ken Coar, Greg Stein, Roy Fielding, Jim Jagielski, Ben Laurie, Dirk Willem van Gulik, Brian Behlendorf, Sam RubyAs promised, as of the end of the last year, I am no longer updating 0101679. The content remains, and the entries for the last month contain both a prominent visual indication of the new blog as well as an automatic redirect.
On the odd chance that any of the remaining orbiting space junk suddenly decides to reactivate, I'm posting the contents of my intertwingly RSS 0.91 feed over at http://radio.weblogs.com/0101679/rss.xml.
We'll tak' a cup o' kindness yet...
Good-night and joy be wi' you
Steven Noels and Ugo Cei are discussing XML encoding of descriptions, using one of my feeds as an example.
For starters, I do provide an RSS 0.91 feed with encoded descriptions because that's what many people have grown to expect. But I also provide an RSS 2.0 feed with some added goodies and better conformance to best practices. The descriptions have had their HTML stripped, and the full content is available as content:encoded. Aggregators like aggie do just fine with this.
I have plans to provide a separate excerpt in the future.
Gordon Weakliem: These days, intertwingly.net is beating Yahoo! hands down. Why, thank you Gordon.
Apparently Jenny enjoyed reading my site too. I found her site very pleasing to the eye too.
Ken Coar: So I've concluded, at least for the moment, that I'm going to mostly just have my own original content here, rather than a list of links. [2002/12/31]
Ken Coar: Just read this a moment ago. Fascinating! ... More later; I just wanted to record this before I forgot. [2003/01/02]
Welcome to the collective. Joe created a tasty morsel. You picked it up and put a copy in your pile, with a rich pheromone trail back to the source. Now others can do likewise. This even works with two year old nuggets that are quickly picked up by others and dropped into their piles.
Sounds inefficient, but often incurs less obligation than targetted mailing lists.
P.S. Check your e-mail for in invite. Oh, and by the way, your RSS feed is valid.
Abe Fettig: Hep Message Server is software that transfers bits of information between different messaging sytems on the Internet. When it's done, you'll be able to use Hep to transparently route messages between e-mail, weblogs, and instant messaging. [via Steven Noels]. Twisted. Python. PyBlosxom. Yummy.
Actually, that isn't so much the problem as all the weblogs out there that provide well formed versions of their content, but no discernable schema. This brings rise to such tools as Cheesegrater and Portalizer
To get a proper handle on this, we need to capture both parts of the interface. And to use applicable standards whenever possible.
dIon Gillard is integrating Gump and Maven.
Nicola Ken Barozzi is integrating Gump and Centipede.
Berin Loritsch compares Maven and Centipede.
Life is good.
Simon Fell: Here's a pingback client tool for Radio. What, no server support? Slackard! <grin>
The local paper today has an article on the trends to watch:
I especially like the sections on blogging and open-source, where chasing referrer logs and Apache are prominently mentioned. ;-)
Hmmm, I wonder if the News and Observer chases their referrer logs?