I broke down and
implemented this finally. It has been on the TODO list since GEMS started
downloading memory cards, but just never made it to the top of the list until
now. The feature is in GEMS 1.14.1.
What GEMS now does
is store a "signature" along for the memory card when it is downloaded.
When you un-set-for-election, GEMS no longer clobbers all memory cards.
Instead, when you again set-for-election, GEMS will prompt whether you want to
try to recover programmed memory cards. If you say yes, it will regenerate
the memory card images and signatures, and compare against the signatures from
the previous download. If they match, the memory card will remain in the
downloaded state with the same version. If the signatures don't match, the
memory card is set to not-programmed just like before. If you make a
change to the database that affects only one memory card, only that card will
need to be reprogrammed.
Note that for all
its power, this is not a magic bullet. If you change something that
affects all memory cards (changing the election title for example), you will
still have to redownload everything. If you know that a change has
clobbered all the memory cards, or are just testing, don't bother answering yes
to the recovery prompt. The recovery process can take a very long time --
it does exactly the same process as redownloading all cards.
Also note that this
feature interacts badly with the (mis)feature that you can change race and
candidate labels after set-for-election. As has been discussed
before, this should not be allowed, but is currently allowed by
popular demand. Unfortunately, this confuses the signature mechanism,
since the memory card contents really have changed. If you change the
labels while set-for-election, then unset, those affected memory cards will need
to be re-downloaded.
Finally, don't let
this new feature change the way you think about set-for-election. This has
been my greatest concern with providing a recovery mechanism. If you
use the feature, you have to take responsibility for programming those cards
that need it. When all memory cards were clobbered, you knew exactly where
you stood. You collected all your cards in one place and
started reprogramming. Now you have to make sure that the few cards that
needed to be reprogrammed aren't sitting in an AccuVote somewhere waiting to get
shipped to the polling place. They won't upload if they are the wrong
version. If this sounds scary you, it should. If you don't feel this
is manageable, just say no to the recover prompt to get the old GEMS
"clobber everything" behaviour.
In short, take
unsetting seriously. It is there for your protection.
Ken
|