

                   RRR Sorority Division presents 


                               PIMPPA 
 
                        v0.4.4 / 23.Jul.2000


                    http://pimppa.sourceforge.net/


1. Legal junk
-------------
See file COPYING


2. What is this anyway
----------------------
Imagine the unfortunate situation where much more stuff
(and even more crap, spam, etc) comes from the Net than you are 
bothered to handle manually. Shall we say, several hundred 
files daily, totalling to over hundreds of thousands of files 
in the long run. Direct net connection and access to an
adequate news server easily provides such conditions.

PIMPPA is designed to help in such a case, to minimize the required
human interaction, striving for complete "hands free" operation,
where you could once a week (for example) drop by and check out
the already filtered and polished catch. The system is suited 
for all types of files, but it was first designed with pics in 
mind. :)

PIMPPA includes automatic tools for newsgroup leeching, decoding,
duplicate discarding and further file processing. For example, 
files downloaded from newsgroups can be automatically deposited 
to appropriate directories based on their filenames.

PIMPPA provides nifty command line interfaces for file access 
and backup operations. 

In addition, there's a fancy(?) Gnome GUI.


3. Requirements
---------------

 - Linux 2.x.x
 - MySQL. RPMs of v3.22.30 will do just fine. 
   You can get them free for noncommercial use from "http://www.tcx.se/"
 - Suck (v4.2.2 will do) for downloading newsgroups. It should be 
   available at "ftp://metalab.unc.edu/pub/Linux/system/news/transport/"
 - Uudeview (v0.5.13 will do) for decoding news. It should be 
   available at "ftp://metalab.unc.edu/pub/Linux/utils/text/"
 - GNOME for GUI. See "http://www.gnome.org/"

PIMPPA depends on so much external stuff because there is no reason to
reinvent the wheel. Its a better idea to use the best applications
available for specific tasks. When the external programs get better,
PIMPPA gets better. If completely new programs surface (performing
similar tasks) they could be easily integrated into the system.


4. Install
----------

See file INSTALL. "Third floor, second door on the left". 
Isn't bureacracy such a nice thing?


4.1 Upgrading
-------------
If you're upgrading from a previous version, see file
"ChangeLog" for lines "CHANGE:" to see what you should do.
After that, just do the step 4 above.


5. How to use
-------------
Here's some examples and hints.


5.1 Getting started on newsgroup sucking
----------------------------------------
(If you dislike hot command line action, you might
want to use the GUI "bowser" instead of following these
instructions. You'll still have to do things in the
same order: Preferences -> Add some fileareas -> Add 
some newsgroups. After that you can leech.)

To leech stuff from the news, you must first create 
some destination (incoming!) areas. Use the command:

shell> pnewarea -i -n <area_name> -p <directory_path>

As you now have a couple of areas, assign some newsgroups
to them. Any number of newsgroups may be assigned to a single
area.

shell> pnewgrp -n <newsgroup_name> -d <area_name>

Ok! Then its time to leech! 

shell> pleech -H <your.news.server>

If it succeeds, you should have several files decoded to
the destination fileareas. Most of them will be crap, 
but lets pretend that there's some famous Goatlord-stuff 
(pictures) called "blah*.jpg" there you wish to keep.

There's not yet any location for Goatlord's material, 
so you would want to create a new filearea for them,
a "non-incoming" area which is meant only for quality stuff.

shell> pnewarea -n goatlord -p /stuff/goatlord/

Now you have a new filearea called "goatlord". Enter the
directory where you got the "blah*" files and execute
"pmv blah* goatlord". Files will be moved, and in future all
files fetched by "pleech" matching a special pattern 
created for "blah*" will be automatically moved to the 
"goatlord" filearea, and not to the newsgroup's default
destination.

If rest of the files you got were junk, you can delete them
or whatever. They won't bother you ever again, even if someone
reposts them in the future. If you don't wish to see their
relatives either, use "pkill". See chapter 7 for details. 

Now it might be a good idea to make "crond" execute 
"pleech -H <your.news.server>" nightly. :)


5.2 Files from other sources
----------------------------
Just normally "mv" the files to some directory assigned
as a PIMPPA-filearea. Then use "padopt" to add them to the
PIMPPA database. Later, those files are just as any which
were sucked from the news - only duplicate check is not 
performed on them.


