BetaFTPD is a single-threaded FTP daemon. The single-threadedness makes it faster than most other FTP daemons (contrary to common belief), and makes it extremely light on memory. Although it lacks a few functions (which you probably won't miss), the current version is very small and has a decent amount of functionality. BetaFTPD is built on the concept of heavy code reuse, which should hopefully make it easier for other programmers to contribute.
No questions asked vs. questions asked
OK, I see a lot of discussion here whether installation should be totally automatic, or whether it should be allowed to ask some questions. Since gpm has been cited as an example here, allow me to use it again:
When I install gpm, should the program assume I've got a Microsoft 2-button mouse, or should it be allowed to ask? If it guesses, what if it guesses wrong? What would be easier for a newbie user -- answering a simple question upon installation, or spending a lot of time finding the appropriate configuration program when it doesn't work? Optionally, might the user miss something when the package hasn't been correctly configured? IMHO, it's a lot easier to ask the user a question early on, instead of just assuming that `one size fits all' and goofing. :-)
If all systems were equal, I'd say the RPM philosophy is right. But you and I have different mouse types (and other needs), so `automatic' might sound great in theory, but falls short in real life. (Building Debian packages is IMHO also incredibly easy with debmake -- no need for .spec files or anything :-) )
/* Steinar */
The big problem with a VM
The big progblem with a VM is that one day, just the machine code won't cut it. You'll need some kind of API, and then you'll run into exactly the same problem as Java does today, and the main reason configure scripts sometimes fail (as you note in the article). No matter how standardized this API is, you'll need upgrades some time in the future, and then backwards compatibility is lost, and you really gained nothing. Look at what has happened to Java (lots of Microsoft and some Netscape extensions that everybody uses without ever thinking that it might break compatibility). So, as long as you've got an Open Source project, I'd still say an autoconf-like solution is the way to go.
/* Steinar */