Another stop for the coming weeking.
I'm visiting Jake, Mark and their families this weekend. This was from last year's annual university friends get together. Note, my blog picture was from the same night and digital camera.
Picked my park for the long weekend. I'll get there Friday afternoon and leave Monday. Park events. It's the Cambridge Mill Race Folk Festival on Aug 1-2. I'll be visiting friends in somewhat nearby London and Chatham.
Quote: 724 Solutions' total revenue in the second fiscal quarter was $3.0 million compared to $3.5 million in the previous quarter and $5.0 million for the same period last year.
Revenues drop again. Further notes I picked up from the grapevine (may not be entirely true) that were not in the press release. They had 150 employees at the end of last quarter and 90 at the end of this quarter, which accounted for two new rounds of layoffs. 25 employees left in Toronto. Chicago office (Spy-On-It) is closed.
RSS for Drunk Dummies :)
source Winer.
Senior Consultant .Net – Eidenai Innovations Inc.
Requirements:
Successful candidates will have at least 2 years experience developing applications in VB.NET, ASP.NET and C# within the .NET framework in addition to at least 4 years of formal client server or n-tier development experience (using Microsoft technologies).
Description:
We have current opportunities for experienced .NET developers with experience in developing applications. Experience in C#, C++ and SQL Server would be a great asset in this role. With within the financial vertical is also a great asset as most of our clients are financial institutions within the GTA. As this requirement is mostly on a project basis, we ask that candidates only apply if they are authorized to work in Canada. If you meet all of the requirements listed above, then please submit your resume in confidence to this posting.
Our company is a Gold Certified Partner of Microsoft and have requirements for consultants with exceptional skills and experience in the Microsoft technologies arena. We are an Equal Opportunity Employer.
Apply for this job now by sending your resume and contact information to the following email address: maril@eidenai.ca
Got the following question in an email today: "Why are you not blogging on Atom developments anymore? No posts in nearly a week."
Answer: Atom started as a replacement for RSS. Unfortunately, all the Atom contributors don't consider Atom to be a replacement for RSS. See my exchanges with the RDF group. They want to preserve their existing formats while introducing a new one. Going forward, Atom is yet another format that I'll have to deal with when writing software. It's only increasing the confusion in the blog industry and is no longer worth contributing to.
724 Solutions is currently valued at less than the realizable value of its tax-loss carry forward. A canadian wireless company could acquire 724 and use the loss carry forward to reduce their tax burden. Of course, the purchaser would require tax burden equivalent to or near 724's loss carry forward. The purchaser could also sell off the existing assets (intellectual property and service agreements) to Hewlet Packard or another HP partner.
Note: 724 trades below cash value too! Add the cash to the tax-loss carry forward and you have a great purchase opportunity. I assume that 724's shareholder rights plan is what is scaring off purchasers.
An interesting concept in software development is the feature trap. This is the process of thinking that if you add this one more feature that somehow your product will become so much better. You add the feature and then realize that if you add this one more other feature that your product will become so much better. You continue in this cycle until you run out of time or money and the product dies. The same effort spent on marketing the existing product would likely have saved your organization.
724 Solutions: 724 had the horrible habbit of rewriting everything from scratch. To get it working on UNIX. To get it internationalized. Product development had many successes, but lacked complimentary marketing.
1X Inc: 1X had a great product. But management spent too much time inventing new features and too little time selling the product. In the end, customers settled on much inferior competitive products (even vapourware).
Opencola (website gone): Opencola's management returned from every customer meet with new requirements. Died at sales = $0.
Please add your own feature trap stories in the comments.
My weekend started earlier on Friday morning as I retrieve the RV from Safe Self Storage. Before noon, we we on the road and headed north. And I'm not talking that fake north called Muskoka. Two hours later and we made our first stop at Webers. It was only 1-2 PM and already they were lining up out the door. The second stop was for gas only, just north of North Bay.
Finally after six plus hours on the road, we were at Bass Lake near Cobalt. A great, weekend. Most all of my uncles, aunts, cousins and their children on my Dad's side of the family showed. About 60 people. Pics to come. We camped beside my sister Micheline and her family. They have a VW camper. John, Miche's husband has fixed up a few VW campers (Bugs and Porsches too!) in his days.
On the way home we stopped at the Dionne Quints Museum. We never actually go inside the museum, it's just a nice stop with a kids park (swings and slides), RV dump stations, free kindling firewood and a nearby Tim Hortons. We stopped once more north of Barrie at McDonalds.
Overall a great weekend!
Quote: There's a cryptic but tantalizing announcement on Amazon.Com. Apparently the same information that's available through their Web Services interface is also available in RSS 0.91. Examples: top-selling DVDs, baseball books. How do we find other feeds? Download the SDK.
source Dave Winer.

