BVA Beta

From: Alan Dechert <alan_at_openvotingconsortium_dot_org>
Date: Wed Nov 19 2003 - 19:39:54 CST

I tried several times over the last few days to upload this to sourceforge
but have not need able to ftp. I don't know if it's something I'm doing
wrong or sourceforge is not working up to speed. Anyway, I posted it to the
OVC site:

I am calling this a "beta candidate." Unless someone finds a serious issue
with it, this is what will be used in the demo for the BVA app. It's a DOS
application and could work on most any PC made in the last 10 years.

I cleaned up a few things. I fixed the error Jan found (wav file wrong),
and I added error detection code. That is, if there is a scan error, it's
like 99.9999+ percent certain that the ballot would be invalid (too many
selections indicated in one or more contests) -- assuming Jan's code is
correct. If Jan's code is wrong, the BVA error detection might also help to
uncover that (I found one minor error in Jan's code that way).

I also made it possible to work with Windows Media Player. Before, it
played a list of wav files one at a time while having to relaunch the wav
player each time. This made it a bit awkward to abandon the process. Now,
I write out the list and hand it off to Media Player (if you start it with
the MP option). I was going to make it work with OS/2 (to satisfy any
anti-MIS sentiment) also but I couldn't find my WARP 3.0 disk.

Another thing I did: I noticed that Jan sorts the County Commissioner votes
depending on how they were ranked. I liked that so I changed BVA to do the

Anyway, I think this is good enough. It's not like this will be used on
many machines. If you want to get started testing with it, download the file
and unzip it to a directory of your choice (no install procedure -- just
unzip). Open a DOS box and run the executable (bva.exe). Of course, you'll
need a ballot with which to check. You get that from Jan's app on the

It helps if you have a CueCat -- I sent out 10 or so of them. If you want
one, let me know and I will send you one (while supplies last!). You don't
have to have a CueCat though... you can get the number from Jan's app and
cut and paste it into the BVA entryfield.

Since we have no test plan so far (Matt, cough), let me suggest a few

Look at the test ballot

 and notice the first choice on the ballot (i.e., Geo Washington for Pres).
That corresponds to sel001.wav. The next choice corresponds to sel002.wav
and so on until you get to the last one, which you should hear if you rank a
write-in candidate 8th in the county commissioner contest (that one will be

Make a list like this:

Play file Expected result
-------- ------------------
sel001.wav "Geo Wash for Pres ... Lincoln Vice Pres ...
sel002.wav etc...

use any wavfile player to play the file and mark it pass fail.

Likewise verify the NPxx files to verify that they say "No Preference ...."
for the correct contest (01 being the first and 13 being the last)

Maybe Matt could coordinate the testing and you could send the results to
Matt. 116 files is a lot so maybe you could do some and others could to the

Matt? Hello Matt? Come in Matt.

Print a ballot from Jan's app. Feed the number (either scanned or cut and
pasted) into the BVA app and listen

Save the PDF files (or postscript files) and record the result

Ballot 3201 PASS/FAIL
Ballot 8765 PASS/FAIL

And so on.

I left in some debug code. This can be used to check with.

Every time you run BVA, a file is written called test-str.txt This file has
five lines:

1) The barcode data (40 digits long)
2) The ballot number (4 digits long)
3) The scrambled number representing the votes (the barcode data less the
ballot number) (36 digits long)
4) The unscrambled number representing the votes (36 digits long)
5) The binary representation of the number in line 4 (116 binary digits)

[helps to open the file with an editor that indicates in character position
like DOS EDIT]

Numbers have correct length? PASS/FAIL
Number one correct? PASS/FAIL
Number two correct? PASS/FAIL

and so on

Number 5 could be verified manually by taking the printed ballot (or PDF
file on screen) and checking that there is a "1" in the column corresponding
to each vote on the ballot and zeros everywhere else.

Paste barcode data from Jan's app into the BVA entryfield. Change one (or
more) of the digits. Very likely, this will cause an "Invalid Input"

Document what you entered and the result. Then look at the test-str.txt
file and see if the number in line 5 would make an invalid ballot.

In the unlikely event you change a number and still get a valid ballot,
investigate to see how that happened (probably, this can only happen if you
change only the right-most digit).

Devise other test cases. Contact Matt or me for help and coordination.

As I mentioned, to use the default wav player (supplied) just type in bva
[enter] to run

If you want to run with media player (preferred) a little set up is needed.

1) Create the playlist (bvalist) in media player and export to directory
where you will be running bva
   - Media Library | New playlist |enter "bvalist" | pick some media files
(don't care what)
   - file | export playlist to file
2) Close Media Player

If media player is installed in the default location, start bva like so:

bva [mp]

if media player is not in the default location, provide the path instead of

for example, if media player was on d: you might enter

bva [d:\progra~1\window~1\wmplayer.exe]

I recommend that you run media player in compact mode (click on the little
icon in the lower right corner)

I just tried to ftp to sourceforge again and it didn't work. So, for now,
just get the zip file from the location mentioned above.

-- Alan Dechert 916-791-0456
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
Received on Sun Nov 30 23:17:04 2003

This archive was generated by hypermail 2.1.8 : Sun Nov 30 2003 - 23:17:13 CST