Re: [Jcardcal] AD Evaluation of draft-ietf-jcardcal-jcal-08

Philipp Kewisch <kewisch@gmail.com> Tue, 18 February 2014 11:23 UTC

Return-Path: <kewisch@gmail.com>
X-Original-To: jcardcal@ietfa.amsl.com
Delivered-To: jcardcal@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 80EEF1A047F for <jcardcal@ietfa.amsl.com>; Tue, 18 Feb 2014 03:23:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id imD4Jngr0Rf1 for <jcardcal@ietfa.amsl.com>; Tue, 18 Feb 2014 03:23:34 -0800 (PST)
Received: from mail-ee0-x232.google.com (mail-ee0-x232.google.com [IPv6:2a00:1450:4013:c00::232]) by ietfa.amsl.com (Postfix) with ESMTP id 432BC1A032F for <jcardcal@ietf.org>; Tue, 18 Feb 2014 03:23:34 -0800 (PST)
Received: by mail-ee0-f50.google.com with SMTP id d17so7822945eek.9 for <jcardcal@ietf.org>; Tue, 18 Feb 2014 03:23:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; bh=iWDW18Q/aP3mxHJOJnfQxPaBVEEI/4BuAd68VTk8iX8=; b=o/m5DoxHT7dq8z4fgpCZoTQ2zOQD9IObDA8swsetme2UuW8zeavfh8t+IG4UoZeM3K 3AiZdWwHy1AAWXyCrPMzLCujUI5DHoxr3uzMkppHI21QesIpBkt2y9S+4960NdQty48P MI3v9Pq9Q72rMdjvvT5m5WQbJVyf34JqtKzfBRUk5V5M9pzqXV1A4syFbV54qFrHeEP5 Xxj3oUJhHQYxf7B8sSs5uU+5RsMiWu+EgLroEuJI3XavCSbQ9uPfXSVNOcy8sL3ap3aO EZHBp3eoeX+4g8fyt9Fxqve89LMLVxkdqn++hZ8kT8cXU9jKpsD53PAlKf98FCOUmfqP QVOQ==
X-Received: by 10.15.42.136 with SMTP id u8mr8337504eev.52.1392722610930; Tue, 18 Feb 2014 03:23:30 -0800 (PST)
Received: from oskar.local (fhvisitor-pub.fh-wedel.de. [213.39.233.2]) by mx.google.com with ESMTPSA id j41sm69081515eey.15.2014.02.18.03.23.28 for <multiple recipients> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Feb 2014 03:23:29 -0800 (PST)
Message-ID: <530342B0.2080500@gmail.com>
Date: Tue, 18 Feb 2014 12:23:28 +0100
From: Philipp Kewisch <kewisch@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Thunderbird/27.0
MIME-Version: 1.0
To: Pete Resnick <presnick@qti.qualcomm.com>, "jcardcal@ietf.org" <jcardcal@ietf.org>
References: <52F1DA5C.5020805@qti.qualcomm.com>
In-Reply-To: <52F1DA5C.5020805@qti.qualcomm.com>
Content-Type: multipart/alternative; boundary="------------040702050104030400000300"
Archived-At: http://mailarchive.ietf.org/arch/msg/jcardcal/o_agMY2af4xrreNhj9KYGjrBiLk
Subject: Re: [Jcardcal] AD Evaluation of draft-ietf-jcardcal-jcal-08
X-BeenThere: jcardcal@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: JSON data formats for vCard and iCalendar WG <jcardcal.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jcardcal>, <mailto:jcardcal-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jcardcal/>
List-Post: <mailto:jcardcal@ietf.org>
List-Help: <mailto:jcardcal-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jcardcal>, <mailto:jcardcal-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Feb 2014 11:23:38 -0000

On 2/5/14, 7:29 AM, Pete Resnick wrote:
> Sorry for the delay in this. This document is pretty much ready for 
> IETF Last Call. Only one issue that I'd like to address before I send 
> it out. After that one's cleared up, I'll ship; you can deal with the 
> rest of the comments as if they were Last Call comments.
>
> Here's the big one. 3.4.1.1 (and similarly in 3.4.1.2):
>
>    This kind of special casing can be seen as a "structured value", as
>    described in [I-D.ietf-jcardcal-jcard], Section 3.3.1.3.
>    Implementors may want to keep this in mind in case they aim to
>    support both jCard and jCal in their product.  For example, checking
>    the data type of all property values instead of assuming an array for
>    just GEO is RECOMMENDED.
>
> I find that paragraph incomprehensible. I don't understand what it 
> means. Please explain.
Ok, I've removed these paragraphs as suggested by Cyrus. There is one 
detail I would like to keep though and I think I found a good place to 
put it. I want to make clear that its a bad idea to rely on the third 
element of the property array (i.e "float" in the GEO case) to determine 
the data type of the value elements of the property array. I found some 
text about this in Section 3.4 that was a bit sparse, and made this 
modification:

OLD
    3.  The type identifier string of the value, in lowercase.  It is
        important that parsers check this to determine the data type of
        the value, and that they do not rely on assumptions.

NEW
    3.  The type identifier string of the value, in lowercase.  Due to
        special casing of certain properties as described in
        Section 3.4.1, it is important that parsers check both the type
        identifier and the value data type and do not rely on assumptions
        based on the property name.
END

