Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Perl for the Masses

by shotgunefx (Parson)
on Nov 25, 2002 at 20:49 UTC ( [id://215725]=perlmeditation: print w/replies, xml ) Need Help??

I recently ran across a Bayesian Filtering POP3 proxy written in Perl called PopFile. Good documentation aimed at the common user and easy to use. It might be hard for me to say objectively , but I think most computer "users" could get it going very easily.

After feeding it my saved spam and other boxes, I so far have had 100% accuracy on SPAM. Other subjects (client vs cron/server message/etc) is after a couple of days of training 94%. I'm quite impressed with it's overall look, feel and performance. You can manage it via a local web server.

I've seen many references to Paul Graham's article but not this so I thought I would bring it up. A good product, easy to use, that solves an enormous problem most of the computing world has to deal with on a daily basis. I wonder if this might not be the best form of Perl advocacy?

-Lee

"To be civilized is to deny one's nature."

Replies are listed 'Best First'.
Re: Perl for the Masses
by dingus (Friar) on Nov 26, 2002 at 09:10 UTC
    As I noted in Re: Making a GUI based Win32 app from Perl script. this program does solve the "how the heck do I package a perlscript for dumb users" problem quite elegantly.

    I agree 100% that this is the way to get perl recognised.

    My only slight worry is that, since popfile uses a lot of powerful perl networking modules, if some sneaky person were to manage to find a backdoor into popfile you'd be looking at some extremely capable zombies. I've been spending some time thinking about how best to ensure that the code is well behaved and to verify that the version installed is genuine. I suspect an MD5 hash of the various .pl files and directories is the way to go...

    Dingus


    Enter any 47-digit prime number to continue.
      Great point about the risk of backdoors. Although I'd call it "security holes"; backdoor has malicious connotations, and there's really no reason to think the maintainer of popfile would want to do such a thing.

      The risk of inadvertent holes is present in a lot of the things we use. (For instance, SOAP::Lite used to have serious issues.) It doesn't hurt to remind folks of the possibility!

      Of course, in terms of the number of affected systems, recent security holes in IE, Mozilla, or even WindowMaker are probably going to cause more problems than popfile ever could...
      --
      Mike

      Good point. But on the other hand, I think most MS users just accept the likelyhood of these things happening. I'm not saying that it shouldn't be addressed, not by any means. Just that Windows is full of holes.

      -Lee

      "To be civilized is to deny one's nature."

      I too liked the distribution method. I suggested to Paul Graham that another script ("update.pl" perhaps?) be included in the distribution, that could connect to the POPFile download repository and automatically update the user's installed version if necessary.

      Perl already has all the modules that would be necessary (e.g. the MD5 digest module you mentioned) to make this happen securely, now it just needs someone capable enough to pull it off - it's a little too much for me right now, unfortunately.

      Jon

      Update: hmmm, does Digest::MD5 use C code? If so that would be at odds with the distribution philosophy of using Perl-only code (no compiler requirement)...

      Update II: oops... yes, credit does indeed go to John Graham-Cumming. Thanks again shotgunefx.

        There is a pure perl version of MD5 (Digest::Perl::MD5). As an aside, Paul Graham isn't the author. (I thought so too at first glance) Though he was the first person I saw to suggest using Bayesian filters. The author of Popfile is John Graham-Cumming.

        -Lee

        "To be civilized is to deny one's nature."
Re: Perl for the Masses
by theguvnor (Chaplain) on Nov 26, 2002 at 02:36 UTC

    You beat me to it, shotgunefx! : ) I can't praise POPFile highly enough.

    I installed it a couple of days ago, and am delighted with both its effectiveness and its pleasing interface. It seems well coded from the little I've inspected.

    I have to add a couple of small caveats for the Win32 users:

    • in the latest (v0.17.5) release, the author forgot to include the locale.pm pragma module (confirmed in email with him). After copying my ActivePerl locale.pm into the POPFile directory, everything worked like a charm.
    • I had trouble with insert.pl, as it was looking for Text::ParseWords which was also not included in the distro... not sure how big a deal this is.

    I highly recommend this project!

    Jon

    Update: added my second caveat, which I initially forgot. Thanks also to shotgunefx for letting me know there is newer release.

      I got 0.17.6 which uses locale. The only thing I added was Win32::GUI to hide the console window. The code is fairly clean and easy to understand (Running does generate many spurious uninitialized warnings though).

      I'm glad they beat me to it so I didn't have to write it myself. So far, very impressive. Perl could use a killer app, and this might be it.

      -Lee

      "To be civilized is to deny one's nature."
        The only thing I added was Win32::GUI to hide the console window. The code is fairly clean and easy to understand (Running does generate many spurious uninitialized warnings though).
        I thought the windows version ran using wperl and thus had no console window. At least the 0.17.3 version does that if you choose the "Run POPFile in Background" option.

        Remember to send feedback esp changes/patches to the sourceforge project contacts - as it says in the Readme it is supposed to run cleanly with no warnings so please feedback those "spurious unitialized warnings"

        Dingus


        Enter any 47-digit prime number to continue.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://215725]
Approved by TStanley
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (4)
As of 2024-04-16 20:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found