December 2002 Archives

mt-xml-smart Beta Test.

| No Comments

mt-xml-smart provides global filters for XML encoding and decoding beyond the simple capabilites of MT's native functionality. I'm relasing a beta test of the mt-xml-smart plugin here.

In addition to the encoding/decoding of the "big 5" named entities the mt-xml-smart filters feature:

  • Intelligent use of CDATA instead of brute-force bloated entity.
  • encoding of markup such as HTML.
  • UTF8 character set using numeric entity handlers.
  • Plugs ' bug in MT 2.21.
  • Provides an XML decoding capability for version 2.5 users.
  • Internet Explorer friendly encoding of apostrophe.[1]

[1] IE does not recognize the ' entity despite being recognized by the XHTML 1.0+ specifications. IE chose to display ' to the screen rather then the apostrophe character or simply ignoring it. We use the numeric entity representation of the apostrophe (') when encoding to avoid any problems with this shortcoming in IE.

I've released this as v0.9 because its meant to validate that I am properly encoding/decoding international character sets. Please let me know if I'm handling anything incorrectly. Feedback et al are welcome.

Introducing MIDP 2.0.

| No Comments

Mark wasn't the only weblogger to have an O'Reilly article published yesterday evening. My latest "Introducing MIDP 2.0" was posted here.

MIDP 2.0 improves on the original specification for open development on mobile devices by introducing secure networking, extended network connectivity, and audio and gaming capabilities.

A follow-up weblog post on Web services support in J2ME is forthcoming.

Dive Into XML Debuts.

| No Comments

Mark Pilgrim's monthly column on xml.com debuted yesterday with "What is RSS?" Mark's article is well done as expected and a great primer for beginners.

Since I'm not the rock star Mark is, I'll point out to those who missed it my O'Reilly article on RSS and my behind the scenes story.

More RESTful API Discussions.

| No Comments

Joe Gregorio and Sam Ruby have been busy discussing the use of SOAP and WSDL in RESTful APIs like Joe's RESTLog. Sam opened a can of worms and released a near final draft of the Busy Developers Guide to WSDL, Part III in response to some of Joe's questions.

Holiday Weblogging Blues.

| No Comments

The holidays are an exceptionally hectic time for my family and me. This year is even more so because my youngest brother graduates tomorrow. (He was on the 4.5-year plan at college.) This means a lot of driving between Southeastern Connecticut and the Pennsylvania Amish country via NYC. With Thanksgiving coming so late and Christmas falling on a Wednesday there are no breaks to write as much as I'd like. I'm already struggling to keep up with my mailing list and weblog reading. I was rather depressed I couldn't have been more active in the recent "discovery" threads on the BloggerDev mailing list and Sam Ruby's weblog that went charging through this past weekend. (The end result was quite satisfactory personally.) Or for that matter, the development of the Trackback-enabled MLTFO (More Like This From Others) script after Ben Hammersley's LazyWeb request. (David Raynes subsequentally released a MT-Plugin wrapper to MLTFO.) Then there is just posting to the two new mailing lists I've started -- ucapi-discuss and mt-dev to get it going.

I suppose I'll be in some corner with a pile of print outs (laptops are so obvious and make things too easy) catching up. (sigh.)

Happy Holidays!

RESTful API wanted. Apply within.

| No Comments

With the recent unveiling of the Blogger 2 API there has been a great deal of discussion regarding its shortcomings and best route going forward.

Ben Trott summarizes the issues in his company's newly unveiled Six Log. Ben writes "in the case of Movable Type, our interest in this matter is in hoping that tools originally built for the Blogger API can be also used for MT-powered blogs without the loss in functionality that currently exists." In a later post, Ben notes Steve Jenson who is leading the Blogger 2 API effort, addressed his issues and comments further.

Elsewhere Sam Ruby says "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." Sam points back to his comments when the MetaWeblog APIs was being developed.

It seems if ever there was a tool/medium that needed a RESTful API it's weblogging.

As I noted recently, Joe Gregorio has been developing a prototype with such an API. Using Ben's comments as to the shortcomings of the Blogger API for MovableType, Joe explains how a RESTful approach is better suited for the task.

Joe and I have been continuing to discuss the notion in private emails. Rather then debate amongst ourselves, Joe and I opened a mailing list for a community discussion of web service interfaces using REST for enabling collaborative authoring and content tools. Some examples of existing initiatives that would be an appropriate topic for discussion include (but are not limited to) RESTLog, Extremely Simple Syndication (XSS) format and TrackBack. All are welcome and encouraged to join the discussion.

WSIL meets RSS.

| No Comments | No TrackBacks

Since writing An Introduction to WSIL for O'Reilly, I have been occasionally giving thought to interesting ways this under-utilized specification could be applied.

In that article I said, "In many ways, WSIL is like 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."

I find WSIL intriguing because of its simplicity and lightweight implementation is more RESTful then UDDI. WSIL leaves the processing logic to the developer and makes its information trivial to access creating the potential for innovative and novel applications arise.

More recently I have asserted that RSS syndication feeds are Web services and perhaps the most widely deployed Web services across the Internet. Most RSS feeds have very simple interfaces and backends comparatively speaking. However under the principles of the REST architectural style that the Web was built on, RSS feeds do qualify. Take for instance Joe Gregorio's experiment the RESTLog API, a RESTful XML over HTTP using RSS syntax, and should be able to see what I mean.

These two assertions got me thinking about how WSIL and RSS relate and compliment each other. Since its been over a year since WSIL was introduced with little progress, I have an experimental proposal to make that demonstrates some of the potential I see between Web services and RSS syndication.

If RSS feeds are Web services and WSIL is a format designed to facilitate the discovery and aggregation of Web service descriptions, couldn't WSIL be used to discover RSS feeds?

What I propose is utilizing WSIL to create collections of related syndication feeds (presumably from one site) and links to external collections or feeds in one file. Putting this in weblogging terms, combine RSS auto-discovery and channel rolls into one file format. I've created an initial sample of what this file would look like here.

I won't go into the basics of the WSIL format here. (You can read my O'Reilly article for that.) However the WSIL format was not specifically designed with this usage in mind requiring some additional clarification and guidance.

