Thursday, July 16, 2009

Public access to source code of election programs (Jul 17 09)

The term "open source" and the more revolutionary term "free software" have official definitions given in the following documents:

1. Open source: http://www.opensource.org/docs/definition.php

2. Free software: http://www.gnu.org/philosophy/free-sw.html

Basically, open source (& free software) means the person (anybody) who got the software under the open source/free software license has the freedom to study the code, make improvements, give the code away for free or for profit, plus many other freedoms. The only difference between open source and free software is in the treatment of derivative products. BSD-open-source allows the derivative product to be covered by any license the derivator wants. A derivative of GPL-free-software must be covered by the GPL-free-software license. The exact text of the GPL is given here:

http://www.gnu.org/licenses/gpl.txt

The law RA-9369 requires that the source code of the election programs (PCOS and CCS) be made available by Comelec to the political parties and interested groups, for their independent review. But the law did not specify that the election programs be made open source, since that is asking too much.

However, Smartmatic's SAES-1800 program can be considered a "derivative" product of the uClinux operating system and libSane scanner library, both of which are GPL-free-software. "Considered derivative product" because I am not absolutely sure that it is a derivative product. If it is, then it must be GPL-free-software, by the infectious nature of the GPL. Under the conditions of the GPL, Smartmatic has to post the PCOS/SAES-1800 source code in a publicly accessible site.

Whether GPL or not, the law RA-9369 is clear. The political parties and interested groups have just to request Comelec, and under this law, Comelec has to make the source code available. There is no mention in the law of any source code review "guidelines". The term "guidelines" was coined by Melo/jimenez to restrict the freedom of citizens to access the source code, and "guidelines" has the effect of making the code accessible only to the experts, and only those "experts" as defined by Comelec.


By the nature of fully computerized counting of our votes from our paper ballots, it is not possible to witness a public counting of our votes, and so we can never be truly confident that the computer does not make mistakes counting our votes. Only a source code review by the public will assure the public that the computer will do a reasonable job. But by setting "guidelines", the Comelec is depriving the public the right to know how their votes are counted.

It helps to know that we graduate tens of thousands from our B.S. Computer Science and B.S. Information Technology programs. In fact, our government leaders take pride in the fact that the Filipino is the world's best English-speaking programmer. So we have hundreds of thousands of Filipinos who can read source code, so why restrict access to source code by setting "guidelines" giving only experts selected by Comelec exclusive access.

Computerized Election 2010 should implement secret voting and public counting. And computerized counting can have some semblance to public counting only when the source is made public.

No comments: