By Friday, we had the software prepared and Saturday's event has to go down as a great success for Open Voting Consortium and the cause of transparent election administration (to others, I suppose, it was mainly about success for Obama). The response was overwhelmingly positive. We used the Ubuntu (Linux) operating system, which is also free and open source. As always, our code is publicly available .
I want to thank everyone that made this happen. On our side, THE GREAT Jan Kärrman of Sweden did the heavy lifting preparing the code. Asheesh Laroia wrote the tabulation program (100 lines of Python code) on Friday afternoon. Brent Turner went with me and video taped everything and conducted a number of interviews along the way. I also want to thank all of those involved in previous OVC demos because the software we used yesterday was based on these efforts -- going back to 2003. So, thanks to Fred McLain, who was the development lead for our APR 2004 demo that got such great reviews. David Mertz, Arthur Keller, Ed Cherlin, and Laird Popkin helped get the demo project going in 2003. Thanks to them. Thanks also to all of the other developers involved, including Eron Lloyd and John-Paul Gignac. All the past (esp. Doug Jones) and current OVC board members also deserve credit. And, of course, the OVC project only continues because scores of individuals continue to provide financial support. Thanks to them.
The San Luis Obispo County Democratic Party leaders can take much of the credit, since they are the ones that did all the work other than writing the software. In particular, it was Marty U'Ren's idea to do this. Marty also gathered together all the hardware needed (a bunch of old PCs and printers), set them up and tested them. Thanks Marty!
This is the first time OVC-developed software was used by actual voters (with an intense interest in the outcome, I might add), and the public machine tally was thoroughly successful and enjoyed by everyone there.
204 people signed-in to vote and when the ballot box was opened when the polls closed, there were 204 ballots to be tallied. There was some media there (at least one television station and one newspaper). We were pleasantly surprised to see the County Clerk-Recorder, Julie Rodewald, there along with the Assistant County Clerk-Recorder, Tommy Gong. They showed a great deal of interest in our system and asked a lot of great questions.
The local paper mentioned the "bar-coded ballots."
On Saturday, a mixture of seniors and college students stood in line to cast their votes on printed, bar-coded ballots that were deposited in a carefully guarded voting box and counted while county Clerk-Recorder Julie Rodewald watched.Here's how it worked: Three voting stations were set up with old PCs, monitors, and printers. Our voting software was installed on each PC on top of the Ubuntu operating system. Voters lined up at one table to have their registration confirmed, and were then directed to the sign-in table. After signing-in, they were directed to one of the three voting machines. The only interface devices were a mouse and monitor. They would click on their selection then click on the "print ballot" button. Nothing about the voter's selection was stored on the PC -- the vote exists only on paper. After the ballot came out of the printer, they put it in a privacy folder (file folder cut to 8x12 inches so that barcode on the edge would be exposed) and proceeded to the ballot box. The pollworker at the ballot box would take the folder (faced down) and slide the ballot into the ballot box (ensuring one person one vote).
Voting started at half-past noon and closed at 2:30. Once the polls were closed, the ballot box was opened -- in public, of course. Several people were involved in counting how many ballots were there, putting them into stacks of 25. The counts were double checked. There were 204 ballots just as there was supposed to be since 204 people had signed-in on the roster.
Then, a PC with the tabulation program was hooked up to the projection screen monitor. The screen had the candidate names, all with a zero next to them. The last line showed that ballot count also starting at zero. Marty and a woman (Midori Feldman) that would scan the barcodes sat with their backs to the screen, and they went through the ballots one-by-one. Marty would say the candidate name printed on a ballot then Midori would scan the barcode. The vote would register on the screen and supporters would cheer for their candidate. Everyone got to see each vote increment the count. The fact that the correct candidate selection was encoded in the barcode was proved in this process. Everyone could hear Marty read the name, and everyone could see the vote counted for the candidate. The process left absolutely no doubt about the accuracy of the count. It was fun for everyone, too. Even after the count had progressed to a point where it was clear Obama was going to win, people were still cheering for their candidate every time they got a vote. Edwards, Kucinich, and Clinton all had very vocal supporters.
Originally, we wanted to run everything from a live CD and disconnect or remove the hard drive from the PC. Jan did create the CD but I received it a little too late for testing, so the applications were run from PCs with Ubuntu installed on the hard drive. If we receive another request, it should be easy for us to provide a bootable CD -- no need for anything on the hard drive (can even remove the hard drive).
Quite a few pictures were taken of the event, and a few of them are available online. I also have quite a bit of video tape. I have posted a couple of interviews, and will have more soon.
Some people questioned how well our process would scale. It was great for one contest, but what about a ballot with dozens of contests? I suggested to Julie Rodewald that in a general election, they probably would not want to read the ballot aloud. A good way to do this would be to put the ballot on an overhead projector so everyone in the room can see what's on it (remember, on our system, we only print the selections so everything should fit on one page). Then the barcode could be scanned and the counts would be incremented on another screen. Every observer would not be able to keep track of all the vote counts, but could keep track of some of them. With enough observers, all the vote counts could be witnessed.
It may be a little premature to say that voter confidence has been restored, but we took a big step in the right direction yesterday.
Thanks again, and best wishes.
-- Alan Dechert
 In case any techies want to see some code, here is the program for the voting counting program, written by Asheesh: http://www.openvotingconsortium.org/ad/voting_thing.tar
Here is Jan's code (if you want to run it and have some trouble, let me know and I will help you with it) http://user.it.uu.se/~jan/test/straw.tar