Regarding the first question, IMO the webserver should half-close the socket. So, the on the wire requests are rejected on TCP level, while the final response is being delivered. Of course, the client needs to deal with socket errors in addition to http status codes.
For the keep-alive header, you are right, I wasn't aware of it.
I think it depends mainly on the stakeholders. If we're talking about physical machines, I suggest location/hardware based naming. For virtual machines, I'd choose function/role based naming. Though, this depends on type and size of engineering staff that needs to work with it. For end users, I'd add service based names, possibly as cnames. And I'd plan to change the naming scheme as the requirements change.
Has anyone a naming scheme that lasted more than ten years?
I've left HN some time ago, when I came back here today, I've seen three PHP stories on the front page. I'd say: yes, it changes. But I must credit one PHP story was on Pharen, "A lispy language that compiles to PHP".
I think of something like a comment or an abstract; security is not an issue here because input validation and escaping is done elsewhere.
Basically, I think of a string like "ham, egg." which should result in "ham" and "egg", and "Ветчина, яйцо." should also result in "Ветчина" and "яйцо".
The challenge is that you cannot whitelist all possible characters as there are (imho) too many charsets.
Basically, Wordpress is written in PHP and this is the root of all evil.
Let's look at the roots of PHP: it was never designed as a programming language, it was a tiny script language used to create Rasmus Lerdorf's website. Thus, it has a lot of oddities like the === operaor.
Do you know why it it is there? Because they wrote a broken instr() wrapper and messed up the error handling. And instead of doing one thing right, they added another obfuscation layer. Great design.
Then, PHP was traditionally used by webdesigners, not programmers. This lead to tons of bad code and bad practices. It is not that you cannot write elegant code in PHP, but there is so much more bad code around that it is hard to find the good code.
I've created wordlists from Wikipedia database dumps some time ago (http://benjamin-schweizer.de/files/wordlist-wikipedia/); they are pretty large and thus, useful for dictionary attacks. The wordlists are sorted, common words are on top of the lists.
I think that there is a typical password length, so you could improve the sorting based upon a multi-dimensional rating scheme. I'd use expected password length and commonness of a word as factors. Mixing these real words with computer generated words might speed up brute force attacks.
However, I'm not sure how to integrate ordered wordfiles with rainbow tables. Any ideas?
Because other people used it, composed good code and even others adopted it. This resulted in a high-profile Python scene and good code. I think that many new ideas were contributed and it was fun to share ideas. This resulted in a rapid development of toolkits, frameworks and software. If you wanted to be part of this, you had to use Python.
But I think it is the same with JavaScript, Ruby, FreeBSD, PosgreSQL and many more hip foobars; In contrast, Java, PHP, many (not all) Microsoft products, Linux (partly) allured so many bad coders that it is simply boring to work through their code.
WTF? Looks like GMail is feature complete and they dunno what to do... I bet the next thing we'll see is random signatures. Looks like the are implementing a bunch of useless features that all got mentioned in Usenet 15 years ago.
Sometimes, you have to resign to win. If you want to keep these people off of education, how can they improve their own situation? Does this benefit you?
For the keep-alive header, you are right, I wasn't aware of it.