5.3 Viewing & backupping files
------------------------------
See chapter "Scripts" for quick descriptions of some
viewing interfaces.

When your harddisk starts to burst with all the stuff you have
downloaded, it might be time to store them elsewhere. See
chapter "Utilities" for util called "pbackup". 


5.4 Manual duplicate checking
-----------------------------
While surfing the web, you encounter some tasty files, 
named "blood_*.jpg". Unfortunately, you can't remember if
you already have them. (It might be hard sometimes). 
Easy, util "pf" is just for that purpose. Use

shell> pf -p blood%

and you get the result rather quick even if you had over
100000 files on your PIMPPA system.

If the files are online, you could view them just as speedily
by using "pv_name", e.g.

shell> pv_name blood%


5.5 Wading through a lot of junk
--------------------------------
Suppose you download a lot of unsorted crap to a single
directory, which is not a PIMPPA filearea. If you have 
some assign patterns already defined, you can use

shell> pclean -dp
shell> padopt -m

combination. First command cleans up the directory 
from the files you already have in pimppa database and 
removes files which are otherwise considered unsuitable. 
The second command moves known files to the correct 
fileareas. The files left to the directory are the
ones that you'll just have to check manually.

Note: for this to work efficiently, PIMPPA must already
have gained some knowledge about different file series
to its 'assign pattern' -table.


5.6 Example for a true fanatic
------------------------------
In the wide world there might be just a few series of files you want,
but you just don't bother to personally seek them out. Well,
just create the assign patterns for the files you want (for
example by entering one file of the wanted series in the database 
and running "bin/passign" or using "bowser") and then always run 
"bin/pleech" with switch "-n". All files not matching your 
existing patterns will be quietly discarded. One day you may be 
lucky and hit your pot of gold. Or perhaps the precious ones drip 
to your harddisk only slowly. ;)


6. GUI
------
PIMPPA has a GUI called "bowser", which lets you perform 
various operations on your fileareas, files, assign patterns, 
file types and newsgroups. The GUI usage should be self-
explanatory. Filelist operations (like view/delete/move)
are accessed by pressing the right mouse button on the 
filelist window.

Note: GUI uses "gqview" to view files. It can be changed
from "src/pimppa.h". 

Warning: "View" and "Delete" operations automatically 
affect all selected items! They do not ask confirmations.

However, most of the really powerful operations of PIMPPA 
are done using plain shell utilities and scripts - 
without fancy user interfaces. :) So after you get bored 
with the simple and limiting GUI, take a look at the 
command line stuff.


6.1. Setting prefs from GUI
---------------------------
The fields in prefs reflect their respective SQL tables. 
With a little thinking and reading this file you should 
be able to get 'em right.

Remember to set all areas which newsgroups are directed
to as INCOMING.


