Version française
Home     About     Download     Resources     Contact us    
Browse thread
Yet another sudoku solver (838 bytes)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Thomas Fischbacher <Thomas.Fischbacher@P...>
Subject: Re: Yet another OCaml Webserver?! (was: Re: [Caml-list] Yet another sudoku solver (838 bytes))

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)