Monday, December 15, 2008

November 2008 Ballot Images are Online

The Transparency Project's scanned images of Humboldt County's November 2008 ballots are now available online. Thank you to Streamguys, especially Jonathan Speaker and Andy Jones, for helping us get the bits out of our beautiful low-bandwidth region. And thank you to EARC for offering the hosting space.

The UC Berkeley Election Administration Research Center is hosting the images in collection form, as a series of approximately one gig files and accompanying GPG signatures. The site is momentarily password protected; if it is still password protected when you read this, we've been given permission to give the case-sensitive user/password combination of "download/Down2disc".

The ballots will also be hosted as individual images (and perhaps as collections as well) at Parke Bostrom's ETP site.

We expect the ballots to become available at other sites as well.

The latest version of Ballot Browser software is also available. This location will point to updates as they appear.

Sunday, December 7, 2008

Time-Standard followup, and more

Thadeus Greenson has written a follow-up to his story from Friday. It appeared in our local newspaper, The Eureka Times-Standard, on Sunday.

I've written my own commentary, it's at my web site:

One of the founding volunteers, Tom Pinto, who works at the Humboldt County District Attorney's office, has put up a web site for the project at This site has a lot of history and pictures, in addition to an overview of the project.

The story is also getting a fair amount of exposure in the "election integrity community," whatever that is. It's been picked up by Brad Friedman's

The Peter B. Collins national radio show had Registrar Carolyn Crnich on its Friday program.

Where's that counting software you're talking about?

Here's the latest development release of the vote counting software I've been developing:

Here's the matching "signature"

The software hasn't yet been packaged up for full public release but it is, after all, open source, which means I can't hold onto it forever.

Friday, December 5, 2008

Software glitch yields inaccurate election results

Here's a link to coverage of the discrepancy the project found, possibly exposing a four year old flaw in Premier Election Systems software. The story is by Thadeus Greenson of the Eureka Times-Standard.

Thursday, December 4, 2008

We Scanned More Ballots than were in the Official Results

Despite accurate work by our elections department, their official count was missing 197 ballots from a single precinct. Humboldt's version of GEMS appears to drop the zero'th ballot deck under certain circumstances.

Statement by Mitch Trachtenberg,
developer of Ballot Browser, open source vote counting software


Our votes are too important to be counted by secret code running on proprietary machines.

Since 2000 and before, many people have warned that the vote counting machines might not be doing exactly what they say they do.

Today's results demonstrate that the warnings are correct. A stack of 197 valid ballots was not included in Humboldt County's official count, despite the accurate work of Humboldt County's elections department.

As far as I understand, this appears to be due to an error in Premier Election System's software... an error Premier -- formerly Diebold -- may have known about.

Our Election Transparency Project completed its scan of all ballots late on Sunday, and it was clear that our count of ballots scanned did not match the count of ballots in the official results. By counting votes with Ballot Browser, open source software running on the open source platform Linux, we were quickly able to localize the problem to precinct 1E-45. This precinct turned out to include the first deck of ballots run through the Premier system, and it was not included in the results produced by Premier's software.

Has this happened in other counties? How can we know?

Our votes are too important to be counted by secret code.

Wednesday, December 3, 2008

Scanning is complete

The scanning process has been completed. We expect to be releasing the images within a few days. We are now doing preliminary counts on the scanned ballots, and plan to release them once we've had a chance to look over the counts.

Tuesday, November 18, 2008

46,000 ballots and counting

As of this morning, we've scanned approximately 46,000 ballots. The elections department is still counting absentee ballots delivered to precincts, provisional ballots, and others. We'll hold off on the last of the scanning until the elections department has completed their process with these ballots.

We've found that a team of two, using our Fujitsu production scanner, can process about 1,000 ballots per hour. Because we can only imprint a serial number on one side as we scan a ballot, we've been running each ballot through the scanner twice. That is, we could probably operate at closer to 2,000 ballots scanned per hour if we were willing to use the scanner's duplex output and live with one imprint per ballot.

Saturday, November 15, 2008

November election update

As of the end of Friday, November 14th, we've scanned 62,000 sides, or 31,000 ballots. That's roughly half of this election's ballots. We are scanning on Saturday and hope to complete scanning by midweek, at a rate of approximately 1,000 ballots per hour. Preliminary vote counts from the scanned images should be available by the end of the week.

Sunday, November 9, 2008

November election

We started scanning the election of November 4th on Friday, November 7. As of the end of Saturday November 8th, we had scanned approximately five thousand ballots, about eight percent of the total. We'll continue scanning throughout the coming week. It should take approximately 65 hours of scanning to complete the election. We are only given ballots to scan after the registrar has reconciled a precinct's ballot count with its signature log. We hope to have ballot images available before Thanksgiving.

Friday, July 18, 2008

