Live data from Hacker News

D. J. Bernstein

aaronsw.com

101–110 of 121 posts

Re: D. J. Bernstein

#101
post #77
post #62

Earlier quoted context omitted.

#3: sure, in general terms. Not true in my opinion for the best programmer of the world. Naturally he is "the one" that can master programming so well that it must be able to drive even programming language designers into more expressive / productive languages. djb can never be the one as in his code is very rare to find high level abstractions. as for #4 it's very admirable to write real world software, but the best…

Writing a text editor is a relatively easy task and it's more a matter of user interface than of implementation. Besides, I don't see why writing a mailer daemon is less important than, say, a text editor.

Speaking coyly, I'd say that depends on what djb's editor of choice is.

Might have an inheritance conflict there. ;)

Re: D. J. Bernstein

#102
post #76

Earlier quoted context omitted.

anything in the first few years of MS. Altair.BASIC

Of course. But I meant the source for which he could "win prizes for minimal or beautiful code". AFAIK none of it is legally available to anyone.

I don't know whether it's legal, but http://www.interact-sw.co.uk/altair/index2.html has an annotated disassembly of Altair BASIC. I haven't given it more than the briefest glance myself, but allegedly there's some very nice stuff there. (Of course it's from a different era and no one outside deeply-embedded-land writes that sort of code any more other than for a twisted kind of fun.)

Re: D. J. Bernstein

#103
djb wrote the code that won the EngineYard SHA1 challenge. His code was processing 800 million sha1 hashes per second. He wrote CUDA and C implementations. His sha1 implementation was 12 times faster than OpenSSL.

Re: D. J. Bernstein

#104
post #88
post #53

Earlier quoted context omitted.

I hate this attitude. If your code targets my system, I should be able to install it without editing it. You certainly should, but it isn't the coder's responsibility to make this possible. It's the language/system designer's. Just because C doesn't let you deploy nicely has nothing to do with djb's ability to create beautifully architected code, which is what Aaron is praising. I'm sure djb could have written equall…

C does let you deploy nicely. A makefile and some discipline are almost all you need. Granted it's not always easy to write a sane makefile, but that is the coder's and not the installer's responsibility.

I don't think it's every C coder's responsibility to know how to make and ship good makefiles. It's certainly is helpful if she does, but it seems silly to say that's a responsibility, just as it isn't the responsibility of an artist to know the laws governing international sales of her artwork.

Re: D. J. Bernstein

#105
post #37

Earlier quoted context omitted.

I hate this attitude. If your code targets my system, I should be able to install it without editing it.

qmail does not target your system.

QMail doesn't target Linux? Oh, wait, you mean it doesn't target me and others who doen't want to invest the effort in installing it. That's fine, I use Postfix and it works well enough for my needs.

Re: D. J. Bernstein

#106
post #60

Earlier quoted context omitted.

the advantages of being young is being able to approach a field without having to take sides. You must be describing your youth, not mine! My experience with youth is that it was the period of my life in which the whites were blindingly white, the blacks impossibly back, and there were no colours or shades of grey to distract us from our belief that we knew exactly what was right and what was wrong. And thank goodnes…

It's a far point. I was referring to youth in the twenties sense. Of course younger than that you are quite right. Immaturity is a bitch. Unfortunately, certitude can also lead people to be fierce advocates of the status quo.

Heheh. Spoken like a person in their 20s

Re: D. J. Bernstein

#107
post #70

Earlier quoted context omitted.

It is hard to imagine the serious, rational, objective argument that could exist for running BIND instead of djbdns, if those are your two choices. There are viable alternatives to qmail (Postfix and Exchange), but there aren't really viable alternatives for djbdns, and djbdns is less opinionated than qmail is.

I've only setup a single BIND server, and chose that due to previous exposure to the zone file format. It got the job done, pretty quickly even, but I'll definitely consider djbdns next time the need arises.

Next time around, take a look at PowerDNS. You like flat files as your zone backend? Supported. You want an SQL backend? Supported. You want an LDAP backend? Supported. And so on and so on.

Re: D. J. Bernstein

#108
post #21

Earlier quoted context omitted.

If code I write is hard to deploy to your system, I don't think my code can be to blame. Rather, it's the fault of the system/language in which we are working.

I agree with you. DJB wrote secure code that works very well and donated it to the public domain; if you want it to be Perfect For Your Needs, you are going to need to do that yourself. You are a unique snowflake, and your needs differ from DJB's. "You suck for not doing enough work" is no way to treat someone giving you free software.

If DJB doesn't want to make his software useful, that's his right. We simply won't use it and the most perfect code in the world can pathetically fade into oblivion.

Unused potential is another name for waste.

Re: D. J. Bernstein

#109
post #88

Earlier quoted context omitted.

C does let you deploy nicely. A makefile and some discipline are almost all you need. Granted it's not always easy to write a sane makefile, but that is the coder's and not the installer's responsibility.

I don't think it's every C coder's responsibility to know how to make and ship good makefiles. It's certainly is helpful if she does, but it seems silly to say that's a responsibility , just as it isn't the responsibility of an artist to know the laws governing international sales of her artwork.

Sure, but it all depends on the coder's goals. If there's a competing option that's easier to install, prospective users may go with something else. If the coder doesn't care and isn't looking for users, then that's fine.

Re: D. J. Bernstein

#110
post #94
post #66

Earlier quoted context omitted.

Especially if you're a security person, I think it's uncontroversial to say that the design is beautiful. It's not only an elegant design, but it is the first major piece of systems code to take that design approach. To put it differently: most of major systems programs that have been proven secure in the last 10 years owe their design to qmail. But that has nothing to do with the code, which is not only epsilon from…

Are there are any well-written overviews of the aspects of qmail's design that you're referring to?

I don't specifically know of any overviews, but the main principles are fairly simple:

- Split the system into small components that do one thing and do them well. - Give each part of the system the minimal set of privileges needed (if necessary by running as different users and set filesystem privileges accordingly). I.e. qmail has separate binaries for inbound smtp, pop3, managing the queue, local delivery, remote delivery and more. - Make each part of the system communicate only via well defined interfaces (using pipes in qmail) where it is explicitly assumed that you can't really trust the sender. - Don't ever use library functions that don't length check things. Then again he uses his own stdio replacement, and his own string functions.

Post reply on HN