Wednesday, January 19, 2005

Open source and e-voting.

Charlie Calvert has an interesing bit on CodeFez about electronic voting machine failure.  I haven't really formed any opinion regarding all the bruhaha surrounding proprietary vs. open source e-voting solutions.  I think both sides have very valid arguments.  However, I do take some issue with the assumptions that Charlie has taken in this editorial piece.  I had to read the following quote several times to believe that it had just been said.  Especially that last sentence!

 What do they mean the machine could only handle 3,005 votes? In this day of 32 bit operating systems, where the standard limit for an Integer value is over 2 billion, exactly how did they manage to create a limit of 3,005 votes? A failure on this magnitude takes real work to achieve! It is something only a proprietary software company, intentionally trying to cripple their software, would be likely to achieve. [emphasis mine]

Wow.  Unless I totally misinterpreted this, it certainly looks like Charlie has flat accused the voting machine vendor of intentional voter fraud!  There are way too many variables to simply make that kind of judgement.  For instance, according to Charlie, the vendor stated that the machine “had the capacity to record 10,000 votes.”  What if that machine could be configured in various ways to store more or less verification data with each vote? Each different configuration would affect the total vote storage capacity.  Voting machines are more than simple counters that accumulate a tally.  They have to store transactional data, timestamps, and other bits of verification data (obviously short of associating a particular voter with a specific vote!).  I would imagine that each precinct would be able to dial up or down the level of verification data stored depending upong their state or precinct's rules regarding election verification. 

I would be more quick to pin this problem on the sales and support teams, rather than the programmers!  Either the salesman didn't properly convey that as they dial up the verification data, the total vote storage capacity will decrease or the folks charged with setting up the machines didn't RTFM!  Open source would not fix that problem one bit! 

What about the software that runs the Space Shuttle?  Should that be “Open Sourced“ as well.  It would have made little difference to the Columbia crew.  In fact, all the reports I read or heard, talk about how the Shuttle kept correcting the yaw introduced by the extra drag created on by that gaping hole in the RCC panel.  Even to the point of firing attitude thrusters.  The software that runs the flight control systems has been through rigorous testing and performed flawlessly.  It is proprietary.  Sure, you can argue that that software is running on mission critical systems.  What about the software that runs the resporation machine that is helping keep your relative alive while the doctors are performing a triple bypass?  Yep.  Proprietary.  Sure, no-one died when the voting machines failed, but it *does* attack the very core foundation of what this country was built on.  I just don't see how open-source would have been the “magic-bullet“ to solve all these problems?  You can apply that same argument to all the other cases where software is a cricital component, but I don't see an outcry from the “open-source“ proponents to have GE Medical Systems open source their defibrillator firmware.  I admit that is a bit of a hyperbole, but I just want to point out that closed-source systems do work and do provide significant value to our society.

Regarding Charlie's statement about intentionally crippling the software, I have to wonder what that company's motivation would be?  Have criminal charges been filed against the voting machine company?  A company is in business to make money, not make a few quick bucks by defrauding the voters in some North Carolina county, then go to jail for voting fraud.  Some grand conspiricy is a little far-fetched.  Almost to the level of Roswell cover-ups and alien autopsies. 

According to all the articles I've read regarding the machine failure, I find nothing about the failure being software or hardware.  They simply state that it was a “voter machine failure.“  It very well could have been a bad bank of flash memory where the software thought it was writing the proper tracking data, but it just flew out the bit-bucket.  Sure, the software should properly verifiy that it was writing the data correctly, and if an error is detected it should block all futher voting and alert the poling place staff.  I'd be interested in seeing a reference to some article that outlines the specifics of the machine failure.  I couldn't find any in Charlie's piece.

Finally, I like Charlie.  I have a lot of respect for him.  He's certainly a better writer than I'll ever be.  But, we don't have to agree on everything ;-)...  Besides, it appears that the courts have finally decided the race.