7. Utilities
------------

    padddir
    -------
    This adds the contents of the current directory to filearea 0.
    It can be used to prevent the stuff there from bothering you
    ever again (they will be skipped if re-encountered in future).

    Usage:  padddir [-v]             
    
            -v              Verbose execution

    Note: Perhaps a better way to do this would be to move
    the files to some 'dump' filearea, add them there with
    'padopt' and then kill them with 'pkill'. That would
    produce a couple of assign patterns instead of keeping 
    all the filenames in the database. Result is more
	general: all similarly named files will be deleted 
	in the future.


    padopt
    ------
    This goes through all the PIMPPA fileareas and adds the
    files that are found in the dirs, but not in the database, 
    to the database.
    
    Usage:  padopt [-v]
   
            -a <pattern>    SQL area name pattern to operate on, def=all
            -m              Move files from current directory
            -v              Verbose execution
    
    -m switch moves files matching assign patterns from current 
    directory (which shouldn't be any filearea!) to fileareas.
    
    Note: padopt updates assign patterns.


    passign
    -------
    This browses through all your files and automatically recreates
    the "assign patterns" for them. See section 9.1 for explanation.

    Usage:  passign [-c]

            -c              Delete all previous patterns. Does not
                            affect patterns with negative destination area.

    Note: Updates assign patterns. 
    Note2: Assign patterns are not created for contents of INCOMING areas.
    
    
    pbackup
    -------
    The backup util.

    Files which have "file_backup==0" in database [or the value specified
    with "-r" on the commandline] will be included in the backup.
    Backuped files will be given a new file_backup ID [or the one 
    specified with "-r"] ... 

    Files will be included until media size is reached. Media
    size can be specified on the commandline (in Megabytes).
    In normal operation the next backup will start from the
    area where the last backup operation ended.

    A shadow directory of the backuped files is created
    to a specified location ("-p path") along with a filelist.
    Default is "/tmp/test/". You can then create an ISO-image 
    out of the created directory structure, stream it to 
    tape or whatever.
    
    e.g. after pbackup
    shell> cd /tmp/test
    shell> mkisofs -J -a -d -D -L -R -r -f -o /tmp/cd.img -V JUNK03 .
    shell> cdrecord -data /tmp/cd.img
   	
	And to get rid of the backuped files from HD, use

	shell> pclean -i <backup_id>
   
    Note1: Without "-n", this utility tries to fill the backup media 
    to the brim. In any case, it can't know which files should 
    go together. For example, disk archives belonging to the 
    same product may end up on different backups.

    Note2: After using this utility, its suggested to do atleast 
    "du -L" in the destination directory to see that everything
    went ok.
   
    Note3: Contents of INCOMING areas will not be backupped.
    
    Usage:  pbackup [options]

            -n             Be nice, stop at first file not fitting on media 
            -p <path>      Path to make the shadow directory into
            -r <ID>        Specify an explicit backup ID number
            -R             Randomize area order
            -c <area_id>   Skip this file area, can be entered many times
            -s <size>      Media size in megabytes (1MB==1024*1024 bytes)

    
    pclean
    ------
    Performs various delete operations. Use with caution!

    Usage:  pclean [options] 
    
            -a <area_id>    Purge duplicates from <area_id>
            -d              Delete files found in db from the current dir
            -f              Delete files which failed integrity check 
            -i <backup_id>  Delete files associated with backup id
            -n <area_id>    Delete files from <area_id> which have no numbers
                            in filenames.
            -p              'Purify' current dir
            -s              Simulate only, don't delete anything
            -z              Zuper slaughter, immense
            -v              Verbose execution
    
    -a : Deletes those files from <area_id> which exist on
         other areas. Works on filename basis only.
        
    -d : Deletes ALL files from the current dir which are found in the
         database. Don't use this on actual pimppa filearea dir.
        
    -f : Physically deletes all files which have failed the integrity
         check. Files will be marked as FLAG_OFFLINE and replaced later
		 if the file is re-encountered e.g. by "pleech".

    -i : To be used after a successful backup operation. It deletes all
         files associated with a given backup_id, and gives them an
         FLAG_OFFLINE status to the database.

    -n : Delete files from <area_id> which have no numbers in filenames

    -p : Checks the current directory (which shouldn't be a filearea!)
         against your current file validity rules and assign patterns.
         Files which have negative assign patterns or violate the
         rules (e.g. NEEDNUMBER, see "src/pimppa.h") will be deleted.

    -s : Simulate execution only, don't change anything. Most useful
         with '-v'.
         
    -z : Deletes offline files from areas marked AREA_INCOMING,
         creates negative assign patterns for ALL of those files,
         and deletes the files from the database.

    pdesc
    -----
    Used to give text descriptions to files.
    
    Usage: pdesc [files] ["Desc"]

           [files]          The files you wish to describe in current dir
           ["Desc"]         The description you wish to give them


    pf
    --
    "Pimppa Find". Searches for filenames from the database. 
    Uses SQL style wildcards ('% for *' and '_ for ?'). 

    Usage:  pf [-p] <pattern>

            <pattern>       Filename pattern
            -p              Print pathnames as well

    The printing format is '[path/][filename] [backup_id if nonzero]'.
   
   
    pkill
    -----
    Deletes files from the filearea matching current dir. Both
    the physical files and the records in the p_files -table 
    will be deleted. A new assign pattern will be created 
    for each file having -1 as the destination area, so that 
    all similar files will be killed when encountered in 
    the future.

    Usage:  pkill [-v] <files>
  
            -n              Nice kill. Don't create negative assign
                            patterns or delete the file entry from database, 
                            just mark the file as offline and delete the
                            actual file.
            -v              Verbose execution

    Use pkill with caution. :---)
 

    pleech
    ------
    This is the news downloading tool. It fetches files from the
    newsgroups you have defined. After decoding, the files are 
	duplicate checked, and assigned to their appropriate fileareas 
	if they match an assign pattern. Otherwise they will be 
	entered to their default destination areas. 
    
    As a default, pleech uses the NNTP server defined in "src/pimppa.h".

    Usage:  pleech [options]
    
            -a <n>          Wait After n messages, def=10
            -g <pat>        Newsgroup name SQL pattern to match, def=all
            -H <host>       NNTP server name.
            -n              Nazi behaviour. Deletes all files which 
                            do not have an assign pattern already defined.
            -v              Verbose output
            -w <secs>       Wait secs after [-a n] messages, def=2

    pleech depends on "suck" for leeching and "uudeview" for decoding. 
	You MUST have those on command execution path.


    pmarkoff
    --------
    Goes through your fileareas and marks offline files
    (not available in their directories). Such files are 
	skipped by most operations, like viewing and backuping.
    
    
    pmv
    ---
    PIMPPA mv. Moves files from the area matching current dir to a 
    destination area. The matching area will be found out
    by using getcwd() and p_areas -table.

    Usage:  pmv <files> <destination_area>

    Example:
    shell> pmv fish*.jpg aquarium
    
    would move fish*.jpg to a filearea called 'aquarium'. The actual 
    destination directory location is fetched from the database.

    Note: Updates assign patterns.


    pnewarea
    --------
    Adds a new filearea to the database. Note that you must create
    the actual directory yourself with "mkdir". 

    Usage:  pnewarea -n <name> -p <dirpath> [options]

            -i             Mark area as AREA_INCOMING
            -I <id>        Suggest id number for the new area
            -n <name>      Area name, MUST
            -t             Mark area as AREA_NOTRANS
            -p <dirpath>   Area directory path, MUST

    Example:
    shell> pnewarea -n pasture -p /stuff/pasture/
    
    would add a new filearea with name "pasture" and 
    directory path as "/stuff/pasture/". 


    pnewgrp
    -------
    Adds a new newsgroup to the system. Every group needs some 
    filearea as a default destination for the decoded files.

    Usage:  pnewgrp -d <dest_area> -n <group_name>

            -d <dest_area>  Destination area name, MUST
            -n <group_name> Newsgroup name, MUST


    ptest
    -----
    File integrity checker. Searches for untested files and
    tests them. Sets database flag "file_integ" accordingly.
    The utils used for integrity checking of different filetypes 
    are defined in PIMPPA SQL table "p_types" and can be 
    modified from the GUI "bowser". If column "type_testokstr"
	is an empty string, the test command return value will
	be used instead. 0 == FILE OK, anything else == FAILED.

    Usage:  ptest [options]

            -n              Nazi behaviour. Delete files which fail
                            the integrity check. Use with CAUTION.
            -v              Verbose execution

	Note: "example_types.sql" -file holds example configs for 
	some integrity checkers and file transformers.
	

    ptrans
    ------
    File transformer. This can perform tasks like file optimization,
    conversion or perhaps add/remove spam (yuk). It searches for
    integrity-test passed files which have not yet been transformed 
	and tries to transform them. The utils for transformation are 
	defined in PIMPPA SQL table "p_types" and can be modified from 
	the GUI "bowser". 
    
    If some filearea has "area_flags" set to AREA_NOTRANS
    or AREA_INCOMING, the contents of the area will be skipped.

    Usage:  ptrans [-v]

            -v              Verbose execution


8. Scripts
----------
The scripts are just shell scripts, so you can easily edit 
them with a text editor to suit your needs.

Note: the viewing scripts are currently for picture material,
and default to "gqview" as the picture viewer. gqview is quite nice. :)
All the viewing scripts affect all files anywhere on the 
PIMPPA system (unless they are offline or on incoming areas). 


    p_areas
    -------
    Lists all your fileareas, their paths and their area ID numbers.
    
 
    p_con
    -----
    Prints out the contents for a given backup volume id
    in "Area | Megs" format.


    p_groups
    --------
    Prints all the newsgroups that are not disabled.


    p_loc
    -----
    Finds out backup id's containing files from a given filearea,
    specified by area name (or sql wildcard containing pattern).


    p_maint
    -------
    Useful to run daily from crond after "pleech". It just 
    performs "padopt", "ptest" and "ptrans". 


    pv_desc
    -------
    Views files matching a given SQL format file description. 

    
    pv_last
    -------
    Views files that arrived since the last run of this script
	(Bowser's "Extras/View since" just executes this script.)

    
    pv_name
    -------
    Views files matching a given SQL format filename pattern.

    Example. 
    
    shell> pv_name pussy%


    pv_since
    --------
    Views files which are newer than certain number of days.

    
    pv_sql
    ------
    Views files by any suitable SQL WHERE statement. MySQL 
    manual is a suitable starting point if you don't know SQL.


    rc2sql
    ------
    Converts and inserts a suck .rc file (newsgroup list)
	to 'p_groups' table.


    viewdeep
    --------
    Actually not much to do with PIMPPA system. If you have used
    'wget' to mirror some website, but do not bother to click around
    the zillion directories, you can for example use 'viewdeep "*.jpg"'
    to give you a quick access to all jpg files in the current dir 
    and all its subdirs.


9. Some behaviour notes
-----------------------
How it works? What it eats? 


9.1 Assign patterns
-------------------
"pleech" (and bowser Leech, which uses the same routines)
decides based on assign patterns where it should store 
files whose filename matches some pattern in the 
database. 

For each filename in the system, there can be a (pattern, dest_area)
pair in the database telling the destination area where similarly
named files should be moved in future. Naturally all files 
belonging together should map to the same pattern for this 
scheme to do any good.

The pattern is constructed from the filename as follows:

1) All numbers are converted to character '0'.
2) All letters after the last number and before the last dot ('.')
   are considered as indexes, and converted to '1'.