This is a book I helped write that was translated into Korean. You can also read some of the book online; PDF. I don't think I wrote the chapters in the PDF file.
It was original printed in English and was titled COM/DCOM Primer Plus. The English edition has been out of print for some time now.
The same book was long ago translated into Japanese.
Quote: "It's often not practical to install a production Web server like IIS on every computer from which you need to serve documents. In this article, Randy Charles Morin shows you how to build a very lightweight Web server in C# with less than 250 lines of code!"
I have the lead article in Hardcore Visual Studio.NET for the month of August. Cool!
This weekend I shall be camping at Bass Lake near Cobalt, Ontario. I was born in Cobalt and lived there a few years. This is a picture of the school that I would have attended had I stayed there in my schooling years.
Quote: Cobalt has been deemed the most historic town in Ontario in a Studio 2 contest.
Here's some cool work in the making from Danny Ayers. Danny is somebody trying to make things work rather than writing more spec. Need more Danny's.
A question for the RDF gurus.
Can Atom or for that matter RSS 2.0 be transformed into RDF using a simple XSLT stylesheet? Danny Ayers has recently writen a spec that does something like this for RSS 2.0. I don't know this to be true and would love confirmation. If so, then could we not extract RDF data from Atom by first applying this transform? This way, as we move forward with Atom, we can discard RSS 1.0? Might be some work here for somebody.
Foward your resumes to James.
-----Original Message-----
From: James Lee [mailto:james@w5.net]
Sent: Tuesday, July 22, 2003 2:42 PM
To: Morin, Randy
Subject: Re: contract position
Hey Randy,
source Scripting News.
Here's my IM conversation with Ken MacLeod. My opinion, he's a good dude.
kenmacleod: Hi, Ken MacLeod here. got a few moments?
randymorin: hi ken, just got in
randymorin: have a few hours
randymorin: I hope you don't mind me adding you as a Friend
kenmacleod: not at all
randymorin: thanks
randymorin: by the way, I really appreciate the efforts you make online
kenmacleod: thx
randymorin: I post on a lot of blogs are rarely do I get an email when someone answers
kenmacleod: heh. in this case, my blosxom blog is new and I don't have a feed or notification of comments, so it was several days before I noticed it
kenmacleod: As I mentioned in your comments, I'm looking to find the basis for some of statements you've made recently.
randymorin: In particular, I assume you mean these comments...
randymorin: http://www.kbcafe.com/iBLOGthere4iM/comments.aspx?guid=20030721114110
kenmacleod: things like "The RDF crew is gambling on twelve." and "Sounds like the true goal behind Atom/SSF/Echo/Pie is to create confusion in the industry."
kenmacleod: yes
randymorin: I definately didn't associate those second comments to you.
randymorin: My comments on RDF crew is gambling on twelve should be explain
randymorin: I'll do that.
randymorin: But in short, it means we have say 6+ formats already. If we adopt new formats without dropping existing ones, then we'll get to 12 in no time.
randymorin: Actually, I had a question I was going to post for you, Bill and Aaron
randymorin: What would it take to forfeit RDF-RSS in favor of Atom?
kenmacleod: feel free, here or there. as I mentioned, everything we chat here can be on the record
randymorin: Cause I'm definately not in favor of Atom, if we all individually are going to preserver our own favoriate individual formats
randymorin: preserve, not preserver
kenmacleod: there's different takes on different formats, natch. RSS 0.9 and 0.9x are like HTML 1-4.0, not recommended for use but still a lot out there
randymorin: k
kenmacleod: RSS 2.0 and RSS 1.0 are "current formats", and Atom is working to be a "current format" also. I assume we're not talking about RSS 3.0-<inf>
kenmacleod: You had asked the question on my site whether RSS 1.0 was still supported. Why would you think it wouldn't be?
randymorin: I thought I asked whether Echo replace RSS 1.0
kenmacleod: ah, I missed your question earlier. it's not a question of "forfeiting" RDF-RSS
kenmacleod: the people developing Echo are, for the most part, not the people who developed RSS 1.0.
kenmacleod: neither are they generally the ones making the most intentional use of RSS 1.0
randymorin: To me there are numerous formats, two flavors of RSS 0.91, RSS 0.92 (I don't see many anymore), RSS 1.0, RSS 2.0, Funky RSS, Don Box's RSS Profile and Tim's RSS Profile
kenmacleod: ah. ok.
randymorin: k, the people in Echo and RSS 1.0 are not the same people, but what would it take for the people of RSS 1.0 and the people of Echo to come together?
randymorin: and forfeit the past?
kenmacleod: hold off for a sec on "finalities"
randymorin: no problem
randymorin: What would be awesome is to get you, Sam and Dave in a room and not let you guys out until you've agreed
randymorin: :)
kenmacleod: folks using 1.0 up to recently have been using it because it is 1) extensible, 2) RDF, 3) governed by a WG that votes publicly, even if they're not voted into position by the Interest Group, and (last that I can think of at the moment) 4) willing to acknowledge anything and everything that makes RSS better.
kenmacleod: picking people to get into a room isn't a good idea, either
randymorin: I think it is. I trust all three of you.
kenmacleod: but there are different issues. particularly, now that RSS 2.0 is starting to take all the RDF-RSS users who need extensibility only, and Atom will surely take all the rest who don't use RDF, it will still be a long while before the people who use RDF will be able to move to a differently specced platform.
randymorin: Do you mind if I post this all in my blog? Feel free to say no without a reason
kenmacleod: no, I don't mind at all.
randymorin: thanks and I really appreciate the time you've spent to help me understand where you are coming from
kenmacleod: there are a lot of people, for example, who use RDF-RSS because it is RDF and fits in with the other tools they are using.
randymorin: I was first introduced to RDF in 1998
randymorin: I was writing a server that would interpret an XML document and process transactions based on the XML.
randymorin: I didn't understand RDF then and still don't understand it now.
randymorin: You'll have to convince, if we ever meet.
kenmacleod: did you see my article, "Yet another "What is RDF and the Semantic Web?"?
randymorin: Give me a link
kenmacleod: we've met, How do you do? :)
kenmacleod: http://bitsko.slc.ut.us/blog/2003/06/21/rdf-relational
randymorin: :)
kenmacleod: let's leave that for another time. what's important now is that people do use RDF-RSS because of its RDF. to obsolete that format would require a thorough mapping between RDF and another format, or simple lack of support.
randymorin: k, we'll chat again
kenmacleod: I meant that topic
kenmacleod: "what RDF is"
randymorin: It'll take me a day to sink into you article
kenmacleod: ooh, then don't start reading now!
kenmacleod: (well, it's short, you may be done ;)
randymorin: Unfortunately not, when I get home, I have 150 emails waiting for me and 2-3 MSGer sessions in the works. Makes for a slow night
kenmacleod: you're wanting to wrap for now, that is?
randymorin: No, it's ok.
randymorin: If I had an XLST that transformed Echo into RDF and vice versus, then would we be willing to forfeit?
kenmacleod: ah. how about this then: Randy Morin: To me there are numerous formats, two flavors of RSS 0.91, RSS 0.92 (I don't see many anymore), RSS 1.0, RSS 2.0, Funky RSS, Don Box's RSS Profile and Tim's RSS Profile
kenmacleod: a "looking forward" perspective
kenmacleod: one of the issues we have the blog speccing world is no sense of what Is and what Is Not an recognized specification.
kenmacleod: /me will try to type slower as to make less grammatical errors
randymorin: :)
randymorin: we all do, no worry, I'm the worst
kenmacleod: :)
kenmacleod: this is one man's opinion, but posting a spec on one's own site does not a recommendation make.
randymorin: I don't follow.
kenmacleod: /me lapses into old english just to make a point
kenmacleod: one reason for the perception of too many specs is that there is no "pipeline" of drafts and final product
randymorin: k
kenmacleod: how is the world supposed to know which specs they *should* be looking at?
kenmacleod: The RSS Profiles were never specs, those never made it out of draft. (let's not go there yet, tho)
randymorin: Yes, but some people still adopted them
randymorin: Remember that when Don Box or Sam Ruby say yeah to anything, that 1,000 developers jump on their boat in a minute
randymorin: I'm a big Don Box fan.
randymorin: I'm like his Fan (the movie)
randymorin: That's how I got in the discussion in the first place
kenmacleod: do you mean the RSS Profile or, say, xhtml:body? those are somewhat different things
randymorin: xhtml:body was part of Don's RSS 2.0 profile
randymorin: but, what Don did wrong and I tried hard to explain is that he allowed for multiple content
randymorin: Which is a no-no
kenmacleod: it was part of the profile, but because it was used and discussed earlier
randymorin: k
kenmacleod: multiple content as in xhtml:body, content:encoded, and rss:description altogether? (I use rss:discussion in the RSS 2.0 sense, but understand it has no such namespace)
randymorin: yes
randymorin: Have you heard of Opencola?
kenmacleod: just a reference
randymorin: They died last week.
randymorin: Just a sad note.
randymorin: They had a good concept of the Semantic Web, but ran out of money before any sales.
kenmacleod: been there...
randymorin: which co. was your sad story?
kenmacleod: small networking co. in the early '90s. never got on the web ;)
randymorin: Mine was 724 Solutions
randymorin: thanks for the conversation, I'll have to leave you now, got to fix some bugs before I fall asleep. Feel free to ping me anytime.
kenmacleod: k. will do
kenmacleod: thx to you to
I'm trying to figure out what happens after the air clears. Do we end up with twelve standards or just one? The RDF crew is gambling on twelve.
Ken MacLeod wrote,
"Projects that have a need for syndication and RDF, or RSS/RDF 1.0 modules, should most definitely look RSS/RDF. [cut] People interested in web sites, weblogs, and syndication should keep an eye on Atom and use it as suits their need."
Bill Kearney wrote,
"... this isn't an either-or proposition."
source John Palfrey's blog.
Two months ago, Don Box presented us with an RSS 2.0 profile. I was immediately concerned that this would bring confusion to the blogosphere and put a hold on funding of new blog related projects.
Two months later, this initiative now exist as Atom. A new standard in the works, even though the same players denied this to be a new standard. Along comes SSF and we now have two RSS 2.0 profiles, two new syndication standards and two existing standards. More to come?
So, what has all this brought us? More formats to handle? Anything else. Some suggest that Atom is somehow better, but I went thru the recent EchoExample and all elements are recast elements of RSS 2.0 with new tag names. I couldn't envision any new functionality. Even the AtomApi is based on an existing RSS 2.0 protocol called RestLog, by the same author. In fact, in creating the AtomApi, the author simply copied the entire RestLog spec and replaced RSS with Atom and renamed the appropriate elements.
Confusion reigns.
Clearly the best park we've ever stayed.
Reasons
If you need a weekend or even a week getaway, then head up to Sauble Beach. It truly is spectacular.
Notes
Quote: We need a tight, crisp “Use a Better Browser” button that has a mouse-over and is linked to a message somewhere, and the message is simple:
If you were looking at this in any browser but Microsoft Internet Explorer, it would look and run better and faster.
Funny, when writing HTML I often use, "if IE then do something cool else revert to the mundane." For example, designMode, which I'm using to write this blog entry, in IE.
Quote: "The Site Syndication Format development list is a moderated short-term mailing list for the discussion of ambiguities in the RSS 2.0 specification. The goal is to develop a new specification from scratch, code-named "Site Syndication Format," that clarifies or corrects these issues -- which can then be submitted to UserLand, a standards body, or published as a profile describing best practices. Members of the list should be developers who have written software that produces or consumes RSS 2.0"
The Wiki was announced by and hosted by Sam Ruby.
Yet another syndication format from EOSA. Sounds like the true goal behind Atom/SSF/Echo/Pie is to create confusion in the industry. The primary proponent behind Atom is now supporting another new competitive effort. Who would benefit from this confusion? How about the major software houses that are behind the curve on blogs, i.e. IBM. 2+2.
In the next couple hours I'll be headed out to Sauble Beach's Woodland Park. We'll be there for the night, leaving in the morning.
"Rated the #1 Campground in Canada
by Trailer Life"
"Will the advisory board expand? Quite possibly. We will always have an odd number of members, since a majority vote is required for all questions answered by the board."
My recommendations for RSS advisory board. I'll suggest four, but would only suggest adding two of them at a time (seven may be too much too fast).
Dan Gillmor on the new RSS advisory board and copyright ownership.
"My first question was whether some people in those communities will assume that Simmons, having worked for Winer, will be a rubber stamp. Both laughed at the notion. And, as it turns out, in a vote yesterday -- about whether to create a new RSS validator -- Simmons and Udell were the majority saying no."
I've always wanted to pursue the exercise of writing my own RSS 2.0 validator. One that would validate to the specs and not my vision of the spec. We'll see.
source Intertwingly.
The AtomAPI will use REST.
"AtomAPI is an application level protocol for publishing, and editing web resources. AtomAPI unifies many disparate publishing mechanisms into a single, simple, extensible protocol. The protocol at its core is the HTTP transport of an XML payload."
The three popular XML/HTTP RPCs are SOAP, XML-RPC and REST. REST is a little confusing and uses a paradigm not normal to programmers. XML-RPC is simply too complex. I like SOAP. MHO.
I put the PSS 1.0 and RAR 1.0 specs back up. I had it down for technical reasons (the website looked like crap) for a week. Movable Type is picky. Found out that I shouldn't be using Preformatted HTML. Arg!!! Learned my lesson.
Quote: "Cool. What I was asking is whether MIME types like application/msword, text/rtf or audio/mpeg will be allowed in Atom feeds and if they are expected to be supported with the Atom API." Dare Obasanjo
Looks like an interesting conversation on MIME and Atom is brewing over on Intertwingly.
Staying in touch with loved ones while on the road has become much easier thanks to cellular phones. However, cellular coverage remains limited in many parts of North America, particularly when traveling through rural areas. Enter the satellite phone, which works where cell phones don't. Further, satellite services allow you to access the internet, so you can send and retrieve emails, download maps to campgrounds or other destinations, or find information on local attractions.
None of these solutions is less than extremely costly.
Carson's Camp was in the RVlifestyle May edition. Woodland Park is also in Sauble Beach. Both look amazing. Neither park is all that interested in short-term campers (one night). Third choice is Winding River Campground, also in Sauble Beach, but further from the beach.
This is my favorite charity.
Here's my plan for my trip to Six Flags Darien Lake. Not sure if I'll do it this weekend or later in the summer. But I have two choices for a place to stay. I can stay at Darien Lake's campground or Skyline Resort. Darien Lake's camping includes admission and requires a two night stay, so it's more expensive.
A number of folks who helped write the RSS 1.0 specification, like Aaron Swartz and Sam Ruby, have expressed willingness to drop RSS 1.0 future development, and to rename their future weblog standards development. Sam's even put out a call for new names.
I'm kinda getting sick of the tag team effort that Bill Kearney, Sam Ruby, Aaron Swartz and Mark Pilgrim are pulling on David Winer. Just do a search on feedster or daypop for RSS. Almost any post on RSS is littered with post by our four amigos slaughtering Dave Winer. Of late, the slaughter has amplified with Mark harassing Dave by posting his blog edits. If the four amigos are serious about Echo, then they should focus on their new development project and resist further personal attacks on Dave. At the same time, I don't blame the foursome as Dave has put his own charge into this war. I challenge Dave to resist on his own.
This is the story about three brothers; Joe, Jim and Jack. Joe loves to harass people. Jim never has a contrary opinion. Jack tells it like he sees it. Let me tell you a little bit more about these three characters.
Joe goes out of the way to tell people that they are wrong. In fact, he's flexible on his belief in any issue, as he enjoys being the devil's advocate. Putting his foot in his mouth and attempting to make others feel like they have done the same is his primary responsibility in his workplace. Joe is sometimes applauded for speaking out and telling the emperor that he is naked.
Joe doesn't necessarily need an excuse to cause a confrontation. In face, failure to find a reason for confrontation, he'll most likely event one. For instance, he'll intentionally write bugs into his software knowing that this'll give him a chance to talk to a particularly sexy programmer on the third floor. Or best, he has no problem telling the new female QA tester that she's got nice hooters.
Joe's career involved jumping from company to company, in an attempt to outrace his reputation. Either fired or quit in disgrace, he starts the next job hoping he can avoid a similar fate, but without six month to a year has fallen back into his bad habits.
Joe is never a messenger, although often mistaken for one. Rather, he is just a troublemaker.
Jim can't wait to retire and die. He avoids all confrontations at work and would prefer that somebody lock him into a closet and release him only when it's time to retire. In order to avoid confrontation, he rarely speaks his opinion, even when he knows that a project is doomed to failure. Jim is sometimes applauded as a dedicated worker who doesn't cause any problems.
Jim will work for 10-15 years for the same company, until one day, he's fired. Somebody eventually realized that Jim has held the same position for years without promotion or doing any non-trivial work.
Jim is never a messenger and never is mistaken for one.
Jack lives life. He's viewed by some as a nice guy like Jim. He's viewed by others as a problem child like Joe. When an issue is on the table, he gives his honest view of one side or the other. This causes confrontation with those he opposes in discussion and friendship with those he supports in debate.
Jack is occasionally fired from time-to-time because he opposed someone in discussion that had the power to dismiss those that disagree with them. Jack is fired because he was a messenger and someone didn't appreciate it.
Jack is the real messenger in your organization. Find him and you'll find the voice of truth.
Few of us are black and white Joes, Jims and Jacks. Most of us are mixtures of all three. Sometime we avoid debate because we fear the result. Sometime we debate, just to be jerks. Sometime, we are heroic Jacks. Some generalizations. If you are generally a Joe, then you should be fired. If you are generally a Jim, then you are not the best worker you can be. If you are generally a Jack, then you are doing just fine.
The problem with this essay is that often Jacks are fired because they are misconstrued as Joes. Workers then cower into being Jims because they don't want to be Jacks and perceived as Joes. Two situations have arisen of late where I've seen Jacks get fired because they were perceived as Joes. I'll recant these stories generally, so that nobody knows who is who and nobody takes exception (yes, I'm being Jim). Also, I know not the specifics of these stories, but they do speak of the issue I'm presenting.
So, what is this all about? It's about shooting the messenger. Why do we do it? Why do we shoot Jack? We shoot Jack for one reason. We are afraid that he'll tell the truth about our worst fear. The fear that we ourselves are not perfect workers. We make mistakes. Others point them out. But it's ok. It's not a reason to fire Jack. By firing Jack, we only encourage the rest of our workers to be like Jim. Is that really what we want? Maybe it is.
A
great weekend! It was fun to wake up and drive 1km to Marineland (as oppose to
150km). Marineland's campground is the largest I've been camped at (200-300
sites). The lots are nice too!
They do suffer from hookup syndrome. Half the lots have the hookups on the far side of where you'd expect it. Thus, your electrical cords and water hose run 10 meters and thru your picnic table legs.
Nice large swimming pool with smaller kid's pool. No recycling. From what I can see, only a few dozen of the lots are allocated to seasonal. Seasonal is along the river. RVers in the next 10 rows and tenters in the far back. Large field for general kids fun. Nice kids playground. Camp fire setting is large steel tire rims. Lots of trees for strategic shading around the lot. Easy to get in and out of the lot. Security guard at gate.
source diveintomark comments.
A few of us figured it out at the same time, during a long flame by Mark where he ridiculed me for something related to the thing he did. Without knowing I had written about something that eventually would expose the nasty little thing he was hiding in his validator. At the time I didn't know, but when his flames persisted and got more venomous, I decided to ask some questions, then do some digging, and boy my chin dropped when I found what he was hiding. He quickly changed the way his validator worked, without (as far as I know) any public disclosure. The irony is thick.
Dave v Mark, Part (whatever I can't count that high)
The blogosphere is ripe, ripe with flaming and ripe with harassment. One of the top proponents of the Pie/Echo movement, Mark Pilgrim has taken to harassing Dave Winer, an author of a competing standard called RSS. Mark has stepped up his harassment by scanning Dave Winer's blog every 5 minutes in order to try and catch and accentuate corrections and modifications that Dave makes in his blog. When Dave publicly asked Mark to stop pounding his server with request every 5 minutes and limit himself to one pull every hour, Mark ignored the request and continued with his project. Now Mark has published an essay on why he thinks he should be able to continue harassing Dave Winer.
The maturity of the A-list bloggers drops another notch.
I've always been an RSS and SOAP fan. I recently implemented BloggerAPI and MetaWeblogAPI and found them cumbersome. I don't think the average programmer stands a chance with XML-RPC. Beyond that neither API is complete and only recently MetaWeblogAPI provided supported for deleting items (BloggerAPI simply doesn't). Then half way thru writing this, Jon Udell called for a SOAP blogging protocol. That was fait accompli.
Answer: Up.
Sometime, you have to ask oneself, what is your purpuse in life. Devoting ones life to trying to make another person look bad seems like a trivial pursuit.
Now some have taken up the challenge to reproducing Dave Winer's RSS blog in order to catch edits that Dave makes and try to embarass him on those edits.
Take heart Dave . They are trying to knock you off a pedestal. A pedestal that exist in their minds.
Question: In which direction do you look at someone when they are on a pedestal?
Notes
Web, July 9 2003, by DeveloperDude.
This document describes the Portable and Simple Syndication API that allows pragramatic access to RSS databases. The PSS standard was developed in order to extend RSS 2.0 constructs beyong the RSS file. By incorporating the RSS elements into other APIs, we can then create new XML applications that interoperate well with RSS-based applications.
The PSSAPI includes three methods that can be expressed functionally as the following.
By default the PSSAPI is implemented over the SOAP/HTTP RPC, but any RPC mechanism would suffice. It is strongly recommended that you use the SOAP/HTTP RPC where applicable. It is also strongly recommended that you use UsernameToken authorization as described in the standard WS-Security [http://www-106.ibm.com/developerworks/library/ws-secure/].
Adding a new item to an RSS feed, has the meaning of prepending the item to the beginning of the RSS data source.
A sample pssapi.newItem request follows.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
<wsse:Security> <wsse:UsernameToken> <wsse:Username>randy</wsse:Username> <wsse:Password>hello</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header>
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>My Title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
</pss:item>
</pssapi:newItem>
</soap:Body>
</soap:Envelope>
A sample pssapi.newItem response follows. Note, the response is an echo of the request without the authentication module in the header. The response may add or change elements to fit the data sources specific RSS flavor. For instance, if the source was implementing RSS 0.91 or RSS 1.0, the items could change in style drastically.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>My Title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
</pss:item>
</pssapi:newItem>
</soap:Body>
</soap:Envelope>
A typical fault response follows.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Sender</soap:Value>
</soap:Code>
<soap:Reason>Request was incorrect.</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Editing an existing item in an RSS feed, has the meaning of modifying the item in place in the RSS data source.
A sample pssapi.editItem request follows.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
</soap:Header>
<soap:Body>
<pssapi:editItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>My Title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
<pss:guid>http://tempuri.org/guid</pss:guid>
</pss:item>
</pssapi:editItem>
</soap:Body>
</soap:Envelope>
A sample pssapi.editItem response follows. Note, the response is an echo of the request without the authentication module in the header. The response may add or change elements to fit the data sources specific RSS flavor. For instance, if the source was implementing RSS 0.91 or RSS 1.0, the items could change in style drastically.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:editItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>my title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
<pss:guid>http://tempuri.org/guid</pss:guid>
</pss:item>
</pssapi:editItem>
</soap:Body>
</soap:Envelope>
Deleting an existing item in an RSS feed, has the meaning of removing the item from the RSS data source.
A sample pssapi.deleteItem request follows.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>randy</wsse:Username>
<wsse:Password>hello</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<pssapi:deleteItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:guid>http://tempuri.org/guid</pss:guid>
</pss:item>
</pssapi:deleteItem >
</soap:Body>
</soap:Envelope>
A sample pssapi.deleteItem response follows. Note, the response is an echo of the request without the authentication module in the header. The response may add or change elements to fit the data sources specific RSS flavor. For instance, if the source was implementing RSS 0.91 or RSS 1.0, the items could change in style drastically.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:deleteItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:guid>http://tempuri.org/guid</pss:guid>
</pss:item>
</pssapi:deleteItem >
</soap:Body>
</soap:Envelope>
Please note that although I include only one method in each each example, there is not limitation to one method call per request. Theoretically, you could have a mix of newItem, editItem and deleteItem methods in each request. You can also have more than one of each request type.
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>mytitle</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>mytitle</pss:description>
</pss:item>
</pssapi:newItem>
<pssapi:editItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>My Title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
<pss:guid>http://tempuri.org/guid</pss:guid>
</pss:item>
</pssapi:editItem>
</soap:Body>
Within each method request, you could also have more than one item. This allows the programmer to add, edit or delete multiple items per method request.
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>mytitle</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>mytitle</pss:description>
</pss:item>
<pss:item xmlns:pss="http://duderesearch.com/archives/000010.html" >
<pss:title>My Title</pss:title>
<pss:link>http://tempuri.org/object</pss:link>
<pss:description>some content</pss:description>
</pss:item>
</pssapi:newItem>
</soap:Body>
Note also that you are not limited to the four basic elements of an RSS item; title, link, description and guid. You can also use any of the other elements; pubDate, category, etc. You can also include elements from many of the extensions like trackbacks and the comment api.
It is not advised to use PSSAPI with obsolete flavors of RSS like version 0.91 and version 1.0. Incompatibilities in the data set make programmatic control cumbersome with these version of RSS. It is also strongly advised against using funky RSS with PSSAPI.
Assuming Pie/Echo makes it to adoption, then this document applies equally to this format. Only samples are provide as Pie/Echo is still far from complete. Even the example should only be considered for form and not content as the element of Pie/Echo are in a lot of flux.
I was originally going to write this solely for RSS, but decided that it was trivial enough to add support for Pie/Echo.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
<wsse:Security> <wsse:UsernameToken> <wsse:Username>randy</wsse:Username> <wsse:Password>hello</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header>
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pie:entry xmlns:pie="http://tempuri.org/object" >
<pie:title>My Title</pie:title>
<pie:link>http://tempuri.org/object</pie:link>
<pie:content type="text/html" >some content</pie:content >
</pie:entry>
</pssapi:newItem>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:newItem xmlns:pssapi="http://tempuri.org/object" >
<pie:entry xmlns:pie="http://tempuri.org/object" >
<pie:title>My Title</pie:title>
<pie:link>http://tempuri.org/object</pie:link>
<pie:content type="text/html" >some content</pie:content >
</pie:entry >
</pssapi:newItem>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
</soap:Header>
<soap:Body>
<pssapi:editItem xmlns:pssapi="http://tempuri.org/object" >
<pie:item xmlns:pie="http://tempuri.org/object" >
<pie:title>my title</pie:title>
<pie:link>http://tempuri.org/object</pie:link>
<pie:content type="text/html" >some content</pie:content >
</pie:item>
</pssapi:editItem>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:editItem xmlns:pssapi="http://tempuri.org/object" >
<pie:item xmlns:pie="http://tempuri.org/object" >
<pie:title>my title</pie:title>
<pie:link>http://tempuri.org/object</pie:link>
<pie:content type="text/html" >some content</pie:content >
</pie:item>
</pssapi:editItem>
</soap:Body>
</soap:Envelope>
A sample pssapi.deleteItem request follows.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext" >
<soap:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>randy</wsse:Username>
<wsse:Password>hello</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<pssapi:deleteItem xmlns:pssapi="http://tempuri.org/object" >
<pie:item xmlns:pie="http://tempuri.org/object" >
<pie:link>http://tempuri.org/guid</pie:link>
</pie:item>
</pssapi:deleteItem >
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" >
<soap:Body>
<pssapi:deleteItem xmlns:pssapi="http://tempuri.org/object" >
<pie:item xmlns:pie="http://tempuri.org/object" >
<pie:link>http://tempuri.org/guid</pie:link>
</pie:item>
</pssapi:deleteItem >
</soap:Body>
</soap:Envelope>
I've always been an RSS and SOAP fan. I recently implemented BloggerAPI and MetaWeblogAPI and found them cumbersome. I don't think the average programmer stands a chance with XML-RPC. Beyond that neither API is complete and only recently MetaWeblogAPI provided supported for deleting items (BloggerAPI simply doesn't). Then half way thru writing this, Jon Udell called for a SOAP blogging protocol. That was fait accompli.
source BoingBoing.
Not to mention, the documentation for MetaWeblog API is pretty thin. No samples. If anybody knows where to locate some, they could be of help to me.
Most of what I had left todo wasn't possible in KBlog, so I just return Not Supported errors.
| So what would the top blogs in town look like in Echo? | Want to add echo to your blog? Go here. |
Chit chatting about Echo/Pie of late, I've been surprising Echo/Pie supporters when I mention that IBM is the big brass behind the project. The answer is always that "No, Echo/Pie is about protecting small development companies and is in no way associated with IBM." I then tell them that Sam Ruby the leader of the Echo/Pie movement is an employee of IBM's. The answer is sometimes, "Yes, but Sam is working independently on Echo/Pie." I then respond that "No, Sam is working full-time on Echo/Pie with IBM's permission." They tell me, "That's simply not true. Where's the proof." I thought everybody knew this. But in case you didn't.
Quote
So I'm invoking an age olde american tradition of letting my wallet do the talking. I will again invest $10k in aggregator default placements this year, but I will spread it around, to all developers who adhere to RSS2.0. Include (N)echo and you're out of luck.
Definition: unity; peace; in agreement
I read a blog that attacked the U.S. invasion of Iraq. The opinions expressed in the blogosphere are quite diverse. It gives me a reason to argue both sides. For instance, although I'm anti-war, the author's opinion although appreciated are extremist and have a narrow view of time.
Stand
back while I recount you the history. George W.
Bush's father is also named George
Bush and he served as Vice President to
Ronald Reagon. Yes, we all know that. It was that administration that
made Saddam Hussein and his arsenal even though that
administration knew that it was likely to lead to the current situation.
The administration also
anticipated that Iraq would become hostile against Kuwait and that they
would continue to "develop its formidable conventional and chemical capability,
and probably pursue nuclear weapons". Yes, that last sentence contains a
direct quote from a
1984 briefing of the said administration.
Now, don't get me started on bin Laden. Same story. Same players.
Continuing on my funny development story of yesterday. We decided to replace Rogue Wave DB Tools. Why? It sucked big time. We decided that we should write a thin data layer on top of ODBC or OLE. Something that could easily be ported to OCI (Oracle Call Interface). The very minimal project started with bare requirements and 200 hours of development effort allocated. The project required one part-time manager and one full-time developer, for one month.
After about a month, I checked up on the development effort. They replied that the completion was two weeks out and only because the lead programmer was on Inprise Visibroker training that week. Otherwise, they would have wrapped it up by the end of next week. Two weeks later, I checked back in and they were just finalizing the release, but that last minute changes would extend the project another two weeks. Two weeks later and two more weeks. And again. And, well you get it.
Six months after the project began, they now had a three-man team working full-time on the project. Another hand full of developers were helping them out part-time. The project had dependencies which were now months overdue. They even cancelled a product release. The latest update was still two weeks away from delivery. This one man-month project turned into an eight month project, consuming around 5000 man-hours. Instead of replacing Rogue Wave DB tools with a thin data layer, they were now rewritting the entire DB Tools library. The result was a data access layer worse than DB Tools itself.
When the project was finally over, I sat down with the V.P. in an informal post mordem. I asked what he thought about the project. He thought the project was difficult, but that in the end it was worth it.
In the next year, the lead programmer on the difficult project was disciplined several times. One incident, he told a girl on her first day of work, that she had nice hooters. Eventually, about a year after the difficult project was completed, the company laid off hundreds of employees. The layoff didn't include this lead programmer. Eventually, this lead programmer was independently fired for another difficult situation.
And after about a half dozen rounds of layoffs totalling 90% of the company's workforce, the manager of this difficult project is still happily employed and has been promoted several times. Not that this was an exception with this manager. It was the rule. Overages and bugs were the norm in all of his difficult projects. On one project after months of development, one of his team leads were asked how many CPU's would be required to run the server. We were all awaiting an answer like one or two or three. The answer was nineteen. That difficult project was cancelled shortly after.
He led the New York Islanders in assist. He won the Jack Adams award. He scored 40 goals for the Chicago Black Hawks. He recorded over 200 PIMs with the same Hawks. He and his twin brother have over 2000 total career PIMs.
Should be a good week.
Here's a new series of blog entries that I'll post from time to time. Funny development stories. Stories about development efforts that fall on their face so hard, that you can't help but laugh.
Rogue Wave DB Tools
A developer was responsible for selecting our next generation data access component. After evaluating the works of what was out there, he selected Rogue Wave DB Tools. We were using SQL Server 6.5 and had intention to add Oracle support in the near future. A month or so after we had selected the tool, Rogue Wave actually put this developer's glorifying recommendation on their website.
Then we starting using DB Tools. Turns out the library never reported SQL errors back to the client. So, if you put a statement to INSERT rows into a non-existant table. Rogue Wave responded OK, success. Didn't matter what you did. Rogue Wave always responded with OK, success. I immediately reported the error to Rogue Wave and no response from Rogue Wave.
Then we found out that under lite load, more than one open connection, Rogue Wave would begin choking. I also reported this error to Rogue Wave. The line of errors continued forever going forward. We approached Rogue Wave with all the bugs. I even modified the Rogue Wave source to correct most of the errors and sent the fixes to Rogue Wave. After months of sending them fixes, they never bothered producing a service release that would fix the bugs for their customers.
Eventually Rogue Wave discontinued support of SQL Server 6.5, never having issued any of the fixes. Even after they had discontinued their support, their website still contained that glorifying recommendation from our developer. Shortly after, that developer become the CTO of a software development company. You can only imagine how bad the technology was at this new company.
I was secretly hoping that my son would wish the blogging development community to stop bickering. I'm not that disappointed, I hope my son gets his wish.
It's funny. Of late, junior blog developers are posting simple questions on forums and the thread turns political on the first reply. The question he asked is often so simple. Nobody replies to his query. They just dive into the RDF v RSS v Echo thing.
A CDN hero.I'm on the extreme fulfilment border (right) and slightly below centre of authority vs individuality, indiv side of centre.
Can you say "revisionist history"?
"the description contains the text (entity-encoded HTML is allowed)"
Astronomers searching for signs of a Solar System like our own said on Thursday they had found a planet very similar to Jupiter orbiting a star resembling the Sun, 90 light years away.
New Necho to Rss converter. Remember that everything is subject to change. You can see other Necho tools on Sam's blog.
You can now convert your Echo to RSS. Just past the URL of your Echo feed and click Convert. Obviously, Echo is changing fast and I won't always be on top of the changes.
You can also just send a GET request to http://www.kbcafe.com/iBLOGthere4iM/echotorss.aspx. One parameter is link, which is the URL of your Echo file. If you wanted to use JoelOnSoftware 's Echo feed in an RSS aggregator, then add the following URL to the RSS aggregator.
http://www.kbcafe.com/iBLOGthere4iM/echotorss.aspx?link=http://www.joelonsoftware.com/echo.xml
Report bugs to me by email or as a comment in the blog.
source Joi Ito.
![]() |
The weekend was fun (3 nights for $90 CDN). No cell reception at the park and the power went out three times. I wouldn't go back, because of the cell issue. Of the 100s of lots only a dozen to a dozen and a half are overnight lots. Mostly seasonal. Nice beach. Very difficult to maneuver in and out with the RV. Lanes are narrow. They also have some extreme environmental laws in the area. Had to neutralize the chemicals I put in the black water holding tank ($2 CDN). All the garbage had to be in clear bags. |
source BoingBoing.
I've noticed a lot of non-well-formed XML. Still :( This usually indicates that the developer is building the Necho as a string, rather than using an XML builder type class. This is typical of hobby languages like PHP, Perl and Python.
It's also amazing how hobby language programmers will resort to hacks because their XML classes don't support this or that construct; attributes, entity encoding, CDATA encoding, etc.
"He struggled mightily..."
"...but the Flyers are confident he can provide the goaltending the team needs"
And Bobby Clarke still has a job. There's nothing like having bosses less competent than oneself.
Updated my Rss to Necho converter. Remember that everything is subject to change. You can see other Necho tools on Sam's blog.
So you wanna be an early adopter of Echo ? Add the following code to your homepage. Replace {myrss} by the URL of your RSS feed.

It should look like this...

but without the linebreak after the question mark (?). I put the line break in to make it more pleasant to read.
The result should look like this...
As I update the converter, your Echo feed will automatically stay current with the Echo specs. I'll update the icon when we decide on something.
You can now convert your RSS of any flavor to Echo. Just past the URL of your RSS feed and click Convert. Obviously, Echo is changing fast and I won't always be on top of the changes.
You can also just send a GET request to http://www.kbcafe.com/iBLOGthere4iM/rsstoecho.aspx. One parameter is link, which is the URL of your RSS file.
Report bugs to me by email or as a comment in the blog.
Question? Why did the biggest proponent of funky RSS remove the funkiness from his RSS? Could he have realized that funky RSS doesn't read well in most RSS aggregators.
Q. Don't you have enough money already, you %$@*? Why must you gouge us for things we expect to be free?
A. Actually, I do have enough money. But the people who manage the Dilbert web site and subscription service would like to feed their children and/or pets. And that means not operating at a loss. So unless you hate children and/or pets, I think you'll agree this is a fair solution. All I ask is that before you rush to judgment, imagine their little faces.
Q. I'm still confused. Couldn't you just take some of your money and give it to those kids and/or pets and leave us out of it?
A. Shut up.
The Site Syndication Format development list is a focused, short-term mailing list for the discussion of ambiguities in the RSS 2.0 specification. The goal is to develop a new specification from scratch, code-named "Site Syndication Format," that clarifies or corrects these issues -- which can then be submitted to UserLand Software, a standards body, or published as a profile describing RSS 2.0 best practices. The members of the list should be developers who have written software that produces or consumes RSS 2.0