I've seen and read of schools investing millions in computers with no tangible results in students' scores, grades, or even elevated interests in learning.
That's because instead of investing millions in computers they should be investing millions in education. Remember: The XO is not a laptop, it is an educational tool.
The big problem is actually teaching something at all, ever, no matter the tools selected for education.
Exactly. If Dvorak doesn't like the idea of sending a truckload of XO's, perhaps he should suggest some other educational gift.
I'll have to ask if anyone's tried installing X, which would probably be insane, but it would be interesting at least.
It runs X.
Look, quit wasting your time asking questions and do something for yourself. Grab your favorite virtualization software (such as VMware), download a copy of the XO disk image, (or the Live CD) and see for yourself.
The City Council has not yet approved the funding. The rugged, waterproof computers will be distributed to students on April 15, Langford said, and children will be allowed to take them home.
I'm planning to have XO's in the hands of every student at my school (Oak Hill Academy; central North Carolina) outfitted by the end of this year.
I might buy that Birmingham will be doing the first large scale public school deployment (Go Birmingham!!) in the U. S. but not the first U. S. students.
You mean as opposed to wholesale? I bought them from the OLPC G1G1 program under the same terms and conditions I would have expected from any vendor. Kinda a no-brainer since Intel simply doesn't have a comparable offering.
2. Is North America a target market for XO?
Education is the target market for the XO. Kids are the target market segment. The localization for North America is as complete as for any other geography where it will be introduced.
3. What are you going to do when one of those XO machines needs service or replacement?
<sarcasm>I'll do what the average North American computer buyer does when his computer breaks, gets infected with a virus, or becomes more than 3 years old; I'll toss it in the trash and hope that the heavy metals leach into water supply of some third world country rather than into my own municipal landfill.</sarcasm>
Or rather, I'll service what needs to be serviced and replace what needs to be replaced. Unlike most notebook computers offered at this price point, the XO is intended to be user-servicable by untrained technicians; the stated goal is to make it maintainable by the kids themselves. Contrast that with the common WinTel strategy of building boxes that require virus blockers and other ad-ons out of the box, where retailers complain if they can't sell an expected percentage of extended warranties, and where Customer Support is considered a Profit Center.
4. Why not go with the Asus Eee for the same price?
Oh, so now we're talking about ASUS? Okay. Because the Eee PC is designed to be a ultra-light-weight laptop computer and not an educational tool. It's not designed for kids. The target market for that device (and similar ones) is people who do most of their work on a desktop machine but want something portable for light-duty work. (For example, you can browse the average website like Slashdot on an 800x480 screen, but I doubt most people would consider it a full solution.)
And remember, for each of my students that gets an XO there's another student elsewhere also getting one; That same price you mention is buying two XO's. It takes a rather selfish mindset to think of it as a single device purchase.
I think you poorly served the students at your school. You saddled them with a machine that cannot play video or flash well....
I guess there's a reason why I was placed in charge of making that decision instead of you. I don't think the XO's will play Halflife; I'm not too worried about that. They also might not be the best choice for watching YouTube videos, shopping at Amazon, etc. I can't say I'm heartbroken. They interact with each other perfectly well; that meets the requirement.
...is not field upgradeable...
Translation: Billy doesn't have to worry about being left behind just because Bobby has a newer device.
I long ago got wise to the 'upgrade treadmill' electronics manufacturers have North American consumers addicted to. I refuse to participate. I'm fully expecting the now-plus-three-years version of the XO to be fully compatible with the ones I'm getting.
...cannot plug into a larger monitor...
WTF? Is that the best you've got?
...and has a very short warranty.
Warranties are for consumers.
Your opinion seems to be based on how well you think the XO would serve to allow a student to join your world. Your analysis is incorrect. The XO's will allow my students to create a world of their own.
Further, as I've said before, there is nothing preventing you from getting the Classmate PC with Linux installed. It can even come pre-installed.
Perhaps you'd elaborate on this? When I approached Intel about obtaining Classmate PC for each student in the school I was working with:
They are not available for retail purchase.
North America is not their target market, and there are no plans to distribute there.
Meeting my budget/price point ($400 per student) would not be possible, as this does not include the cost for the mandatory additional infrastructure components I'd need to build a working solution.
So, instead, I went with the Give One Get One program to meet my needs and the $200/student tax write-off is just icing on the cake.
Now, if I can get my employer to provide a matching gift, I'll be set.
I have 2 copies of Vista running, one on my laptop and one on my desktop.
OEM or retail?
The only issue I've run into is that there isn't a 64 bit version of Flash, so I'm forced to use the 32 bit version of IE until Adobe release an update. This isn't really a Vista issue.
There was a time when the 'killer' complaint against Mac and Linux was the lack of applications. If the only issue with them is that Microsoft hasn't release a Mac/Linux version of Outlook, well thats not really a Mac/Linux issue.
Does it take too long for people to count the ballots?
A point well made, but not made nearly often enough.
People will complain that it's impossible to individually count ballots, by hand, on a single day, using nothing more than volunteer labor, despite the fact that they are all individually cast, by hand, on a single day, using nothing more than volunteer labor.
If you can SEE the code, you can verify what it says. It doesn't matter who wrote it.
You didn't even read the Ken Thompson link, did you? My patience with your unwillingness to learn is wearing thin.
Your first qbasic statement, "cls" means "clear-the-screen".
Are there any other statements in qbasic which mean "clear-the-screen"? Probably no other documented statements, but what about undocumented ones? Could the statement "A0000001" also mean "clear-the-screen"? What about A0000002? What about A0000001 followed by A0000002? Have you got time to test them all?
The gist of Thompson's paper is that a compiler/interpreter can be written to interpret any input as having any meaning. That's what they do. Which means one could be written to interpret A0000001 as meaning "clear-the-screen", and the source code which creates the compiler would not necessarily have to contain code statements which say "interpret A0000001 to mean 'clear-the-screen'". Instead, the compiler could interpret a statement like "interpret CLS to mean: clear-the-screen" as meaning "interpret CLS to mean: include code which interprets A0000001 followed by A0000002 as meaning clear-the-screen, and also include code to allow stealing of elections, and while you're at it, also interpret CLS to mean clear-the-screen, just so no one gets suspicious."
The upshot is that you can't even trust a compiler you wrote yourself if it was compiled to binary by someone elses compiler.
This is one of the things "professionals" know, and one of the reasons why "professionals" know it's so hard to make a simple, secure E-voting method.
Wrong. Especially if the code is open to review.
I'm going to hazard a guess that you have not spent the better part of a 20 year career performing software assurance testing on high availability systems. Your assertion that all code behavior can be discerned from a review of the source is incorrect. However, it's clear you are unwilling to accept that coming from me, and unwilling to accept the views of other "professionals", so I really have no choice but to leave you in your delusion.
the underlying software SHOULD be simple
One final freebie from years of experience. Whenever you find yourself using the word should you might want to think twice. "Should" essentially means "if reality acted like I want it to act". It is representative of wishful thinking, and it is less often an indication that the system is performing in a way contrary to how it was designed to respond and more often an indication that the system is performing in a way contrary to how you think it was designed to respond.
Too bad there isn't open-source software that can be used to compile code.
One of the things "professionals" know is that being able to see the source buys you nothing unless you have complete confidence in the person who wrote it. Let me once again recommend you read through Ken Thompson's classic Reflections on Trusting Trust to gain a better understanding of your faulty assumption.
I can buy a Dell, an IBM and an E-Machines PC, run that code on all of them, and ".
Let's presume, for the sake of this argument, that you meant to mention a collection of hardware which did not require different kernel-level drivers; in other words, hardware where you really could "run the same code on all of them". Let's further presume that you have found a way to create code which is provably 'correct'. Your argument fails because your requirements are incorrect.
The goal of such an electronic voting system would not be to be able to run the same code on all of them but rather to prevent code which is not the same from running on them.
We can create a test case which says something to the effect "If Candidate A is selected twice and Candidate B is selected 3 times, then the software result should be a win for Candidate B with a total of five votes cast, three for Candidate B and two for Candidate A.
We could then run this test case against software running on your selected hardware and verify the correct result. I think this is what you are meaning when you say "get the same results".
But how would you write a test case to verify something like "if the date is November 2nd and the time is between 8:30 AM and 4:30 PM and at least 2000 ballots have already been cast on this machine and the voter selects Candidate A, clears it, enters Candidate A again, clears it, enters Candidate B, clears it, taps the lower right hand corner of the touch screen 3 times within one second.....then the result should not reflect a transfer of 50% of all Candidate A votes over to Candidate B." A scenario like this is completely within the technical capability of anyone with moderate software skills to create, but beyond the capability of even the most advanced tester to verify.
In a nutshell, it is easy to verify it counts correctly, but impossible to verify that it doesn't count incorrectly.
And it's that "counting incorrectly" part that is unacceptable in a voting system.
I simple refuse to beleive that it is soooooo hard to make a 'trusted' system that adds 1+1 and gets 2.
"There is none so blind...." If you should decide that perhaps relaity is more important than you own personal beliefs, then feel free to rejoin the rational, scientific discussion parts of humanity are trying to have. Until then, though, I really haven't got the time to waste.
So, why is it so hard for the 'professionals' to make a simple, secure E-voting method???
Do you realize the output from sample interpreted code you provided cannot be trusted if the interpreter cannot be trusted? Compiled code is similarly only as trustable as the compiler. "Professionals" know that compilers cannot be trusted. Google for "Reflections on Trusting Trust" if you need more background.
Do you realize that a computer program will only produce consistent results as long as the hardware can be trusted, and that hardware cannot be verified as trustable? Have some fun browsing the RISKs forum if you want real-life examples of well funded, well meaning world-class professionals trying (and failing) to create reliable systems for such things as nuclear reactor control systems, missile guidance systems, flight control software, etc. And these people aren't, as a rule, facing well-funded and motivated human opponents trying to subvert their code. These are mostly stories about how Mother Nature outsmarts us without even trying.
Your argument is based on numbers without foundation, and doomsday predictions about what will happen 100 years from now.
The numbers are from the appendix of Jared Diamond's book Collapse which was mentioned on slashdot a while back.
But I'm interested to know which numbers you find disputable? That the doubling time for humans is between 20 and 50 years? That there are currently about 6 billion people alive on the planet? Maybe it's the 6 billion times the U.S. consumption rate multiplication bringing us to within 50% of the total available resources?
What's your figure? Ten percent? One percent? Maybe you prefer a more optimistic one-one-millionth of a percent? Okay, if we run the numbers that way, my statement becomes:
Next, if you multiply the average rate of resource consumption in the places you mentioned (U.S., Canada, Europe) by 6 billion you'll find we're within one-one-millionth of consuming everything this planet has to offer.
...which means instead of it being a problem within two generations, it will be a problem in about 30 generations. Those exponentials can sneak up on you awfully fast, no?
You will have to find a better argument if you are to tell people they cannot have 5 or 6 kids.
And I suppose you will need to find a better presenter when the reality strikes you as well.
Right, because you should be able to have a kid you cannot care for.
For millions of years that has been the way species propagate on this planet. There's only one notable exception to the rule of providing for your own genetic decendents and not caring about anybody elses; those darned humans.
But that makes my point: if you really want to live by the Law of the Jungle, then go ahead and have as many kids as you want, that's your right and laws be damned. But that also means you have no grounds for complaint when the rest of civil society allows your offspring to starve, or takes them away, or eats them. Dog-eat-dog, remember?
On the other hand, if you want to live in a civil society you can get the benefit of things like orphanages, food stamps, and charities. But there's a cost: you might have to abide by some rules, including not being selfish and putting your own desire for kids ahead of everyone else.
It is possible to write software with those constraints.
With all due respect, no, it isn't. I recommend the RISKs forum as essential reading for anyone working in technology.
For a problem of the complexity of electronic voting, it would be a lot cheaper to run paper ballots for the next hundred years or so than it would be to write provably correct distributed voting software (and hardware; there's no point verifying the software if you haven't verified the hardware it's running on, network protocols it's using to communicate, etc).
I agree on the paper ballots point, but when trying to understand a complex system, one must see how the system is behaving and not be distracted by how the system should be behaving.
I find it very curious that despite the simplicity of 'paper ballot' voting and the known problems with electronic voting, the system (our democratically elected government) still insists on favoring DRE's over paper ballots. Clearly there is a systemic behavior here we are failing to account for.
Which explains, if I can be forgiven, why I tend to jump hard on anyone who suggests that electronic balloting is good, or is feasible, or can be made feasible, or amounts to anything other than a distraction from the truth.
It's not about cheap, or convenient, or promoting economic concerns, or little-old-ladies fumbling with technology they can't understand. Electronic balloting has the potential to interfere with our ability to self-govern. And for that reason alone it should be beyond consideration.
It interferes with our number one objective: we must retake the cockpit.
The United States, Canada and most of Europe do not have to worry about overpopulation.
Do the math.
The doubling time (time it takes for a population to double in size) for humans is between 20 and 50 years.
There are already about 6 billion people alive on this planet.
Which means in somewhere between 20 and 50 years from now, there will be about 12 billion people alive on this planet (unless the population rate is constrained in some way). Add another 20 to 50 years, and we're at 24 billion. Turn the crank once more and we're at 50 billion.
Next, if you multiply the average rate of resource consumption in the places you mentioned (U.S., Canada, Europe) by 6 billion you'll find we're within 50% of consuming everything this planet has to offer.
We are within 1 to 2 generations of the point where it becomes impossible for everyone to live their life at the same standard of living we see in the U.S.
That's an important point you need to understand. Very soon now people who are not currently living at the U.S. level will realize they will never be allowed to. Maybe that's 100 years off, maybe 50, maybe 20. Maybe some people have already realized it today.
When we reach that point, the world will be divided into two basic classes: the enslavers who live a life of luxury, and the enslaved who subsist to serve them. Any you will not be a member of the former class.
Things might exist like that for centuries (historical precedents abound) with billions of people eeking out an existence while the elite consolidate more and more of the resources for their own use. Alternately, some sort of uprising against the elites could occur. But in either case, the resulting casualties from war, starvation, disease, etc. will likely be in the billions.
But there is another way.
Strong, personal measures to limit resource consumption in first world countries. This buys us time, but it means even the poverty-level people of the Western world might need to voluntarily restrict their consumption.
Strong, personal measures to limit population growth. This cuts-off the fuel of the population growth engine, but it does nothing to help us deal with the 6 billion people already living on this planet.
Those of us who are not impoverished need to become motivated to ensure those who are impoverished are brought-up to our level. This is not a charity or compassion thing; this is pure strategic reasoning. Those who are included in the system have a reason to help preserve it.
Identify predatory behavior, recognize it, and marginalize those who practice it. This is basic civil society thinking; if the community is threatened by predators, the individuals band together to fight the predators, even if that means some of the individuals have to sacrifice themselves for the good of the community.
What's this got to do with electronic voting machines?
Democracy evolved as a response to civil society under stress; a mechanism to ensure that the needs of the greater community are addressed even at the expense of the needs of the individual if necessary. Good times and steady growth tend to erode democracy. If everyone is getting rich, there's not as much concern that some may be getting rich faster. But as shown above this constant increase in resource consumption is not sustainable. That means there are inevitable bad times ahead.
If the impact of this resource exhaustion event is to be mitigated, then a strong, real democracy is essential.
For us, reading slashdot in 2007, it means the first priority has to be to retake the cockpit.
The chair of Diebold should have a bullet right in the FACE for treason against everything this country stands for, and most particularly DEMOCRACY.
But that wouldn't solve anything.
It's not a person causing these problems, it's a process. So even if you could pick-off the bad actors effortlessly, you'd just be watching new ones take their place.
Is the problem what Diebold (allegedly) did, or did we lose the ability to ensure our democracy long before electronics were even invented? If Diebold vanished tomorrow, would that somehow make all the other electronic voting machines unriggable?
And if democracy itself (as we've implemented it) is not resistant to corruption by that process, is it really the form of government we should be looking to preserve?
I don't particularly buy the argument that electronic voting is somehow more or less difficult to tamper with than paper voting.
You are flat wrong.
Electronic voting (registration and/or counting) is based on two premises:
The software does not contain bugs.
The software cannot be made to contain bugs.
I have yet to hear anyone support the claim that it is possible to hold a fair election with an electronic voting machine.
If you (or anyone) really can write software which meets the above two standards, I have a software (nuclear power control) job just waiting for you, name your price.
do you really want the government dictating the kids you can have?
You presume the choice is between having the government dictate to you and not being dictated to. Have you considered the reality that this planet cannot support unlimited growth, and that you might instead be faced with a choice between having the government dictate to you and having someone (or something) else dictate to you.
Would you rather live in a world where you and your significant other can get pregnant whenever you choose, but you only get to 'have a kid' if you can find some way to provide enough food to make the life sustainable? Such a wish smacks of elitism; in a let-them-eat-cake kinda way.
Or how about a world where your employer gets to decide?
I think we will definitely require compiler source per your first suggestion.
Actually, that wasn't my suggestion at all. Having the compiler source buys you nothing. See Reflections on Trusting Trust by Ken Thompson.
Have you thought about patches? Presume someone finds an exploit (defined any way you want) some 30 days before a major election. What do you do? Run un-patched boxes with known exploits? Run the design and QA teams ragged trying to push out a fix in time to get Federal certification and put the new code onto all the boxes everywhere? Do we get to see the source for the patches, too? What if there's a bug in the patch? (Now you're down to 5 days before that major election.)
And it doesn't buy you anything. The primary function of a election system is to convince the losers they really lost. Unless someone figures-out how to write bug free code, as well as how to prove the code is but-free, use of an electronic voting system as anything more than just an aid to producing a voter-verified, authoritative, ballot is a tactical error. A distraction. A sign that someone is doing extra work to make sure the simple solution is not the one selected.
Wouldn't you like to have the legal right to play with your county's chosen voting system?
Of course. But I'm not willing to buy that access in exchange for the right to ensure my vote is counted in a verifiable, democratic way.
Or were you implying that it's somehow indignant for a citizen to suggest that he should be allowed such access as a default right? Has our democracy really slipped so far that the citizens are forced to beg, borrow, steal, and compromise (not to mention learn Microsoft VisualBasic) just to ensure they have a change to cast a vote that cannot be arbitrarily stolen at the whim of some code monkey?
Now run the reverse thought experiment with me, if you will. Give me an election system requiring voter verified, authoritative, persistent ballots, marked in private and cast in public, with a mandate that the ballot box be publicly observable, and I'll wager your chances of 'rigging' such an election are no better than the chance of rigging a 'pen, paper, slot-top-box' election, even if the 'voting machines' are paid Party stooges in cardboard boxes.
Section 3, Paragraph 9(f)(3) requires voting machine vendors to also provide "Any vendor-authored proprietary binaries used in the compilation of source code for voting systems." meaning a vendor would be foolish to hide his exploit in the source code when it could be inserted by the compiler (which is exempt from source requirements) at compile time.
Section 3, Paragraph 9(h) provides "Each county shall make available for public inspection one sample of any voting system that is used to present one or more contests to voters. Any sample voting system inspected by the public may not be used in any public election." (emphasis added) ensuring the vendor must only provide but one clean system per county, need never fear that one system inserting fairness into a rigged election, and when the bugs are inevitably found in that one system, can claim it was inserted by a prior 'tester'.
and removes the requirement "Validating information must include proof that hardware and software certified for use is the same claimed to have been used."
I'll read this as having the correct sentiment, a flawed implementation, but ultimately useless because even though SB 1438 required a voter verified paper trail, it's not the authoritative record because "A paper record copy is not a ballot."
If you are concerned about the prospect of fraud via electronic voting machines, do not be distracted by the prospect of any law mandating source availability in the absence of a voter-verified paper trail.
Anyone who argues that (for whatever reason) a software-based voting system cannot function incorrectly must first argue that it does not function incorrectly.
Seasoned programmers will recognize this as just another form of the well known fallacy about producing bug-free software.
Do not be lulled into a false sense of security or progress by efforts to require electronic voting machine software to be available for public review. It's a good idea at best, harmless at worst, but ultimately irrelevant unless a voter-verified, persistent, and authoritative paper trail is already mandated.
It does not help my impression of Gore either to get the Inconvinient DVD that says "share this movie with your friends, while the movie starts with a $250,000 FBI threat against sharing the movie.
(emphasis added)
Only in a digital copy sense can sharing be related to copying. Perhaps you have a subconcious Internet Pirate predisposition? Or are you so cowed by Big Brother to believe that allowing someone else to view the movie in your presence is somehow illegal?
And the FBI copyright notice says nothing about sharing; it is concerned with the crime of copyright infringement.
That's because instead of investing millions in computers they should be investing millions in education. Remember: The XO is not a laptop, it is an educational tool.
Exactly. If Dvorak doesn't like the idea of sending a truckload of XO's, perhaps he should suggest some other educational gift.
And we should probably insert that famous quote by Amartya Sen:
Look, quit wasting your time asking questions and do something for yourself. Grab your favorite virtualization software (such as VMware), download a copy of the XO disk image, (or the Live CD) and see for yourself.
More info from the Emulating the XO page on the wiki.
And what have you got against insanity, anyway?
I'm planning to have XO's in the hands of every student at my school (Oak Hill Academy; central North Carolina) outfitted by the end of this year.
I might buy that Birmingham will be doing the first large scale public school deployment (Go Birmingham!!) in the U. S. but not the first U. S. students.
You mean as opposed to wholesale? I bought them from the OLPC G1G1 program under the same terms and conditions I would have expected from any vendor. Kinda a no-brainer since Intel simply doesn't have a comparable offering.
Education is the target market for the XO. Kids are the target market segment. The localization for North America is as complete as for any other geography where it will be introduced.
<sarcasm>I'll do what the average North American computer buyer does when his computer breaks, gets infected with a virus, or becomes more than 3 years old; I'll toss it in the trash and hope that the heavy metals leach into water supply of some third world country rather than into my own municipal landfill.</sarcasm>
Or rather, I'll service what needs to be serviced and replace what needs to be replaced. Unlike most notebook computers offered at this price point, the XO is intended to be user-servicable by untrained technicians; the stated goal is to make it maintainable by the kids themselves. Contrast that with the common WinTel strategy of building boxes that require virus blockers and other ad-ons out of the box, where retailers complain if they can't sell an expected percentage of extended warranties, and where Customer Support is considered a Profit Center.
Oh, so now we're talking about ASUS? Okay. Because the Eee PC is designed to be a ultra-light-weight laptop computer and not an educational tool. It's not designed for kids. The target market for that device (and similar ones) is people who do most of their work on a desktop machine but want something portable for light-duty work. (For example, you can browse the average website like Slashdot on an 800x480 screen, but I doubt most people would consider it a full solution.)
And remember, for each of my students that gets an XO there's another student elsewhere also getting one; That same price you mention is buying two XO's. It takes a rather selfish mindset to think of it as a single device purchase.
I guess there's a reason why I was placed in charge of making that decision instead of you. I don't think the XO's will play Halflife; I'm not too worried about that. They also might not be the best choice for watching YouTube videos, shopping at Amazon, etc. I can't say I'm heartbroken. They interact with each other perfectly well; that meets the requirement.
Translation: Billy doesn't have to worry about being left behind just because Bobby has a newer device.
I long ago got wise to the 'upgrade treadmill' electronics manufacturers have North American consumers addicted to. I refuse to participate. I'm fully expecting the now-plus-three-years version of the XO to be fully compatible with the ones I'm getting.
WTF? Is that the best you've got?
Warranties are for consumers.
Your opinion seems to be based on how well you think the XO would serve to allow a student to join your world. Your analysis is incorrect. The XO's will allow my students to create a world of their own.
Perhaps you'd elaborate on this? When I approached Intel about obtaining Classmate PC for each student in the school I was working with:
- They are not available for retail purchase.
- North America is not their target market, and there are no plans to distribute there.
- Meeting my budget/price point ($400 per student) would not be possible, as this does not include the cost for the mandatory additional infrastructure components I'd need to build a working solution.
So, instead, I went with the Give One Get One program to meet my needs and the $200/student tax write-off is just icing on the cake.Now, if I can get my employer to provide a matching gift, I'll be set.
OEM or retail?
There was a time when the 'killer' complaint against Mac and Linux was the lack of applications. If the only issue with them is that Microsoft hasn't release a Mac/Linux version of Outlook, well thats not really a Mac/Linux issue.
A point well made, but not made nearly often enough.
People will complain that it's impossible to individually count ballots, by hand, on a single day, using nothing more than volunteer labor, despite the fact that they are all individually cast, by hand, on a single day, using nothing more than volunteer labor.
You didn't even read the Ken Thompson link, did you? My patience with your unwillingness to learn is wearing thin.
Your first qbasic statement, "cls" means "clear-the-screen".
Are there any other statements in qbasic which mean "clear-the-screen"? Probably no other documented statements, but what about undocumented ones? Could the statement "A0000001" also mean "clear-the-screen"? What about A0000002? What about A0000001 followed by A0000002? Have you got time to test them all?
The gist of Thompson's paper is that a compiler/interpreter can be written to interpret any input as having any meaning. That's what they do. Which means one could be written to interpret A0000001 as meaning "clear-the-screen", and the source code which creates the compiler would not necessarily have to contain code statements which say "interpret A0000001 to mean 'clear-the-screen'". Instead, the compiler could interpret a statement like "interpret CLS to mean: clear-the-screen" as meaning "interpret CLS to mean: include code which interprets A0000001 followed by A0000002 as meaning clear-the-screen, and also include code to allow stealing of elections, and while you're at it, also interpret CLS to mean clear-the-screen, just so no one gets suspicious."
The upshot is that you can't even trust a compiler you wrote yourself if it was compiled to binary by someone elses compiler.
This is one of the things "professionals" know, and one of the reasons why "professionals" know it's so hard to make a simple, secure E-voting method.
I'm going to hazard a guess that you have not spent the better part of a 20 year career performing software assurance testing on high availability systems. Your assertion that all code behavior can be discerned from a review of the source is incorrect. However, it's clear you are unwilling to accept that coming from me, and unwilling to accept the views of other "professionals", so I really have no choice but to leave you in your delusion.
One final freebie from years of experience. Whenever you find yourself using the word should you might want to think twice. "Should" essentially means "if reality acted like I want it to act". It is representative of wishful thinking, and it is less often an indication that the system is performing in a way contrary to how it was designed to respond and more often an indication that the system is performing in a way contrary to how you think it was designed to respond.
One of the things "professionals" know is that being able to see the source buys you nothing unless you have complete confidence in the person who wrote it. Let me once again recommend you read through Ken Thompson's classic Reflections on Trusting Trust to gain a better understanding of your faulty assumption.
Let's presume, for the sake of this argument, that you meant to mention a collection of hardware which did not require different kernel-level drivers; in other words, hardware where you really could "run the same code on all of them". Let's further presume that you have found a way to create code which is provably 'correct'. Your argument fails because your requirements are incorrect.
The goal of such an electronic voting system would not be to be able to run the same code on all of them but rather to prevent code which is not the same from running on them.
We can create a test case which says something to the effect "If Candidate A is selected twice and Candidate B is selected 3 times, then the software result should be a win for Candidate B with a total of five votes cast, three for Candidate B and two for Candidate A.
We could then run this test case against software running on your selected hardware and verify the correct result. I think this is what you are meaning when you say "get the same results".
But how would you write a test case to verify something like "if the date is November 2nd and the time is between 8:30 AM and 4:30 PM and at least 2000 ballots have already been cast on this machine and the voter selects Candidate A, clears it, enters Candidate A again, clears it, enters Candidate B, clears it, taps the lower right hand corner of the touch screen 3 times within one second.....then the result should not reflect a transfer of 50% of all Candidate A votes over to Candidate B." A scenario like this is completely within the technical capability of anyone with moderate software skills to create, but beyond the capability of even the most advanced tester to verify.
In a nutshell, it is easy to verify it counts correctly, but impossible to verify that it doesn't count incorrectly.
And it's that "counting incorrectly" part that is unacceptable in a voting system.
"There is none so blind...." If you should decide that perhaps relaity is more important than you own personal beliefs, then feel free to rejoin the rational, scientific discussion parts of humanity are trying to have. Until then, though, I really haven't got the time to waste.
Do you realize that a computer program will only produce consistent results as long as the hardware can be trusted, and that hardware cannot be verified as trustable? Have some fun browsing the RISKs forum if you want real-life examples of well funded, well meaning world-class professionals trying (and failing) to create reliable systems for such things as nuclear reactor control systems, missile guidance systems, flight control software, etc. And these people aren't, as a rule, facing well-funded and motivated human opponents trying to subvert their code. These are mostly stories about how Mother Nature outsmarts us without even trying.
The numbers are from the appendix of Jared Diamond's book Collapse which was mentioned on slashdot a while back.
But I'm interested to know which numbers you find disputable? That the doubling time for humans is between 20 and 50 years? That there are currently about 6 billion people alive on the planet? Maybe it's the 6 billion times the U.S. consumption rate multiplication bringing us to within 50% of the total available resources?
What's your figure? Ten percent? One percent? Maybe you prefer a more optimistic one-one-millionth of a percent? Okay, if we run the numbers that way, my statement becomes:
And I suppose you will need to find a better presenter when the reality strikes you as well.
Maybe, one day, you too will become a professional, and then perhaps you too will understand.
For now, perhaps the things you don't understand are the things you should be learning about.
For millions of years that has been the way species propagate on this planet. There's only one notable exception to the rule of providing for your own genetic decendents and not caring about anybody elses; those darned humans.
But that makes my point: if you really want to live by the Law of the Jungle, then go ahead and have as many kids as you want, that's your right and laws be damned. But that also means you have no grounds for complaint when the rest of civil society allows your offspring to starve, or takes them away, or eats them. Dog-eat-dog, remember?
On the other hand, if you want to live in a civil society you can get the benefit of things like orphanages, food stamps, and charities. But there's a cost: you might have to abide by some rules, including not being selfish and putting your own desire for kids ahead of everyone else.
With all due respect, no, it isn't. I recommend the RISKs forum as essential reading for anyone working in technology.
I agree on the paper ballots point, but when trying to understand a complex system, one must see how the system is behaving and not be distracted by how the system should be behaving.
I find it very curious that despite the simplicity of 'paper ballot' voting and the known problems with electronic voting, the system (our democratically elected government) still insists on favoring DRE's over paper ballots. Clearly there is a systemic behavior here we are failing to account for.
Which explains, if I can be forgiven, why I tend to jump hard on anyone who suggests that electronic balloting is good, or is feasible, or can be made feasible, or amounts to anything other than a distraction from the truth.
It's not about cheap, or convenient, or promoting economic concerns, or little-old-ladies fumbling with technology they can't understand. Electronic balloting has the potential to interfere with our ability to self-govern. And for that reason alone it should be beyond consideration.
It interferes with our number one objective: we must retake the cockpit.
Do the math.
The doubling time (time it takes for a population to double in size) for humans is between 20 and 50 years.
There are already about 6 billion people alive on this planet.
Which means in somewhere between 20 and 50 years from now, there will be about 12 billion people alive on this planet (unless the population rate is constrained in some way). Add another 20 to 50 years, and we're at 24 billion. Turn the crank once more and we're at 50 billion.
Next, if you multiply the average rate of resource consumption in the places you mentioned (U.S., Canada, Europe) by 6 billion you'll find we're within 50% of consuming everything this planet has to offer.
We are within 1 to 2 generations of the point where it becomes impossible for everyone to live their life at the same standard of living we see in the U.S.
That's an important point you need to understand. Very soon now people who are not currently living at the U.S. level will realize they will never be allowed to. Maybe that's 100 years off, maybe 50, maybe 20. Maybe some people have already realized it today.
When we reach that point, the world will be divided into two basic classes: the enslavers who live a life of luxury, and the enslaved who subsist to serve them. Any you will not be a member of the former class.
Things might exist like that for centuries (historical precedents abound) with billions of people eeking out an existence while the elite consolidate more and more of the resources for their own use. Alternately, some sort of uprising against the elites could occur. But in either case, the resulting casualties from war, starvation, disease, etc. will likely be in the billions.
But there is another way.
- Strong, personal measures to limit resource consumption in first world countries. This buys us time, but it means even the poverty-level people of the Western world might need to voluntarily restrict their consumption.
- Strong, personal measures to limit population growth. This cuts-off the fuel of the population growth engine, but it does nothing to help us deal with the 6 billion people already living on this planet.
- Those of us who are not impoverished need to become motivated to ensure those who are impoverished are brought-up to our level. This is not a charity or compassion thing; this is pure strategic reasoning. Those who are included in the system have a reason to help preserve it.
- Identify predatory behavior, recognize it, and marginalize those who practice it. This is basic civil society thinking; if the community is threatened by predators, the individuals band together to fight the predators, even if that means some of the individuals have to sacrifice themselves for the good of the community.
What's this got to do with electronic voting machines?Democracy evolved as a response to civil society under stress; a mechanism to ensure that the needs of the greater community are addressed even at the expense of the needs of the individual if necessary. Good times and steady growth tend to erode democracy. If everyone is getting rich, there's not as much concern that some may be getting rich faster. But as shown above this constant increase in resource consumption is not sustainable. That means there are inevitable bad times ahead.
If the impact of this resource exhaustion event is to be mitigated, then a strong, real democracy is essential.
For us, reading slashdot in 2007, it means the first priority has to be to retake the cockpit.
But that wouldn't solve anything.
It's not a person causing these problems, it's a process. So even if you could pick-off the bad actors effortlessly, you'd just be watching new ones take their place.
Is the problem what Diebold (allegedly) did, or did we lose the ability to ensure our democracy long before electronics were even invented? If Diebold vanished tomorrow, would that somehow make all the other electronic voting machines unriggable?
And if democracy itself (as we've implemented it) is not resistant to corruption by that process, is it really the form of government we should be looking to preserve?
You are flat wrong.
Electronic voting (registration and/or counting) is based on two premises:
I have yet to hear anyone support the claim that it is possible to hold a fair election with an electronic voting machine.
If you (or anyone) really can write software which meets the above two standards, I have a software (nuclear power control) job just waiting for you, name your price.
You presume the choice is between having the government dictate to you and not being dictated to. Have you considered the reality that this planet cannot support unlimited growth, and that you might instead be faced with a choice between having the government dictate to you and having someone (or something) else dictate to you.
Would you rather live in a world where you and your significant other can get pregnant whenever you choose, but you only get to 'have a kid' if you can find some way to provide enough food to make the life sustainable? Such a wish smacks of elitism; in a let-them-eat-cake kinda way.
Or how about a world where your employer gets to decide?
They won't respond. They know their bosses are reading, too.
Now get back to work, I need that report by the end of the day.
"And whatsoever you do unto the least of my brothers, that you do unto me."
Nuff said.
Whoops, I forgot, only Republicans are allowed to quote from the Bible.
Actually, that wasn't my suggestion at all. Having the compiler source buys you nothing. See Reflections on Trusting Trust by Ken Thompson.
Have you thought about patches? Presume someone finds an exploit (defined any way you want) some 30 days before a major election. What do you do? Run un-patched boxes with known exploits? Run the design and QA teams ragged trying to push out a fix in time to get Federal certification and put the new code onto all the boxes everywhere? Do we get to see the source for the patches, too? What if there's a bug in the patch? (Now you're down to 5 days before that major election.)
And it doesn't buy you anything. The primary function of a election system is to convince the losers they really lost. Unless someone figures-out how to write bug free code, as well as how to prove the code is but-free, use of an electronic voting system as anything more than just an aid to producing a voter-verified, authoritative, ballot is a tactical error. A distraction. A sign that someone is doing extra work to make sure the simple solution is not the one selected.
Of course. But I'm not willing to buy that access in exchange for the right to ensure my vote is counted in a verifiable, democratic way.
Or were you implying that it's somehow indignant for a citizen to suggest that he should be allowed such access as a default right? Has our democracy really slipped so far that the citizens are forced to beg, borrow, steal, and compromise (not to mention learn Microsoft VisualBasic) just to ensure they have a change to cast a vote that cannot be arbitrarily stolen at the whim of some code monkey?
Now run the reverse thought experiment with me, if you will. Give me an election system requiring voter verified, authoritative, persistent ballots, marked in private and cast in public, with a mandate that the ballot box be publicly observable, and I'll wager your chances of 'rigging' such an election are no better than the chance of rigging a 'pen, paper, slot-top-box' election, even if the 'voting machines' are paid Party stooges in cardboard boxes.
- Section 3, Paragraph 9(f)(3) requires voting machine vendors to also provide "Any vendor-authored proprietary binaries used in the compilation of source code for voting systems." meaning a vendor would be foolish to hide his exploit in the source code when it could be inserted by the compiler (which is exempt from source requirements) at compile time.
- Section 3, Paragraph 9(h) provides "Each county shall make available for public inspection one sample of any voting system that is used to present one or more contests to voters. Any sample voting system inspected by the public may not be used in any public election." (emphasis added) ensuring the vendor must only provide but one clean system per county, need never fear that one system inserting fairness into a rigged election, and when the bugs are inevitably found in that one system, can claim it was inserted by a prior 'tester'.
- and removes the requirement "Validating information must include proof that hardware and software certified for use is the same claimed to have been used."
I'll read this as having the correct sentiment, a flawed implementation, but ultimately useless because even though SB 1438 required a voter verified paper trail, it's not the authoritative record because "A paper record copy is not a ballot."Anyone who argues that (for whatever reason) a software-based voting system cannot function incorrectly must first argue that it does not function incorrectly.
Seasoned programmers will recognize this as just another form of the well known fallacy about producing bug-free software.
Do not be lulled into a false sense of security or progress by efforts to require electronic voting machine software to be available for public review. It's a good idea at best, harmless at worst, but ultimately irrelevant unless a voter-verified, persistent, and authoritative paper trail is already mandated.
Cuntact your representatives: Support HR 811.
Only in a digital copy sense can sharing be related to copying. Perhaps you have a subconcious Internet Pirate predisposition? Or are you so cowed by Big Brother to believe that allowing someone else to view the movie in your presence is somehow illegal?
And the FBI copyright notice says nothing about sharing; it is concerned with the crime of copyright infringement.
Need I say more?