Computers Are Programmed By People Not Magic
from the trust-but-verify dept
Ben Adida has a great post discussing the misplaced faith people often have in the machines in their lives, and the way that faith often spills over to e-voting. He mentions a scene in the 2006 HBO documentary on e-voting where an election official breaks down in tears when someone shows her how her voting machines could be hacked. For computer programmers, who are intimately familiar with what goes on under the hood, the idea that we should automatically trust anything a machine tells us is a little bit ridiculous. We're aware that computers are extremely complex devices that can go wrong in any number of ways, that they're designed by fallible human beings, and that it requires a lot of very careful engineering to make sure they're secure and reliable. We recognize, in particular, that the more complex a system is, the more likely it is to have problems, and so the more skeptical we should be of its results. It's not a coincidence that $5 pocket calculators tend to work flawlessly, while complex systems like Excel and the Pentium chip sometimes make basic arithmetic errors: the greater complexity increases the number of ways things can go wrong.But a lot of non-technical folks seem to view things the other way around. Last week, for example, I noted a a Chicago law professor who thinks that "the future is surely with the touch-screen or some other form of online voting." The problem with this statement is that if our goal is security and reliability, which it should be, the added complexity of computers and touchscreens is a big disadvantage. But this isn't obvious if you've never looked under the hood to appreciate all the things that could go wrong. Computers are not magical boxes that always produce the correct answer, but unfortunately, a lot of people seem to think that they are.
Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.
Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.
While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.
–The Techdirt Team
Filed Under: complexity, e-voting, magic, programming
Reader Comments
Subscribe: RSS
View by: Time | Thread
and Hollywood only makes matters worse.
[ link to this | view in chronology ]
cardboard box full of votes
[ link to this | view in chronology ]
Another overlooked computing artifact...
In other engineering disciplines, you get tollerances. A part a few millimeters or thousandths of out of exact specification either way but still within tollerance and the widget still works. In computing systems, everything has to be working 100% perfectly or the whole thing usually grinds to a halt.
Not fair, says I!
[ link to this | view in chronology ]
Re: Another overlooked computing artifact...
"
That is not entirely correct.
Many fault tolerant systems are in use today. These are usually employed by those who require high reliability numbers (five nines). The cost is very high and therefore avoided when possible.
[ link to this | view in chronology ]
Re: Another overlooked computing artifact...
Do you know how many flaws there are in shipped software? A lot of the time they dont cause problems often enough to worry about and arent worth fixing. Sometimes theyre just too complex to comprehend and the flaws are just going to have to be there because nobody has the time or intelligence to find and fix them all. Software only has to run well enough, enough of the time for us to forgive them. Oftentimes the software can survive all sorts of flaws and continue chugging away. In fact there is a whole art to swallowing software errors and trying to survive. You don't make it perfect--you just handle your imperfections.
Actually, programmers are chewed out all the time for doing things way sloppier than other kinds of engineers could. I think it is great that we dont need to be 99.9999% accurate.
[ link to this | view in chronology ]
Re: Re: Another overlooked computing artifact...
Is this the attitiude that led to several probes crashing into Mars ?
Sure voting machines are not rocket science, however - would you be ok with one out of every hundred votes being recorded incorrectly ? What about one out of every thousand ?
Where do you draw the line ?
Oh, and this is priceless:
"Sometimes theyre just too complex to comprehend and the flaws are just going to have to be there because nobody has the time or intelligence to find and fix them all."
Give me a break !
[ link to this | view in chronology ]
Re: Another overlooked computing artifact...
Contrast this with the products from Microsoft where unchecked-buffer-overflow vulnerabilities (and other sloppy programming practices) seem to be guaranteed. I just have to shake my head when they want to call themselves engineers.
Don't go around thinking that engineers are somehow held to lower standards. Judging from what I've seen, the opposite is probably true.
[ link to this | view in chronology ]
Computers are programmed by H1B visas. Those aren't people.
[ link to this | view in chronology ]
Artifacts everywhere. Pulling them together is the
If eVoting has a chance in hell, it would need to be led by a group effort of bleeding edge companies such as Sun, Google, Oracle and Microsoft to consider an alliance to bring their real world experience to the table to create open standards, (which includes a paper trail!!).
No system is perfect. Deal with it. The minute you think you have the answer, someone like Ed will prove you wrong. The best you can do is bring in a technoligist like Ed and try to account for everything you possibly can. Bring a solution to market that has the seal of appoval of an entire industry.
/soapbox
[ link to this | view in chronology ]
Re: Artifacts everywhere. Pulling them together is
Damn Chef, give a guy a warning before you say outrageously funny stuff like that. I just shot hot coffee through my nose and all over my keyboard. I don't care about the laptop but I just achieved the perfect gnome setup.
[ link to this | view in chronology ]
Re: Re: Artifacts everywhere. Pulling them togethe
OK, to humor you, let's put SAP in their place. Those German Engineers can design anything!
But I think they are warming up to the whole Open mentality as of late. Maybe it was Jim Allchin's last day of work.
Who knows...
http://www.crn.com/software/206905873
[ link to this | view in chronology ]
Re: Artifacts everywhere. Pulling them togethe
I'd buy SAP but I bet a lot of folks in this country wouldn't because they are 'fur-i-ners'. As for MS offering olive branches to the foss community, I'm not seeing that in the ongoing OOXML saga.
[ link to this | view in chronology ]
Re: Re: Re: Artifacts everywhere. Pulling them tog
OK, to humor you, let's put SAP in their place...
What, you were serious? Man, you must be sitting on a butt load of M$ stock.
[ link to this | view in chronology ]
Re: Re: Artifacts everywhere. Pulling them togethe
http://www.informationweek.com/news/showArticle.jhtml?articleID=207000150
[ link to this | view in chronology ]
Re: Re: Re: Artifacts everywhere. Pulling them tog
But what does this have to do with opensource ?
[ link to this | view in chronology ]
It's gotta be based on openness and accountability as basically every security expert that isn't an employee of one of these e-voting system sellers has opined.
I dunno, I guess people don't want to accept that e-voting isn't a drop-in solution, but one that's going to require some basic changes to the way people think about how you vote (durrr, like every other thing technology has touched).
[ link to this | view in chronology ]
Why is the touch screen better than paper?
Is it really so difficult for people to pick up a pencil and place a mark on a piece of paper? What are the real advantages in replacing this with a touch-sensitive illuminated display? (Keeping the paper enables an audit trail, and helps address part of the security issue in e-voting)
[ link to this | view in chronology ]
But we all know computer programmers are Magical People, so it's all ok.
[ link to this | view in chronology ]
Re:
Will someone please refill the Hot Cocoa?
[ link to this | view in chronology ]
So combine the Hi-Tech with the Lo-Tech
Touch Screens and E-Voting have their graces. It's easier to use (just click the picture of the candidate is a possibility) and faster to count.
My suggestion:
- Voters use a Touch Screen to place their votes.
- The Voting Machine fills in the dot/punches the hole.
- When you are done with the Touch Screen the Voting Machine spits out your "Scantron" type card.
- You now have a piece of paper and can double check to make sure its what you voted. You could even have a "Validation" screen where you just put the paper up to the screen and as long as all you see is green everything is fine, though that's less secure than manually doing it.
- You put the Voting Card into the Counting Machine.
You still have to worry about the security of the Counting Machine and Voting Machine and validate their software (which means you damn well share the source code at least with the State Government, if not also the Federal).
The major difference, you now have a paper trail. And you can store that stuff at the State Capital until the next election, where it won't matter anymore.
And again, they need to throw up some REAL security. And because this is _not_ a consumer or business item, but one that has far reaching consequences you can't claim people can't look at your stuff.
The State Government (and Federal Government) should BOTH have to certify the machines themselves. With the full source code made available.
You _CAN NOT_ hide shit when it is this important.
[ link to this | view in chronology ]
It aint rocket science it's a voting machine.
Bottom line is the touch screen or UI elements don't need to be highly reliable/secure, if they break, that can be designed to not impact tabulation integrity. A small subset of the functionality can be made highly reliable and secure and a paper (or mag tape or optical disk) audit trail can be part of that system.
The problem is when a bureaucracy goes out to procure a system like this, they haven't a clue as to how to frame the solicitation and always award based upon cost first and foremost. And at the very best, you get what you pay for, seldom more and often much less.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
99cent calculators from China
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Armed guards would shoot on sight anyone who tried to press more than one square. The guards would be from several different religious and political backgrounds, as well as being from different companies.
That way, voting would be fun *and* pretty.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Do not forget transparency. The last thing we need in free elections is a black box that spits out results that can't be reproduced by any other method.
[ link to this | view in chronology ]
The HumanBook is a mutually managed people directory. People list their own real-life connections, and other connections they have awareness of, to create a lifelong network. The network houses the connections, and then the collaboratively updated address book nurtures them, assuring that they need never be lost. HumanBook is the tool that will allow you to cherish and sustain all of the connections of your whole life. So if you're interested, go to http://www.HumanBook.com and find your profile today!
[ link to this | view in chronology ]
Re:
lady:
I'll have the spam spam beans and spam.
waitstaff:
I'm sorry Maam, but we are all out of beans.
lady:
Oh, well can I have spam instead ?
[ link to this | view in chronology ]
Bullshit
It seems to me to be the most BASIC kind of Client-server relation!! Am I wrong??
I worked in designing Kiosks almost 7 years ago that did the same thing using Java and it worked flawlessly! Doesn't Amazon's website do hundreds of thousands of transactions a week?? Possibly even in a day?
Wouldn't anyone here with any idea about business systems say that Amazon's website is 10X more complex than a simple e-Voting machine??? What's the complexity? Amazon does more traffic in a week than a "Flordia" voting machine will do in a month(assuming the people will vote everyday for a whole month.. very unlikely)! So what is the complexity here?
It seems to me that there should be at least ONE company out there who could have built this system properly, tested it out and had rolled out by now??
Maybe I should submit a proposal??
[ link to this | view in chronology ]
Re:
[ link to this | view in chronology ]
Human Nature
That's human nature. Let me explain: To a lot of people, the technology behind e-voting machines (and computers in general) is unfathomable. Now humans have a long history of elevating things that they don't understand to the status of "god" instead of admitting ignorance. So many people who don't understand these machines follow their nature and resort to considering the machines to be god-like and infallible. Of course there are always "priests" for any religion and in the case of e-voting machines the priests are the makers of the machines. They go around promoting their god as infallible while at the same time trying to keep anyone from looking behind the curtain.
[ link to this | view in chronology ]
Dependecies
This is why standards are so important, and why open source solutions are looked at so favorable by reasonable people.
However, there's a lot of sloppy code hiding behind the interdependency aspect of software/hardware. Which I feel is inexcusable, since syntax and poorly developed code is easily avoidable however it may not be profitable in the short term.
Another common cause of bugs is multiple developers making changes independently of others. IE no source/change control process. This also falls into the sloppy category and is inexcusable.
So for me, the only valid bugs are those caused by dependency issues, since there is no effective way to predict the future. Sloppy coding just like misspellings in a book is sometimes unavoidable however significant bugs should be addressed.
[ link to this | view in chronology ]
Computers, computers...
Even most programmers don't understand how complex these machines are, as they only program in C/C++, PHP, HTML, ECT. which are easy to understand/follow. Since I like programming, I want to learn how a computer REALLY works. So, I am working on making a 4 bit computer!
[ link to this | view in chronology ]