topbarExpand or Collapse

Recent Posts

Productivity Wallpaper
How Not to Design a Form
Time Wasters: Guitar Hero/Rock Band Clone and Physics Games
Prag Pub Issue 1 out
Full Frontal
Custom Yahoo Status WPWidget
Remove .svn directories
Yahoo! Purple Hack & Open Hack Day MNL
Google/Globe Developer Workshop and Thoughts
Coda

Categories

Tags

 

Stuff

Automated Philippine Elections

Tags: , ,


20 Jun
2009
 

So we all have heard that the May 2010 Philippines Elections is going to be automated. The proposal was already written in 1998 but it is only now that we’re going to get to use it. From what I understand several companies have placed bids and someone has already gotten the billion (?) peso contract. Anyone know which company got it, for how much, and what technologies they are using? One would also like to know whether the company in question is affiliated in some way to any political party or person.

From what I imagine the architecture will be something like:

  • Each precinct will have some electronic terminal (a device with a screen where users enter their votes) or ballot reader (a device which reads paper ballots, either punched or shaded). This is the endpoint where voters enter their votes.
  • These endpoints are connected via some secure medium (internet, phone line, etc) to a server that records and tallies the ballots.
  • The server provides election data in real time, from which the official election results will be printed or displayed. So the election results will probably be available the same day that the polls close.

In reality it will be much more complicated but I think this is the general idea (That’s how I’d build it).

I’ve read Republic Act No. 9369 which describes the Automated Election System and how it will be created and audited. It’s important to note this particular section:

“SEC. 14. Examination and Testing of Equipment or Device of the AES and Opening of the Source Code for Review. – The Commission shall allow the political parties and candidates or their representatives, citizens’ arm or their representatives to examine and test. “The equipment or device to be used in the voting and counting on the day of the electoral exercise, before voting starts. Test ballots and test forms shall be provided by the Commission.”

“Immediately after the examination and testing of the equipment or device, the parties and candidates or their representatives, citizens’ arms or their representatives, may submit a written comment to the election officer who shall immediately transmit it to the Commission for appropriate action.”

“The election officer shall keep minutes of the testing, a copy of which shall be submitted to the Commission ogether with the minutes of voting.”

“Once an AES technology is selected for implementation, the Commission shall promptly make the source code of that technology available and open to any interested political party or groups which may conduct their own review
thereof.”

This raises a few questions:

  1. Which parts of the source are viewable to the open public (the code on the voting devices, the server source?)
  2. How do we know that the same code is used on the actual election day?
  3. How do we get access to this? (I can’t imagine it being printed on a local newspaper)

This makes me think that to make sure that we have clean and transparent elections that the automation software needs to be as transparent as possible. This also means that it should be built by people with no agenda other than making this country better. This means that the software should be built somebody you can trust: YOU.

I am asking all local developers to step forward so we can try and build this thing. It may be ambitious and even unrealistic that we will make a May 2010 deadline, but there sure will be elections until 20 years after we build it. Building it open source means it’s fully transparent to everyone, at any moment during development.

This addresses my 3 questions:

  1. The entire system will be built from the ground up. The server can be your standard API based web application. The client can be a thin dumb client or rich client that can run on a terminal with a keypad or touchscreen.
  2. We can put tokens or mechanisms in place that verify source code integrity on each ballot submitted.
  3. Anyone can have read access on a public repository for viewing.

We might not get paid a billion pesos for it, but what is the price of having a good government to you? Look at it this way. Writers have their blogs, articles or news reports that expose corruption in our government. Musicians write their protest songs. Other artists have their own ways for reform. This is ours. Programming is our craft. Building software is what we do.

Anyone who is interested can leave a comment or shoot me an email. We can get a repo for code almost anywhere (google code, github, we can even set up svn on slicehost or webfaction). It would be great to talk about the architecture and how to actually build this thing with excellent security in place. We can set up a chat for that. We can then agree on the technology and platform and start prototyping.

This is your chance to refactor the system.

EDIT: I realize I might sound crazy dramatic (that’s just how I am) especially because I don’t even know who’s building the current system. Any information on that would just be awesome. Who knows, they might give us access to their repo (I hope they are using one) so we can point out any bugs. Or even better, give us commit access.

EDIT 2: Just found out that SmartMatic is the company handling the automation. The government paid 7.2B pesos for it apparently. Whoa.