3) After first '.', all alphabetical letters stay intact.

E.g. name           => pattern
     ----              -------
     "ab-103-h.jpg" => "ab-000-1.jpg"
     "ab-103-z.jpg" => "ab-000-1.jpg"
     "ab-210-a.jpg" => "ab-000-1.jpg"
     "ab-01a-2.jpg" => "ab-00a-0.jpg"

The assign patterns are by no means foolproof. One reason
is different files being created around the world with same 
names. However, its fairly good with really big series 
having some uncommon filename prefix like "gwo-???.zip".
However, its not so good for files named imaginatively
like "image001.jpg" which surface on every corner.
    
Example: If you have in the database a pattern "bozo_000.png" 
pointing to area 5, "pleech" would send files named "bozo_123.png"
and "bozo_124.png" to area 5, but files "bozo_abc123.png" 
and "bozo_100.jpg" would end up in the default destination area.

PIMPPA-aware utils like "pmv" and "padopt" automatically update 
and create assign patterns, and the whole pattern database
can be reconstructed with "passign".

Note: A negative assign pattern destination area id will cause
all matching files to be quietly discarded by "pleech" in the
future.


9.2 Miscellaneous
-----------------
By default, "pleech" (and Bowser leech) converts all 
filenames to lowercase, and discards all

1) duplicate files (see 9.3 RegExp dupecheck) 
2) files which have no numbers in the filenames
3) files that have only numbers before the extension. 
4) files that have whitespace in the filenames

Usually such files are renames, spam or just plain nuisance. 

Edit file "src/pimppa.h" to change these behaviours.

Some additional behaviour options may be added in the future.
I'll happily receive any suggestions and ideas!


9.3. RegExp dupecheck
---------------------
As a default, pimppa leech checks that incoming files do
not already exist on any filearea. If they do, the incoming
counterparts are called duplicates and deleted (unless
the already existing files have failed the integrity
check - in that case they are replaced with the new ones).

You may wish to relax the duplicate checking to check 
only from particular areas.

Example case.

You get "goat100.jpg" from "alt.binaries.pictures.animals",
and later a file with the same name from "alt.worship.goatlord". 
Now there's a good change these are not the same files. You
might prepare for this case by relaxing the dupechecking
as follows:

Group: "alt.binaries.pictures.animals"
		=> default destination area "0animaltmp"
			=> "animaltmp" dupechecks from "cats", "dogs", "sheep"
Group: "alt.worship.goatlord"
		=> default destination area "0occulttmp"
			=> "0occulttmp" dupechecks from "weirdstuff"

The dupechecking is set for the default destination areas, 
not for the newsgroups. (Many newsgroups may map to the same 
destination area and follow the same dupecheck patterns).

