**** READ THE LICENSE AGREEMENT! ***** (it's in the `LICENSE' file) WHAT IS PYTHIA? Pythia is an HTTP-compliant (mostly) proxy that was designed as a testbed for experimenting with distillation and refinement as a means of adapting to network and client variability. You can build and run Pythia and go ooh and aah, but its main value will probably be to let you experiment building your own proxied services on top of it. The code is cleaner and better documented in some places than others, but it's free, and you get what you pay for. :) If you have serious problems, send email and I'll try to help, but no promises---this code is provided as is, etc. See the LICENSE file for full details. This code represents an early incarnation of various ideas developed within the Daedalus and GloMop projects at UC Berkeley. For more information see http://daedalus.cs.berkeley.edu. WHAT YOU NEED TO HAVE INSTALLED Requirements for running the basic Pythia with standalone external image distillation using NetPBM: - Perl 5.002 or later installed, including the Socket and POSIX modules (part of the standard distribution). You can find the latest Perl at various FTP archives including ftp.uu.net, archive.cis.ohio-state.edu, jpl-devvax.jpl.nasa.gov; or on the Web, try http://www.metronet.com/perlinfo/source. - The MD5 and LWP Perl modules: ftp://ftp.metronet.com/pub/perl/modules/by-module/MD5-*.tar.gz ftp://ftp.metronet.com/pub/perl/modules/by-module/lwp-*.tar.gz These must be installed as normal Perl modules ("perl Makefile.PL ; make install" should do it for most people). - The NetPBM header files and libraries. These are needed for image distillation. You'll find the latest release of Netpbm at the following sites: * wuarchive.wustl.edu (128.252.135.4), directory /graphics/graphics/packages/NetPBM * ikaros.fysik4.kth.se (130.237.35.2), directory /pub/netpbm. * ftp.informatik.uni-oldenburg.de (134.106.1.9). This site also carries binaries for the Amiga. * peipa.essex.ac.uk (155.245.115.161), directory ipa/src/manip * ftp.rahul.net (192.160.13.1), directory /pub/davidsen/source * ftp.cs.ubc.ca, directory /ftp/archive/netpbm - For inline JPEG distillation, you need cjpeg and djpeg. These are available from the Independent JPEG Group. If they're not present, everything will still work but you won't get JPEG distillation. HOW TO INSTALL 1. In this directory, say `./configure'. ** NOTE 1 ** If your Perl include files (notably MD5 and LWP) are in ** a "nonstandard" place where Perl needs a -I switch to find them, ** you should give the option "--with-perlinc=" to configure. ** ** NOTE 2 ** If your netpbm header files and libraries are in a ** nonstandard place, i.e. if you normally would have to supply -I and ** -L flags to find them, you should give configure the command line ** option: --with-netpbm=DIR where DIR/include and DIR/lib contain ** the header and library files, respectively. 2. Now say `gmake install'. (Things are only installed at or below *this* level--nothing is put into /usr/local/bin, or anything like that.) You need GNU Make to parse these Makefiles; note that on some systems GNU Make is called `make', on others `gmake'. 3. To start: "gmake run PORT=portnum" where portnum is a TCP port of your choice on which Pythia will listen. Pythia has many runtime options that you can set with the ARGS makefile variable; say "gmake run ARGS=-h" to see the possible options. 4. After pythia is running, you can start additional distillers (e.g. gifmunch) on other machines, by typing: cd ../proxy_bin gifmunch. The proxy_bin directory is created by 'make install'. should be the generic OS name on your machine as returned by 'uname'. (Look at the filenames in the proxy_bin directory and you'll get the idea.) should be a random port number on the machine on which gifmunch will run; it will listen for requests on this port. is the machine on which pythia is running, and is the port on which pythia is listening (the one you specify on the pythia command line). 5. The documentation (a set of man pages, in the man/ subdirectory) should get made as part of the 'make install'. (If not, 'make man' at the top level to get them.) The man pages are generated from Pod embedded in the .pl files, so you can easily generate HTML, LaTeX, etc. documentation from the same sources. TO USE PYTHIA: Set your HTTP proxy to point to the correct machine and port. Go to the URL "http://PythiaLogin" to start a session. Use the URL "http://PythiaPrefs" to change your prefs (you should probably bookmark these two "magic" URLs). --------- Credits: PBM Toolkit is based on pbmplus by Jef Poskanzer et al. Cjpeg and djpeg are from the Independent JPEG Group. The HTML parser is from the LWP Perl library by Gisle Aas. GNU Autoconf is way cool. The rest of the code is (C) 1994-1996 Regents of the University of California and its use is governed by the agreement in the LICENSE file.