Unfortunately with today's society, 95% of the students would simply choose to sit on their ass and play video games or smoke pot rather than going out and pursuing intellectual conversation with other intellectuals.;-)
Amen. The motivation of so many students now is so close to nil that it's not even measurable. I remember that when I was still in elementary school, I was on a first-name basis with every librarian at the local branch.:-) I still am. It was the way I taught myself; I devoured books. Even though a lot of what I read was computer-related, I'd read pretty much anything I could get my hands on. Computers, science, magic, sci-fi, electronics, photography, you name it, I'd check it out and read it. I had a lot of free time in elementary school, so I'd snag a book and read a couple hundred pages a day. That, and by example, is how I've taught myself virtually everything I know about technology. And the important thing isn't that I did it, it's that I've taught myself how to learn. That's the important thing, because if you can teach yourself that, you've acquired a skill that will be of immense benefit to you for the rest of your life. The ability to pick up a few books and absorb everything in them, and then to be able to go use all of that material is amazing. If I took 2 Visual Basic (ugh) courses and a Bourne-shell scripting course at RIT, I'd be a junior in the InfoTech Department right now. I've learned very little in the IT classes so far; it amazes me the graduates that they're turning out, perhaps people who see the lucrative IT field and salivate at the big money "they could be making." And did I mention that I'm seventeen years old and still in high school? So it definitely can be done.
But back to your point. So many teachers in schools nowadays, even in advanced classes, assume that all of their students have absolutely no idea how to go about the business of learning. They assume that each of their students must be force-fed information the way they have planned, and woe be the day when you even hint at the fact that you might know best how to teach yourself. After all, you've had years of experience discovering how you learn, years that no teacher will ever come close to having. Bring them in, fill them up, send them along. Assembly-line style.
My AP US History teacher last year made the fatal mistake of deciding that he was going to dictate pretty much exactly how your notes were going to be formatted, down to actual content and headings. And he collected them and graded them based on his criteria, and his criteria alone. That was a huge culture shock for me, because so far, even in two other AP classes, I'd taught myself everything by reading to learn, not to pass the upcoming test, not to please anyone else, but to absorb the material because I wanted to. Schools are totally unprepared for people in my situation. They view us as mere heretics that will eventually bow to the force of having their educational methods pressed upon us. So I did his lame notes for a couple of months, and then started skipping about every other assignment, instead giving the chapter a thorough read to remember, instead of reading to be able to quickly bullshit the night's assignment. He told me once, point blank, that my test grades were some of the highest in the class and that my homework grade was actually bringing me down.
I had a chat with him and explained my perspective, and he dictated to me a "modified" notes format just so he could "make sure" that I was doing the reading. If he original plan was an insult, this was a punch to the face. I let my homework slip almost totally in the last quarter and took a 76, my first quarter grade below a B+, ever. I made a 4 on the AP final. (For those unfamiliar with the AP grading system in the States, it's on a scale of 1 to 5, a four is about the top 20-30% of all students who take the exam). But I know that I could have gotten a 5 (~top 10%) if I had been allowed to use my own, proven system. Thank you, American Educational System.
You might want to consider using the LDAP patches for Qmail on nrg4u.com. They patch qmail to do user lookups via an LDAP database. qmail-pop3d will also do user password lookups against the same LDAP database. Run OpenLDAP on a dedicated machine that runs a web server and some CGIs to allow updates to the LDAP database. Mirror the contents of the LDAP database on each of your mail servers (see below) with slurpd. That way, if the LDAP master goes away, mail delivery can still take place.
Machine-wise, PC hardware should handle this nicely. Take a few PCs and put them in 2U rackmount chassis with a hardware RAID adapter mirroring (RAID 1) the system disk. Put a layer 4 switch, such as a Foundry ServerIron or Alteon AceDirector in front of these machines. Need to take a machine down because of upgrades or hardware failure? Want to add more machines to the cluster to improve performance? No problem. Take the machine down and the switch automatically removes the downed machine from the available pool of machines.
Mount mail spools from a Netapp Filer. Put a few hot spares in the Filer and now you've got redundancy and fault-tolerance for your mail spools, too. Plus, it'll be fun if you give anyone tours of your facilities. Imagine their reaction when you nonchalantly yank a disk out of a Filer taking that kind of load, and then watch the Filer automatically rebuild the drive on the hot spares you have in it.:-)
You can also cluster Netapp Filers ( more info), which would allow you to have two Netapps that would automatically sync their contents. If one fails, the other takes over transparently.
Lastly, if you're going to be having all of this NFS activity with that size a user base, I would highly recommend putting a second NIC in each of your server PCs. Link these second NICs in each of the PCs into a physically separate network from the one the users will be using to retrieve their mail. Gigabit Ethernet may also be an option here depending on the traffic demands of NFS in your situation. There are two advantages to this separate network. 1) It separates your NFS traffic from your user requests and data transfers, thus preventing the network from reaching its saturation point as rapidly and 2) you can secure the NFS network and allow only NFS requests and other management processes to use this network. If your Filers are only homed to this NFS network, it would take a break-in to one of the PCs just to gain a chance at administrative access to the Filer holding all of your user data.
The only downside to all of this is that Qmail doesn't have a daemon to serve IMAP. I don't have any experience with it, but I've seen Cyrus recommended a lot for IMAP service. There are patches on qmail.org that patch Cyrus to authenticate against a CDB, the file format that qmail can use for authentication and other lookups. You might be able to do something along the lines of creating a cron job that checks for a timestamp on the LDAP entries, and updates the CDB entry for a user if the LDAP info has changed since the last invocation. Maildir support might be dicier; I only spent a few minutes on it, but I couldn't find any info on getting Cyrus to deliver to a maildir.
Amen. The motivation of so many students now is so close to nil that it's not even measurable. I remember that when I was still in elementary school, I was on a first-name basis with every librarian at the local branch.
But back to your point. So many teachers in schools nowadays, even in advanced classes, assume that all of their students have absolutely no idea how to go about the business of learning. They assume that each of their students must be force-fed information the way they have planned, and woe be the day when you even hint at the fact that you might know best how to teach yourself. After all, you've had years of experience discovering how you learn, years that no teacher will ever come close to having. Bring them in, fill them up, send them along. Assembly-line style.
My AP US History teacher last year made the fatal mistake of deciding that he was going to dictate pretty much exactly how your notes were going to be formatted, down to actual content and headings. And he collected them and graded them based on his criteria, and his criteria alone. That was a huge culture shock for me, because so far, even in two other AP classes, I'd taught myself everything by reading to learn, not to pass the upcoming test, not to please anyone else, but to absorb the material because I wanted to. Schools are totally unprepared for people in my situation. They view us as mere heretics that will eventually bow to the force of having their educational methods pressed upon us. So I did his lame notes for a couple of months, and then started skipping about every other assignment, instead giving the chapter a thorough read to remember, instead of reading to be able to quickly bullshit the night's assignment. He told me once, point blank, that my test grades were some of the highest in the class and that my homework grade was actually bringing me down.
I had a chat with him and explained my perspective, and he dictated to me a "modified" notes format just so he could "make sure" that I was doing the reading. If he original plan was an insult, this was a punch to the face. I let my homework slip almost totally in the last quarter and took a 76, my first quarter grade below a B+, ever. I made a 4 on the AP final. (For those unfamiliar with the AP grading system in the States, it's on a scale of 1 to 5, a four is about the top 20-30% of all students who take the exam). But I know that I could have gotten a 5 (~top 10%) if I had been allowed to use my own, proven system. Thank you, American Educational System.
Machine-wise, PC hardware should handle this nicely. Take a few PCs and put them in 2U rackmount chassis with a hardware RAID adapter mirroring (RAID 1) the system disk. Put a layer 4 switch, such as a Foundry ServerIron or Alteon AceDirector in front of these machines. Need to take a machine down because of upgrades or hardware failure? Want to add more machines to the cluster to improve performance? No problem. Take the machine down and the switch automatically removes the downed machine from the available pool of machines.
Mount mail spools from a Netapp Filer. Put a few hot spares in the Filer and now you've got redundancy and fault-tolerance for your mail spools, too. Plus, it'll be fun if you give anyone tours of your facilities. Imagine their reaction when you nonchalantly yank a disk out of a Filer taking that kind of load, and then watch the Filer automatically rebuild the drive on the hot spares you have in it. :-)
You can also cluster Netapp Filers ( more info), which would allow you to have two Netapps that would automatically sync their contents. If one fails, the other takes over transparently.
Lastly, if you're going to be having all of this NFS activity with that size a user base, I would highly recommend putting a second NIC in each of your server PCs. Link these second NICs in each of the PCs into a physically separate network from the one the users will be using to retrieve their mail. Gigabit Ethernet may also be an option here depending on the traffic demands of NFS in your situation. There are two advantages to this separate network. 1) It separates your NFS traffic from your user requests and data transfers, thus preventing the network from reaching its saturation point as rapidly and 2) you can secure the NFS network and allow only NFS requests and other management processes to use this network. If your Filers are only homed to this NFS network, it would take a break-in to one of the PCs just to gain a chance at administrative access to the Filer holding all of your user data.
The only downside to all of this is that Qmail doesn't have a daemon to serve IMAP. I don't have any experience with it, but I've seen Cyrus recommended a lot for IMAP service. There are patches on qmail.org that patch Cyrus to authenticate against a CDB, the file format that qmail can use for authentication and other lookups. You might be able to do something along the lines of creating a cron job that checks for a timestamp on the LDAP entries, and updates the CDB entry for a user if the LDAP info has changed since the last invocation. Maildir support might be dicier; I only spent a few minutes on it, but I couldn't find any info on getting Cyrus to deliver to a maildir.