BigBrother
http://snarfed.org/space/bigbrother

Copyright 2003, 2004 Ryan Barrett <bigbrother@ryanb.org>
http://ryan.barrett.name/

--------
OVERVIEW
--------
BigBrother is a program that generates statistics and graphs about your away
message history. It parses a log file of all of the away messages you've used,
then generates a report with information such as how often you use each away
message, how long (on average) each one is on for, etc. Think of BigBrother as
a web server logfile analyzer, except for your away message history.

BigBrother has two parts: a Gaim plugin which logs your away messages, and an
analyzer which crunches the logs and generates a report.

The Gaim plugin requires Gaim .68 or higher and Perl 5.004 or higher.
The analyzer requires Python 2.2 or higher and PyGDChart 0.6.1 or higher.

A PyGDChart 0.6.1 binary for Linux i386 is included, but if you're on a
different flavor of *nix, you'll need to download PyGDChart from
http://www.nullcube.com/software/pygdchart.html , build it, and place the
resulting gdchart.so in the BigBrother directory.

Feedback is greatly appreciated! Send praise or flames to bigbrother@ryanb.org.

-------------------
COPYRIGHT & LICENSE
-------------------
BigBrother is Copyright 2003, 2004 Ryan Barrett, and is distributed under the
GPL. See the LICENSE file for more information.

BigBrother includes source code from other projects, including gd, GDChart, and
PyGDChart. Their copyright and license notices are in the Credits section, at
the bottom.

------------------
USAGE: GAIM PLUGIN
------------------
To use the Gaim plugin, simply place bigbrother.pl in your ~/.gaim/plugins/
directory, restart Gaim, and enable the BigBrother plugin in the Gaim
preferences pane.

The plugin can run out of the box, but it is *highly* recommended that you
configure it by editing bigbrother.pl. At the very least, please set
$screenname to the screen name for which you want to log away messages. If you
want to log to a file on a remote machine (useful if you use Gaim on multiple
computers), you'll need to edit $ssh_cmd. You can set the log file by editing
$logfile. See bigbrother.pl for more information.

The plugin should work on any *nix system that can run Gaim. It hasn't been
tested on Windows, and is very unlikely to work. If you really want to use it
on Windows, let me know; if there's enough demand, I might port it.

---------------
USAGE: ANALYZER
---------------
To run the analyzer, simply run "./bigbrother.py ~/away.log". (If you changed
the location of the logfile, pass it your logfile instead.) For usage
information, run ./bigbrother.py --help.

The bigbrother.conf contains user-configurable options. It contains
explanations for each option. Also, you can edit the text of the generated HTML
report by editing the index.html.top.part and index.html.middle.part files.

The analyser should work on any Python-supported platform.

---------------
LOG FILE FORMAT
---------------
The log file format is very straightforward. It is included here for
completeness, but also to enable users of clients other than Gaim to develop
logging plugins that can interoperate with the BigBrother analyzer, and vice
versa.

Each log file line represents a single use of an away message. (Empty lines are
ignored, but there is no support for comments.) The line format is:

  [timestamp] [away message]

The timestamp should be in the ISO 8601 format, without time zone, A typical
log line should look like this:

  2003-10-03 16:08:11 hacking on BigBrother

For a slightly larger example, see http://ryan.barrett.name/away.log .

Note that versions 0.4 and earlier also generated (and expected) the day of
week as the first field of each log line:

  [day of week] [timestamp] [away message]

This was redundant, and caused problems when days of week were out of sync with
dates, so it was removed. bigbrother 0.5+ still accepts logs with day of week
tags, but this is not guaranteed in future versions. It's recommended that you
migrate your logs to the new format using the included strip_days.sh script.

Also, the enforce_order option in bigbrother.conf may be used to check that the
log file is in order. It's off by default.

-------
CREDITS
-------
Much thanks go to Thomas Boutell's gd, Bruce Verderaime's GDChart, and Nullcube
and Mike Steed's PyGDChart projects. Without them, this program would not have
existed. :P Their copyright and license notices are below.

PyGDChart
http://nullcube.com/software/pygdchart
--
This version (0.6.1) of PyGDChart is a Python interface for to the stable
version of the GDChart library. It was originally written by Mike Steed, but is
now maintained by Nullcube (i.e. Aldo Cortesi). Please send all bug reports and
enquiries to aldo@nullcube.com.

GDChart
http://www.fred.net/brv/chart/
--
+-----------------------------------------------------------------------
| GDChart is free for use in your applications and for chart generation.
| YOU MAY NOT re-distribute or represent the code as your own.
| Any re-distributions of the code MUST reference the author, and include
| any and all original documentation.
| Copyright.  Bruce Verderaime.  1998, 1999, 2000, 2001.
+-----------------------------------------------------------------------

gd
http://www.boutell.com/gd/
--
Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000 by Cold
Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the
National Institutes of Health.

Portions copyright 1996, 1997, 1998, 1999, 2000 by Boutell.Com,
Inc.

Portions relating to GD2 format copyright 1999, 2000 Philip Warner.

Portions relating to PNG copyright 1999, 2000 Greg Roelofs.

Portions relating to libttf copyright 1999, 2000 John Ellson
(ellson@lucent.com).

Portions relating to JPEG copyright 2000, Doug Becker and copyright
(C) 1994-1998, Thomas G. Lane. This software is based in part on
the work of the Independent JPEG Group.

Portions relating to WBMP copyright 2000 Maurice Szmurlo and Johan
Van den Brande.

_Permission has been granted to copy, distribute and modify gd in
any context without fee, including a commercial application,
provided that this notice is present in user-accessible supporting
documentation._

This does not affect your ownership of the derived work itself, and
the intent is to assure proper credit for the authors of gd, not to
interfere with your productive use of gd. If you have questions,
ask. "Derived works" includes all programs that utilize the
library. Credit must be given in user-accessible documentation.

_This software is provided "AS IS."_ The copyright holders disclaim
all warranties, either express or implied, including but not
limited to implied warranties of merchantability and fitness for a
particular purpose, with respect to this code and accompanying
documentation.

Although their code does not appear in gd 1.8.4, the authors wish
to thank David Koblas, David Rowley, and Hutchison Avenue Software
Corporation for their prior contributions.
