Re: [hybi] Serf support for BWTP

Justin Erenkrantz <justin@erenkrantz.com> Mon, 01 February 2010 05:23 UTC

Return-Path: <justin.erenkrantz@gmail.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EC9863A6835 for <hybi@core3.amsl.com>; Sun, 31 Jan 2010 21:23:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level:
X-Spam-Status: No, score=-1.99 tagged_above=-999 required=5 tests=[AWL=-0.012, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sFDwAhn77Dae for <hybi@core3.amsl.com>; Sun, 31 Jan 2010 21:23:18 -0800 (PST)
Received: from mail-pz0-f198.google.com (mail-pz0-f198.google.com [209.85.222.198]) by core3.amsl.com (Postfix) with ESMTP id BDEAA3A67E5 for <hybi@ietf.org>; Sun, 31 Jan 2010 21:23:18 -0800 (PST)
Received: by pzk36 with SMTP id 36so4767289pzk.5 for <hybi@ietf.org>; Sun, 31 Jan 2010 21:23:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type; bh=gkPlTWYIhdU33Ndx3xhKb/Kkcq3cI4JLtGiBXjAiwIU=; b=HNEp8CHvnM4ijCg2geG2ohPNrDabkmoEuCY14lpxGNM9C78TU6jpPlE1WLyPgYpFOc 5RLlRI4MIqvauS7YerpQOlQJs9ioBM4KrzE4xLJ2shnNAsdR7Uv0TPPJqeKmCmV/ARrc JXRQILkeNtZ836WpffoYGXqZEd/9WxUZsfsZ4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=v2gys9hFfxgznHietHuOJAvVDgesbdScRN7mEcBqYO2K8pOeWpE+Hy6457OMTCgGmS c+DPOVpPgu1T4jmVdIA62sIengZ/g1rdFKNm+hzJ/v8I+GYaX/O8x8uo4WDLsxLJyonN C+u8fxkmkcntXaVSgTjFWoPDHaOfAl6qPQ2lQ=
MIME-Version: 1.0
Sender: justin.erenkrantz@gmail.com
Received: by 10.142.151.35 with SMTP id y35mr2651941wfd.310.1265001829103; Sun, 31 Jan 2010 21:23:49 -0800 (PST)
In-Reply-To: <Pine.LNX.4.64.1001310829370.3846@ps20323.dreamhostps.com>
References: <5c902b9e0912180032o33d58da5hf3411baeb1fc5f7f@mail.gmail.com> <Pine.LNX.4.64.1001310829370.3846@ps20323.dreamhostps.com>
Date: Sun, 31 Jan 2010 21:23:49 -0800
X-Google-Sender-Auth: 43ebc3b77aa231f7
Message-ID: <5c902b9e1001312123r1051a8dbpc8eb106c245c425a@mail.gmail.com>
From: Justin Erenkrantz <justin@erenkrantz.com>
To: Ian Hickson <ian@hixie.ch>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: hybi@ietf.org
Subject: Re: [hybi] Serf support for BWTP
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Feb 2010 05:23:20 -0000

On Sun, Jan 31, 2010 at 12:34 AM, Ian Hickson <ian@hixie.ch> wrote:
> [1] I'm convinced, based on experience with a number of other
> specifications for Web standards, that the abstract style leads to
> significantly more implementation bugs and interoperability problems than
> the more imperative style the spec currently uses. I'm not convinced it's
> possible to sanely define all the error handling rules needed to get good
> interop on the Web without having explicit sections for clients and
> servers. The HTTP specs, the URI specs, HTML4, and CSS1 are the four
> examples I'm most familiar with that demostrate this most clearly.

Like Greg, I will just note that I strongly disagree with most of the above.

There is simply no way that I could translate the current draft to an
implementation without introducing serious bugs, flaws, or
interoperability issues.

As a concrete example, let's look at Section 5.3:

---
5.3.  Data framing

   The server must run through the following steps to process the bytes
   sent by the client:

   1.  _Frame_: Read a byte from the client.  Let /type/ be that byte.

   2.  If /type/ is not a 0x00 byte, then the server may disconnect from
       the client.

   3.  If the most significant bit of /type/ is not set, then run the
       following steps:

   ....
--

If I read this, what is the rationale behind the if clause of step 3?
We're guaranteed that /type/ is 0x00 at this point because the server
has just been told it's okay to disconnect in step 2.  But, if I step
back and think, I think that it is step 2 that is bogus because, in
other parts of the draft, you mention other frame types.  In fact, the
data framing rules for the client are different than the server.

Oops.

The confusion that was attempted to be prevented by this radically
different editorial style is exactly what was created.  In my mind,
there's a reason that most drafts are written in the same style - they
actually reduce ambiguities rather than introduce them.  -- justin