Re: [OVC-demo-team] Latest update for BRP

From: Eron Lloyd <elloyd_at_lancaster_dot_lib_dot_pa_dot_us>
Date: Wed Mar 10 2004 - 21:38:45 CST

Hi Fred et. al.,

On Wednesday 10 March 2004 5:34 pm, Fred McLain wrote:
> Thanks Eron,
>
> What further information do you need?

I guess I need more information on several things:

1. In Jan's example code
(http://gnosis.python-hosting.com/voting-project/OVC-Demo/0240.html), the
write-ins don't get decoded. In the documentation I think I recall them
simply being given a boolean state in the barcode. If this is the case, why
are they instead explicity declared instead of being read from the barcode
(in the example)? How do I handle this?

2. Have we settled on using the gnosis.xml.objectify function to convert the
XML files to an intermediate data structure for comparison? Also, precisely
what should the comparison process to? A simple boolean A == B?

3. Exactly how should I expect the ballot data to be read and from where?
Right now I simply look to /dev/cdrom/. I'm thinking that it would be easy to
simply pull a serial.txt file to identify and register each disk. Will this
be OK? Should each disk get transferred to a separate directory on the hard
drive, or can they all merge together? (can we guarantee that level of
randomness in the filename?)

4. Has anyone produced a test suite of sample ballots? I'd actually like two:
one with errors, and one without. I imagine a suite consisting of a number of
XML files (and their PS/PDF output) along with a text file listing each
ballot's serial output. If someone could do this and package it up, that
would be a big help. I know there we a couple changes that were pointed out
in David's script, but I'm not sure if they were addressed yet (like the
ballot number padding, etc.).

5. What kind of output do you expect to have from the reconciliation report?
Do you even want anything other than what the UI will display? Should the
poll workers be able to log out even if everything doesn't even out?

6. I have the ability to be able to log just about anything that is done
during the process. Is this desireable to have?

That's all I can think of at this point. As soon as I get answers on each
issue, my code will be complete feature-wise. I would like a few people to
simply scan the code for review, too (I'm going to run it through PyChecker
as well).

> It also appears I am short some files:
>
> [mclain@glowtoy bva]$ python wizard.py
> Traceback (most recent call last):
> File "wizard.py", line 703, in ?
> wizard = BRPWizard()
> File "wizard.py", line 251, in __init__
> self.authHandler = AuthenticationHandler('acl.txt') # Right now we
> assume acl.txt exists
> File "wizard.py", line 155, in __init__
> self.loadAccessControlList(fileName)
> File "wizard.py", line 159, in loadAccessControlList
> self.__acl = dict([acct.strip().split(';') for acct in
> file(fileName, 'r').readlines()])
> IOError: [Errno 2] No such file or directory: 'acl.txt'

acl.txt is a simple text file that holds the Access Control List. This is the
basic authentication source for the BRP. There is no encryption or anything,
but I could easy plug that in if demanded. This is supposed to just be a
simple demo, so please don't judge my security-consciousness solely on the
code :-). To make it work, simply create a acl.txt file in the same directory
wizard.py will be run from. Populate it with a list of potential BRP
operators/witnesses, using the username;password<line break> convention.

The code also looks for a votestations.txt file, which list the serials of
each vote station, each on a separate line. Add this to ensure proper
operation as well.

I don't have many integrity or error checks in place yet either; I will add
robustness as seen fit. If the program crashes from some reason during the
process (I can't imagine it would if ran normally), all is lost; nothing is
transaction-based, and won't be for the demo. Essentially, the code is about
as simple and straightforward as I could make it. It's really hard *trying*
not to write good, solid, well-designed code when I try to make it a habit.

(to paraphrase the Pope): It is what it is.

Eron

---
[This E-mail scanned for viruses by Declude Virus]
==================================================================
= The content of this message, with the exception of any external 
= quotations under fair use, are released to the Public Domain    
==================================================================
Received on Thu Apr 1 02:40:26 2004

This archive was generated by hypermail 2.1.8 : Thu Apr 01 2004 - 02:40:36 CST