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
Jon
Udell: The basic LibraryLookup
bookmarklet is a kind of intermediary. It coordinates two classes
of services -- Amazon/BN/isbn.nu/AllConsuming 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.
Excellent.
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?
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.
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.
curl -i -d "<rss><channel/></rss>" http://feeds.archive.org/validator/
curl -i -d "<rss/>" http://feeds.archive.org/validator/
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`" http://feeds.archive.org/validator/
curl -i -d "@%1" http://feeds.archive.org/validator/
Thanks go out to
Jeffrey Winter for this nugget.
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.
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.
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.
Words for the day: serenity,
triage,
and quixotic.
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.
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. ;-)
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)
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
outted! LOL!
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?
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.
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.
Jeroen
Frijters: I got Eclipse to run I wonder if
something like
NGEN could be used to address the startup time issues.
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
community. Centipede 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.
Phil
Windley: Level 5 Routing for Web Services. See
also Rohit Kare's
presentation and notes.
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.
Mark Pilgrim: Posts by citation. What a cool
idea! Done.
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.
Robert
Scoble: here's the
truth about Coca Cola and Santa.
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)
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.
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 LewRockwell.com Home
Page to see what I find there.
Nope.
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.
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.
Tim
Knip: Groove 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?
Joshua
Allen: But, there is reason for optimism.
Thanks, Jon!
P.S. This post is a riddle. Let's see who gets it
first.
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!
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.
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.
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.
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.
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 = "http://www.creativecommons.org/licenses/by-nc/1.0"
/>
<creativeCommons:license> http://www.creativecommons.org/licenses/by-nc/1.0
</creativeCommons>
- Contracts: agreeing on formats
- Tool building: know what the data will be before the
first instance shows up
- Database integration
- User interface tools
- Programming language bindings
- Validation: make sure we got what we expected
Source:
Noah Mendelsohn [PPT, page 9]
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.
Andy Oliver: I learned this kind of rat bastard behavior
from Sam.
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.
- Ignore the first two open tags.
- Ignore the last two close tags.
- If you don't handle namespaces, assume the client got it
right.
Clemens
Vasters: All numbers are worthless if you don't look
at how they were achieved
Dare
Obasanjo: My
Impressions of Don Box's XML 2002 Keynote
Dave Winer: ...thanks to the magic of
namespaces...
IK.VM.NET:
now on SourceForge
Pelle
Braendgaard: Strangeberry 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.
Winfessor:
We've just announced
our .NET Jabber
SDK for
Mono.
Catch
Mark Pilgrim, now on xml.com...
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.
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.
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.
DiveIntoMark: There’s something scary about stupidity
made coherent.
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.
Read this.
Want more? Watch this.
See the connection? Make the connection.
Tim
Knip: So... 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.
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.
Simon St.
Laurent: For some reason, news.com seems
hung up on the issue of what schema Microsoft is
using. News.com 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.
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.
Why don't CCPL licenses (example)
have copyright statements on them? Gotta love the <div
class="fineprint"> sections...
MozillaZine:
The 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...
Ed Cone has some suggestions
for RTP conference locations. Perhaps Matt Croydon
would consider driving down.
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.
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...
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.
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.
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.
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.
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?
Joe
Gregorio: There 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 RESTLogImpl.py 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
Appnel: If 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.
No sooner had I finished up my previous blog entry did I see this
one. Jon Udell certainly has a sense of timing.
...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..
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.
Jon Udell: For 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.
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.
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.
Steven
Noels: Nicola now as a weblog.
I've subscribed, even though his RSS doesn't
validate.
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.
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.
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.
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.
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.
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?
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.
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]
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.
Martin
Fowler: strong code ownership and refactoring are a
right pain in the butt
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!
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]
Craig McClanahan: In accordance with the project guidelines
as described on the Jakarta web site (http://jakarta.apache.org), I
hereby propose that Sam Ruby be granted Committer status in the
Jakarta Project.
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 rss2. June
11th in txt. Entries
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.
Jeroen
Frijters : I've been working on getting the SWT
(the Eclipse
windowing toolkit) examples to run [on .NET]. This
is totally wicked!
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.
Andy Oliver: Be your own man don't get so religious about
technology that you're just a pawn in their game.
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.
Cedric
Beust [via Guido
Casper]: The reason for lousy software lies in two simple
words.
Inadequate testing.
Hi Sterling!
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.
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.
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.
Ben
Hyde reviews Robert Axelrod's 1984 book Evolution
of Cooperation. Summary:
- be Nice, Cooperative, so you play nice with others,
- be Quick to Reciprocate, so you clearly signals nice or mean as
approprate,
- be Forgiving and Patient, so you don't get stuck being
mean,
- be Simple, so the other players can understand what your
doing.
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.
Then and now.
Interop and extensibility. One can do
both. Bing!
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.
Ugo
Cei: I think there was too much focus on the trees and too
little on the forest. Submit a patch.
Burningbird:
Happy Birthday, Mark. Make sure you read the
comments.
This
blog is
valid rss. View source if you don't believe me.
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?
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.
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.
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.
Shannon
Campbell: Hey, Y'all.
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.
Rich Bowen has a set of ApacheCon
tips. Make sure that you read all three.
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?
Arrived at ApacheCON
about an hour ago... will be here through Wednesday.
Gordon
Weakliem: Sometimes, a string is just a string.
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...
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.
Joel on Software: "learn how to
do it manually first, then use the wizzy tool to save time."
Steven
Noels. Perception is reality: please make sure your
perception isn't the product of a designed reality.
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"
David
Watson: I am pleased to report that my migration from Mind
Electric Glue to Apache Axis is well under way.
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.
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.
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.
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!
Point.
CounterPoint.
Almost as bad as those election campaign ads on television.
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.
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.
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!
A bit earlier this year, blo.gs added support "for
services like weblogs.com
and blo.gs 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
blo.gs 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.
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.
‹foo›
Update: apparently double guillemet characters
are more widely deployed. «doubleFoo»
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.
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.
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!
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]
Awesome!
Dave Winer:
For 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.
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.
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.
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.
Jon
Udell: I care enormously about RSS interoperability.
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...
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.
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.
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.
Thanks go out to Shannon Campbell
for digging up this
link.
Dave
Winer: Subscribe to this
channel.
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!
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."
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.
| C# |
public class test {
public static void Main(string[] args) {
System.Console.WriteLine('1' + '2');
}
} |
| Java |
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.
Mark Pilgrim: Guess what this means. I'm quite
interested in hearing the results. People are welcome to
leave their feedback here.
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.
Possum
update:
- Marshmallows
are unceremoniously dumped from the bowl and completely
ignored.
- Bananas are sniffed and nibbled, and then ignored.
- English muffins are priceless jewels which are instantly
whisked away to parts unknown and savored at leisure.
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.
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'.
paths=[".htaccess"]
data=["Redirect permanent /0101679/rss.xml
http://www.intertwingly.net/blog/index.rss\n"]
r=xss.xmlStorageSystem.saveMultipleFiles(email,pwd,paths,data)
print r['message']
Can't save one or more files because it was not a legal
type, or it's too large.
DOH!
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!
Jeff
Cheney has redirected his subscription of my new rss
feed. Thanks!
For the first time since mid August, the
number subscriptions reported by http://radio.weblogs.com/ 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.
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).
Glen Daniels: Enable SOAP 1.2 webmethod feature. Use it
like this:
Call call = new
Call("http://localhost/~glen/soap.xml");
call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS);
call.setScopedProperty("soap12.webMethod", "GET");
call.invoke();
SOAPEnvelope env =
call.getResponseMessage().getSOAPEnvelope();
RESTful SOAP. +1.
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.
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)
{
local(contrast=string.mid(string.hex(255-(date.set(1,1,2003,0,0,0)-adritemcache^.when)/26700),5,2));
add ("<description><div style="color:#"
+ contrast + contrast + contrast + "">" +
adritemcache^.text +
"</div></description>")}
else {
add ("<description>" + adritemcache^.text +
"</description>")}
Andres
Aguiar: I 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.
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.
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.
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...
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.
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 keynote: this is the first time I every remember
running short on time - I nearly always finish early.
- Glen Daniels didn't say anything I haven't heard before.
;-)
- Peter Drayton captured the subtle concepts of REST
superbly
- Steve Lougran's presentation was just as good the second
time. I particularly liked the things he could tell us now
that he couldn't tell us the first time.
- Noah's presentation was very educational. I had
thought that schema was more deterministic.
- Scott Seely's was perhaps my favorite session. To see a
Microsoft employee demonstrate Axis alongside .Net did my heart
good. I disagreed with some of it, but that's what
makes topics like this interesting.
- This was the first time I've ever seen Don Box talk on a
subject where he didn't have all the answers. The role of
types in loosely coupled systems is a favorite topic of mine.
I'll probably have more to say on this in a bit.
- Yasser is probably destined to become my new best friend.
Had I known what he was going to say, I would have streamlined my
keynote considerably.
- The Mindreef duo shared a wealth of immediately
practical advice. If you ever consider deploying a web
service based solution with components from more than one vendor,
these are the guys to talk to.
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.
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
python linkbackparser.py http://diveintomark.org/
http://www.intertwingly.net/blog/2002/Oct/11#x901
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.
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.
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
One year ago today the
discontinuity for weblogs.com was being planned.
One year ago today: FBI: Most
Wanted Terrorists.
Mark Pilgrim: let 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.
My devcon slides are now online.
Brian
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: devcon.pl 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.
Shelley
Powers: The Parable of Languages. Well worth a
read.
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.
Peter
Drayton: the .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.
Itinerary:
Today and Tomorrow: SOAPBuilders
@ Sun
Thursday and Friday: Chris Sell's
WebServices DevCon
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.
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.
Doc
Searls: the F-word is the most common sales pitch in
the world
Aaron Swartz: I
will be attending oral argument for the
Eldred case before the Supreme Court. Awesome!
John
Robb: We are going to remake the world of online
publishing.
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.
Steve
Loughran: This is a presentation on Web Service
Interoperability
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.
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]
Don Box: Six weeks away due to emacs-based blog
editor.
Clay
Shirkey: destruction of value is what makes weblogs so
important.
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.
Doesn't seem to be much in the way of adoption of pingback
amoung people in my circle of friends.
How I wish I could be there to celebrate it with you this time.
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!
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.