[wp-xmlrpc] WP 2.2.1 breaks Ruby 1.8.2
jalkut at red-sweater.com
Tue Jun 26 16:38:05 GMT 2007
Allan - I think we each are probably looking at this issue with some
degree of "blindness" to the other's position. I'm trying to rectify
that now, and taking a closer look at the behavior of other blog
systems to see how they compare to WP. But I don't think the
accusatory tone is helping anything. You allude repeatedly to my
motivations in this debate being selfish or only interested in having
things work for my product. While it's true that I am more acutely
aware of how the changes impact my product, it's unfair to repeatedly
draw the conclusion that therefore I'm not interested in standards or
not interested in choosing a solution that works well for everybody.
That implication is simply not consistent with the way I behave or my
track record for working cooperatively with other people. If I've
said anything unfactual it's out of ignorance and not any selfish
My motivations in arguing for the pre-2.2 behavior were largely
"because it was that way, and you're breaking me," it's true. But
that's a legitimate reaction to changing behavior that causes a bug!
(I didn't realize at the time that it may have been a change
specifically motivated by your efforts to FIX a bug). The thing is,
when it comes to these blogging systems and the XML-RPC standard to
which they supposedly comply, it's often *much* more informative to
look out at the landscape of blogging systems to see what people are
*doing* instead of what they're supposed to do.
So what happens in the real world, on a number of real XML-RPC
supporting systems, when I just send a post NOW without a specific
A test MovableType blog on my system, with a time zone setting of
GMT-0500, when sent a new post with no date a few minutes ago,
returns the post with the created date: "20070626T12:12:13". That is,
it's returning my local time. If I change the time zone to match GMT,
what happens? The time *still* comes back as my local time. So my
assumption here is that the MT server is returning its server time
instead of GMT time or GMT-adjusted-for-blog-time.
But it's *not* returning GMT time, either.
On to Drupal - given a similar test, with the time zone this time set
to GMT, it returns an identically schemed date created of
"20070626T12:23:04" (some time has passed since my first test). Again
- it's returning the *machine* time. Not a great solution by any
means, but consistent with MovableType.
Windows Live Spaces? It supports the MetaWeblog XML-RPC interface. It
breaks from the pack here and returns a time in GMT but *with* the Z
that we're fiercely debating here: 2007-06-26T16:28:07Z.
LiveJournal's Blogger interface uses the Blogger variant of the XML-
RPC interface, it also seems to be doing the "server time zone"
thing, returning an unqualified time corresponding to an hour ago:
How about WordPress? Before 2.2 it complied with a modified version
of the "server time" ... but did the user the favor of letting them
at least have a time-zone relevant version of the server time.
Essentially it let users set the server time specific to their blog.
In 2.2 it shifted to a behavior that is not shared with any other
major blogging system that I know of or have tested. That is,
representing the time as GMT without explicitly identifying it as such.
In 2.2.1, as a compromise reaction to my request that it should go
back to the way it was, Joseph added a "Z" to explicitly identify the
time zone. This put it in the same boat as Microsoft Live Spaces
which, I confess, is a pretty niche area to be in.
My point? NONE of these systems uses an unadorned GMT-based time as
their default time representation. Is it a major bug? Yes, perhaps.
But you are painting me as some kind of villain because I want
WordPress to behave "like all the others" at least to some extent.
Unadorned GMT times are PARSEABLE by your parsers, perhaps. But
they're semantically *meaningless* given the current state of de
facto time "standards" (ugh, not even close) on the major (and minor,
because they copy the majors) blog systems.
On Jun 26, 2007, at 11:36 AM, Allan Odgaard wrote:
> On 26. Jun 2007, at 16:52, Daniel Jalkut jalkut-at-red-sweater.com |
> WP XML-RPC| wrote:
>> I'm not pushing for a change - I'm pushing (sort of) for "the way
>> things used to be." If we're going to make the effort of reverting
>> back to a "non-breaking" behavior, then I propose we go all the
>> way back to pre2.2 (a behavior that will match the functionality
>> for many people who have yet to upgrade to 2.2 and are doing so
>> gradually over time).
> Pre 2.2 was broken! It did not work!
> It may have worked for you because you have your blog in your local
> time zone AND you have a client that interprets dates as being in
> the local time zone. But this is definitely not “working” by my
> definition. What if you take your laptop with you on vacation a
> place where you are not in that time zone anymore? Not everyone has
> their blog in their local time zone, and even those who have,
> doesn’t have it all the time.
>> Of course the current "Z" behavior is working fine for me so I'm
>> also happy with sticking it out, but if we're going to selectively
>> revert changes then I suggest it's not fair that WordPress changes
>> now to fix PHP but to break MarsEdit (and possibly other clients).
> WP introduced something which a) breaks *several* XML-RPC parsers
> and b) is *not* explicitly allowed by the standard. But because it
> does not break your program, then it is fine?
> I wish you would show more interest in having WP adhere to
> established standards rather than just make it work with your
> software :/
>> The timeline here:
>> Pre2.2: Everything was "fine" for some definition of "fine."
>> Probably things should be evolved but slowly and in a way that
>> clients can adapt to.
> How were things fine? Are you saying that if I install WP 2.1 +
> MarsEdit and fetch posts from my blog, these will show the proper
> dates (hint, my blog does not run in CET / CEST)?
>> 2.2: Times switched to implicit GMT, throwing off the time
>> expectations of MarsEdit (and probably other clients).
> But things were already broken -- just not with your setup. But
> your expectations (that the blog time is the local time) is wrong!
>> 2.2.1: Times switched to explicit GMT, throwing off the parsers in
>> Ruby (and probably other clients).
> And definitely others, as I wrote, the C/C++ parser linked to from
> XML-RPC.com also expect the format specified in the spec. and will
> barf at anything but that format.
>> While you seem to be suggesting that the solution is to go back to
>> 2.2, I'm suggesting the solution is either to go back to Pre2.2,
>> or come up with a more ingenious solution.
> Yes, I figured that much, but it seems rather selfish and
> shortsighted, because pre 2.2 did not work for everybody, and there
> was really no way for it to work for everybody (at least not w/o
> user interaction wrt setting time zone info).
> Is it wrong if I say your motivation for not wanting 2.2 behavior
> is that you don’t want those MarsEdit users who do not upgrade
> their WP, and do have it running in the same TZ as their own
> machine, to see a wrong date?
> Because both pre-2.2 and post-2.2 are solutions with clear flaws,
> so I really can’t see why you’d want either of these two over 2.2
> which a) conforms to the XML-RPC standard (unlike 2.2.1) and b)
> gives dates which can be made to work out-of-the-box for everybody
> (unlike pre-2.2).
> And really, if you are concerned about MarsEdit users with a
> pre-2.2 WP install, introduce a (hidden) option to indicate that
> blog time is local time (though better, allow the blog’s TZ to be
> specified, as the other is not a solution for everyone, as I have
> repeatedly argued).
> wp-xmlrpc mailing list
> wp-xmlrpc at lists.automattic.com
More information about the wp-xmlrpc