Yes, because proprietary software houses typically write proprietary software. People who don't intend to make money off of per-copy software licenses tend to be more willing to open the source and share it than people who intend to sell copies of the binaries.
There are also many open source projects from businesses from small companies to major corporations, but not so many of them are as revolutionary. I'd dare say not much truly innovative has happened with closed-source software outside the gaming industry since Visicalc. Things like Cuda are nice, but researchers in labs made GPUs support application logic rather than graphics before NVidia or ATI did.
Universities and research labs are where research into new ideas tends to happen. There's also, until a recent disturbing trend, not much in the way of capitalization of their research. That's where I'd expect a big portion of the best ideas in any field to come from, whether it gets turned into open source or a patent-encumbered, proprietary product in some field from software to pharmaceuticals to power systems.
Well, for an open-source fanatic, surely it'd ideally be up to the recipient whether they want the mechanically produced JavaScript or the source Java and they could alter either one.
I don't see the difference here between getting C code and compiling it to object code and getting Java code and compiling it to JavaScript code. If I want to distribute to you a program that runs in a JavaScript VM but only because it was transformed into that from Java, Perl, Python, C, Lisp, or whatever, I'd have a link on my site for you to download the source. You could then compile it and put that in place in your browser's cache.
I use local versions of JavaScript sometimes with Firebug, but it's not exactly the interface to use for casual browsing. I like his idea to make it a browser feature with a good UI.
As for sites that allow custom JavaScript, I can think of one example from the top of my head that actually stores the user's custom JavaScript code and sends it back out, possibly with a reference to a remote script from elsewhere. That site is Perlmonks, and the mechanism used there is a "free nodelet" that gives a user a sidebar to hold pretty much any content up to a certain size that they see as part of the sidebar nodelets when they are logged in. Lots of members of the site have JavaScript in their free nodelet that enhances the site for them in some way without imposing it site-wide for all users. You can even see in the PerlMonks Discussion section (and sometimes other sections) posts where the members share their work with others with "Free Nodelet Hack" in the title. Here's a sample.
You wouldn't have to have a dynamically generated site. Just having class and id attributes for certain entities goes a long way toward letting JavaScript manipulate them easily through the DOM. It helps if those attributes are consistent, meaningful, and infrequently changed.
A separate download link for the original sources would only be used by people wanting to make changes, or that are at least curious. You wouldn't have to run the production site off the original sources to make those available.
To be fair, there are already many BSD-licensed (or BSD re-licensed as GPL) tools released in the typical Linux distribution, too. Pretty soon it gets to be GNU/BSD/CFFL/CC-SA/PD/Apache/MIT Linux if proper credit is given to everyone in the name. I'd prefer to just call it Linux and give people credit in the CREDITS files, in the copyright docs, in the FAQs, and everywhere else there's already information about the origins of the tools.
It's possible to use the Linux kernel with uClibc which is GPL licensed but is not AFAIK an FSF/GNU project. In fact that's what uClibc was intended to do: replace glibc for embedded Linux.
It's also possible, with some work, to get the Linux kernel compiled with a C compiler other than gcc.
Lots of command-line tools and X applications can be had that are BSD or otherwise licensed rather than the GNU tools. X.org itself is X licensed. KDE is pretty popular and is not a GNU project. Other window managers besides GNOME and KDE exist, too. Mozilla has their own license. The text editors and office suites are not all GNU software.
I'm not sure taking out the GNU parts just because some people think GNU is more important than all the other projects that combine in a distro is worthwhile, but I agree it sure is tempting.
You are using software which uses Berkeley sockets, from the BSD project, to communicate with others over the Internet. Either the code is from BSD or it has been written to be compatible with BSD sockets. Very little software in the world speaks TCP/IP that doesn't use Berkeley sockets to do so.
If you are using a closed-source browser other than Opera, you're using one based on the open-source Mosaic or Mozilla browsers, or on the open-source KHTML or WebKit (which itself is based on KHTML). The very first web browser and the very first graphical web browser were both open source. The very first browser was called WorldWideWeb (and later Nexus to avoid confusion with "The Web" as a whole), and Tim Berners-Lee released it into the public domain in 1993. All web browsers are knockoffs of an open source project, some more directly than others.
You are using a site which is written in a language which has always been open with language tools that have always been open (that language is Perl, by the way, and any commercial Perl distribution you've seen is a copy of the open one).
The code for the Slashdot site itself is open. Although some changes may be different between the version control system and the exact code this site runs at any given moment, an open-source version of the codebase exists over at Slashcode.com for your enjoyment or use.
The site is served by use of an open-source web server called Apache. Perhaps you've heard of it. The original web server was also open-source software, and was called CERN HTTPd. CERN HTTPd was adopted by the W3C as W3C HTTPd and has sicne been supplanted by the open-source web server Jigsaw. All web servers are clones of an open-source project.
Any version of Emacs you might use, including any of the commercial Emacs clones that are proprietary and closed-source, are based on the open-source Emacs written by none other than RMS.
Most of the first games for computers had freely available source, and some of them are still available. That's a whole market in which the closed-source people were not the first movers.
What's wrong with using your own custom version of a site's JavaScript code to interact with the site? His writeup just asks for a couple of technical features to make that easier. The ethics of whether or not to use a website that doesn't allow you to alter their JavaScript through a restrictive license is only barely mentioned.
The client-side code could just as easily be saved to your local drive and loaded from your local drive into your browser as downloaded (or loaded unchanged from cache) every time you visit a page. You local copy could then be altered to better suit your needs, so long as it's still compatible with what the server is doing or is independent of the server. This can be done now, but browsers don't support doing it easily.
What Stallman wants in this case boils down to two things as I read it. First, he wants a standard way to mark the license of the program that's easy to discern both visually and in software so you'll know what license you have to the software and the browser can inform you of that automatically. He also wants an easy way for every piece of client-side code a web page uses to be easily replaceable with your own local version from your own local disk. Right now, you can grab the JavaScript from a page and alter it, but without some work you're still going to be running the publisher's version when you're on their site. He wants some way to specify that the JavaScript that was loaded from, for example 'http://www.foo.com/js/some-script.js', instead gets loaded from your customized local version so you can interact with the web app with your changes in place.
Personally, I think he's got a good idea there. I'm no RMS fanatic, but I do like to be able to alter the software I run to suit me, and I like the GPL (and BSD, CC-SA, and some other licenses) for that reason.
He just wants a couple of technical features built into the OSS browsers to support loading custom client-side code and for you to more easily know which license the code is under. I think this is much easier to accept than some of the more drastic position statements out of the FSF. It really can benefit anyone who prefers any of the Open Source licenses, and not just what the FSF calls Free Software under the GPL.
User data is always important. The application programmer who thinks otherwise is a jackass.
The problem here, as I said in #27299479 to yakovlev, is that people are expecting the atomic rename not to interrupt the non-atomic file write. Non-atomic means specifically that it can be interrupted. That's why fsync() exists in the first place -- to block until the write is finished because the write is not atomic.
How to handle this is to rename the file first. Then, open a new file with the original file name. Then, write to the file. Then, close the file. If the file data is lost, the old data is in the backup made with the atomic rename. If the new config file is invalid, the program can automatically check for the most recent valid backup. Pruning of old config backups could even be configurable, but one to three is probably enough and most people won't care how many old versions of their config is saved for most programs.
Sure there's a way to say you want the old data or the new. Rename the existing config file to a backup name first. Then open a new file with the old config file name, write to it, and close it. If there's a crash after the rename, you still have a backup of the original from which to restore. If you find your config file is mangled, empty, or otherwise invalid, restore it by copying from the most recent backup.
Always put the atomic portion first. It can't be interrupted, because that's what "atomic" means. The non-atomic part of the procedure is getting interrupted by the atomic part in the applications this is affecting. The atomic part won't be interrupted by the non-atomic part.
Yeah. You're right, but a desktop PC is probably not running two dual-core Opterons. It could be, but most 2 CPU by 2 core x86 systems one would find on a desktop rather than in a server rack will be Xeons. Those still use a common front-side bus with an external memory controller and are definitely SMP.
Pentium100's situation may not be your average desktop, but NUMA-awareness is not as important for most people right now as the post might make seem. I made the mistake of using the generic "you" where it could be taken to be the specific "you". Pentium100's desktop probably is NUMA, since the post shows familiarity with the topic. People reading it don't necessarily have NUMA systems just because they have a similar number of processors.
The Core i7 is indeed NUMA when in multi-socket systems, BTW. Still, at the present moment, most dual-socket motherboards are not Core i7 nor Opteron boards.
If the compute-bound program has places where it isn't relying on earlier result, it can be made parallel. If you have multiple inputs and outputs and actually process them through different hardware paths, those can be made parallel.
See GPUs and SIMD instructions for the former and channel bonding networks or RAID controllers for drives for the latter.
So let the office workers keep the two-core machines. I'll take the 8-core machine since I'm not doing just word processing and spreadsheets.
BTW, complex spreadsheets are actually an ideal application to break into parallel execution if there aren't too many dependencies in the functions. A slower and more power-efficient multi-core processor could update all the cells in many spreadsheets just as fast as a faster single-core one.
Anyone really concerned with performance shouldn't have just one drive. Even on a desktop, it makes sense to have one drive for the applications and one for the OS, with the data on one or the other. Having one each for OS, apps, and data makes sense, or having three in RAID 5 for that matter.
This machine has four hard drives, and is data heavy. There's one drive with one partition each for the OS, the distro's applications, swap space, and my separately tracked applications. Then there's the data store, which is a three-disk RAID 5 array. That holds my application data, my important documents, my work projects, and my backups (which then get burned to DVD and stored both on-site and off-site in fire-rated safes, BTW).
Currently it's all spinning disk technology, but if you've been keeping track of SSD performance the last few weeks, you know that using an Intel X25 or an OCZ Vertex for part of the storage system could speed things up quite a bit. With an SSD (a good one, anyway), random reads are about as fast as sequential reads. Sequential writes are blazing fast, too. Random writes can be a problem area, but on a drive with a good controller they're still faster than a really nice rotating drive. Only the Velociraptor even competes with the better SSDs even on their weak points.
How many "average" users do you figure are using Slashdot right now? Sure, their browsers might not need a lot of cores each, but do you think Slashdot itself is on a single-core machine at someone's desk? As more stuff gets done via centralized online applications, more people will be using multi-core systems and even clusters. They'll just be using them indirectly.
If you're running a dual-socket, 4-core x86 PC then you're probably using SMP, not NUMA. In SMP, all the processors see all the memory and it's the same cost for any processor to read or write any memory location. NUMA means Non-uniform memory architecture, which means either not all the processors see all the memory or that some of the memory is faster for each processor than the rest of the memory is.
This is indeed true on a general-purpose desktop most of the time. There are many server and workstation tasks, though, that ca take as many cores as you can throw at them.
A web server, application middlware server, or database server will often run multiple single-threaded programs at once rather than running one huge multi-threaded application.
People who say that you must have multi-threaded applications to use multiple cores are either incompetent or are looking at a very narrow section of the industry. Not everyone runs a single foreground process with just a virus scanner in the background. An SMP or NUMA server with a hundred application instances running isn't going to run all of them on the first four cores and ignore the rest.
Some scheduling changes may be necessary to make doling the work out to really big number of cores, like 128, 256, or 512 work really well, but Linux is already run on HPC clusters much larger than that and Windows HPC is supposed to be capable of it, too.
I did double the quote. I figured $4400 was pretty fair for something advertised at $2200. If that's still lowballing the bandwidth and the DS-3 lines should be $8800 apiece, then $50 a month would only be good for 2 Mbps service. That sucks, but those are the breaks.
Way back (in Internet time) in 2001, we paid $3500 a month for our burstable 6 Mbps to 45 Mbps DS-3 with a guarantee it'd never go above $9,000 a month from bursting. It was actually muxed out to a DS-3 in our building. It rode into the primary demarcation point on an OC-3, and was broken into multiple secondary demarcs for multiple customers in the same complex.
I was sort of assuming that prices had gone down somewhat, but if they're really the only alternative to dial-up and satellite (which is probably not true, because the telco probably offers ISDN 128 with guaranteed bandwidth and latency to the ISP and an SLA for $45 a month and the dialup ISP probably charges $30 a month for use of two ports, but anyway...) then their pricing might be regionally higher due to reduced existing build-out in their area.
Still, at $10,000 a month for one DS-3, 20% typical port usage and only 3 times oversell on bandwidth (keeping in mind that web browsing, IM, checking email, etc are all sporadic activities) you're looking at 1.6875 Mbps per customer which is better than DS-1 speed. That's half the revenue of a $50 a month package for 400 customers brings in.
The cable company is more likely charging $60 or $70 per month, anyway. There's no reason they can't afford to sell at a 15:1 or 20:1 or definitely 25:1 oversell on bandwidth. That way the customer would get closer to what's advertised than at 70:1 for sure.
How TF are you getting RAID-10, which requires 4 drives, out of two drives? I'm guessing you mean RAID-0 built around two drives. Maybe you have something funky like RAID-10 built from four partitions on two drives, but that makes your redundancy moot.
If you can make ethanol from cellulose, which corn cobs, corn husks, and corn stalks are mostly made of, the corn kernels (which aren't a very good source of sugar anyway compared to sugar cane) could easily be used for food even as the rest of the plant was used for ethanol.
You need to consider the number of gasoline engines that would need to be replaced with diesel engines. All that milled metal isn't being produced without energy inputs. Even recycling a gasoline engine to make a diesel one will take energy.
Ethanol burns in gasoline engines, and only minor tweaks are needed to secure the gaskets (rubber and alcohol don't mix) and to adjust the mixture with air (which can be done in the computer on many models, and sometimes requires a new air or fuel rate sensor or such).
Yes, because proprietary software houses typically write proprietary software. People who don't intend to make money off of per-copy software licenses tend to be more willing to open the source and share it than people who intend to sell copies of the binaries.
There are also many open source projects from businesses from small companies to major corporations, but not so many of them are as revolutionary. I'd dare say not much truly innovative has happened with closed-source software outside the gaming industry since Visicalc. Things like Cuda are nice, but researchers in labs made GPUs support application logic rather than graphics before NVidia or ATI did.
Universities and research labs are where research into new ideas tends to happen. There's also, until a recent disturbing trend, not much in the way of capitalization of their research. That's where I'd expect a big portion of the best ideas in any field to come from, whether it gets turned into open source or a patent-encumbered, proprietary product in some field from software to pharmaceuticals to power systems.
Well, for an open-source fanatic, surely it'd ideally be up to the recipient whether they want the mechanically produced JavaScript or the source Java and they could alter either one.
I don't see the difference here between getting C code and compiling it to object code and getting Java code and compiling it to JavaScript code. If I want to distribute to you a program that runs in a JavaScript VM but only because it was transformed into that from Java, Perl, Python, C, Lisp, or whatever, I'd have a link on my site for you to download the source. You could then compile it and put that in place in your browser's cache.
I use local versions of JavaScript sometimes with Firebug, but it's not exactly the interface to use for casual browsing. I like his idea to make it a browser feature with a good UI.
As for sites that allow custom JavaScript, I can think of one example from the top of my head that actually stores the user's custom JavaScript code and sends it back out, possibly with a reference to a remote script from elsewhere. That site is Perlmonks, and the mechanism used there is a "free nodelet" that gives a user a sidebar to hold pretty much any content up to a certain size that they see as part of the sidebar nodelets when they are logged in. Lots of members of the site have JavaScript in their free nodelet that enhances the site for them in some way without imposing it site-wide for all users. You can even see in the PerlMonks Discussion section (and sometimes other sections) posts where the members share their work with others with "Free Nodelet Hack" in the title. Here's a sample.
You wouldn't have to have a dynamically generated site. Just having class and id attributes for certain entities goes a long way toward letting JavaScript manipulate them easily through the DOM. It helps if those attributes are consistent, meaningful, and infrequently changed.
A separate download link for the original sources would only be used by people wanting to make changes, or that are at least curious. You wouldn't have to run the production site off the original sources to make those available.
To be fair, there are already many BSD-licensed (or BSD re-licensed as GPL) tools released in the typical Linux distribution, too. Pretty soon it gets to be GNU/BSD/CFFL/CC-SA/PD/Apache/MIT Linux if proper credit is given to everyone in the name. I'd prefer to just call it Linux and give people credit in the CREDITS files, in the copyright docs, in the FAQs, and everywhere else there's already information about the origins of the tools.
It's possible to use the Linux kernel with uClibc which is GPL licensed but is not AFAIK an FSF/GNU project. In fact that's what uClibc was intended to do: replace glibc for embedded Linux.
It's also possible, with some work, to get the Linux kernel compiled with a C compiler other than gcc.
Lots of command-line tools and X applications can be had that are BSD or otherwise licensed rather than the GNU tools. X.org itself is X licensed. KDE is pretty popular and is not a GNU project. Other window managers besides GNOME and KDE exist, too. Mozilla has their own license. The text editors and office suites are not all GNU software.
I'm not sure taking out the GNU parts just because some people think GNU is more important than all the other projects that combine in a distro is worthwhile, but I agree it sure is tempting.
You are using software which uses Berkeley sockets, from the BSD project, to communicate with others over the Internet. Either the code is from BSD or it has been written to be compatible with BSD sockets. Very little software in the world speaks TCP/IP that doesn't use Berkeley sockets to do so.
If you are using a closed-source browser other than Opera, you're using one based on the open-source Mosaic or Mozilla browsers, or on the open-source KHTML or WebKit (which itself is based on KHTML). The very first web browser and the very first graphical web browser were both open source. The very first browser was called WorldWideWeb (and later Nexus to avoid confusion with "The Web" as a whole), and Tim Berners-Lee released it into the public domain in 1993. All web browsers are knockoffs of an open source project, some more directly than others.
You are using a site which is written in a language which has always been open with language tools that have always been open (that language is Perl, by the way, and any commercial Perl distribution you've seen is a copy of the open one).
The code for the Slashdot site itself is open. Although some changes may be different between the version control system and the exact code this site runs at any given moment, an open-source version of the codebase exists over at Slashcode.com for your enjoyment or use.
The site is served by use of an open-source web server called Apache. Perhaps you've heard of it. The original web server was also open-source software, and was called CERN HTTPd. CERN HTTPd was adopted by the W3C as W3C HTTPd and has sicne been supplanted by the open-source web server Jigsaw. All web servers are clones of an open-source project.
Any version of Emacs you might use, including any of the commercial Emacs clones that are proprietary and closed-source, are based on the open-source Emacs written by none other than RMS.
Most of the first games for computers had freely available source, and some of them are still available. That's a whole market in which the closed-source people were not the first movers.
That's a separate issue and is being handled as a separate issue in separate statements, just as his writeup says.
What's wrong with using your own custom version of a site's JavaScript code to interact with the site? His writeup just asks for a couple of technical features to make that easier. The ethics of whether or not to use a website that doesn't allow you to alter their JavaScript through a restrictive license is only barely mentioned.
The client-side code could just as easily be saved to your local drive and loaded from your local drive into your browser as downloaded (or loaded unchanged from cache) every time you visit a page. You local copy could then be altered to better suit your needs, so long as it's still compatible with what the server is doing or is independent of the server. This can be done now, but browsers don't support doing it easily.
What Stallman wants in this case boils down to two things as I read it. First, he wants a standard way to mark the license of the program that's easy to discern both visually and in software so you'll know what license you have to the software and the browser can inform you of that automatically. He also wants an easy way for every piece of client-side code a web page uses to be easily replaceable with your own local version from your own local disk. Right now, you can grab the JavaScript from a page and alter it, but without some work you're still going to be running the publisher's version when you're on their site. He wants some way to specify that the JavaScript that was loaded from, for example 'http://www.foo.com/js/some-script.js', instead gets loaded from your customized local version so you can interact with the web app with your changes in place.
Personally, I think he's got a good idea there. I'm no RMS fanatic, but I do like to be able to alter the software I run to suit me, and I like the GPL (and BSD, CC-SA, and some other licenses) for that reason.
He just wants a couple of technical features built into the OSS browsers to support loading custom client-side code and for you to more easily know which license the code is under. I think this is much easier to accept than some of the more drastic position statements out of the FSF. It really can benefit anyone who prefers any of the Open Source licenses, and not just what the FSF calls Free Software under the GPL.
User data is always important. The application programmer who thinks otherwise is a jackass.
The problem here, as I said in #27299479 to yakovlev, is that people are expecting the atomic rename not to interrupt the non-atomic file write. Non-atomic means specifically that it can be interrupted. That's why fsync() exists in the first place -- to block until the write is finished because the write is not atomic.
How to handle this is to rename the file first. Then, open a new file with the original file name. Then, write to the file. Then, close the file. If the file data is lost, the old data is in the backup made with the atomic rename. If the new config file is invalid, the program can automatically check for the most recent valid backup. Pruning of old config backups could even be configurable, but one to three is probably enough and most people won't care how many old versions of their config is saved for most programs.
Sure there's a way to say you want the old data or the new. Rename the existing config file to a backup name first. Then open a new file with the old config file name, write to it, and close it. If there's a crash after the rename, you still have a backup of the original from which to restore. If you find your config file is mangled, empty, or otherwise invalid, restore it by copying from the most recent backup.
Always put the atomic portion first. It can't be interrupted, because that's what "atomic" means. The non-atomic part of the procedure is getting interrupted by the atomic part in the applications this is affecting. The atomic part won't be interrupted by the non-atomic part.
Yeah. You're right, but a desktop PC is probably not running two dual-core Opterons. It could be, but most 2 CPU by 2 core x86 systems one would find on a desktop rather than in a server rack will be Xeons. Those still use a common front-side bus with an external memory controller and are definitely SMP.
Pentium100's situation may not be your average desktop, but NUMA-awareness is not as important for most people right now as the post might make seem. I made the mistake of using the generic "you" where it could be taken to be the specific "you". Pentium100's desktop probably is NUMA, since the post shows familiarity with the topic. People reading it don't necessarily have NUMA systems just because they have a similar number of processors.
The Core i7 is indeed NUMA when in multi-socket systems, BTW. Still, at the present moment, most dual-socket motherboards are not Core i7 nor Opteron boards.
If the compute-bound program has places where it isn't relying on earlier result, it can be made parallel. If you have multiple inputs and outputs and actually process them through different hardware paths, those can be made parallel.
See GPUs and SIMD instructions for the former and channel bonding networks or RAID controllers for drives for the latter.
So let the office workers keep the two-core machines. I'll take the 8-core machine since I'm not doing just word processing and spreadsheets.
BTW, complex spreadsheets are actually an ideal application to break into parallel execution if there aren't too many dependencies in the functions. A slower and more power-efficient multi-core processor could update all the cells in many spreadsheets just as fast as a faster single-core one.
No, no, no! With 32 bits vs. 64 bits, it's not the car that gets bigger. It's the bus!
Anyone really concerned with performance shouldn't have just one drive. Even on a desktop, it makes sense to have one drive for the applications and one for the OS, with the data on one or the other. Having one each for OS, apps, and data makes sense, or having three in RAID 5 for that matter.
This machine has four hard drives, and is data heavy. There's one drive with one partition each for the OS, the distro's applications, swap space, and my separately tracked applications. Then there's the data store, which is a three-disk RAID 5 array. That holds my application data, my important documents, my work projects, and my backups (which then get burned to DVD and stored both on-site and off-site in fire-rated safes, BTW).
Currently it's all spinning disk technology, but if you've been keeping track of SSD performance the last few weeks, you know that using an Intel X25 or an OCZ Vertex for part of the storage system could speed things up quite a bit. With an SSD (a good one, anyway), random reads are about as fast as sequential reads. Sequential writes are blazing fast, too. Random writes can be a problem area, but on a drive with a good controller they're still faster than a really nice rotating drive. Only the Velociraptor even competes with the better SSDs even on their weak points.
How many "average" users do you figure are using Slashdot right now? Sure, their browsers might not need a lot of cores each, but do you think Slashdot itself is on a single-core machine at someone's desk? As more stuff gets done via centralized online applications, more people will be using multi-core systems and even clusters. They'll just be using them indirectly.
If you're running a dual-socket, 4-core x86 PC then you're probably using SMP, not NUMA. In SMP, all the processors see all the memory and it's the same cost for any processor to read or write any memory location. NUMA means Non-uniform memory architecture, which means either not all the processors see all the memory or that some of the memory is faster for each processor than the rest of the memory is.
This is indeed true on a general-purpose desktop most of the time. There are many server and workstation tasks, though, that ca take as many cores as you can throw at them.
A web server, application middlware server, or database server will often run multiple single-threaded programs at once rather than running one huge multi-threaded application.
People who say that you must have multi-threaded applications to use multiple cores are either incompetent or are looking at a very narrow section of the industry. Not everyone runs a single foreground process with just a virus scanner in the background. An SMP or NUMA server with a hundred application instances running isn't going to run all of them on the first four cores and ignore the rest.
Some scheduling changes may be necessary to make doling the work out to really big number of cores, like 128, 256, or 512 work really well, but Linux is already run on HPC clusters much larger than that and Windows HPC is supposed to be capable of it, too.
I did double the quote. I figured $4400 was pretty fair for something advertised at $2200. If that's still lowballing the bandwidth and the DS-3 lines should be $8800 apiece, then $50 a month would only be good for 2 Mbps service. That sucks, but those are the breaks.
Way back (in Internet time) in 2001, we paid $3500 a month for our burstable 6 Mbps to 45 Mbps DS-3 with a guarantee it'd never go above $9,000 a month from bursting. It was actually muxed out to a DS-3 in our building. It rode into the primary demarcation point on an OC-3, and was broken into multiple secondary demarcs for multiple customers in the same complex.
I was sort of assuming that prices had gone down somewhat, but if they're really the only alternative to dial-up and satellite (which is probably not true, because the telco probably offers ISDN 128 with guaranteed bandwidth and latency to the ISP and an SLA for $45 a month and the dialup ISP probably charges $30 a month for use of two ports, but anyway...) then their pricing might be regionally higher due to reduced existing build-out in their area.
Still, at $10,000 a month for one DS-3, 20% typical port usage and only 3 times oversell on bandwidth (keeping in mind that web browsing, IM, checking email, etc are all sporadic activities) you're looking at 1.6875 Mbps per customer which is better than DS-1 speed. That's half the revenue of a $50 a month package for 400 customers brings in.
The cable company is more likely charging $60 or $70 per month, anyway. There's no reason they can't afford to sell at a 15:1 or 20:1 or definitely 25:1 oversell on bandwidth. That way the customer would get closer to what's advertised than at 70:1 for sure.
How TF are you getting RAID-10, which requires 4 drives, out of two drives? I'm guessing you mean RAID-0 built around two drives. Maybe you have something funky like RAID-10 built from four partitions on two drives, but that makes your redundancy moot.
Pellet hopper boilers are pretty convenient and fairly clean. Many of them can run off of LP or natural gas between fillings with pellets, too.
If you can make ethanol from cellulose, which corn cobs, corn husks, and corn stalks are mostly made of, the corn kernels (which aren't a very good source of sugar anyway compared to sugar cane) could easily be used for food even as the rest of the plant was used for ethanol.
Oh, come on. The Palestinians should have a place to call home. I suggest Syria or Iran. ;-)
You need to consider the number of gasoline engines that would need to be replaced with diesel engines. All that milled metal isn't being produced without energy inputs. Even recycling a gasoline engine to make a diesel one will take energy.
Ethanol burns in gasoline engines, and only minor tweaks are needed to secure the gaskets (rubber and alcohol don't mix) and to adjust the mixture with air (which can be done in the computer on many models, and sometimes requires a new air or fuel rate sensor or such).