[albatross-users] revisiting checkboxes..

Eric S. Johansson esj at harvee.org
Fri Jun 27 02:26:10 EST 2003


Michael C. Neel wrote:

> First is, it seems you want the list of none-checked items.  This seems
> odd; possbily consider changing the interface so that the user checks
> the list you are really looking for (i.e. if they check the messages to
> keep; have them instead check the ones to deleted?).

we went around the barn on the user interface for the spamtrap quite a few 
times.  We've tried radio buttons, submit buttons on each line etc. but what we 
currently have seems to be the best minimal user interface.

we start out with the following text:

Instructions:

Messages in the red area are strongly suspected to be spam. They have been 
pre-checked.

Messages in the yellow area may be spam, but it's not certain. They have been 
left un-checked.

Your job is to verify that each message is classified correctly; then press 
"Train" to train the anti-spam system with this new data.

     * If the email is spam, tick the checkbox.
     * If the email is not spam, clear the checkbox.
     * If you are not sure, check the message detail by following the subject link.
     * Click "Train" when all the messages on the screen are correctly marked as 
spam/not spam.
     * Repeat until all messages have been processed.

To update the spamtrap display, click Refresh Display <<== link

======

then under this is the table of spamtrap items color-coded according to score as 
well as checked according to score.  I use the checkbox state on submit to 
decide whether or not to pump the message into the train-as-good or train-as-bad 
paths in the spam discriminator.

> There is the "if list not in list" python statement you can use.  This
> uses the store the list in the session; which I also have done with
> large database results before without trouble (the reason there was the
> querey was done once and not for every page or re-sort).  I would have
> done even larger blocks of data, but file objects cannot be pickled =)
> (and that's probably a good thing).

I'm currently trying the attribute method.  I was fighting refactoring the code 
and was trying to stick with mostly the same structure of a standard CGI.  Then 
I realized (for 10 billionth time), that if I'm encountering significant 
resistance solving a problem one way, I'm solving it the wrong way.  So I gave 
in, started refactoring and it feels easier or at least cleaner than the code 
ahead before.  It's not the best class I have ever written but it sucks less 
than a black hole[1].

I think storing the list and extracting information by set operations will be my 
method of last resort.  It falls the category of brute force/bloody ignorance.

> I don't know the details of your app, so I'm not sure if the above are
> options or not, but just wanted to toss them out there.

I appreciate the effort.  I hope my explanations clarify some of the constraints 
I have on the implementation.  Fortunately, I think the Web interface for the 
user configuration and the dumpster tool will be much easier.  When I can show 
them off, I will send the list a URL.

---eric

[1] yea, yea, yea, I'm an astronomy geek in addition to ham radio and computer 
with a taste for bad jokes.




More information about the Albatross-users mailing list