{
  "attachments": [],
  "comments_archived": true,
  "date": "2003-07-01T00:25:35.000Z",
  "layout": "post",
  "title": "Please fix the XML-RPC spec",
  "wordpress_id": 434,
  "wordpress_slug": "plz-fix-xmlrpc-spec",
  "wordpress_url": "http://www.decafbad.com/blog/?p=434",
  "year": "2003",
  "month": "06",
  "day": "30",
  "isDir": false,
  "slug": "plz-fix-xmlrpc-spec",
  "type": "entry",
  "postName": "2003-06-30-plz-fix-xmlrpc-spec",
  "html": "<p>I've written before that <a href=\"http://www.decafbad.com/blog/tech/old/oooccb.html\" target=\"_top\">I love XML-RPC</a>, and\nthat it has served me well in the past couple of years.  I think it's the right tool for a broad\nrange of jobs.  But, after having studied the spec, and after having implemented it in a handful\nof languages for a handful of well-used apps, I think the spec needs just a bit of fixing.</p>\n<p>In particular, the spec needs a tweak with regards to this \"ASCII limitation\".  There is confusion\nabout this, period.  I've had to hash this out with clients before, this \n<a href=\"http://www.jspwiki.org/Wiki.jsp?page=WikiRPCInterfaceUTF8VsBase64\" target=\"_top\">was an issue of note</a> while\nworking out an <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpcToWiki\" target=\"_top\">XML-RPC based Wiki API</a>,\nand it's obviously an issue in many other projects.  This, of course, includes the current\n<a href=\"http://www.sixapart.com/log/2003/06/why_we_need_ech.shtml\" target=\"_top\">hubbub surrounding weblog APIs and whatnot</a>.</p>\n<p>So, please fix the spec.  It shouldn't take long to make this issue a non-issue by some simple\nclarification in the main <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> to which everyone refers.</p>\n<p>Yes, I know there's a bit of clarification at the end of the spec, involving escaping (\n<a href=\"http://tbray.org/ongoing/When/200x/2003/06/28/Learning\" target=\"_top\">not encoding</a>) &lt; and &amp; along\nwith the statement that \"A string can be used to encode binary data.\"  </p>\n<p>Well, yeah, I do that\nall the time with <a href=\"http://www.fourmilab.ch/webtools/base64/rfc1341.html\" target=\"_top\">Base64</a>.  And, since\nthe spec earlier had called for \"ASCII\", I assume that's what <a href=\"http://dictionary.reference.com/search?q=encoding\" target=\"_top\">encoding</a>\nbinary data means in the context of this spec.  To me, encoding implies a transformation \nfrom original form to some other form later requiring decoding.</p>\n<p>But, apparently, my interpretation and \n<a href=\"http://www.intertwingly.net/blog/1498.html#c1056921193\" target=\"_top\">the interpretation of others</a>\nis wrong on that score.  But still, I've been confused, and so have others.  Consider this a bug report.</p>\n<p>I've been referred <a href=\"http://www.effbot.org/zone/xmlrpc-ascii.htm\" target=\"_top\">by Fredrik Lundh</a> (<a href=\"http://scriptingnews.userland.com/2003/06/29#When:6:21:27AM\" target=\"_top\">via Dave Winer</a>), \nto \"private conversations\",\n\"various public fora\", and \"early archives for the XML-RPC mailing list\".  And, again by Fredrik Lundh,\n<a href=\"http://www.effbot.org/zone/xmlrpc-ascii.htm\" target=\"_top\">I'm told</a>:</p>\n<blockquote><i>But even if you don't know all this, it's not that hard to figure it out for\nyourself. Just make sure you read and digest the entire specification, apply some common sense\nto sort out the contradictions, and you'll find that it's pretty obvious that the intent is that\nyou can use any character allowed by XML.</i></blockquote>\n\n\n\n\n\n<p>Well, let's see.  I read the whole spec, more than once, and what I figured out for myself with my \n\"common sense\" is what I wrote above.  I thought\nthe spec called for ASCII (as in: <a href=\"http://www.asciitable.com/\" target=\"_top\">ASCII</a>), and assumed that\nencoding binary data called for something like Base64.  Yes, I realize that <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> is XML, but\nwhen a spec calls for ASCII as a particular part, I assume that there's a reason for it\nsince that's what the specification specified.  </p>\n<p>In my experience, specifications are not about common sense, figuring it out, and\n<a href=\"http://dictionary.reference.com/search?q=connotation\" target=\"_top\">connotation</a>.  Specifications are\nabout declaration, clarity, and \n<a href=\"http://dictionary.reference.com/search?q=denotation\" target=\"_top\">denotation</a>.  </p>\n<p>Yes, I understand that no\nspec is perfect, and that many are steaming piles meeting none of the criteria I just mentioned,\nbut that doesn't alter the goal.  A spec can always be made better by revising \nwith these things in mind, given the input of consumers of the spec.  This is what a process\nof communication is all about, and specifications are intended as a form of communication.</p>\n<p>So, instead of talking about <i>intent</i> and things that have been talked about somewhere\nat some time, with the implication that I should just go off and search for these things, can \nwe just get a clarifying fix to the <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> spec?  I don't want to send my clients off to \nmailing list and discussion archives, or present <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> with any corrections or caveats.  I\nwant to say, as I have been, \"Here, go to xmlrpc.com, read the spec, implement to the API\nI emailed you, and get back to me.\"  Only, it'd be nice if the first question is about my API, \nnot about character encoding.</p>\n<p>I've been confused, and so have others.  I consider myself a smart person, and I consider most\nof the others who have been confused as even smarter.  I apologize if my \"common sense\" is of a\ndifferent sort, but that's what you have to deal with in the world of people.  As young as I am,\neven I've discovered this already.</p>\n<p>So, can we just get a clarifying revision of the spec?  And if not, why not?</p>\n<p><b>Update:</b> Rock on.  After <a href=\"http://www.intertwingly.net/blog/1498.html#c1056890028\" target=\"_top\">catching up</a> \non a bit of banter over at <a href=\"http://www.intertwingly.net/blog/1498.htm\" target=\"_top\">Sam's place</a>, I see that\nthe same Fredrik Lundh I quoted before has already begun an\n<a href=\"http://effbot.org/zone/xmlrpc-errata.htm\" target=\"_top\">XML-RPC errata</a> page with the goal of clarification.\n(I just missed it in my daily reading thus far.)  As \n<a href=\"http://www.intertwingly.net/blog/1498.html#c1056904400\" target=\"_top\">Mark comments</a>, I fear bumps in the\nroad as any confused implementors find things weren't what they thought, but I'm happy to see\nthe clarification accepted.</p>\n<p><b>Update again:</b> If you've stopped rocking, resume.  Dave Winer \n<a href=\"http://scriptingnews.userland.com/2003/06/30#When:11:41:21AM\" target=\"_top\">updated the XML-RPC spec</a>.\nIt was a small change, could have been more, but had not been done at all until now.  I\ndoubt that my asking please really had much to do with it, but I couldn't guess that it \nhurt.  Thanks!</p>\n<!--more-->\n\n\n<p>shortname=plz_fix_xmlrpc_spec</p>\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-221084763\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://online.effbot.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=091389371fc39ff470d91c8d72f5fca4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://online.effbot.org\">Fredrik Lundh</a>\n</div>\n\n\n<p><a href=\"#comment-221084763\" class=\"permalink\"><time datetime=\"2003-06-30T17:48:03\">2003-06-30T17:48:03</time></a></p>\n</div>\n\n\n<div class=\"content\">\"I consider myself a smart person, and I consider most of the others who have been confused as even smarter.\"\nOh, I'm really stupid, but I had no problem noticing that the specification wasn't consistent with itself, and that three out of four references to encodings said that \"any XML character\" could be used ;-)\n\"So, can we just get a clarifying revision of the spec?\"\nSure can; the \"ASCII\" is gone.\n\"And if not, why not?\"\nI don't have access to Dave's site ;-)\nCheers /F</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084764\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://online.effbot.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=091389371fc39ff470d91c8d72f5fca4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://online.effbot.org\">Fredrik Lundh</a>\n</div>\n\n\n<p><a href=\"#comment-221084764\" class=\"permalink\"><time datetime=\"2003-06-30T17:50:29\">2003-06-30T17:50:29</time></a></p>\n</div>\n\n\n<div class=\"content\">Oops. Looks like your comment tool ate my linefeeds.  Hope it liked them.  I'm sure anyone reading this can figure out where they were.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084766\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2ac2cffd36ada8c734b90e02a1e5c1ac&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.decafbad.com\">l.m.orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221084766\" class=\"permalink\"><time datetime=\"2003-06-30T20:11:20\">2003-06-30T20:11:20</time></a></p>\n</div>\n\n\n<div class=\"content\">Grr, that's a bug I've been meaning to fix for a month or so now.  While we're in the bug fixing mood...  your linefeeds are restored!\nOh, and since you replied, I'll take the minute to thank you for your XML-RPC work in Python.  It's saved my bacon more than once.  :)</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084767\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Dave Winer</a>\n</div>\n\n\n<p><a href=\"#comment-221084767\" class=\"permalink\"><time datetime=\"2003-06-30T20:35:39\">2003-06-30T20:35:39</time></a></p>\n</div>\n\n\n<div class=\"content\">Glad to see we're back on friendly terms. ;-&gt;</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084768\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Dave Winer</a>\n</div>\n\n\n<p><a href=\"#comment-221084768\" class=\"permalink\"><time datetime=\"2003-06-30T20:35:49\">2003-06-30T20:35:49</time></a></p>\n</div>\n\n\n<div class=\"content\">Glad to see we're back on friendly terms. ;-&gt;</div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": "I've written before that <a href=\"http://www.decafbad.com/blog/tech/old/oooccb.html\" target=\"_top\">I love XML-RPC</a>, and\r\nthat it has served me well in the past couple of years.  I think it's the right tool for a broad\r\nrange of jobs.  But, after having studied the spec, and after having implemented it in a handful\r\nof languages for a handful of well-used apps, I think the spec needs just a bit of fixing.\r\n<br /><br />\r\nIn particular, the spec needs a tweak with regards to this \"ASCII limitation\".  There is confusion\r\nabout this, period.  I've had to hash this out with clients before, this \r\n<a href=\"http://www.jspwiki.org/Wiki.jsp?page=WikiRPCInterfaceUTF8VsBase64\" target=\"_top\">was an issue of note</a> while\r\nworking out an <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpcToWiki\" target=\"_top\">XML-RPC based Wiki API</a>,\r\nand it's obviously an issue in many other projects.  This, of course, includes the current\r\n<a href=\"http://www.sixapart.com/log/2003/06/why_we_need_ech.shtml\" target=\"_top\">hubbub surrounding weblog APIs and whatnot</a>.\r\n<br /><br />\r\nSo, please fix the spec.  It shouldn't take long to make this issue a non-issue by some simple\r\nclarification in the main <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> to which everyone refers.\r\n<br /><br />\r\nYes, I know there's a bit of clarification at the end of the spec, involving escaping (\r\n<a href=\"http://tbray.org/ongoing/When/200x/2003/06/28/Learning\" target=\"_top\">not encoding</a>) < and &amp; along\r\nwith the statement that \"A string can be used to encode binary data.\"  \r\n<br /><br />\r\nWell, yeah, I do that\r\nall the time with <a href=\"http://www.fourmilab.ch/webtools/base64/rfc1341.html\" target=\"_top\">Base64</a>.  And, since\r\nthe spec earlier had called for \"ASCII\", I assume that's what <a href=\"http://dictionary.reference.com/search?q=encoding\" target=\"_top\">encoding</a>\r\nbinary data means in the context of this spec.  To me, encoding implies a transformation \r\nfrom original form to some other form later requiring decoding.\r\n<br /><br />\r\nBut, apparently, my interpretation and \r\n<a href=\"http://www.intertwingly.net/blog/1498.html#c1056921193\" target=\"_top\">the interpretation of others</a>\r\nis wrong on that score.  But still, I've been confused, and so have others.  Consider this a bug report.\r\n<br /><br />\r\nI've been referred <a href=\"http://www.effbot.org/zone/xmlrpc-ascii.htm\" target=\"_top\">by Fredrik Lundh</a> (<a href=\"http://scriptingnews.userland.com/2003/06/29#When:6:21:27AM\" target=\"_top\">via Dave Winer</a>), \r\nto \"private conversations\",\r\n\"various public fora\", and \"early archives for the XML-RPC mailing list\".  And, again by Fredrik Lundh,\r\n<a href=\"http://www.effbot.org/zone/xmlrpc-ascii.htm\" target=\"_top\">I'm told</a>:\r\n<blockquote><i>But even if you don't know all this, it's not that hard to figure it out for\r\nyourself. Just make sure you read and digest the entire specification, apply some common sense\r\nto sort out the contradictions, and you'll find that it's pretty obvious that the intent is that\r\nyou can use any character allowed by XML.</i></blockquote>\r\n<br /><br />\r\nWell, let's see.  I read the whole spec, more than once, and what I figured out for myself with my \r\n\"common sense\" is what I wrote above.  I thought\r\nthe spec called for ASCII (as in: <a href=\"http://www.asciitable.com/\" target=\"_top\">ASCII</a>), and assumed that\r\nencoding binary data called for something like Base64.  Yes, I realize that <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> is XML, but\r\nwhen a spec calls for ASCII as a particular part, I assume that there's a reason for it\r\nsince that's what the specification specified.  \r\n<br /><br />\r\nIn my experience, specifications are not about common sense, figuring it out, and\r\n<a href=\"http://dictionary.reference.com/search?q=connotation\" target=\"_top\">connotation</a>.  Specifications are\r\nabout declaration, clarity, and \r\n<a href=\"http://dictionary.reference.com/search?q=denotation\" target=\"_top\">denotation</a>.  \r\n<br /><br />\r\nYes, I understand that no\r\nspec is perfect, and that many are steaming piles meeting none of the criteria I just mentioned,\r\nbut that doesn't alter the goal.  A spec can always be made better by revising \r\nwith these things in mind, given the input of consumers of the spec.  This is what a process\r\nof communication is all about, and specifications are intended as a form of communication.\r\n<br /><br />\r\nSo, instead of talking about <i>intent</i> and things that have been talked about somewhere\r\nat some time, with the implication that I should just go off and search for these things, can \r\nwe just get a clarifying fix to the <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> spec?  I don't want to send my clients off to \r\nmailing list and discussion archives, or present <a href=\"http://www.decafbad.com/twiki/bin/view/Main/XmlRpc\">XmlRpc</a> with any corrections or caveats.  I\r\nwant to say, as I have been, \"Here, go to xmlrpc.com, read the spec, implement to the API\r\nI emailed you, and get back to me.\"  Only, it'd be nice if the first question is about my API, \r\nnot about character encoding.\r\n<br /><br />\r\nI've been confused, and so have others.  I consider myself a smart person, and I consider most\r\nof the others who have been confused as even smarter.  I apologize if my \"common sense\" is of a\r\ndifferent sort, but that's what you have to deal with in the world of people.  As young as I am,\r\neven I've discovered this already.\r\n<br /><br />\r\nSo, can we just get a clarifying revision of the spec?  And if not, why not?\r\n<br /><br />\r\n<b>Update:</b> Rock on.  After <a href=\"http://www.intertwingly.net/blog/1498.html#c1056890028\" target=\"_top\">catching up</a> \r\non a bit of banter over at <a href=\"http://www.intertwingly.net/blog/1498.htm\" target=\"_top\">Sam's place</a>, I see that\r\nthe same Fredrik Lundh I quoted before has already begun an\r\n<a href=\"http://effbot.org/zone/xmlrpc-errata.htm\" target=\"_top\">XML-RPC errata</a> page with the goal of clarification.\r\n(I just missed it in my daily reading thus far.)  As \r\n<a href=\"http://www.intertwingly.net/blog/1498.html#c1056904400\" target=\"_top\">Mark comments</a>, I fear bumps in the\r\nroad as any confused implementors find things weren't what they thought, but I'm happy to see\r\nthe clarification accepted.\r\n<br /><br />\r\n<b>Update again:</b> If you've stopped rocking, resume.  Dave Winer \r\n<a href=\"http://scriptingnews.userland.com/2003/06/30#When:11:41:21AM\" target=\"_top\">updated the XML-RPC spec</a>.\r\nIt was a small change, could have been more, but had not been done at all until now.  I\r\ndoubt that my asking please really had much to do with it, but I couldn't guess that it \r\nhurt.  Thanks!\r\n<!--more-->\r\nshortname=plz_fix_xmlrpc_spec\r\n\r\n<div id=\"comments\" class=\"comments archived-comments\">\r\n            <h3>Archived Comments</h3>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-221084763\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://online.effbot.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=091389371fc39ff470d91c8d72f5fca4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://online.effbot.org\">Fredrik Lundh</a>\r\n                </div>\r\n                <a href=\"#comment-221084763\" class=\"permalink\"><time datetime=\"2003-06-30T17:48:03\">2003-06-30T17:48:03</time></a>\r\n            </div>\r\n            <div class=\"content\">\"I consider myself a smart person, and I consider most of the others who have been confused as even smarter.\"\r\n\r\nOh, I'm really stupid, but I had no problem noticing that the specification wasn't consistent with itself, and that three out of four references to encodings said that \"any XML character\" could be used ;-)\r\n\r\n\"So, can we just get a clarifying revision of the spec?\"\r\n\r\nSure can; the \"ASCII\" is gone.\r\n\r\n\"And if not, why not?\"\r\n\r\nI don't have access to Dave's site ;-)\r\n\r\nCheers /F</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084764\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://online.effbot.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=091389371fc39ff470d91c8d72f5fca4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://online.effbot.org\">Fredrik Lundh</a>\r\n                </div>\r\n                <a href=\"#comment-221084764\" class=\"permalink\"><time datetime=\"2003-06-30T17:50:29\">2003-06-30T17:50:29</time></a>\r\n            </div>\r\n            <div class=\"content\">Oops. Looks like your comment tool ate my linefeeds.  Hope it liked them.  I'm sure anyone reading this can figure out where they were.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084766\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2ac2cffd36ada8c734b90e02a1e5c1ac&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.decafbad.com\">l.m.orchard</a>\r\n                </div>\r\n                <a href=\"#comment-221084766\" class=\"permalink\"><time datetime=\"2003-06-30T20:11:20\">2003-06-30T20:11:20</time></a>\r\n            </div>\r\n            <div class=\"content\">Grr, that's a bug I've been meaning to fix for a month or so now.  While we're in the bug fixing mood...  your linefeeds are restored!\r\n\r\nOh, and since you replied, I'll take the minute to thank you for your XML-RPC work in Python.  It's saved my bacon more than once.  :)</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084767\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Dave Winer</a>\r\n                </div>\r\n                <a href=\"#comment-221084767\" class=\"permalink\"><time datetime=\"2003-06-30T20:35:39\">2003-06-30T20:35:39</time></a>\r\n            </div>\r\n            <div class=\"content\">Glad to see we're back on friendly terms. ;-></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084768\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=dc59c5ba9a8aa0a6225d9959eea3b7f3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Dave Winer</a>\r\n                </div>\r\n                <a href=\"#comment-221084768\" class=\"permalink\"><time datetime=\"2003-06-30T20:35:49\">2003-06-30T20:35:49</time></a>\r\n            </div>\r\n            <div class=\"content\">Glad to see we're back on friendly terms. ;-></div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </div>\r\n    ",
  "parentPath": "./content/posts/archives/2003",
  "path": "2003/06/30/plz-fix-xmlrpc-spec",
  "summary": "I've written before that I love XML-RPC, and\nthat it has served me well in the past couple of years.  I think it's the right tool for a broad\nrange of jobs.  But, after having studied the spec, and after having implemented it in a handful\nof languages for a handful of well-used apps, I think the spec needs just a bit of fixing.\nIn particular, the spec needs a tweak with regards to this \"ASCII limitation\".  There is confusion\nabout this, period.  I've had to hash this out with clients before, this \nwas an issue of note while\nworking out an XML-RPC based Wiki API,\nand it's obviously an issue in many other projects.  This, of course, includes the current\nhubbub surrounding weblog APIs and whatnot.\nSo, please fix the spec.  It shouldn't take long to make this issue a non-issue by some simple\nclarification in the main XmlRpc to which everyone refers.\nYes, I know there's a bit of clarification at the end of the spec, involving escaping (\nnot encoding) < and & along\nwith the statement that \"A string can be used to encode binary data.\"  \nWell, yeah, I do that\nall the time with Base64.  And, since\nthe spec earlier had called for \"ASCII\", I assume that's what encoding\nbinary data means in the context of this spec.  To me, encoding implies a transformation \nfrom original form to some other form later requiring decoding.\nBut, apparently, my interpretation and \nthe interpretation of others\nis wrong on that score.  But still, I've been confused, and so have others.  Consider this a bug report.\nI've been referred by Fredrik Lundh (via Dave Winer), \nto \"private conversations\",\n\"various public fora\", and \"early archives for the XML-RPC mailing list\".  And, again by Fredrik Lundh,\nI'm told:\nBut even if you don't know all this, it's not that hard to figure it out for\nyourself. Just make sure you read and digest the entire specification, apply some common sense\nto sort out the contradictions, and you'll find that it's pretty obvious that the intent is that\nyou can use any character allowed by XML.\n\n\n\n\n\nWell, let's see.  I read the whole spec, more than once, and what I figured out for myself with my \n\"common sense\" is what I wrote above.  I thought\nthe spec called for ASCII (as in: ASCII), and assumed that\nencoding binary data called for something like Base64.  Yes, I realize that XmlRpc is XML, but\nwhen a spec calls for ASCII as a particular part, I assume that there's a reason for it\nsince that's what the specification specified.  \nIn my experience, specifications are not about common sense, figuring it out, and\nconnotation.  Specifications are\nabout declaration, clarity, and \ndenotation.  \nYes, I understand that no\nspec is perfect, and that many are steaming piles meeting none of the criteria I just mentioned,\nbut that doesn't alter the goal.  A spec can always be made better by revising \nwith these things in mind, given the input of consumers of the spec.  This is what a process\nof communication is all about, and specifications are intended as a form of communication.\nSo, instead of talking about intent and things that have been talked about somewhere\nat some time, with the implication that I should just go off and search for these things, can \nwe just get a clarifying fix to the XmlRpc spec?  I don't want to send my clients off to \nmailing list and discussion archives, or present XmlRpc with any corrections or caveats.  I\nwant to say, as I have been, \"Here, go to xmlrpc.com, read the spec, implement to the API\nI emailed you, and get back to me.\"  Only, it'd be nice if the first question is about my API, \nnot about character encoding.\nI've been confused, and so have others.  I consider myself a smart person, and I consider most\nof the others who have been confused as even smarter.  I apologize if my \"common sense\" is of a\ndifferent sort, but that's what you have to deal with in the world of people.  As young as I am,\neven I've discovered this already.\nSo, can we just get a clarifying revision of the spec?  And if not, why not?\nUpdate: Rock on.  After catching up \non a bit of banter over at Sam's place, I see that\nthe same Fredrik Lundh I quoted before has already begun an\nXML-RPC errata page with the goal of clarification.\n(I just missed it in my daily reading thus far.)  As \nMark comments, I fear bumps in the\nroad as any confused implementors find things weren't what they thought, but I'm happy to see\nthe clarification accepted.\nUpdate again: If you've stopped rocking, resume.  Dave Winer \nupdated the XML-RPC spec.\nIt was a small change, could have been more, but had not been done at all until now.  I\ndoubt that my asking please really had much to do with it, but I couldn't guess that it \nhurt.  Thanks!",
  "needsBuild": true,
  "prevPostPath": "2003/06/26/so-like-i-was-saying",
  "prevPostTitle": "Like I was saying about RSS...",
  "nextPostPath": "2003/07/02/syndicated-whuffie",
  "nextPostTitle": "Syndicating Whuffie"
}