Category Archives: Tech

The Election – 2000

As I write this, a week after the Presidential Election we still don’t know who won. Part of the problem is simply due to the incredible closeness of the vote. The main problem lies with the archaic way we vote.

I am not talking about the Electoral College, which I think is as valid today as it was when first established.

The actual ballots and how they are punched, checked, marked, and above all counted, are hoplessly out of date and should be replaced.

There are many technical issues and detailed checks and balances that will need to be addressed but a general approach is easy to determine.

Each voter is mailed their precinct card, just like we already do. The new precinct card will contain a voters unique ID# and a random default password. The ID# will be randomly generated so that they can not be easily guessed. Additional steps, such as sending a conformation code to each mailing address could be added if necessary.

Voting could be done either via the web, using any browser that supports SSL, or at the polling place using the same web based interface (ensure consistency). The machines at the polling place should be on an isolated network (to prevent hacking) and connected only to the central state voting commission computers.

Using a basic HTML form it is easy to prevent many of the common problems that currently cause votes to be discarded. Radio buttons can easily prevent multiple selections. By forcing the voter to specify that they abstain from voting for a canidate or issue rather that just leaving that section blank, simple JavaScript can alert the user to missed sections before the vote is even submitted.

After voting each voter is given a reciept that is the only record of how they as an individual voted. The reciept is simpy a confirmation page sent to the web browser. It contains their name (maybe not?), their ID#, vote#, how they voted on each issue (including abstentions) and a plain text (not human readable) public key signature block at the bottom that “certifies” or “verifies” that it is an offical reciept (perhaps enclose an encrypted copy of the vote information in that block).

The voters ID# is tossed out and not stored with the vote. Each vote is assigned a unique vote#. If a voter suspects that their vote was not correctly recorded they simply present the vote reciept. The vote# is matched to the vote# stored in the election database. The database entry is compared with the reciept.

How Software Should Work

Each piece of software should be contained entirely on a card, about the size of a current PCMCIA card.

On my desk I would have a row of slots into which I can insert a number of cards.

If I want to use a Word Processor I grab my Word Processor card and stick it in. Nothing visible should happen. No install screen, no auto-detection dialog box, nothing.

If I want to use the Word Processor, I pull down a list of available application cards and pick the Word Processor.

No installation is required. Any personal configuration changes I make are stored on my Configuration Card.

If a coworker want’s to use my Word Processor I just pull the card out and hand it to her.

If I move to a new machine I have never used before, all I need to do is insert my Configuration Card and it knows what color scheme I like, background wallpaper, position of toolbars, and any other of a billion preferences.

The Configuration Card keeps track not only of system preferences but of individual application preferences.

Each application stores all its preferences in a seperate file so if I stop using an application, or a config file becomes corrupted, I can remove the file from my confiugration card and not affect any other programs.

If I remove an application card before closing the software on it, the system should save an “Emergency Termination Recovery” file that would allow it to gracefully, naturally, recover next time I run the application.
Removing the card should not be a “bad thing” but a normal way to work with the software.