Re: [apps-discuss] New I-D: text/markdown Media Type - draft-seantek-text-markdown-media-type-00

Ned Freed <ned.freed@mrochek.com> Mon, 14 July 2014 17:31 UTC

Return-Path: <ned.freed@mrochek.com>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC8F01A0B08 for <apps-discuss@ietfa.amsl.com>; Mon, 14 Jul 2014 10:31:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.353
X-Spam-Level:
X-Spam-Status: No, score=-0.353 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MANGLED_WANT=2.3, RP_MATCHES_RCVD=-0.651, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 IETrniyDHngc for <apps-discuss@ietfa.amsl.com>; Mon, 14 Jul 2014 10:31:05 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [66.159.242.17]) by ietfa.amsl.com (Postfix) with ESMTP id 908E81A0AF1 for <apps-discuss@ietf.org>; Mon, 14 Jul 2014 10:31:05 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01PA5XLHJH1S0075FE@mauve.mrochek.com> for apps-discuss@ietf.org; Mon, 14 Jul 2014 10:26:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mrochek.com; s=mauve; t=1405358764; bh=+gQxqFlN1Z/pFi2dF8lYGyUpyUYRM6GN2t6qTFvC4i0=; h=Cc:Date:From:Subject:In-reply-to:References:To; b=nGHqHDzMOb53c76FcXzDrDBatMAHVUsd4RnuGySZ1wYT2iwkZt8g+Wjp/uuijeiOh 0GMMkaZeJ7UimU11M62FBEvMx1ziYbx8F2coUDRo7K1Smnic01CTGnGVu9LhbYb/B0 CD/XQ2pdNDrnKSG+CcRfZb0hSOGiSmtBLWMMdjwE=
MIME-version: 1.0
Content-transfer-encoding: 8bit
Content-type: TEXT/PLAIN; charset="windows-1252"
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01PA1SES1000007ZXF@mauve.mrochek.com>; Mon, 14 Jul 2014 10:25:59 -0700 (PDT)
Message-id: <01PA5XLFFE48007ZXF@mauve.mrochek.com>
Date: Mon, 14 Jul 2014 08:23:25 -0700
From: Ned Freed <ned.freed@mrochek.com>
In-reply-to: "Your message dated Wed, 09 Jul 2014 16:29:01 -0700" <53BDD03D.5050805@dcrocker.net>
References: <53BBF0F0.9000006@seantek.com> <53BBFBA2.5090801@berkeley.edu> <53BC71C1.5080103@seantek.com> <40fb5c2d6eae4c5fbd6243db75f85d69@BL2PR02MB307.namprd02.prod.outlook.com> <389FC4D0-4A4F-4F2E-9BDE-83DA8C8E5710@mnot.net> <CABP7RbeF4RJiKhF=M4iA6wr_sU132oa5qz2yZoSAGDe0T=hhpA@mail.gmail.com> <2982B8C0-E4D4-4259-83CC-403E184F364B@mnot.net> <01P9YXHRLNQM0049PU@mauve.mrochek.com> <53BD8FB4.7050807@dcrocker.net> <01P9Z5KF3YNU0049PU@mauve.mrochek.com> <53BDCB8C.1040105@dcrocker.net> <6C438CE2-9D4C-441F-B2F4-61AE806DD449@tzi.org> <53BDD03D.5050805@dcrocker.net>
To: Dave Crocker <dhc@dcrocker.net>
Archived-At: http://mailarchive.ietf.org/arch/msg/apps-discuss/grctWRl5v5eu9qWfF20eFKR9Lj4
Cc: Ned Freed <ned.freed@mrochek.com>, "apps-discuss@ietf.org" <apps-discuss@ietf.org>
Subject: Re: [apps-discuss] New I-D: text/markdown Media Type - draft-seantek-text-markdown-media-type-00
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jul 2014 17:31:07 -0000

> On 7/9/2014 4:25 PM, Carsten Bormann wrote:
> > 1) define tags, one for each of the extensions and willful violations ("flavors”).
> >    The tags defined by pandoc could serve as a starter set here.
> > 	http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html
> >    Add an IANA registry with “specification required” policy.
> > 2) mark an instance by the set of tags that apply to it (or, possibly could apply to it)
> > 3) “Accept:” instances by the set of tags that can be processed (i.e. any subset is acceptable).
> >
> > If the registry has numeric values added, the sets could be efficiently indicated as a numerically encoded bit set.
> > (Otherwise the tags get a bit unwieldy, e.g. gfm = pipe_tables, raw_html, tex_math_single_backslash, fenced_code_blocks, fenced_code_attributes, auto_identifiers, ascii_identifiers, backtick_code_blocks, autolink_bare_uris, intraword_underscores, strikeout, hard_line_breaks.)
> >
> > So this doesn’t seem too hard to do.
> >
> > Worth it?


> The goal here is to have the correct software processing the data.

That's one goal of media types, and the one associated with email. But
it isn't the only goal. The other obvious one is that of type label for
stored objects.

In the case of markdown, as previously stated, it's probably better for an
email client sending markdown with the intent of displaying it the result
immediately at the receiving end to use it as an input format only, and to
convert it to text/html prior to sending.

> So, there is a requirement to 'dispatch' to the correct code and a
> requirement to hand it useful parameters.

It falls short of a requirement in this case.

> If parameters are used for dispatching to unrelated code, then the
> question is why that wasn't better achieved with a media-type registration?

Because 20+ years of expereience say that wan't happen. Indeed, despite having
been around for quite a while, I don't believe there's a registration for
anything identified as a markdown variant.

But let's suppose for a moment that this time things are different, that
people will rush to register all the variants because, well, I don't
know why they would, but let's suppose.

What would the likely outcome of this be? If existing handling tables for
various "groups" of media types are any indication, the likely outcome will be
that all of the types (at least the ones people bother to put in the table,
which is another issue) point at a single, common handler, which then does
whatever. The odds of a proliferation of separate handlers in order to handle
minor incompatibilites a bit better seems highly unlikely. For one thing think
about the increase in code and associated vulnerabilities this would cause.

> Again, my reading of the discussion here is that the 'variants' are
> incompatible. I take that to mean that each uses a different code base.

Yes, the variants are, in the strict sense, incompatible. But there's a broad
swatch of features and functionality that are generally supported by all of
them. And more to the point, even when dealing with truly incompatible
handling, the nature of the format is such that something sensible, abeit
suboptimal, tends to happen even when the wrong processor is used.

But you need not take my word for it. The Babelmark2 tool lets you compare
how 20+ different tools handle the same input:

   http://johnmacfarlane.net/babelmark2/

I think you'll find that while it's easy to construct inputs that produce
different outputs, creating inputs that work fine in one variant but produce
garbage in another is a lot more difficult

Indeed, I find the biggest annoyances by far to the limitations of the format
itself. Which is as it should be.

> If, instead, there is a common code base that gets 'tuned' by something
> like a flavors parameter, then it makes sense to use a parameter.

To the extent that this matters, I think this is the best outcome we
can hope for in this case.

Finally, I cannot help but once again note that this has a lot more to do with
incomtible engineering aesthetics than anything else. People here are writing 
like "incompatibility" in this context means the same thing as it does for a
protocol or a format carrying critical protocol-related information. Sure, when
protocols or the formats they depend on are incompatible, things tend to go
badly wrong. But that's not applicable here.

				Ned