To set RegExp duplicate checking, just set a proper area_id
RegExp pattern for an incoming area (area_targets -column). 

Examples.

$				Default, check from all areas
^1$				Dupecheck from area with ID 1
^7$|^10$|^15$   Dupecheck from areas 7,10,15.

You can set these from "bowser" or directly by "mysql".

NOTE: RegExp duplicate checking also affects assigning by
"pleech", only those assign targets are seen valid which are
matched by RegExp. If there is no match, default destination 
area is used. If assign target is negative, the file will
be deleted (don't know if this behaviour is wise), no matter
what RegExp says.


10. MySQL table explanation
---------------------------
Main database is "pimppa" and it's owned as default by user "pimppa".

"p_areas" is the table containing all your fileareas.

    area_id			Unique area ID number
    area_name		Area name. Should be logical and quick to type.
    area_path		The directory path for the files of this area.
    area_flags		Properties of this area (hints for utils)
	area_targets	RegExp pattern for dupechecking incoming (see 9.3)

"p_assign" contains the assign patterns - where "pleech"
should deposit certain files leeched from news. Negative destination
area makes "pleech" to delete the file.

    a_pattern   The filename pattern to match
    a_dest      Destination area for all matching files

"p_files" contains all the files you have.

    file_id     Unique file ID number
    file_name   File name, unique per filearea.
    file_size   File size in bytes
    file_area   Area ID where this file should be
    file_integ  File integrity check status
    file_trans  File transformation status
    file_date   The date when you got this file
    file_backup The ID of the backup, 0 if none.
    file_desc   Optional ASCII description of this file
    file_flags  Is there something special with this file (offline?)

"p_groups" contains information about newsgroups.

    g_name      Unique name of the newsgroup
    g_last      Last msg read -pointer
    g_flags     Newsgroup flags (can be |= GROUP_DISABLED)
    g_dest      Destination filearea id
    
"p_misc" is a really general table for various PIMPPA-utils
to store their status information.

    misc_key    Identifying unique key for the info
    misc_data   The actual data associated with the key

"p_types" contains the information how to handle various filetypes.
If type_testokstr is an empty string, the test command return 
value will be used. 0 == FILE OK, anything else == FAILED.

    type_ext        File extension of this type, e.g. "JPG".
    type_testcmd    Command to use to test a file of this type 
    type_transcmd   Command to use to transform a file of this type
    type_testpos    Position of the success string for testcmd (deprecated)
    type_testokstr  The actual "all correct" string given by testcmd.
    type_transto    Destination file type when transforming.


11. Feedback
------------
Email <iwronsky@users.sourceforge.net>. Any bug-reports, 
patches, comments or suggestions are welcome. Especially if you 
have an idea about some new functionality/tool/script that would 
benefit PIMPPA, don't hesitate. And if you know how to actually do it,
all the better!

If you prefer to use PGP, my public key is at the end of 
this README.


12. Glossary
------------

    "assign pattern"
    ----------------
    News downloading decides based on assign patterns where files
    should be stored whose filename match an assign pattern in the 
    database. Section 9.1 tells how the patterns currently operate.
    "pclean -p" and "padopt -m" also base some of their operation 
    on assign patterns.
   

    "filearea"
    ----------
    PIMPPA is structured so that every file is on a certain 
    filearea. Fileareas are created with "pnewarea". All files of 
    certain content should be on a certain filearea, so you can 
    easily find them. It's quite like a normal directory, 
    except that some additional info of the filearea contents
    is kept in the p_files database to ease backup, duplicate-
    check, lookup, etc, operations.


    "Incoming"
    ----------
    Fileareas to which "raw" material from newsgroups is decoded
    to. Incoming area contents will not be backuped or transformed. 
    
    In ideal operation pimppa is like a sorting network,
    the files can be seen travelling like this:

    Newsgroup  Filter 1        Filearea     Filter 2         Filearea
    
    group1-| 
           |->-[autofilter]->- Incoming1 ->-[humanfilter]->- Quality1
    group2-|         |                                          |
                     `------------>--------------->-------------'

    etc. Due to the assign patterns, recognized files can skip 
    through the incoming area -pass without any human interaction.


    "transform"
    -----------
    Operation which can be performed (once!) for a file of
    a certain filetype. This operation can be a conversion
    of ".GIF" to ".PNG", an optimizing of a JPEG, or whatever.
    You can specify the transformation command and result
    filetype (which can be same as source type) in 'p_types'-
    table.


    "offline"
    ---------
    Files which exist on some filearea but not in its respective
    directory are called offline. The files may have been backupped 
    and deleted, or just lost. Most PIMPPA utilities skip offline 
    files. Files which are present are called "online". 


    "PIMPPA"
    --------
    PIMPPA is a fabulous content seeking/devouring creature 
    or monster in the forgotten scandinavian mythologies.
    

13. PGP
-------
This is my PGP public key. Encrypted mail would be nice,
not because there was something to hide, but because privacy
should be considered normal and available for anyone,
not a limited delicacy for the few and the weird.


-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBDawXNERBADWkpWZoDuB//oUsvlmCKNufobFKdTX1SGfqDffoHgOO+01LVU9
QZl+snoSoAz7TkRnEep34mdRcx8IRe/xuLi88jEiI2zVLCHoYFBDB6lpxfSGYjJq
IfqCxv1GKMTigykLI5oxyLgYyrONL00uZzPRuTnSrwZqWuqqoHANlxed1QCg/3Xy
FLgvmPRZkBVZ7cjAV+ZlNEEEAKNFmfPGTwKd5X0MBSI4aIUXKO3G+Narjn9vVDoi
LsU41LR3VO50UeWvnbSEi93YTDwXpFuKK4nMKG1Z5T8pZPQ6NqcOu6NxBm6GHMoR
L6ZI+oRgbdAG2shTlfbnZ10qyPhTg0VDf+zfD7sx/vK7jo5uywrmiTUvQvEli4ps
6KCFBADGSC6Uf/5lNB7+4VAko0j1G6m3cnOekvl6/XX+FihPob9NECZbiJR3lvzR
ayuJaOSoX/zNJEHDzfOu1qzjOvbWBWY+JBkJ1QYvpB1A+Y84QFcBJRlrvTcXxgfv
urMkptlO3yUY7UPKIt7+52XTAesfWZkmkgC9cPQ5gD2l1FjyZbQhSWdvciBXcm9u
c2t5IDxpd3JvbnNreUB5YWhvby5jb20+iEsEEBECAAsFAjd9HuMECwMBAgAKCRAg
/QqD5XhjksYfAKD8QRg9EPsiLacwNPTGppusFCCvpQCg6k0tB7FVJaLjunbWKItZ
LuPHvFm5Ag0ENrBc0hAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGn
VqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFX
klnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl
9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhd
ONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r
0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIH/AzQXkgMRpwsbEVh
XSEH/5kbN4Ls9LbFMkPelmaODl2W2wjmWa+7loBFnKn+9WHh77/GLMzHGPYoTzZv
wp6bAYbcq4cu20qdW2tTIfUXJz+ey3r5rwFR5y5qkiBqfFczepY0biUcUI7dWt/Q
LUyN6oVyVAjclmfvA/JWi7LmMRl6Jo1doKXLYhHOuFXkoGqIExrO9EUKTMGsa0Lm
uJVv6kb0v9EAyiJU/zzMvKotPtdzzPqz2m+0mt/XsMhfbT6xl2XkmESvQhgev6Yh
DYpzVSZOZeZ7Etzpp2eDwfP4AU23ge6KFO7g33cSEJilBe7x3ZkiTb5Hgqs3FnWi
t9EqwDmIPwMFGDawXNIg/QqD5XhjkhECewUAn3P1gtt1Y3DZRRWvJ9TgNCtc+qcp
AJ9p6oceyAzcCw87KNm3kW7u6gBK6g==
=Hq/M
-----END PGP PUBLIC KEY BLOCK-----


<EOF>
