Re: [apps-discuss] Last Call: <draft-ietf-appsawg-json-pointer-07.txt> (JSON Pointer) to Proposed Standard
Robert Sayre <sayrer@gmail.com> Mon, 07 January 2013 00:01 UTC
Return-Path: <sayrer@gmail.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E1E421F857B; Sun, 6 Jan 2013 16:01:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AJ0W-a3YgXMX; Sun, 6 Jan 2013 16:01:35 -0800 (PST)
Received: from mail-we0-f177.google.com (mail-we0-f177.google.com [74.125.82.177]) by ietfa.amsl.com (Postfix) with ESMTP id 223E621F8578; Sun, 6 Jan 2013 16:01:34 -0800 (PST)
Received: by mail-we0-f177.google.com with SMTP id x48so9224028wey.8 for <multiple recipients>; Sun, 06 Jan 2013 16:01:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=dw+ysy5x2Qze/pzJPJljE4jmDrGirRkeSdFljnROM/o=; b=gFcK7/BKijCgnKvfld7Uc1Xkqsc8Cx4/Y9VHv59KLPGuSoXEFN/mchcUwXqBO5gc60 4KqixqSC/x6xT9BP2zcgxpBrNLHUEZ7eN+qVMgYbwT90iDptnRdaigBgWqg7SH+QCCMk neeDlHjYCYmJdd2dcul/glzWFWinFdvo9l4Wsoh9Q9fr/zW5hVDSbw+RAVueSMrpxquc A/kl8zopZcQ8l/n1gTIxEVI9NGj8HV5xcTqtLjIrjaKTViKp3Oz2PrMW+yBo4FAhGqD2 svjXNNQlFvL3qGTMZsvjUqRFlAB2bEwmNY3Lwe6DqYS2D/JBz3ntIxiHUlnhA5nUIaWA Cy4w==
MIME-Version: 1.0
Received: by 10.194.23.37 with SMTP id j5mr92782594wjf.28.1357516894252; Sun, 06 Jan 2013 16:01:34 -0800 (PST)
Received: by 10.194.1.101 with HTTP; Sun, 6 Jan 2013 16:01:34 -0800 (PST)
In-Reply-To: <1357515310.6827.23.camel@polyglot>
References: <20121211150057.28223.93310.idtracker@ietfa.amsl.com> <50cb04b9.86df440a.72fe.1e20SMTPIN_ADDED_BROKEN@mx.google.com> <CABP7RbeNsZ_rBWRjou=VG+hBhUKaOz+y1a0sSChwWiHte9znnQ@mail.gmail.com> <50cb5f3c.694c420a.38fb.39afSMTPIN_ADDED_BROKEN@mx.google.com> <CAChr6SxZRc3B_HCbw76kLe2dsRSr43r-gLpfMVnCUfJTrZdTLA@mail.gmail.com> <CABP7RbfA33huBFadMeXTTEt=MkjW8-d4DFH7+GLXGurnm9sSRw@mail.gmail.com> <CAOXDeqpPE4eNy_qJpDPdPHbCQakG9-hDcNZ3Sj9r4kWedByVzQ@mail.gmail.com> <CAChr6SwtS_=iS-k4mJm1vHjEvvGVzay5jDYeGheqsPZqO-89CQ@mail.gmail.com> <EABB8F51-C3B4-49F5-8672-5C2ABAC7043A@mnot.net> <CAChr6Sx7JdKM91EwJaSZ0Ra_F4FSqkuc3vzTY1LM=F_8sWho+Q@mail.gmail.com> <1357515310.6827.23.camel@polyglot>
Date: Sun, 06 Jan 2013 16:01:34 -0800
Message-ID: <CAChr6SyAq=7aQdZn54ihYK+0hDhL--2Oaq0RvehoNFbwKNNShA@mail.gmail.com>
Subject: Re: [apps-discuss] Last Call: <draft-ietf-appsawg-json-pointer-07.txt> (JSON Pointer) to Proposed Standard
From: Robert Sayre <sayrer@gmail.com>
To: "Paul C. Bryan" <pbryan@anode.ca>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: Mark Nottingham <mnot@mnot.net>, IETF Discussion <ietf@ietf.org>, IETF Apps Discuss <apps-discuss@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2013 00:01:36 -0000
On Sun, Jan 6, 2013 at 3:35 PM, Paul C. Bryan <pbryan@anode.ca> wrote: > Thank you for the technical response. > > 1) The ambiguity around arrays makes the patch format unsuitable for common > concurrent editing algorithms. > > > Common concurrent editing algorithms should, in my opinion, use techniques > to ensure the state of the resource (relative to the edits) is known. In > HTTP, we have ETag and If-Match/If-None-Match preconditions. In JSON Patch, > we have (a rudimentary) test operation. That is sequential editing, not concurrent editing. Here are a few links to make sure we're not talking past each other: http://en.wikipedia.org/wiki/Operational_transformation#Basics The above overview section contains a two-step insert/delete process bearing an uncanny resemblance to a JSON Patch document. Here's some software that uses patch documents in this fashion: http://en.wikipedia.org/wiki/Operational_transformation#OT_software > > [snip] > > > 3) It's not possible to tell whether a JSON Pointer document is > syntactically correct in isolation. > > > There is no such thing as a JSON Pointer document. Yes, I meant JSON Pointer /reference/. This error seems tangential to the thread in general, though, which is why I didn't bother to correct myself when others raised this point. > > This issue is a problem in practice, and it's a problem in theory as well. > JSON-Patch messages aren't sufficiently self-descriptive, so they aren't > appropriate for use in a RESTful system. > > > 99% of RESTful systems I'm familiar with are based on HTTP. Where optimistic > concurrency is acceptable, HTTP preconditions seems to provide acceptable > coverage. Where more granularity or more pessimistic concurrency is > required, implementors are free to use their own mechanisms, including more > expressive predicates (as has been proposed here, with my endorsement) > and/or resource locking. These are intentionally out of scope for JSON > Patch. Fully disagree. My point is that the array ambiguity makes it hard to implement more optimistic concurrency. > > Later in this thread, you wrote: > > Ah. I meant that the WG seems to be favoring "running code" a little too > heavily in the presence of a bug. It's an old argument, and it's boring: "We > can't change it now, there are already twelve users!" > > > I don't agree that this is a bug; it lacks a feature that you and some > others have requested. The only rationale I've seen prior to my message was something about "feeling natural" and "static languages" that I admit I don't fully understand. Are there other technical arguments I've missed? I'm happy to go read up. > Our reasoning for resisting such change is > legitimate. This last assertion really isn't qualified very well. Do you have a more extensive rationale, or is a simple contradiction the extent of your argument? - Rob
- RE: [apps-discuss] Last Call: <draft-ietf-appsawg… Markus Lanthaler
- RE: [apps-discuss] Last Call: <draft-ietf-appsawg… Markus Lanthaler
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- RE: [apps-discuss] Last Call: <draft-ietf-appsawg… Markus Lanthaler
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Mark Nottingham
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Matthew Morley
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- RE: [apps-discuss] Last Call: <draft-ietf-appsawg… Manger, James H
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Matthew Morley
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Mark Nottingham
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Mark Nottingham
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Abdussalam Baryun
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Abdussalam Baryun
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Matthew Morley
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Paul C. Bryan
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Murray S. Kucherawy
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Carsten Bormann
- RE: [apps-discuss] Last Call: <draft-ietf-appsawg… Markus Lanthaler
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Conal Tuohy
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Paul C. Bryan
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Matthew Morley
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Jared Rosoff
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Jared Rosoff
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Jared Rosoff
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… James M Snell
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Hector Santos
- Re: [apps-discuss] Last Call: <draft-ietf-appsawg… Robert Sayre