From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 5F938BB81 for ; Sat, 19 Nov 2005 16:41:29 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id jAJFfSRM002023 for ; Sat, 19 Nov 2005 16:41:29 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA10320 for ; Sat, 19 Nov 2005 16:41:28 +0100 (MET) Received: from mail.physik.uni-muenchen.de (mail.physik.uni-muenchen.de [192.54.42.129]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAJFfR7O029629 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Sat, 19 Nov 2005 16:41:28 +0100 Received: from localhost (unknown [127.0.0.1]) by mail.physik.uni-muenchen.de (Postfix) with ESMTP id 561242002F; Sat, 19 Nov 2005 16:41:27 +0100 (CET) Received: from mail.physik.uni-muenchen.de ([127.0.0.1]) by localhost (mail.physik.uni-muenchen.de [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 24330-02-51; Sat, 19 Nov 2005 16:41:27 +0100 (CET) Received: from mailhost.cip.physik.uni-muenchen.de (kaiser.cip.physik.uni-muenchen.de [141.84.136.1]) by mail.physik.uni-muenchen.de (Postfix) with ESMTP id 3B6A92002E; Sat, 19 Nov 2005 16:41:27 +0100 (CET) Received: from eiger.cip.physik.uni-muenchen.de (eiger.cip.physik.uni-muenchen.de [141.84.136.54]) by mailhost.cip.physik.uni-muenchen.de (Postfix) with ESMTP id 692C526E89; Sat, 19 Nov 2005 16:41:25 +0100 (CET) Received: by eiger.cip.physik.uni-muenchen.de (Postfix, from userid 3092) id EE74034FFF; Sat, 19 Nov 2005 16:41:25 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by eiger.cip.physik.uni-muenchen.de (Postfix) with ESMTP id E5193220C4; Sat, 19 Nov 2005 16:41:25 +0100 (CET) Date: Sat, 19 Nov 2005 16:41:25 +0100 (CET) From: Thomas Fischbacher To: Oliver Bandel Cc: caml-list@inria.fr Subject: Re: Yet another OCaml Webserver?! (was: Re: [Caml-list] Yet another sudoku solver (838 bytes)) In-Reply-To: <20051119150931.GB324@first.in-berlin.de> Message-ID: References: <20051119150931.GB324@first.in-berlin.de> X-BOFH: Daemons did it MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: amavisd-new at physik.uni-muenchen.de X-Miltered: at nez-perce with ID 437F47A8.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 437F47A7.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 caml-list:01 solver:01 oliver:01 bandel:01 ocaml:01 toplevel:01 haskell:01 erlang:01 erlang:01 cpan:01 recursive:01 838:98 eddie:98 cip:98 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=PLING_QUERY autolearn=disabled version=3.0.3 On Sat, 19 Nov 2005, Oliver Bandel wrote: > But where is the "yet another" or even "first" Ocaml webserver? A much more interesting project (in my opinion) would be a DNS server in OCaml. Rationale: (1) To my knowledge, there are only two-and-a-half DNS server implementations that work reasonably well to be used for that job: BIND and djbdns. BIND was considered a major security catastrophe for a long time, and still is considered at least a design catastrophe by many. djbdns is far slicker, but suffers from the problem that the major difference between djb and God seems to be that God knows he isn't djb. It may be just me, but I think it's excessively rude to address this "every unix has its own place to install stuff" issue with "I am a big enough authority to decide upon the the introduction of new toplevel directories that resolve that point". Furthermore, djbdns is just another C application doing potentially dangerous stuff. Sure, djb is an excellent C hacker, but what if it eventually turned out that this "it's safe even though doing hairy stuff in an unsafe language because I know I am the best hacker in the world" hubris were unfounded? At least, many people could sleep better if they could rely on their DNS server giving them better safety guarantees than that. I would especially *love* to see a well designed, properly implemented, peer-reviewed DNS server written in Haskell, but OCaml may also be a nice alternative. (Nevertheless, one should take a close look at many of those points which djb addresses with djbdns that the BIND folks did not care about.) Erlang may be another interesting choice, which brings me to the last working DNS implementation I know: Eddie. This is the DNS half of a (now dead, I suppose) combined DNS/Webserver Erlang load balancing project. I managed to make it work, but it did not appear to be mature enough for real world use. Aside from this, there is a CPAN Perl module named something like DNS::Server which sucks badly at dealing with recursive queries, as well as a Python DNS named "Oak", for which I can only find broken sources on the web. Anything else I missed? -- regards, tf@cip.physik.uni-muenchen.de (o_ Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\ (lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_ (if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU)