Re: [hybi] Is there a traffic jam?

Ian Hickson <ian@hixie.ch> Fri, 24 April 2009 08:02 UTC

Return-Path: <ian@hixie.ch>
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 28AC83A69C2 for <hybi@core3.amsl.com>; Fri, 24 Apr 2009 01:02:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.233
X-Spam-Level:
X-Spam-Status: No, score=-3.233 tagged_above=-999 required=5 tests=[AWL=-0.635, BAYES_00=-2.599, WEIRD_PORT=0.001]
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 fZo5Cra5qKp5 for <hybi@core3.amsl.com>; Fri, 24 Apr 2009 01:02:50 -0700 (PDT)
Received: from looneymail-a4.g.dreamhost.com (caibbdcaaaaf.dreamhost.com [208.113.200.5]) by core3.amsl.com (Postfix) with ESMTP id D55B23A67D0 for <hybi@ietf.org>; Fri, 24 Apr 2009 01:02:48 -0700 (PDT)
Received: from hixie.dreamhostps.com (hixie.dreamhost.com [208.113.210.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by looneymail-a4.g.dreamhost.com (Postfix) with ESMTP id 2B450125C66; Fri, 24 Apr 2009 01:04:07 -0700 (PDT)
Date: Fri, 24 Apr 2009 08:04:05 +0000
From: Ian Hickson <ian@hixie.ch>
To: Paul Prescod <paul@prescod.net>
In-Reply-To: <1cb725390904240012q781391a1v924cbc1349952499@mail.gmail.com>
Message-ID: <Pine.LNX.4.62.0904240735290.12381@hixie.dreamhostps.com>
References: <03BCE29D-7AA5-4128-9F61-446E0229479A@lindenlab.com> <Pine.LNX.4.62.0904132352430.10339@hixie.dreamhostps.com> <E51D5B15BFDEFD448F90BDD17D41CFF105A0C476@AHQEX1.andrew.com> <Pine.LNX.4.62.0904140002360.10339@hixie.dreamhostps.com> <1cb725390904131712k292a4860pbd078bb251d3855b@mail.gmail.com> <Pine.LNX.4.62.0904140031040.10339@hixie.dreamhostps.com> <1cb725390904131752u5842c039wb3d75602c479fa45@mail.gmail.com> <Pine.LNX.4.62.0904140053050.10339@hixie.dreamhostps.com> <1cb725390904131814o6040a8d3t637069a344d561bd@mail.gmail.com> <Pine.LNX.4.62.0904240546100.10370@hixie.dreamhostps.com> <1cb725390904240012q781391a1v924cbc1349952499@mail.gmail.com>
Content-Language: en-GB-hixie
Content-Style-Type: text/css
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: hybi@ietf.org
Subject: Re: [hybi] Is there a traffic jam?
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: Fri, 24 Apr 2009 08:02:51 -0000

On Fri, 24 Apr 2009, Paul Prescod wrote:
> 
> 1. It boggles my mind that you think that that is the kind of code that 
> "novices" will write. This is my main point. Everything that follows is 
> of lesser emphasis.

I guess this is a matter of opinion. As I said in an earlier e-mail, most 
of the sample code was written by copying-and-pasting from tutorials.


> 2. I do not understand why you wish to inflict this kind of low-level 
> Unix hacking on novices. Even presuming that they can learn it from 
> "WebSockets for dummies", they will likely just skip the explanation and 
> type it in as cargo cult software.

Well, as you say, for people who want them, libraries will probably exist.


> 3. What happens when your tic-tac-toe server gets popular? Does this 
> code scale?

No, of course not. It's written in perl. Writing code for 10,000 QPS loads 
is a whole different ball game than writing a tic tac toe game for one's 
friends at school.


> 4. Proper software engineering would suggest that you should split the 
> reusable bits from the application logic. Having done this, you will 
> have a "WebSockets library". At that point, you will never need to worry 
> about 1 through 3 again, and neither will anyone else.

The same could be said for CGI, yet people still write their own CGI 
parsers. The same could be said for URLs, or XML, or JSON, or any number 
of other Web technologies, yet people write their own URL parsers, their 
own XML parsers (heaven forfend), their own JSON parsers, etc.


> # telnet localhost 80
> Trying 127.0.0.1...
> Connected to localhost.localdomain (127.0.0.1).
> Escape character is '^]'.
> GET / HTTP/1.1
> Host: www.slate.com
> 
> # telnet localhost 22
> Trying 127.0.0.1...
> Connected to localhost.localdomain (127.0.0.1).
> Escape character is '^]'.
> SSH-2.0-OpenSSH_4.3
> 
> Protocol mismatch.
> Connection closed by foreign host.
> 
> Even SSH at least gives me a readable introductory string to tell me 
> what protocol is running and that the server is alive and kicking.

$ telnet damowmow.com 11111
Trying 208.113.210.27...   
Connected to damowmow.com.
Escape character is '^]'. 
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: http://damowmow.com
WebSocket-Location: ws://damowmow.com:11111/tic-tac-toe


I don't really understand the problem.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'