Can't digital images be faked?

Yes, it's easy to fake digital images.

Here's the process by which we ensure that isn't happening.

Our scanner is not a special piece of elections equipment, it is a general purpose office scanner.

The scanner will be controlled by a computer that is running an open source operating system, (Debian Linux "Etch"). All computer programs that control the scanner are available for inspection by anyone who would like to see how they operate. The counting and sorting software will always be available for inspection as well.

The Linux system is not configured for networking.

The ballot images from the scanner are archived into a single large file. This large file is then digitally signed using a technology known as public key encryption. This generates a small signature file, which can be printed or emailed. Public key encryption works with pairs of keys -- one key is secret and the other is public. The secret key is used to sign the ballot file. To sign the ballot file, a person needs to be in the room with the scanner computer, have the password to the elections account, and know the "passphrase" that unlocks the signature program. The public key is available on the Internet.

Anyone wanting to ensure that the ballot file they've received has not been altered can run a free program called GPG ("GNU Privacy Guard") to validate that the ballot file and signature go together, and that the signature was generated by someone with access to the elections office private key. A change of even one bit in the entire file will prevent the file from being validated.

This gives us a very high degree of confidence that, if you validate our file with GPG, the images
we scanned are the images you get.

Each ballot is imprinted with a unique number just as it enters the scanner. This number is part of the scanned image, and can be used to locate the paper ballot associated with the image. If any questions about our images were to arise, a random sampling of the images, checked against the ballots themselves, would allow anyone to confirm that the images we provide are actual images of the ballots themselves.

Tuesday, July 8, 2008

Ballot Browsing program

Here's a screen shot of a ballot browsing program I'm developing for the project. A download should be available soon.

The program is built in Python and uses Tkinter, Pysqlite and the Python Imaging Library (PIL); everything is free and open source, and can run on Windows or Linux.

In addition to showing the ballots, this program can count votes for a precinct, and show how it decided which voting ovals were marked, showing the user the oval in question.

In this screenshot, the program has overlaid the selected ballot with rectangles showing which areas the program is counting, and which candidates get votes when the ovals in those rectangles are filled in. Under the menubar, the program has listed the winners on this particular ballot.

The program can use ballots installed on an individual's computer from the project's DVDs, or can go out and retrieve individual ballots over the internet.

Monday, July 7, 2008

June election images are now online

An unofficial set of ballot images from the Humboldt County June 2008 election is now available at

The ballot images were uploaded and are being hosted by project volunteer Parke Bostrom.

These images are available sorted by individual precinct.

Thursday, July 3, 2008

Humboldt County Election Transparency Project

In recent years, citizens throughout the United States have expressed concern about the legitimacy of machine counts. Voting systems that do not provide a paper audit trail require that citizens trust the company that has provided the voting system. Voting systems such as that used in Humboldt County, which use optically scanned paper ballots, do leave an audit trail of all cast ballots. This audit trail becomes far more valuable if it is actually used to verify the count.

The Humboldt County Election Transparency Project aims to provide images of each counted ballot, so that any person or organization wishing to do an independent count will have access to a complete set of ballot images.

Project members are writing our own software to count and sort the images, and this software is open-source, meaning that our programs' "source code" will be available to anyone. Anyone who wants to rebuild the programs and run them on their own computer can do just that without buying a thing. Also, by November, we expect that we will be scanning using Linux, an open-source computer operating system. And we'll be using open-source code to run the scanner at the county Elections office. Finally, the scanner itself is not special election-related hardware -- it's just a high-speed, general purpose office scanner.

The project was initiated by Humboldt County County Clerk and Registrar of Voters Carolyn Crnich, former Green party Presidential candidate David Cobb, local citizens Kevin Collins and Parke Bostrom, and Tom Pinto of the Humboldt County District Attorney's office. The custom scanning and counting software, along with the technical procedure used by the project, has been developed pro bono by Humboldt-based freelance programmer Mitch Trachtenberg, who may be contacted at The scanning software will use the SANE ("Scanner Access Now Easy") protocol, and is built on top of the SANE command line program "scanimage". These programs run on top of the Debian Linux Etch release, downloaded from a debian mirror in June 2008. All software used is available for download free of charge. (Download site TBA.)

Our first run was on the June 2008 election, and we have scanned the roughly 30,000 ballots cast. This scan was run using Microsoft Windows to drive the scanner, which captured the images at a resolution of 150 dots per inch. We used Windows while we wait for modifications to the SANE scanner driver which will allow it to control the imprinter that prints serial numbers on the scanned ballots. The images have now been provided to Dr. David Dill of Stanford, Joseph Lorenzo Hall of Berkeley, and Bev Harris of Black Box Voting. We expect they will be available soon for anyone to view or download. The images are also available on 3 DVDs from the Humboldt County elections office.