In my example I point to services (aka feeds) my weblog produces. service.name maps to channel.title and service.abstract to channel.description. service.description@location would be the URI of the syndication feed.

I also include links to syndication feeds based on my own channel roll. Ideally, the link tags (using the location attribute) would point to other WSIL files and not directly to a single RSS feed. The last link that I have commented out is a fictitious one to a WSIL on movabletype.org, but demonstrates what a reference to another WSIL collection would look like. Using WSIL pointers allow applications to discover an entities entire collection of feeds and their channel roll with one additional step. (A future path of exploration is combining "traditional" Web services and syndication feed links in one WSIL file and examining the new dimensions to social networking it may or may not enable.)

This proposal for providing RSS feed and channel roll discovery in a single file works well within the WSIL 1.0 specification, however it could use further refinement that begins to break compatibility with the format in its strictest sense.

The WSIL defines the location attribute as optional. In order for this usage of WSIL to be effective, location is required.

I made several criticisms of the WSIL formats initial design that this experiment illustrates. For instance, while WSIL is extensible using XML Namespaces though this extensibility is limited to the service.description and link blocks. What is lacking is richer meta data facilities in the root inspection. The WSIL 1.0 format only allows for the catch-all abstract to be applied. I propose the use of module such as mod_dublincore and mod_admin be utilized in the root inspection tag. While not permitted by the WSIL specification, it is a valid use of Namespaces. Here is an example of a WSIL file with these module applied may look like.

The WSIL specification defines two approaches to auto-discovering a WSIL file. One is by specifying a standard file location. This added convention would allow aggregators and other agents to being the discovery process by pinging a remote site for the existence of a file. Using HTTP a 404 code means keep looking while a 200 means the application can continue processing. This is a more efficient use of bandwidth and processing then RSS auto-discovery because the application did not have to download and then hack out any XHTML link tags pointing to RSS feeds the associated site has to offer. When multiple feeds are offered, it also saves the agent of additional trips back to the server to retrieve additional information such as the title and description of each feed. (This of course assumes that Dublin Core extensions and other meta data has been properly applied.)

One of my nits with the 1.0 format is that the fixed filename is inspection.wsil rather then conforming to the common naming convention of index.*. I suggest that you use of index.wsil as I have with the second convention to WSIL auto-discovery.

If a WSIL file cannot be located by fixed filename, the specification optionally supports embedded references in HTML documents. This is similar in nature to the way stylesheets and RSS files can be auto-discovered with an XHTML link tag. WSIL misuses the meta tag instead. I propose that implementers use the link as I have.

This notion is still a bit rough, but it is my belief that this approach could blur the lines between RSS syndication and traditional Web services and create the potential for innovative applications to form.

Your comments and feedback are welcome. For those interested in discussing this proposal and other similar topics (Joe's RESTLog experiment, My RSS/XSS profile, TrackBack) I encourage you to join and participate in the mailing list I've recently opened on Yahoo Groups. (I've been meaning to make a more formal and grandiose announcement for the last couple of days, but so this will have to do for now.)

I've been meaning to set this up for a while and final got around to it. Yesterday I created the MovableType Developers (mt-dev) mailing list on Yahoo. This mailing list is for coders of MovableType plugins and hacks to coordinate efforts, share tips and best practices, and discuss ideas. All are welcome.

This is not a support board for users of MT plugins seeking assistance. Those seeking plugin support are recommended to use the MT plugin support forum that this list compliments.

MT has a great community of users and a support forum for solving any issue. However I've felt that there generally isn't enough community amongst the Perl developers crafting plugins and hacks. The MT support boards are great for support, not discussion. I know that in my MT work I find myself searching for answers and feedback, often dropping a note to an already overburdened Ben Trott. My hope is that this can serve as such a forum for all developers like myself to ask questions, collect feedback and share their views.

There have also been instances of overlapping efforts in the community that may have been avoided with such a list. In one case a developer created a near exact duplicate of my mt-setvarblock plugin months after I had released -- even the names matched.

This may be a complete failure and not serve any of these purposes. Whatever the case, community building is worth exploring. If you are a MT/Perl developer or just have an interest in the area I encourage you to join in.

Poking around for "on this day in..." sites, I found ThisDayInMusic.com, which has a Number 1 on the day you were born feature. The chart-toppers are available for the years 1955-2001. It being a slow news day, I wondered what the history of Dec 3 chart-toppers has been. Since this web app is also a web service waiting to be asked to do something, I asked and it answered. [Jon Udell]

I love it. Even in celebrating his birthday, Jon finds a way to expound on the virtues of the Web as an application interface. (Happy belated birthday Jon!)

The Number 1 chart-topper when Jon was born was "Love Me Tender" by Elvis Presley. I found out mine is "Maggie May" by Rod Stewart. I prefer Elvis over Rod any day. If it had to be Rod, I would have preferred "Da Ya Think I'm Sexy?" I guess Maggie May isn't bad though. Oh well.

About this Archive

This page is an archive of entries from December 2002 listed from newest to oldest.

November 2002 is the previous archive.

January 2003 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.2rc2-en