An election system is verifiable if the results of the election can be verified by counting the unalterable voter-verified records of the votes that were cast in that election.
There is only one reason why any official might oppose requiring all elections systems to be verifiable. That reason is: That official wants to rig future elections.
Those officials should be tried for treason and shot.
There is exactly one way to stop spam that will be effective. We just have to make it non-economic. That is, the cost of sending a spam email must be greater than the expected value of sending it. This implies that the cost of sending a spam email must be greater than zero.
Suppose each ISP were to limit the number of emails that could be sent by a subscriber account in one month. A monthly ISP subscription might include sending a few thousand emails. If the subscriber wants to send more, he/she could pay more money to the ISP for a higher subscription level. If port 25 is also blocked at the routers, then the ISP can effectively limit the number of emails that one subscriber may send "for free".
The carrier interfaces are more complicated, but the same principles apply. Each ISP should pay the other ISPs according to how many emails it sends. When two ISPs, X and Y, exchange emails, the number sent (X->Y) and the number in the reverse direction (Y->X) are usually roughly even. If the two ISPs each pay the other according to how many emails they each send via the other, the net of the two invoices will be small in most cases. An occasional large settlement invoice would give the offending ISP an incentive to find and shut down the spammers among its own subscribers. While there are lots of details to be worked out, the basic mechanisms of carrier settlement is well understood in the telecom industry.
The key concept is that email should not be free. The cost of email should be paid by the sender. By including some number of emails in the monthly ISP subscription, the cost to the average consumer or small business can be negligible. The businesses that use lots of email will have some costs, but will also obtain benefits, because employees will spend less time reading/deleting the spam.
If the cost of sending a million spam emails exceeds the profit that is expected from sending them, the worst of the spammers can be effectively shut down. Advertising will continue to exist, of course, at almost any price point. It will just be more targeted, like snail mail. I don't mind a few targeted direct-mail pieces most days, as long as they really are targeted, and there are only a few of them.
As a Ph.D. in Computer Science, with an undergraduate degree in Mathematics, I have always found it amusing that the math courses that the math professors call "non-applied" are the ones that are actually useful.
"Non-Applied" mathematics courses include: set theory, logic, abstract algebra, language & automata theory, graph theory, category theory, computability and complexity, and even combinatorics. All of these are very useful in computer science. Indeed, these subjects form the core of computer science.
The "Applied" mathematics courses include: calculus, differential equations, etc. These are nearly useless in computer science. They are really only useful if the particular application requirement is to solve such problems.
There are a few subjects that are useful in every field, such as Statistics. But even there, my undergrad department offered two versions of the course. An "applied statistics" course for engineering and science majors, and a "nonapplied statistics" course for math majors.
The only practical way to get honest elections with computerized equipment is to require that all the code be open and visible to the public. Anything less is a guarantee of dishonest elections.
Let me fix that for you:
The only practical way to get honest elections with computerized equipment is to print ballot on paper and count the votes by hand in front of witnesses from all parties. Anything less is a guarantee of dishonest electios.
The number of people who are willing to discuss particular designs, before settling on requirements, is astounding. To produce a reliable system, it is essential to have firm requirements before starting the design.
In voting systems, in particular, many people seem to jump to hi-tech designs, without even discussing the requirements for the system. It is as if the requireent to "count the votes" is so simple and obvious that it need not be discussed. I think there are some other requirements.
I propose that any voting system must have verifiability as a basic requirement. Correctness of elections must be verifiable. It should not be necessary to trust anyone or anything. Every part of the process should be verifiable, and, average people must be able to do the verfication. Each voter must be able to verify that his/her vote is correctly recorded. Each voter must be able to verify that his/her vote is included in the total. Everyone who wants to, including representatives from each party/candidate, must be able to verify that every ballot is counted, that no extra ballots are counted, and the counts are correct.
The problem with all of the high-tech stuff is that it takes people with graduate degreees to verify that the computer is programmed correctly, and that the correctness propery is maintained. Average people are not capable of verifying that the computer software recorded and counted their votes correctly. And, average people are not capabable of verifying that the computer recorded exactly those votes that were actually cast, no more and no less. Every high-tech voting machine design depends on a host of hard technologies, so average people cannot understand them well enough to verify correctness of the design. Hence, no high-tech voting system can possibly meet the first requirement: that average people can verify that their votes are counted correctly.
Simple, paper-based systems can be verified by average people.
If each voter records his vote(s) on paper ballots, and verifies the ballot before depositing the ballot into a locked box, it is very easy for average people to verify that their votes are recorded and counted. Security of locked steel boxes is well understood by average people. Average people, including representatives of each party/candidate, can stand watch over the steel box all the way through the process.
In contrast, computer based DRM-style voting systems cannot be verified in any meaningful sense. (Computers and printers can be used to produce ballots and mark ballots without needing to be secure or verified. If a ballot is incorrectly marked, the human voter can reject it and mark another one. And, scanners can be used for counting if hand recounting is routinely done to verify the results from the scanners. In both of those operations, the results are verifiable by average people with no special expertise.)
I have a Ph.D. in Computer Science and 25 years experience in programming. I don't trust machines. I know that almost every program contains bugs, even if the programmers are trustworthy. And, I know that some programmers are not trustworthy. Because trust is not possible, elections cannot depend on trust. Elections must be verifiable by average people.
It isn't about accuracy or security. It is about verifiability. We shouldn't have to trust the accuracy or security of the system, or of the programmers or administrators. Anyone who wants to should be able to verify everything in the process, from start to finish.
Each voter should be able to verify that his/her vote is correctly recorded by inspecting the record of that vote. The physical media on which each vote is recorded must be such that it cannot be altered after the vote is recorded. A verifiable chain of custody must be maintained from the time each vote is cast until after all counting and verifying is complete. After the voting, each interested person should be able to verify that the votes have been correctly counted, again by inspecting the media. And, those inspections must not require any mechanism that most people cannot personally verify. Hence, the media must be such that it can be inspected directly using only the unaided human eye. Finally, the media must be of a familiar type, so that even stupid people are able to verify that their votes are correctly recorded.
That one requirement, for verifiability, pretty much rules out every proposed voting method except "paper ballots".
Do you understand that warrantless searches were one of the things the Revolutionaries were pissed off about when they started the Revolution in the first place??? Do you know ANY of the history behind WHY we require warrants?
The American Revolution was not the first revolution in history, nor was it the last. The people of various nations have revolted against tyranical government many times. I expect there will eventually be another revolution in the United States. The "Republican" party that presently holds power in the USA seems to want that to happen sooner rather than later.
We should also have learned another lesson from history. A tyranical government cannot successfully control the entire population. If an person becomes mad enough, he or she may do some act of violence against the government. If a sufficient number of people do so, the government cannot stand. That's what revolutions are made of -- just a number of people who decide that they can no longer tolerate the tyrannical government.
The beauty of democratic elections is that a goverment can be thrown out of power without bloodshed. As long as the elections are honest and fair, and each government yeilds power to the next elected government, then a bloody revolution is not necessary.
But, if the election is not honest and fair, then a bloody revolution becomes necessary.
This, more than anything else, is what worries me about our paperless "voting" systems. I believe that our recent elections have not been honest or fair. There is no prospect that the people in power will voluntarily make the elections honest and fair, because they would lose power by doing so. If a large number of people realize that their votes are not really being counted, they may actually start the next revolution.
The only way to avoid bloody revolution is to make the election process completely transparant, so everyone can watch the counting, and everyone can see that the process really is honest and fair.
Actually, it matters a great deal whether or not the election is actually rigged.
In every election, there is a huge amount of money at stake. An elected official can control the spending of billions of dollars. So there is a huge incentive to rig elections.
Hence, if there is any possible way that the voting can be rigged, we can be sure that is is rigged.
There is no such thing as a random telephone poll.
Here's a statistic for you, 100% of people polled by telephone said they were "willing to participate in telephone polls"!
Here's another statistic for you: 100% of those people were also "willing to have the call recorded"!
So, the only people who were asked if the approved of the NSA recording phone calls were the people who were both willing to have the phone call recorded, and willing to participate in a telephone poll. The people who objected to having the phone call recorded were not asked the third question.
This isn't funny. It is just an abuse of statistics.
We use white boards for brainstorming sessions, almost every day. Then, we use a digital camera to capture the image into our documentation. Many of our software requirements and design documents have embedded pictures, which are mostly produced with digital cameras from whiteboard drawings.
We used to use a regular digital camera, and just keep one in each conference room. But they kept growing legs, getting misplaced, needing batteries, or just malfunctioning. Cameras that are owned by individuals have the advantage that the individual actually takes care of the thing, so it is much more likely to be available and work when it is needed.
The key to any tool is to use it appropriately. A camera can be misused, such as to transmit confidential material to a competitor. A camera can also be very useful, to record and communicate drawings within the company.
Banning cameras does not protect the confidential information, unless the organization also bans email, removable disks, printers, paper, and briefcases. Only two things are actually accomplished by banning any specific tool: It makes the organization less productive; And it tells the people that they are not trusted. Both effects are counter-productive.
Why would you want to antagonize a professor who will put grade on your transcript at the end of the term?
I have seen students fail a course for silly little things that they thought they knew better than the professor.
Class participation is one of those silly things. When you are busy typing, you are probably not actively thinking and responding. You think of it as taking notes. The professor thinks of it as a distraction.
Whether or not you agree is entirely beside the point. The real issue, at the end of the term, is that the professor writes the grades on the papers. Only a really foolish student would start a conflict with a professor over something petty. Humor him/her, even if the demands seem silly, at least until the 'A' is on the transcript.
"This for sale. $10 OBO."
The "or best offer" (OBO) feature of a sale offer has been common for a very long time. The patent in this case seems to be yet another example of a patent being issued for, "do on a computer."
As far as I can tell, the "little guys" software tends to be better in general than the big boys. Why?
Pointy-haired managers and bloated bureaucracies don't develop high quality software. They develop elaborate cost-minimization strategies that maximize buzzwords and increase fiefdoms. In the process, they invariably seem to squash talent and frustrate initiative.
Effective development of high quality software is a difficult art that requires knowledge, talent, commitment and desire. It is done by single developers, or small teams, in environments where talent and initiative are allowed to shine.
You must be able to prove that every valid vote was counted exactly once - no more, no less
You must also be able to prove that fake ballots cannot be injected into the system
You must finally be able to prove that valid votes cannot be deducted from the system for the required length of time
You missed a couple very important requirements:
You must be able to prove all of the above to the vast majority of ordinary people who:
know nothing about software
know even less about logic
do not trust computers
have a vague feeling that they've been cheated.
You must be able to prove all of the above to a jury of experts who:
know a lot about software
know a lot about logic, encryption, etc.
do not trust computer programmers
have been trained to assume the worst.
The only systems that can possibly meet those requirements involve paper, lock boxes, and dual (or higher) controls. The security controls need to be similar to the controls that banks use on their their large piles of cash.
After all, a pile of ballots is effectively a very large amout of cash. Whoever wins the election gets to spend the taxpayers money.
why should anyone be against a voting system where people know that their vote was counted?
The only people who are against rigging-proof voting systems are the people who stand to benefit from election rigging. And, of course, the people who have already benefited from election rigging, and want to benefit from rigging the next election, too.
That's what's so scary about election rigging. After one election is rigged, those are the people who get to run the next election.
The genius of democratic elections was that we could have a bloodless revolution. Whenever the party in power gets too corrupt, the voters just turn them out and vote someone else in. But, that only works if the elections are honestly run. When the part in power resorts to rigging elections to stay in power, then the possibility of a bloodless revolution is gone. Instead, a bloody revolution then becomes necessary. The only way to avoid that is to refrain from rigging elections.
The process should not be new. Use well-understood engineering principles and processes. (Specify/Design/Code/Verify, and iterate as needed) New processes invite shortcuts and misunderstanding.
For the verification and testing, also use well-understood engineering principles and processes. (Specifiy/Design/Code/Verify the tests!) The tests should be automated, so you can eaily repeat them.
Verify every verifiable thing, and design them to be verified.
Test every testable thing, and design them for testability.
Review, Verify, Review, Verify, absolutlely everything. Plan a huge fraction of your total budget for review and verification.
If you design in try..catch logic, or N-version programming, voting algorithms, or similar stuff, make sure you apply sound process and verification to each of the alternative codes... If you don't, it is very likely they will all be wrong. Be aware that added complexity only increases opportunities for errors. One correct algorithm is better than several incorrect algorithms.
Measure reliability, using test-case failure rates and frequencies, and review/verification findings, to know when you reach the required reliability.
Do not schedule any deliveries until the reliability measurement tells you it is almost ready to deliver. There is an old saying that goes something like "Feature, Schedule, Quality. Pick any two. You can't have all three." If you want very high quality, you cannot stick to a schedule.
As a Ph.D. and adjunct professor, I am always amused by discussions of cheating. Undergrads and Bachelors seem to think of cheating as if the only purpose of school is to put some grades on a transcript and get a job. In every such discussion, there are suggestions for better or more efficient ways to cheat. There seems to be little understanding of the ethical decision, and even less of the longer-term consequences.
The sad fact is that when you cheat, you are really only cheating yourself. If you do not gain the knowledge that is taught in a course, it is your loss. You paid for the course, and did not get the benefit (the knowledge) that was there for the taking.
The most important thing that you gain from a college education is learning skills. By learning a variety of subjects, you gradually develop skill at learning new things. Learning is the only professional skill that really matters during the longer term (20-40 years) of your career. If you don't develop skill at learning, your career will plateau or fail very early.
The other observation that many seem to miss is that the easiest way to get an 'A' in most courses is to actually read the text and learn the material. Reading most undergraduate computer-science textbooks only takes a few days, even if you are unfamiliar with the material. (The math books take a little longer, of course.) Then, if you actually know the material, writing a programming assignment normally only takes a few hours.
The fact that cheating seems to be common has had an effect on the courses, though. I now give exams. It is amazing how a 3-hour exam can separate the people who know the subject from those who don't. I try to design the test so that I can write it in about 10-15 minutes. The students who really learned the material usually write it in less than an hour, and thank me for the easy test on the way out. But some of the students take nearly the whole three hours, and turn in messy piles of disorganized scribbling. I almost don't have to grade the papers -- I could just note the time that each student turns in the test and leaves the room.
why the company's machines were even used in the first place.
Isn't it obvious? The minute he announced his very partisan feelings on the election, the Republican elections supervisors who wanted Republican voting machines immediately decided to use Diebold voting machines. At the same instant, some Democratic elections supervisors immediately decided that they would not use Diebold. Both decisions were based on the reasonable expectation that Diebold voting machines would be rigged to favor Republican candidates.
In a perfect world, of course, it would be up to the vendor to show that the machines are secure and accurate. But, in a political world, both the vendor and the elections supervisors really want machines that favor their own parties.
All of the research grants that supported that early development work were DARPA grants. All of that money came from the United States government. The US government could, properly, assert IP rights on the packet formats, most the source code, and most of the early RFCs. Sure, there were probably some grad students who wrote some of it without stipend. But the vast majority of that early work was supported research.
But that's not really the issue. The real issue is political. The USA has the capability to turn off DNS service for non-US domains, or for chunks if ip address space. Turning off DNS service to a country would seriously disrupt economic activity. That capability might not be a problem if they could trust the US government. The real, political issue is that they don't trust the US government.
Can't really say I blame them. I don't trust the current US government, either.
Throwing money at it might actually be the right solution. The National Flood Insurance program has just bought most of St. Louis.
The NFIP can forbid building any new structures or making major repairs to existing strucutures that are below a certain altitude. Tear down what's left and make it a national park of something. Build the new city farther inland, on higher land.
An election system is verifiable if the results of the election can be verified by counting the unalterable voter-verified records of the votes that were cast in that election.
There is only one reason why any official might oppose requiring all elections systems to be verifiable. That reason is: That official wants to rig future elections.
Those officials should be tried for treason and shot.
There is exactly one way to stop spam that will be effective. We just have to make it non-economic. That is, the cost of sending a spam email must be greater than the expected value of sending it. This implies that the cost of sending a spam email must be greater than zero.
Suppose each ISP were to limit the number of emails that could be sent by a subscriber account in one month. A monthly ISP subscription might include sending a few thousand emails. If the subscriber wants to send more, he/she could pay more money to the ISP for a higher subscription level. If port 25 is also blocked at the routers, then the ISP can effectively limit the number of emails that one subscriber may send "for free".
The carrier interfaces are more complicated, but the same principles apply. Each ISP should pay the other ISPs according to how many emails it sends. When two ISPs, X and Y, exchange emails, the number sent (X->Y) and the number in the reverse direction (Y->X) are usually roughly even. If the two ISPs each pay the other according to how many emails they each send via the other, the net of the two invoices will be small in most cases. An occasional large settlement invoice would give the offending ISP an incentive to find and shut down the spammers among its own subscribers. While there are lots of details to be worked out, the basic mechanisms of carrier settlement is well understood in the telecom industry.
The key concept is that email should not be free. The cost of email should be paid by the sender. By including some number of emails in the monthly ISP subscription, the cost to the average consumer or small business can be negligible. The businesses that use lots of email will have some costs, but will also obtain benefits, because employees will spend less time reading/deleting the spam.
If the cost of sending a million spam emails exceeds the profit that is expected from sending them, the worst of the spammers can be effectively shut down. Advertising will continue to exist, of course, at almost any price point. It will just be more targeted, like snail mail. I don't mind a few targeted direct-mail pieces most days, as long as they really are targeted, and there are only a few of them.
As a Ph.D. in Computer Science, with an undergraduate degree in Mathematics, I have always found it amusing that the math courses that the math professors call "non-applied" are the ones that are actually useful.
"Non-Applied" mathematics courses include: set theory, logic, abstract algebra, language & automata theory, graph theory, category theory, computability and complexity, and even combinatorics. All of these are very useful in computer science. Indeed, these subjects form the core of computer science.
The "Applied" mathematics courses include: calculus, differential equations, etc. These are nearly useless in computer science. They are really only useful if the particular application requirement is to solve such problems.
There are a few subjects that are useful in every field, such as Statistics. But even there, my undergrad department offered two versions of the course. An "applied statistics" course for engineering and science majors, and a "nonapplied statistics" course for math majors.
The only practical way to get honest elections with computerized equipment is to require that all the code be open and visible to the public. Anything less is a guarantee of dishonest elections.
Let me fix that for you:
The only practical way to get honest elections with computerized equipment is to print ballot on paper and count the votes by hand in front of witnesses from all parties. Anything less is a guarantee of dishonest electios.
Never attribute to stupidity that which is known to be due to malice.
The number of people who are willing to discuss particular designs, before settling on requirements, is astounding. To produce a reliable system, it is essential to have firm requirements before starting the design. In voting systems, in particular, many people seem to jump to hi-tech designs, without even discussing the requirements for the system. It is as if the requireent to "count the votes" is so simple and obvious that it need not be discussed. I think there are some other requirements.
I propose that any voting system must have verifiability as a basic requirement. Correctness of elections must be verifiable. It should not be necessary to trust anyone or anything. Every part of the process should be verifiable, and, average people must be able to do the verfication. Each voter must be able to verify that his/her vote is correctly recorded. Each voter must be able to verify that his/her vote is included in the total. Everyone who wants to, including representatives from each party/candidate, must be able to verify that every ballot is counted, that no extra ballots are counted, and the counts are correct.
The problem with all of the high-tech stuff is that it takes people with graduate degreees to verify that the computer is programmed correctly, and that the correctness propery is maintained. Average people are not capable of verifying that the computer software recorded and counted their votes correctly. And, average people are not capabable of verifying that the computer recorded exactly those votes that were actually cast, no more and no less. Every high-tech voting machine design depends on a host of hard technologies, so average people cannot understand them well enough to verify correctness of the design. Hence, no high-tech voting system can possibly meet the first requirement: that average people can verify that their votes are counted correctly.
Simple, paper-based systems can be verified by average people. If each voter records his vote(s) on paper ballots, and verifies the ballot before depositing the ballot into a locked box, it is very easy for average people to verify that their votes are recorded and counted. Security of locked steel boxes is well understood by average people. Average people, including representatives of each party/candidate, can stand watch over the steel box all the way through the process.
In contrast, computer based DRM-style voting systems cannot be verified in any meaningful sense. (Computers and printers can be used to produce ballots and mark ballots without needing to be secure or verified. If a ballot is incorrectly marked, the human voter can reject it and mark another one. And, scanners can be used for counting if hand recounting is routinely done to verify the results from the scanners. In both of those operations, the results are verifiable by average people with no special expertise.)
I have a Ph.D. in Computer Science and 25 years experience in programming. I don't trust machines. I know that almost every program contains bugs, even if the programmers are trustworthy. And, I know that some programmers are not trustworthy. Because trust is not possible, elections cannot depend on trust. Elections must be verifiable by average people.
It isn't about accuracy or security. It is about verifiability. We shouldn't have to trust the accuracy or security of the system, or of the programmers or administrators. Anyone who wants to should be able to verify everything in the process, from start to finish.
Each voter should be able to verify that his/her vote is correctly recorded by inspecting the record of that vote. The physical media on which each vote is recorded must be such that it cannot be altered after the vote is recorded. A verifiable chain of custody must be maintained from the time each vote is cast until after all counting and verifying is complete. After the voting, each interested person should be able to verify that the votes have been correctly counted, again by inspecting the media. And, those inspections must not require any mechanism that most people cannot personally verify. Hence, the media must be such that it can be inspected directly using only the unaided human eye. Finally, the media must be of a familiar type, so that even stupid people are able to verify that their votes are correctly recorded.
That one requirement, for verifiability, pretty much rules out every proposed voting method except "paper ballots".
The American Revolution was not the first revolution in history, nor was it the last. The people of various nations have revolted against tyranical government many times. I expect there will eventually be another revolution in the United States. The "Republican" party that presently holds power in the USA seems to want that to happen sooner rather than later.
We should also have learned another lesson from history. A tyranical government cannot successfully control the entire population. If an person becomes mad enough, he or she may do some act of violence against the government. If a sufficient number of people do so, the government cannot stand. That's what revolutions are made of -- just a number of people who decide that they can no longer tolerate the tyrannical government.
The beauty of democratic elections is that a goverment can be thrown out of power without bloodshed. As long as the elections are honest and fair, and each government yeilds power to the next elected government, then a bloody revolution is not necessary.
But, if the election is not honest and fair, then a bloody revolution becomes necessary.
This, more than anything else, is what worries me about our paperless "voting" systems. I believe that our recent elections have not been honest or fair. There is no prospect that the people in power will voluntarily make the elections honest and fair, because they would lose power by doing so. If a large number of people realize that their votes are not really being counted, they may actually start the next revolution.
The only way to avoid bloody revolution is to make the election process completely transparant, so everyone can watch the counting, and everyone can see that the process really is honest and fair.
There is only one possible reason for using computers in elections: Using computers to run elections makes it easy to rig elections.
Actually, it matters a great deal whether or not the election is actually rigged. In every election, there is a huge amount of money at stake. An elected official can control the spending of billions of dollars. So there is a huge incentive to rig elections. Hence, if there is any possible way that the voting can be rigged, we can be sure that is is rigged.
Here's a statistic for you, 100% of people polled by telephone said they were "willing to participate in telephone polls"!
Here's another statistic for you: 100% of those people were also "willing to have the call recorded"!
So, the only people who were asked if the approved of the NSA recording phone calls were the people who were both willing to have the phone call recorded, and willing to participate in a telephone poll. The people who objected to having the phone call recorded were not asked the third question.
This isn't funny. It is just an abuse of statistics.
Something like 25 years ago, M$ came up with an innovative business plan: "Absorb and Extend."
We used to use a regular digital camera, and just keep one in each conference room. But they kept growing legs, getting misplaced, needing batteries, or just malfunctioning. Cameras that are owned by individuals have the advantage that the individual actually takes care of the thing, so it is much more likely to be available and work when it is needed.
The key to any tool is to use it appropriately. A camera can be misused, such as to transmit confidential material to a competitor. A camera can also be very useful, to record and communicate drawings within the company.
Banning cameras does not protect the confidential information, unless the organization also bans email, removable disks, printers, paper, and briefcases. Only two things are actually accomplished by banning any specific tool: It makes the organization less productive; And it tells the people that they are not trusted. Both effects are counter-productive.
Google replies to ATT, "If you want ATT subscribers to be able to access Google.com, you have to pay us $X,000".
I have seen students fail a course for silly little things that they thought they knew better than the professor. Class participation is one of those silly things. When you are busy typing, you are probably not actively thinking and responding. You think of it as taking notes. The professor thinks of it as a distraction.
Whether or not you agree is entirely beside the point. The real issue, at the end of the term, is that the professor writes the grades on the papers. Only a really foolish student would start a conflict with a professor over something petty. Humor him/her, even if the demands seem silly, at least until the 'A' is on the transcript.
"This for sale. $10 OBO." The "or best offer" (OBO) feature of a sale offer has been common for a very long time. The patent in this case seems to be yet another example of a patent being issued for, "do on a computer."
Pointy-haired managers and bloated bureaucracies don't develop high quality software. They develop elaborate cost-minimization strategies that maximize buzzwords and increase fiefdoms. In the process, they invariably seem to squash talent and frustrate initiative.
Effective development of high quality software is a difficult art that requires knowledge, talent, commitment and desire. It is done by single developers, or small teams, in environments where talent and initiative are allowed to shine.
You missed a couple very important requirements:
The only systems that can possibly meet those requirements involve paper, lock boxes, and dual (or higher) controls. The security controls need to be similar to the controls that banks use on their their large piles of cash.
After all, a pile of ballots is effectively a very large amout of cash. Whoever wins the election gets to spend the taxpayers money.
The only people who are against rigging-proof voting systems are the people who stand to benefit from election rigging. And, of course, the people who have already benefited from election rigging, and want to benefit from rigging the next election, too.
That's what's so scary about election rigging. After one election is rigged, those are the people who get to run the next election.
The genius of democratic elections was that we could have a bloodless revolution. Whenever the party in power gets too corrupt, the voters just turn them out and vote someone else in. But, that only works if the elections are honestly run. When the part in power resorts to rigging elections to stay in power, then the possibility of a bloodless revolution is gone. Instead, a bloody revolution then becomes necessary. The only way to avoid that is to refrain from rigging elections.
The process should not be new. Use well-understood engineering principles and processes. (Specify/Design/Code/Verify, and iterate as needed) New processes invite shortcuts and misunderstanding.
For the verification and testing, also use well-understood engineering principles and processes. (Specifiy/Design/Code/Verify the tests!) The tests should be automated, so you can eaily repeat them.
Verify every verifiable thing, and design them to be verified. Test every testable thing, and design them for testability. Review, Verify, Review, Verify, absolutlely everything. Plan a huge fraction of your total budget for review and verification.
If you design in try..catch logic, or N-version programming, voting algorithms, or similar stuff, make sure you apply sound process and verification to each of the alternative codes... If you don't, it is very likely they will all be wrong. Be aware that added complexity only increases opportunities for errors. One correct algorithm is better than several incorrect algorithms.
Measure reliability, using test-case failure rates and frequencies, and review/verification findings, to know when you reach the required reliability.
Do not schedule any deliveries until the reliability measurement tells you it is almost ready to deliver. There is an old saying that goes something like "Feature, Schedule, Quality. Pick any two. You can't have all three." If you want very high quality, you cannot stick to a schedule.
There really are no shortcuts.
The sad fact is that when you cheat, you are really only cheating yourself. If you do not gain the knowledge that is taught in a course, it is your loss. You paid for the course, and did not get the benefit (the knowledge) that was there for the taking.
The most important thing that you gain from a college education is learning skills. By learning a variety of subjects, you gradually develop skill at learning new things. Learning is the only professional skill that really matters during the longer term (20-40 years) of your career. If you don't develop skill at learning, your career will plateau or fail very early.
The other observation that many seem to miss is that the easiest way to get an 'A' in most courses is to actually read the text and learn the material. Reading most undergraduate computer-science textbooks only takes a few days, even if you are unfamiliar with the material. (The math books take a little longer, of course.) Then, if you actually know the material, writing a programming assignment normally only takes a few hours.
The fact that cheating seems to be common has had an effect on the courses, though. I now give exams. It is amazing how a 3-hour exam can separate the people who know the subject from those who don't. I try to design the test so that I can write it in about 10-15 minutes. The students who really learned the material usually write it in less than an hour, and thank me for the easy test on the way out. But some of the students take nearly the whole three hours, and turn in messy piles of disorganized scribbling. I almost don't have to grade the papers -- I could just note the time that each student turns in the test and leaves the room.
Isn't it obvious? The minute he announced his very partisan feelings on the election, the Republican elections supervisors who wanted Republican voting machines immediately decided to use Diebold voting machines. At the same instant, some Democratic elections supervisors immediately decided that they would not use Diebold. Both decisions were based on the reasonable expectation that Diebold voting machines would be rigged to favor Republican candidates.
In a perfect world, of course, it would be up to the vendor to show that the machines are secure and accurate. But, in a political world, both the vendor and the elections supervisors really want machines that favor their own parties.
There are, indeed, airplanes that do use horizontal propellers. They are called helicopters
But that's not really the issue. The real issue is political. The USA has the capability to turn off DNS service for non-US domains, or for chunks if ip address space. Turning off DNS service to a country would seriously disrupt economic activity. That capability might not be a problem if they could trust the US government. The real, political issue is that they don't trust the US government.
Can't really say I blame them. I don't trust the current US government, either.
Throwing money at it might actually be the right solution. The National Flood Insurance program has just bought most of St. Louis. The NFIP can forbid building any new structures or making major repairs to existing strucutures that are below a certain altitude. Tear down what's left and make it a national park of something. Build the new city farther inland, on higher land.