>
> The rest of these are non-blocking IMO. I ignored grammatical stuff 
> unless it potentially confused the meaning; I'll leave those for the 
> RFC Editor.
>
> 3.1: "So the following rules MUST be applied..." is redundant with the 
> MUSTs below. Instead: "So the following rules are applied".
Done
>
> 3.2:
>
>    If you
>    plan to transport multiple jCal objects in a stream, it is
>    recommended to use a simple JSON array.
>
> I'm not a big fan of using "recommended" when you just mean "can". I 
> suggest instead "To transport multiple jCal objects in a stream, a 
> simple JSON array can be used."
Done
>
> 3.4:
>
> - Typo: "followed by at one or more additional". I think you just want 
> to strike "at".
> - "while all other properties are single-valued:" I think you mean 
> "while the 'summary' property is single-valued:", since there are no 
> other properties.
Yes, indeed. I think I previously had more properties in that example. 
Fixed both issues.
>
> 3.5.2:
>
>    Single-value parameters SHOULD
>    be represented using a single string value, although a more simple
>    implementation might prefer an array with one string element.
>
> What harm will come to me or the other side if I don't? Isn't this 
> just an aesthetic choice and I should do whichever is easier in my 
> implementation?
Yes, my intent was to do whichever is easier, but prefer using a single 
string value. Given the findings at calconnect and Cyrus' suggestion, I 
have revised it in the following way:

OLD
    In [RFC5545], some parameters allow using a COMMA-separated list of
    values.  To ease processing in jCal, the value to such parameters
    MUST be represented in an array containing the separated values. The
    array elements MUST be string values.  Single-value parameters SHOULD
    be represented using a single string value, although a more simple
    implementation might prefer an array with one string element. An
    example for a such parameter is the iCalendar "DELEGATED-FROM" and
    "DELEGATED-TO" parameter, more such parameters may be added in
    extensions.
NEW
    In [RFC5545], some parameters allow using a COMMA-separated list of
    values.  To ease processing in jCal, the value to such parameters
    MUST be represented in an array containing the separated values. The
    array elements MUST be string values.  Single-value parameters can be
    represented either using a single string value or an array with one
    string element.  A jCal parser MUST be able to understand both value
    data types.  An example for a such parameter is the iCalendar
    "DELEGATED-FROM" and "DELEGATED-TO" parameter, more such parameters
    may be added in extensions.
END

>
> 3.6.4/3.6.5/3.6.12: "are not permitted"? Why not "MUST NOT be used"?
Fixed
>
> 3.6.8: Does this need to say "MUST NOT have a 'frac' or 'exp' portion"?
Hmm I agree the number usually shouldn't have a fractional part, but 
what speaks against a positive exponent? 3e+8 is still a valid integer. 
To be pedantic, certain negative exponents will also work, i.e 30e-1, as 
do certain fractional parts like 3.1e1.

Also, this is just about the value data type used in jCal. At latest 
when converting back to iCalendar, the value must stay in the range 
specified in 5545 and not contain an e. I have changed the text as follows:

OLD
   Description:  vCard "INTEGER" property values are represented by a
       property with the type identifier "integer".  The value elements
       are JSON primitive number values.
NEW
    Description:  vCard "INTEGER" property values are represented by a
       property with the type identifier "integer".  The value elements
       are JSON primitive number values which MUST resolve to an integer
       value in the range specified in [RFC5545], Section 3.3.8. Thus a
       fractional and/or exponential part are only allowed under limited
       circumstances.
END
>
> 3.6.10: "it is RECOMMENDED to represent it as a...". Same question 
> from 3.5.2.
Fixed, using the following text:

OLD
      *  The following rule parts can have one or more numeric values:
          "bysecond", "byminute", "byhour", "bymonthday", "byyearday",
          "byweekno", "bymonth", and "bysetpos".  If a rule part contains
          multiple values, an array of numbers MUST be used for that rule
          part.  Although it is allowed for the array to contain just one
          value, it is RECOMMENDED to represent it as a single JSON
          number value instead, omitting the array completely.

       *  Similarly, the "byday" rule part can have one or more string
          values.  If it contains multiple values, an array of strings
          MUST be used.  As before, it is RECOMMENDED to represent a
          single value as a JSON string, omitting the array completely.
NEW
      *  The following rule parts can have one or more numeric values:
          "bysecond", "byminute", "byhour", "bymonthday", "byyearday",
          "byweekno", "bymonth", and "bysetpos".  If a rule part contains
          multiple values, an array of numbers MUST be used for that rule
          part.  Single-valued rule parts can be represented either using
          a single number value, omitting the array completely, or an
          array with one number element.  A jCal parser MUST be able to
          understand both data types.

       *  Similarly, the "byday" rule part can have one or more string
          values.  If it contains multiple values, an array of strings
          MUST be used.  As before, a single-valued rule part can be
          represented either using a single string value or an array with
          one string element, both of which a jCal parser MUST
          be able to understand.
END

>
> 6: Please move this to an appendix
Done, moved to Appendix A
>
> 8: I have no idea what the "SHOULD" in the opening paragraph means. 
> Instead, why not "can"?
There may exist valid reasons to use something other than jCal for 
transferring calendar data in JSON, but I think everyone should be doing 
this :) Given this is the same opening text as in jCard, I have left it 
this way for now. If this requires further discussion I'm sure we can do 
it during the last call.
>
> 8.1: So, I think the template specified in 5545 is useless and broken, 
> because the information in this template is simply thrown away and 
> does not go into the registry. Instead the template have the name of 
> the data type, the status to be listed, and the reference. In this 
> case those would be "UNKNOWN", "RESERVED - DO NOT USE", and "RFC XXXX, 
> Section 5" (or something like that). But 5545 says what it says. So I 
> would make the following changes to this section:
>
> First paragraph, change to:
>
>    IANA is asked to add the following entry to the iCalendar Data Types
>    registry:
>
> and strike the rest of the paragraph.
By the time of publication, the IANA will have done this already? Its 
also the same text jCard uses. I've made this and other related changes 
nevertheless, since this is clearly a part of the document you have more 
experience in.

Thanks for the input, the updated draft is coming up in a few minutes.
Philipp