From infobot-dev@metronomicon.com  Fri Jan 14 07:48:23 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA07034
	for infobot-dev-list; Fri, 14 Jan 2000 07:47:51 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id HAA07031
	for <infobot-dev@infobot.org>; Fri, 14 Jan 2000 07:47:50 -0500
Received: from ip26.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa18788; 14 Jan 2000 7:50 EST
Message-ID: <387F1B87.49CC5B6A@cs.cmu.edu>
Date: Fri, 14 Jan 2000 07:50:15 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.61 [en] (X11; U; Linux 2.2.14 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: should be ok?
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I think the list should be back up; i've
noticed some bounces, but i think i've
got it fixed.

kevin

From infobot-dev@metronomicon.com  Sat Jan 15 19:58:03 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA18581
	for infobot-dev-list; Sat, 15 Jan 2000 19:57:09 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id TAA18578
	for <infobot-dev@infobot.org>; Sat, 15 Jan 2000 19:57:09 -0500
Received: from LucidX.com (adsl-63-199-105-209.dsl.lsan03.pacbell.net [63.199.105.209])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id SAA29917
	for <infobot-dev@infobot.org>; Sat, 15 Jan 2000 18:59:14 -0600
Message-ID: <3881180F.4671DE30@LucidX.com>
Date: Sat, 15 Jan 2000 16:59:59 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.08 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: New Version of the OS version getting addition
Content-Type: multipart/mixed; boundary="------------D793833AF91EC9DCE1BC1A11"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This is a multi-part message in MIME format.
--------------D793833AF91EC9DCE1BC1A11
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Here is the updated CGI which fixed the way it parses the HTML on Linux
Mandrake's site, although you really don't need this CGI to get the
addon working it's good if you want to develop it or use it locally or
something.  The default CGI that osvers.pl, the actual addon you put on
Infobot, is at http://www.LucidX.com/cgi-bin/unix.pl  ... osvers.pl is
still the same so if you already have it you won't need to get this
version but for you who don't have it yet you can get it now.  Over and
out.

-Sam (CommPort5)

--------------D793833AF91EC9DCE1BC1A11
Content-Type: text/plain; charset=us-ascii; name="unix.cgi"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="unix.cgi"

#!/usr/bin/perl
use CGI qw(:standard);
use LWP::UserAgent;
my ($x, $ua, $url, $html, $response, $res, $name, $num);
$num = "0";
sub add {
$x .= "$name $1/";
}
do {
 if ($num eq "0") { &con("FreeBSD", "http://www.freebsd.org/releases/"); }
 if ($num eq "1") { &con("Red Hat", "http://www.redhat.com/"); }
 if ($num eq "2") { &con("Slackware", "http://www.slackware.com/"); }
 if ($num eq "3") { &con("Caldera", "http://www.caldera.com/"); }
 if ($num eq "4") { &con("Mandrake", "http://www.linux-mandrake.com/en/"); }
 if ($num eq "5") { &con("OpenBSD", "http://www.openbsd.org/"); }
 if ($num eq "6") { &con("NetBSD", "http://www.netbsd.org/"); }
 if ($num eq "7") { &con("SuSE", "http://www.suse.com/"); }
 sub con {
  $name = $_[0];
  $ua = new LWP::UserAgent;
  $ua->timeout(12);
  $url = $_[1];
  $html = new HTTP::Request('GET',$url);
  $response = $ua->request($html);
  if($response->is_success) {
   $res = $response->content;
   $res =~ s/\n/ /g;
##### FreeBSD #####
   if($name eq "FreeBSD") {
    $res =~ /<B>Release (.*?)<\/B>/;
    &add;
   }
##### Red Hat #####
   if($name eq "Red Hat") {
    $res =~ /<A HREF="\/commerce\/redhatlinux.html">Red Hat Linux (.*?)<\/A>/;
    &add;
   }
##### Slackware #####
   if($name eq "Slackware") {
    $res =~ /<BR>Get (.*?)!<\/A>/;
    &add;
   }
##### Caldera #####
   if($name eq "Caldera") {
    $res =~ /<a href=\/openstore\/openlinux\/ class=nav>OpenLinux (.*?)<\/a><br>/;
    &add;
   }
##### Mandrake old #####
#   if($name eq "Mandrake") {
#    $res =~ /Linux Mandrake (\d\.\d)/;
#    &add;
#   }
##### Mandrake #####
   if($name eq "Mandrake") {
    $res =~ /<\/b> - <b>Mandrake (\d\.\d) /;
    &add;
   }
##### OpenBSD #####
   if($name eq "OpenBSD") {
    $res =~ /The current release is <a href=".*">OpenBSD (.*?)<\/a>/;
    &add;
   }
##### NetBSD #####
   if($name eq "NetBSD") {
    $res =~ /Latest release - (.*?)<\/a>/;
    &add;
   }
##### SuSE #####
   if($name eq "SuSE") {
    $res =~ /<IMG ALIGN=RIGHT ALT="SuSE Linux (.*?) Image"/;
    &add;
   }
##### End of OSs #####
  }
 }
 $num++;
}
while($num ne "10");
$x =~ s/(.*?)\/$/$1/;
print header, start_html("Current OS Versions"), p("Current OS Versions: $x\n");

--------------D793833AF91EC9DCE1BC1A11
Content-Type: application/x-perl; name="osvers.pl"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="osvers.pl"

# Yes, I know, I must have spent hours on this.
# Here's a little program I did to go through a CGI
# that I wrote to go to a bunch of official OS sites
# and get the current version of that OS.
# I made it go through the CGI since it would be very
# slow if the infobot user had a slow connection,
# although it's not exactly the speed of light yet.
# www.LucidX.com/cgi-bin/unix.pl is the program
# www.LucidX.com/other/unix.txt is the program in text
# I'm also looking for people who want to just add one
# or two OSs to the CGI. I've check out other sites
# but it's difficult to regex the version since the HTML
# on those pages are bound to change the way they are.
# www.LucidX.com/lame/unix.html is a list of OSs, unix
# based as you can see, which I'm doing for a lame
# school project. The CGI doesn't read off of all of
# those yet and I hope it will soon. Ten four.

# -CommPort5

sub vers {
 use LWP::UserAgent;
 my $ua = new LWP::UserAgent;
 $ua->timeout(60);
 my $url = "http://www.LucidX.com/cgi-bin/unix.pl";
 my $html = new HTTP::Request('GET',$url);
 my $response = $ua->request($html);
 if($response->is_success) {
  my $res = $response->content;
  $res =~ s/\n//g;
  $res =~ /<P>(.*?)<\/P>/;
  return "$1";
 } else {
  return "Can't get versions";
 }
}
1;

--------------D793833AF91EC9DCE1BC1A11--

From infobot-dev@metronomicon.com  Sun Jan 16 21:42:39 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA27728
	for infobot-dev-list; Sun, 16 Jan 2000 21:41:45 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA27725
	for <infobot-dev@infobot.org>; Sun, 16 Jan 2000 21:41:44 -0500
Received: from LucidX.com (adsl-63-199-105-209.dsl.lsan03.pacbell.net [63.199.105.209])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id UAA30010
	for <infobot-dev@infobot.org>; Sun, 16 Jan 2000 20:43:50 -0600
Message-ID: <3882820F.713D6470@LucidX.com>
Date: Sun, 16 Jan 2000 18:44:32 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.08 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Rev it up
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hello there, here are just some code snippits to add to your infobot's
source programs.  Nothing too big but just add a little features that
can help you and some people like.  Make sure to make backups of all the
source programs you change before changing them if for some reason they
don't work right.
First off, cycling the log file to the day it was made instead of one
huge log file.  This code will make new logs daily by date looking
something like: 16Jan2000-infobot.log
You just add this code but change the directory from
/usr/infobot/logs/$date to /wherever/you/store/logs/$date
You will need to change this in src/Misc.pl so here it is:

(line 5 after use Socket;): use POSIX qw(strftime);
Remove lines 124-146 ( sub log_line --- }) and put this in instead:
############
sub log_line {
my($line) = @_;
my($logwrite) = 0;
my $s = time();
if ($param{'logfile'} ne '') {
$line =~ s/\n*$/\n/;
open(TRACK, ">>$param{logfile}");
$loglines++;
$total_loglines++;
print TRACK "$s $line";
close(TRACK);           #  if (TRACK);
}
}
################
Next is to get your infobot connecting to random servers instead of just
one.  This is good if a server dies while you're not around so your bot
would automaticly connect to a different server instead of the same one,
although it will only connect if you have more than one server specified
in your files/infobot.config which you shouldn't have by default.  Once
you add this code in your files/infobot.config just seperate the servers
with commas (and a space after each one) like so:
servers   irc.infobot.org, irc.cs.cmu.edu
You will need to change src/Irc.pl so here it is:

Remove lines 344-352 (while ($connected) { ---  rawout("USER, blah, blah
,blah) and put this in instead:
####################
while ($connected) {
@serv = split(/, /,$param{server});
$servr = "$serv[int(rand(@serv))]";
srvConnect($servr, $param{port});
if ($param{server_pass}) { # ksiero++
rawout("PASS $param{server_pass}");
}
rawout("NICK $param{wantNick}");
rawout("USER $param{ircuser} $param{ident} $servr :$param{realname}");
####################
Next off, random quit messages (only for you people who's infobots like
to quit a lot for some reason), this will just quit with a different
quit message (of course you specify them) every time unless you just
want one, you leave your configuration alone just like the random
servers but if you want random quits just add commas (and a space after
each one) again like so:
quitMsg    Infobot - Smarter than the average Eggdrop, I was told to die

So open up your src/IrcExtras.pl and change like so:

Remove lines 32-37 (sub killed { --- }) and put this in:
#####################
sub killed {
@qt = split(/, /,$param{'quitMsg'});
$quit = "$qt[int(rand(@qt))]";
&quit($quit);
&closeDBM("is", "are");
exit(1);
}
######################

That is all for now.  Please return to your IRC client.
-Sam (CommPort5)

From infobot-dev@metronomicon.com  Mon Jan 17 05:01:47 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id FAA29441
	for infobot-dev-list; Mon, 17 Jan 2000 05:01:43 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id FAA29438
	for <infobot-dev@infobot.org>; Mon, 17 Jan 2000 05:01:41 -0500
Received: (qmail 10121 invoked by uid 500); 17 Jan 2000 10:03:59 -0000
Date: Mon, 17 Jan 2000 19:03:59 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Rev it up
Message-ID: <20000117190359.A10095@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <3882820F.713D6470@LucidX.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <3882820F.713D6470@LucidX.com>; from Samy Kamkar (CommPort5) on Sun, Jan 16, 2000 at 06:44:32PM -0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sun, Jan 16, 2000 at 06:44:32PM -0800, Samy Kamkar (CommPort5) wrote:
> Hello there, here are just some code snippits to add to your infobot's
> source programs. 

Woo! Sam++

I'm afraid I'm taking unilateral action here, not in a nasty way, but I want
these things to be accessible. Any further cool patches and extension files,
including these last three patches, posted to the list will be archived on my
infobot patches site at
	http://othersideofthe.earth.li/infobot/

-- 
If a word in the dictionary were misspelled, how would we know?
        -- Steven Wright

From infobot-dev@metronomicon.com  Mon Jan 17 22:47:46 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id WAA02352
	for infobot-dev-list; Mon, 17 Jan 2000 22:47:12 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id WAA02349
	for <infobot-dev@infobot.org>; Mon, 17 Jan 2000 22:47:11 -0500
Received: from [10.1.0.2] ([24.28.72.78]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Mon, 17 Jan 2000 21:40:21 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Mon, 17 Jan 2000 21:49:35 -0600
Subject: Term::ANSIColor.pm
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4A93EEE.AE2D%alterego@austin.rr.com>
In-Reply-To: <3860DCB6.1446CC6E@cs.cmu.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

on 12/22/1999 8:14 AM, Kevin Lenzo wrote:

> Note: It will be much prettier if you have Term::ANSIColor.pm.

Where can I get this?

Also is 0.49_03 irc-capable yet?

From infobot-dev@metronomicon.com  Wed Jan 19 08:25:45 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id IAA09759
	for infobot-dev-list; Wed, 19 Jan 2000 08:25:00 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from fwnau040.usco.com (fwnau040.usco.com [207.92.15.79])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id IAA09756
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 08:25:00 -0500
Received: from ntnau210.usco.com (ntnau210.usco.com [172.16.66.43])
	by fwnau040.usco.com (8.9.1/8.8.5) with ESMTP id IAA11228
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 08:27:26 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <C9RLD1DL>; Wed, 19 Jan 2000 08:27:26 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F268C7D9@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: infobot-dev@infobot.org
Subject: Anyone doing these yet?
Date: Wed, 19 Jan 2000 08:27:24 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: text/plain;
	charset="iso-8859-1"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Has anyone worked on a web-to-bot interface or an 'answering machine' system
as of yet?

Cheers,
KM

From infobot-dev@metronomicon.com  Wed Jan 19 08:32:44 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id IAA09903
	for infobot-dev-list; Wed, 19 Jan 2000 08:32:43 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id IAA09900
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 08:32:42 -0500
Received: (qmail 3692 invoked by uid 500); 19 Jan 2000 13:35:07 -0000
Date: Wed, 19 Jan 2000 22:35:07 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Nick Regaining
Message-ID: <20000119223507.A3682@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

purl doesn't have her nick back. :(

http://othersideofthe.earth.li/infobot/regain.patch

--- Irc.old	Mon Jan 17 18:55:44 2000
+++ Irc.pl	Wed Jan 19 22:32:07 2000
@@ -165,6 +165,9 @@
 	    }
 	}
     } elsif ($type=~/NICK/) {
+	if ($chan eq $ident and $nick eq $param{wantNick}) { # That's me!
+		$ident=$param{nick}=$param{wantNick}; $regain_nick == undef ;
+	}
 	if ($param{ansi_control}) {
 	    &status(">>> ".c($nick,'bold green').
 		    " materializes into ".c($chan,'bold green'));
@@ -255,6 +258,7 @@
            &status(">>> set by $1 at $2");
        }
     } elsif ($msg=~/^433/) {
+	$regain_nick=1;
 	++$nicktries;
 	if (length($param{wantNick}) > 9) {
 	    $ident = chop $param{wantNick};
--- Process.old	Wed Jan 19 22:18:25 2000
+++ Process.pl	Wed Jan 19 22:32:12 2000
@@ -3,11 +3,18 @@
 # process the incoming message
 
 $SIG{'ALRM'} = 'TimerAlarm';
+my $regain_counter=0;
 
 sub process {
     ($who, $msgType, $message) = @_;
     $origMessage = $message;
     $message =~ s/[\cA-\c_]//ig; # strip control characters
+
+	if (defined $regain_nick ) { # and ! ++$regain_counter%20) {
+		&status("Trying to get my nick back");
+		$regain_nick=undef; # will be set back to 1 if we fail.
+		rawout("NICK $param{wantNick}");
+	}
 
     $addressed = 0;
 

-- 
I washed a sock.  Then I put it in the dryer.  When I took it out, it was gone.
        -- Steven Wright

From infobot-dev@metronomicon.com  Wed Jan 19 11:15:19 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA10839
	for infobot-dev-list; Wed, 19 Jan 2000 11:15:09 -0500
Received: from smtp6.mindspring.com (smtp6.mindspring.com [207.69.200.110])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA10836
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 11:15:08 -0500
Received: from phydeaux.org (user-38lca7b.dialup.mindspring.com [209.86.40.235])
	by smtp6.mindspring.com (8.9.3/8.8.5) with ESMTP id LAA23528
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 11:17:33 -0500 (EST)
Received: (from fletch@localhost)
	by phydeaux.org (8.9.3/8.9.3) id LAA25765;
	Wed, 19 Jan 2000 11:17:31 -0500
X-Authentication-Warning: godzilla.phydeaux.org: fletch set sender to fletch@phydeaux.org using -f
To: infobot-dev@infobot.org
Subject: Re: Anyone doing these yet?
References: <A1335534778DD311991300A0C9F3B3F268C7D9@ntnau220.usco.com>
From: Mike Fletcher <fletch@phydeaux.org>
Organization: Very Little
Date: 19 Jan 2000 11:17:31 -0500
In-Reply-To: "Meltzer, Kevin"'s message of "Wed, 19 Jan 2000 08:27:24 -0500"
Message-ID: <m2n1q2m3xg.fsf@godzilla.phydeaux.org>
Lines: 27
User-Agent: Gnus/5.0802 (Gnus v5.8.2) XEmacs/20.4 (Emerald)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

>>>>> "KM" == Meltzer, Kevin <KMeltzer@USCO.com> writes:

    KM> Has anyone worked on a web-to-bot interface or an 'answering
    KM> machine' system as of yet?

        I'd thought about some sort of module to drive a browser from
the server mode (netscape -remote '...' type thing), and then thought
that a better solution might be to embed a small http server.  You'ld
have to either post process results (insert anchors around URLs and
the like), and/or extend the Infobot::Message class to have a method
analagous to the HTTP Accepts header and let those modules that want
return text/html formatted responses when apropriate.

        Not that I've done anything about it yet. :/


        On a somewhat related tangent, is there any way to fire off a
request to the bot from within a handler?  One idea for implementing
the browser-driving I had was to implement a `show urls (in|for)' that 
somehow obtained the returned stuff from whatever the argument it was
given produced and then scaned that for URLs.

-- 
Fletch                | "If you find my answers frightening,       __`'/|
fletch@phydeaux.org   |  Vincent, you should cease askin'          \ o.O'
678 443-6239(w)       |  scary questions." -- Jules                =(___)=
                      |                                               U

From infobot-dev@metronomicon.com  Wed Jan 19 11:30:18 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA11122
	for infobot-dev-list; Wed, 19 Jan 2000 11:30:17 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA11119
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 11:30:15 -0500
Received: (qmail 10381 invoked by uid 500); 19 Jan 2000 16:32:40 -0000
Date: Thu, 20 Jan 2000 01:32:40 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Anyone doing these yet?
Message-ID: <20000120013240.A10370@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <A1335534778DD311991300A0C9F3B3F268C7D9@ntnau220.usco.com> <m2n1q2m3xg.fsf@godzilla.phydeaux.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <m2n1q2m3xg.fsf@godzilla.phydeaux.org>; from Mike Fletcher on Wed, Jan 19, 2000 at 11:17:31AM -0500
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Wed, Jan 19, 2000 at 11:17:31AM -0500, Mike Fletcher wrote:
>         On a somewhat related tangent, is there any way to fire off a
> request to the bot from within a handler?  One idea for implementing
> the browser-driving I had was to implement a `show urls (in|for)' that 
> somehow obtained the returned stuff from whatever the argument it was
> given produced and then scaned that for URLs.

Easy enough; just use LWP's get to get the URL and then HTML::LinkExtor
If you want to do it with funny forking and things, have a look at W3Search.pl

Simon

-- 
"Linux: the operating system with a CLUE...
Command Line User Environment".
(seen in a posting in comp.software.testing)

From infobot-dev@metronomicon.com  Wed Jan 19 11:58:23 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA11507
	for infobot-dev-list; Wed, 19 Jan 2000 11:58:23 -0500
Received: from smtp10.atl.mindspring.net (smtp10.atl.mindspring.net [207.69.200.246])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA11504
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 11:58:22 -0500
Received: from phydeaux.org (user-38lca7b.dialup.mindspring.com [209.86.40.235])
	by smtp10.atl.mindspring.net (8.9.3/8.8.5) with ESMTP id MAA11360;
	Wed, 19 Jan 2000 12:00:46 -0500 (EST)
Received: (from fletch@localhost)
	by phydeaux.org (8.9.3/8.9.3) id MAA25913;
	Wed, 19 Jan 2000 12:00:45 -0500
X-Authentication-Warning: godzilla.phydeaux.org: fletch set sender to fletch@phydeaux.org using -f
To: Simon Cozens <simon@brecon.co.uk>
Cc: infobot-dev@infobot.org
Subject: Re: Anyone doing these yet?
References: <A1335534778DD311991300A0C9F3B3F268C7D9@ntnau220.usco.com> <m2n1q2m3xg.fsf@godzilla.phydeaux.org> <20000120013240.A10370@othersideofthe.earth.li>
From: Mike Fletcher <fletch@phydeaux.org>
Organization: Very Little
Date: 19 Jan 2000 12:00:45 -0500
In-Reply-To: Simon Cozens's message of "Thu, 20 Jan 2000 01:32:40 +0900"
Message-ID: <m2iu0qm1xe.fsf@godzilla.phydeaux.org>
Lines: 39
User-Agent: Gnus/5.0802 (Gnus v5.8.2) XEmacs/20.4 (Emerald)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

>>>>> "Simon" == Simon Cozens <simon@brecon.co.uk> writes:

    Simon> On Wed, Jan 19, 2000 at 11:17:31AM -0500, Mike Fletcher
    Simon> wrote:
    >> On a somewhat related tangent, is there any way to fire off a
    >> request to the bot from within a handler?  One idea for
    >> implementing the browser-driving I had was to implement a `show
    >> urls (in|for)' that somehow obtained the returned stuff from
    >> whatever the argument it was given produced and then scaned
    >> that for URLs.

    Simon> Easy enough; just use LWP's get to get the URL and then
    Simon> HTML::LinkExtor If you want to do it with funny forking and
    Simon> things, have a look at W3Search.pl

        No, I don't want the module/bot itself to get the URL.  I'm
thinking of something sort of like:


        user says `show url for infobot' to the bot

        the `show url' handler parses out `infobot'

        the handler somehow asks itself (the bot) about `infobot' and
        it (the handler) gets the response back rather than the reply
        going back to the (user/channel/console)

        the `show url' handler slurps out URLs from the reply and then
        does system("netscape", "-remote", ...) for each


        That third step is what I'm not sure of how to do (make the
bot talk to itself internally).

-- 
Fletch                | "If you find my answers frightening,       __`'/|
fletch@phydeaux.org   |  Vincent, you should cease askin'          \ o.O'
678 443-6239(w)       |  scary questions." -- Jules                =(___)=
                      |                                               U

From infobot-dev@metronomicon.com  Wed Jan 19 15:38:07 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA12564
	for infobot-dev-list; Wed, 19 Jan 2000 15:37:54 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ajax.host4u.net (ajax.host4u.net [216.71.64.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id PAA12561
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 15:37:52 -0500
Received: from tony (pm4-18.buckeyeinternet.com [209.41.215.88])
	by ajax.host4u.net (8.8.5/8.8.5) with SMTP id OAA13781
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 14:39:59 -0600
Message-ID: <001701bf62bd$5df8f140$0200a8c0@BUCKEYENET.NET>
From: "zip" <zip@1337.org>
To: <infobot-dev@infobot.org>
Subject: idea.
Date: Wed, 19 Jan 2000 15:40:02 -0500
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0010_01BF6293.731A9620"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This is a multi-part message in MIME format.

------=_NextPart_000_0010_01BF6293.731A9620
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I dont know if this is possible or already done but itd be cool. If the =
bots could ask each other for help and share factoids, but more =
importantly if there was some kinda of pub url or someway to list all =
the infobots so that an infobot could download the list and to ask =
questions. Just an idea.

------=_NextPart_000_0010_01BF6293.731A9620
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I dont know if this is possible or =
already done but=20
itd be cool. If the bots could ask each other for help and share =
factoids, but=20
more importantly if there was some kinda of pub url or someway to list =
all the=20
infobots so that an infobot could download the list and to ask =
questions. Just=20
an idea.</FONT></DIV></BODY></HTML>

------=_NextPart_000_0010_01BF6293.731A9620--

From infobot-dev@metronomicon.com  Wed Jan 19 15:46:36 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA12818
	for infobot-dev-list; Wed, 19 Jan 2000 15:46:35 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from dragon.cbi.tamucc.edu (IDENT:postfix@dragon.cbi.tamucc.edu [165.95.1.149])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id PAA12815
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 15:46:33 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id CAD14E93F; Wed, 19 Jan 2000 15:11:35 -0600 (CST)
Date: Wed, 19 Jan 2000 15:11:35 -0600
From: duff@cbi.tamucc.edu
To: zip <zip@1337.org>
Cc: infobot-dev@infobot.org
Subject: Re: idea.
Message-ID: <20000119151135.A6594@cbi.tamucc.edu>
References: <001701bf62bd$5df8f140$0200a8c0@BUCKEYENET.NET>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0i
In-Reply-To: <001701bf62bd$5df8f140$0200a8c0@BUCKEYENET.NET>; from zip@1337.org on Wed, Jan 19, 2000 at 03:40:02PM -0500
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Wed, Jan 19, 2000 at 03:40:02PM -0500, zip wrote:
> I dont know if this is possible or already done but itd be cool. If
> the bots could ask each other for help and share factoids, but more
> importantly if there was some kinda of pub url or someway to list all
> the infobots so that an infobot could download the list and to ask
> questions. Just an idea.

Gee, this sounds remarkably like something I mentioned on channel
today  :-)

-Scott
-- 
Jonathan Scott Duff
duff@cbi.tamucc.edu

From infobot-dev@metronomicon.com  Wed Jan 19 23:26:01 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id XAA20104
	for infobot-dev-list; Wed, 19 Jan 2000 23:25:49 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id XAA20101
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 23:25:49 -0500
Received: from ip228.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa11798; 19 Jan 2000 23:27 EST
Message-ID: <38868DD5.2CF8CA5A@cs.cmu.edu>
Date: Wed, 19 Jan 2000 23:23:49 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.61 [en] (X11; U; Linux 2.2.14 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
CC: scozens@pwj.co.jp, lenzo@cs.cmu.edu, larry@wall.org
Subject: a propos of nothing
References: <4925686C.0006B3FA.00@pwj-gw-n001.pwj.co.jp>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

simon++

yes, interbot is an important part of the new infobot platform.
i expect i'll be able to produce a lot more activity
on the new model, after which you may not have to depend on
me [after february].  http:///www.infobot.org and /list/ [fyi].

We need to discuss the whole thing; right now it's a pretty
simple forwarding. Addi's repro on alternate networks, and Simon's
mods(!) are part of the Field.

i've been told at CMU i can work on "anything i want to do", 
so i will be at least partly on refocussing on the 'bot -- 
and most importantly YOUR INPUT.  I have speech in and out 
working, and i'm sure that'll need the attention of
interested folks like y'all to get it robust. YAPC is a part 
of that, and other directions; let's look at international 
venues, also.
 
i apologize for my inattention lately, but i swear to y'all
it's only a matter of the moment. we're embarked on the great
work -- if you resonate with it, we welcome you :) if you 
don't, we welcome you -- but we expect a voice from you.

kevin
lenzo@cs.cmu.edu

ps - i hate end notes, but i beg you to read Pike's only recent
available work on tagmemics. i got a copy from amazon, 
and it's well worth reading. I'd type the whole thing in
if it weren't for the diagrams, and i'm tempted to scan 'em.
i'm on the verge of proposing a long talk at TPC on 
particle, wave, and field in the world of the bot -- but
as a situated talk on perl and "we." 

I'll make a copy and mail it to you (snail mail) if you
can't find it. If i have to, i'll type it them in.

kevin


scozens@pwj.co.jp wrote:
> 
> duff@cbi.tamucc.edu wrote:
> > On Wed, Jan 19, 2000 at 03:40:02PM -0500, zip wrote:
> > > I dont know if this is possible or already done but itd be cool. If
> > > the bots could ask each other for help and share factoids, but more
> > > importantly if there was some kinda of pub url or someway to list all
> > > the infobots so that an infobot could download the list and to ask
> > > questions. Just an idea.
> 
> > Gee, this sounds remarkably like something I mentioned on channel
> > today  :-)
> 
> Yep; to explain, the bots currently do talk to each other - they
> message each other using a slightly special syntax. Every so often
> you may see something like this:
> 
> <q[Simon]> purl, wibble?
> <purl> Bugger all, I dunno.
> <purl> url knew: wibble is foo bar baz
> 
> You register the bots you want your bot to talk to in the config file:
> I'm pretty sure - but I don't know - that those bots also have to have
> you in their friendly bots config.
> 
> However, what we were thinking yesterday was to have the bots connected
> together aside from IRC, talking TCP/IP connections to each other. I
> hadn't really considered linking *all* the infobots together, just doing
> small peer-to-peer networks, but there's a pretty obvious way to get
> them all talking - every bot links to MetaBot, which would multiplex
> the query. You'd have a shedload of bot traffic if you wanted to do that,
> though. I'd rather a more decentralised setup, but I don't really want
> to write a multi-level peer-to-peer network with message routing and
> proxying and all that inside infobot; however, don't let me stop you.
> 
> One thing I do want to work on when I get some decent programming time
> is to have bots connect to more than one IRC server at once, which is
> another easy way to achieve massive interconnection: if all the bots
> sat in #infobot in irc.infobot.org they could talk to each other there.
> 
> Is anyone else working on this sort of thing in the 0.4x series?
> 
> Simon

From infobot-dev@metronomicon.com  Thu Jan 20 00:24:42 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA20581
	for infobot-dev-list; Thu, 20 Jan 2000 00:24:37 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from asec50.pwj.co.jp (IDENT:root@asec50.pwj.co.jp [202.32.76.250])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id AAA20578
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 00:24:34 -0500
From: scozens@pwj.co.jp
Received: from asec12.pwj.co.jp (barrier1.pwj.co.jp [202.32.76.1] (may be forged))
	by asec50.pwj.co.jp (8.9.3/3.7W) with ESMTP id OAA04156;
	Thu, 20 Jan 2000 14:32:32 +0900 (JST)
Received: from pwj-gw-n001.pwj.co.jp (mailhost [10.159.99.13])
	by asec12.pwj.co.jp (8.9.2/3.7W) with SMTP id OAA02603;
	Thu, 20 Jan 2000 14:31:23 +0900 (JST)
Received: by pwj-gw-n001.pwj.co.jp(Lotus SMTP MTA Internal build v1.2 hotfix4  (684.3 7-31-1998))  id 4925686C.001DE04B ; Thu, 20 Jan 2000 14:26:19 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: infobot-dev@infobot.org
cc: lenzo@cs.cmu.edu, larry@wall.org
Message-ID: <4925686C.0019F820.00@pwj-gw-n001.pwj.co.jp>
Date: Thu, 20 Jan 2000 14:25:04 +0900
Subject: Re: a propos of artificial intelligence, linguistics, and geckos
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O






That nice Mr Lenzo wrote:
> We need to discuss the whole thing; right now it's a pretty
> simple forwarding. Addi's repro on alternate networks, and Simon's
> mods(!) are part of the Field.

Right. As most of you probably know, I'm Very Busy at the
moment, and, although I can find time to work on 0.4x, I don't
really have the time or the energy to grok the new architecture,
much though I'd like to.

I'm happy, if it would be useful, to take over collecting patches
on the old stuff for the time being, so that development on the new
stuff will go ahead; my current schedule means that I may well be
up to helping out with Geckobot in August. At some point, I might
start testing out the Highly Dangerous Development patches, but I
can't promise.

On the other hand, I'm more than happy to bounce ideas around
and I'd be especially interested in the linguistic side of it
as well, both the parsing and the internationalisation.

That said, there are a few things that think would be a good
idea at the design level, but they're so obvious you've probably
thought of them anyway:

     The ability to add a filter to any stage of input/output.

     Complete abstraction of input/output for flexibility.

     Communication between components: when trying to answer
a question, we may need to head off to a web search component
to find information about the topic, which may in turn fire
off a dictionary component to help with understanding something
on the returned web page, and so on.

     Some state keeping would be nice, too. I recently had
to do some very, very crufty code for the infobot to get
information out of another IRC bot - it would save the original
questioner, channel and message type away (is this going to
be a Query object? Can they go on a stack?) and message the
other bot, then return to ordinary processing, special-casing
replies from the bot to relay onto the original questioner.
Yuck. If we can think of a way around that, it would be helpful.

We're also seeing the communication aspect coming up, which is
an important issue. (Are we starting to model social patterns?)
What do *you* do when you need to find something out? You
either already know it (it's in your DBM, as it were) or you
can ask someone else, you can look it up on the web or in an
encyclopaedia. In some situations, you may think you've got the
answer, but it doesn't seem to fit the question somehow. A
human can tell pretty easily when he's got the wrong reference
source for a topic; the query has a series of mental
associations. When we're looking up quavers, we can usually
work out if the answer's supposed to relate to music or cheesy
potato chips. We're about to hit a really nasty knowledge
representation issue here.

(Should we be talking to the perl-ai list about this too?)

> i've been told at CMU i can work on "anything i want to do",
> so i will be at least partly on refocussing on the 'bot --

Sounds a pretty good brief.

> I have speech in and out working,

Genius. That's a huge psychological boost for human-computer
interaction. I wonder where the project currently sits, in
terms of the chatting-with-machines world.

>From a Perl evangelism point of view, I'd really appreciate
it if someone could find the time to XS up festival and
sphinx. The more Perl this thing is, the bigger a propaganda
coup. :)

While we're being a propos of nothing, I'd just like to comment
on how ironic life is. About a year ago, my rival brought an
infobot onto the IRC network of my local hacker community.
Of course, I already had a good emotional reason for disliking
the bot, and it didn't help that it only knew about twenty or
thirty factoids, and answered everything with `bugger all, I
dunno.' What a useless piece of software, I thought. Now look
what I'm doing. Maybe it's spite. :) (Of course, the real
beauty is that the software hasn't changed, just the size of
the knowledge base I'm used to working with.)

> YAPC is a part of that, and other directions; let's look
> at international venues, also.

This was recently disgust(sic) on clpm, so I funneled it off
to a mailing list:
echo | mail european-yapc-subscribe@othersideofthe.earth.li
to join.

> i'm on the verge of proposing a long talk at TPC on
> particle, wave, and field in the world of the bot -- but
> as a situated talk on perl and "we."

By all means reach for the stars, but never forget to keep
your feet on the ground. When it comes down to it, only
the code matters.

Simon


From infobot-dev@metronomicon.com  Thu Jan 20 02:07:16 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA21194
	for infobot-dev-list; Thu, 20 Jan 2000 02:07:13 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from pixie.securenets.com (what.securetty.org [63.225.132.243])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA21191
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 02:07:12 -0500
Received: from localhost (jjacobs@localhost)
	by pixie.securenets.com (8.9.1/8.9.1) with SMTP id BAA29354
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 01:09:36 -0600
Date: Thu, 20 Jan 2000 01:09:36 -0600 (CST)
From: Jay Jacobs <jjacobs@securetty.org>
X-Sender: jjacobs@pixie.securenets.com
Reply-To: Jay Jacobs <jjacobs@securetty.org>
To: infobot-dev@infobot.org
Subject: Re: a propos of artificial intelligence, linguistics, and geckos
In-Reply-To: <4925686C.0019F820.00@pwj-gw-n001.pwj.co.jp>
Message-ID: <Pine.LNX.3.95.1000119233834.28027K-100000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Thu, 20 Jan 2000 scozens@pwj.co.jp wrote:
>      Communication between components: when trying to answer
> a question, we may need to head off to a web search component
> to find information about the topic, which may in turn fire
> off a dictionary component to help with understanding something
> on the returned web page, and so on.

I thought this was sticky, but...

> We're also seeing the communication aspect coming up, which is
> an important issue. (Are we starting to model social patterns?)
> What do *you* do when you need to find something out? You
> either already know it (it's in your DBM, as it were) or you
> can ask someone else, you can look it up on the web or in an
> encyclopaedia. In some situations, you may think you've got the
> answer, but it doesn't seem to fit the question somehow. A
> human can tell pretty easily when he's got the wrong reference
> source for a topic; the query has a series of mental
> associations. When we're looking up quavers, we can usually
> work out if the answer's supposed to relate to music or cheesy
> potato chips. We're about to hit a really nasty knowledge
> representation issue here.

wow.

  I'm only going to comment on the first one... I started thinking about
information validity.  It sounds like the path is being paved to a much
smarter AI, and information validity will be a key component.  Everyone
who's run an infobot knows how much invalid data is scraped from IRC, so
I see these main topics:

  How and where to get and accept information.

  How to process and reference, and relate information.

  How to store new information for future refence.

  How to detect and remove bogus information that's already stored.

In addition to those, like Simon said, "The ability to add a filter
to any stage of input/output." is essential.

I have a feeling I've rehashed something from an AI 101 course... But do
we really want to dive this deep into it?  Or keep it simple with the
absolute need for human interaction with the "forget" ability? Or perhaps
give it a hard-coded fact-base, and build "soft" information off of what
is determind as fact?  (i.e. no on-the-fly dictionary lookups)  Perhaps
though if it starts to understand individual words, a thesauraus may be of
some help to point towards the right song about cheesy potato chips.

This is the batter for making a nice cake anyway.  ...I think I'm gonna be
spending my extra time looking into other batters to see how other chefs
cook, since most of my AI and linguistics has been gleemed from cartoons
and the discovery channel. 

Jay


From infobot-dev@metronomicon.com  Thu Jan 20 11:39:32 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA23610
	for infobot-dev-list; Thu, 20 Jan 2000 11:39:02 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.austin.rr.com (sm1.texas.rr.com [24.93.35.54])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA23607
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 11:39:01 -0500
Received: from [10.1.0.2] ([24.28.72.78]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 20 Jan 2000 10:41:49 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 20 Jan 2000 10:41:16 -0600
Subject: Re: Term::ANSIColor.pm
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4AC96CC.AF9E%alterego@austin.rr.com>
In-Reply-To: <B4A93EEE.AE2D%alterego@austin.rr.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Helloooooooo...are my posts making it to the list??


on 1/17/2000 9:49 PM, David Blache wrote:

> on 12/22/1999 8:14 AM, Kevin Lenzo wrote:
> 
>> Note: It will be much prettier if you have Term::ANSIColor.pm.
> 
> Where can I get this?
> 
> Also is 0.49_03 irc-capable yet?
> 

From infobot-dev@metronomicon.com  Thu Jan 20 11:42:28 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA23829
	for infobot-dev-list; Thu, 20 Jan 2000 11:42:28 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA23815
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 11:42:26 -0500
Received: (qmail 18591 invoked by uid 500); 20 Jan 2000 16:44:49 -0000
Date: Fri, 21 Jan 2000 01:44:49 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: Infobot development list <infobot-dev@infobot.org>
Subject: Re: Term::ANSIColor.pm
Message-ID: <20000121014449.A18580@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <B4A93EEE.AE2D%alterego@austin.rr.com> <B4AC96CC.AF9E%alterego@austin.rr.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <B4AC96CC.AF9E%alterego@austin.rr.com>; from David Blache on Thu, Jan 20, 2000 at 10:41:16AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Thu, Jan 20, 2000 at 10:41:16AM -0600, David Blache wrote:
> Helloooooooo...are my posts making it to the list??

That one is.

> on 1/17/2000 9:49 PM, David Blache wrote:

That one didn't.

> > on 12/22/1999 8:14 AM, Kevin Lenzo wrote:
> >> Note: It will be much prettier if you have Term::ANSIColor.pm.
> > Where can I get this?

CPAN, where else? :)

Try http://www.cpan.org/modules/by-module/Term/ or your local mirror.

-- 
He's just a politician trying to save both his faces...

From infobot-dev@metronomicon.com  Thu Jan 20 14:46:43 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA25026
	for infobot-dev-list; Thu, 20 Jan 2000 14:46:41 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.netrus.net (mail.netrus.net [206.251.192.232])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id OAA25022
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 14:46:40 -0500
Received: from rocco (abuse@dialin-pm3-miami-FL-2-113.netrus.net [206.251.198.113])
	by mail.netrus.net (8.8.8/8.8.8) with SMTP id OAA13495;
	Thu, 20 Jan 2000 14:48:51 -0500
Message-Id: <200001201948.OAA13495@mail.netrus.net>
From: "Rocco Caputo" <troc@netrus.net>
To: "infobot-dev@infobot.org" <infobot-dev@infobot.org>,
        "Jay Jacobs" <jjacobs@securetty.org>
Date: Thu, 20 Jan 2000 14:48:51 -0500 (EST)
Reply-To: "Rocco Caputo" <troc@netrus.net>
X-Mailer: PMMail 2.10.1999 for OS/2 Warp 4.00
In-Reply-To: <Pine.LNX.3.95.1000119233834.28027K-100000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Re: a propos of artificial intelligence, linguistics, and geckos
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Thu, 20 Jan 2000 01:09:36 -0600 (CST), Jay Jacobs wrote:

>On Thu, 20 Jan 2000 scozens@pwj.co.jp wrote:
>> We're also seeing the communication aspect coming up, which is
>> an important issue. (Are we starting to model social patterns?)
>> What do *you* do when you need to find something out? You
>> either already know it (it's in your DBM, as it were) or you
>> can ask someone else, you can look it up on the web or in an
>> encyclopaedia. In some situations, you may think you've got the
>> answer, but it doesn't seem to fit the question somehow. A
>> human can tell pretty easily when he's got the wrong reference
>> source for a topic; the query has a series of mental
>> associations. When we're looking up quavers, we can usually
>> work out if the answer's supposed to relate to music or cheesy
>> potato chips. We're about to hit a really nasty knowledge
>> representation issue here.
>
>wow.
>
>  I'm only going to comment on the first one... I started thinking about
>information validity.  It sounds like the path is being paved to a much
>smarter AI, and information validity will be a key component.  Everyone
>who's run an infobot knows how much invalid data is scraped from IRC, so
>I see these main topics:
>
>  How and where to get and accept information.

Accept liberally, and consider the source.  Is it some stranger?  Is
it the producer of quality factoids?

What defines quality?  Karma?  The number of factoids that haven't
been erased or overwritten by someone else?  Peer review, perhaps
with a karma-like system?

>  How to process and reference, and relate information.

I have been cross-referencing ambiguous factoid keys or related
values on purl, the EFNet #perl infobot.  It's as simple as:

  intermezzo is (see: inter-mezzo)

It would be interesting if infobot could follow the links, pulling
out the "inter-mezzo" factoid even when someone asks about "intermezzo".
That brings up issues like: Should changes to intermezzo be propagated
to inter-mezzo, or should factoids be copy-on-write?  Probably the
former, but I'm not willing to say always.

  use Can::Worms;
  my $can = new Can::Worms;
  $can->open();

The problem becomes harder if a link accompanies other information;
following it should be the reader's job.  For example, the referenced
"poe slides" factoid may have only a tenuous connection to
"inter-mezzo":

  inter-mezzo is a distributed file system at http://www.inter-mezzo.org/
  (see: poe slides) or version 001 is 90% lethal

>  How to store new information for future refence.
>
>  How to detect and remove bogus information that's already stored.

The human brane seems to forget least-used information.  How safe
would it be for geckobot to quietly prune deadwood?  What defines
deadwood?  Age since last recollection?  Relative fetch frequency?
Accumulators that increase by different amounts depending on the
access method (i.e., directed fetches, like "geckobot: factoid"
count more than undirected ones like "factoid?") and decay gradually
over time?

For the paranoid, decayed factoids could appear in a report instead
of die off quietly.  They could also be presented in a form-based
factoid manager, which, if geckobot's current design works out, may
possibly be integrated into the bot as a personal web server.

>[... removed by troc@netrus.net]

Of course, I'm handwaving a whole helluvalotta details.  Grains of
salt available upon request.

-- Rocco Caputo / troc@netrus.net

From infobot-dev@metronomicon.com  Thu Jan 20 16:42:46 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id QAA25790
	for infobot-dev-list; Thu, 20 Jan 2000 16:42:26 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id QAA25787
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 16:42:25 -0500
Received: from PROTECTED.SPEECH.CS.CMU.EDU by ux1.sp.cs.cmu.edu id aa26585;
          20 Jan 2000 16:44 EST
Message-ID: <38878242.F45E11FF@cs.cmu.edu>
Date: Thu, 20 Jan 2000 16:46:42 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.2.14 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Larry Wall <larry@wall.org>
CC: scozens@pwj.co.jp, infobot-dev@infobot.org
Subject: Re: a propos of artificial intelligence, linguistics, and geckos
References: <200001201927.LAA08774@kiev.wall.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi,

For everyone who asked about the Pike reference:

 Tagmemics Discourse and Verbal Art 
    by Kenneth L Pike 

$6 from Amazon.  they actually got me a copy.  I left
out the word "most" from "recent" in the prior email,
but it's actually from 1981.  

I ordered Linguistic Concepts : An Introduction to Tagmemics 
also, but that one they haven't gotten to yet -- it's been
a couple of months.

In 'discourse' there are three short papers that are easy 
to read but cover a whole lot of ground.  In one of them
he discusses the linguistic complexity in the assembly
instructions (and carrying them out) for a bbq grill;
in the second he outlines tagmemics; and in the third
he talks about the time in a narrative or discourse in
relation to the actual events. The second paper is particularly 
nifty, as Pike reflexively puts himself into the analysis.  

I sat down and read the whole thing without getting up.

kevin

From infobot-dev@metronomicon.com  Thu Jan 20 19:30:26 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA27100
	for infobot-dev-list; Thu, 20 Jan 2000 19:30:22 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id TAA27097
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 19:30:21 -0500
Received: from ip170.pittsburgh6.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa29484; 20 Jan 2000 19:32 EST
Message-ID: <3887A82D.43E1AB67@cs.cmu.edu>
Date: Thu, 20 Jan 2000 19:28:29 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.61 [en] (X11; U; Linux 2.2.14 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: David Blache <alterego@austin.rr.com>
CC: Infobot development list <infobot-dev@infobot.org>
Subject: Re: Term::ANSIColor.pm
References: <B4AC96CC.AF9E%alterego@austin.rr.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

That's a big negatory on the IRC with the new bot yet.
I think maybe end of next week if we're lucky.

kevin

David Blache wrote:
> 
> Helloooooooo...are my posts making it to the list??
> 
> on 1/17/2000 9:49 PM, David Blache wrote:
> 
> > on 12/22/1999 8:14 AM, Kevin Lenzo wrote:
> >
> >> Note: It will be much prettier if you have Term::ANSIColor.pm.
> >
> > Where can I get this?
> >
> > Also is 0.49_03 irc-capable yet?
> >

From infobot-dev@metronomicon.com  Thu Jan 20 22:31:15 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id WAA28282
	for infobot-dev-list; Thu, 20 Jan 2000 22:31:13 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from pixie.securenets.com (what.securetty.org [63.225.132.243])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id WAA28279
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 22:31:12 -0500
Received: from localhost (jjacobs@localhost)
	by pixie.securenets.com (8.9.1/8.9.1) with SMTP id VAA01302;
	Thu, 20 Jan 2000 21:31:16 -0600
Date: Thu, 20 Jan 2000 21:31:15 -0600 (CST)
From: Jay Jacobs <jjacobs@securetty.org>
X-Sender: jjacobs@pixie.securenets.com
To: scozens@pwj.co.jp
cc: troc@netrus.net, infobot-dev@infobot.org
Subject: Re: (null)
In-Reply-To: <4925686D.00088672.00@pwj-gw-n001.pwj.co.jp>
Message-ID: <Pine.LNX.3.95.1000120211803.1169D-100000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I see three possibilities:
  i) really chatty bots
  ii) really slow bots
  iii) really smart bots

with a mixture somewhere in the middle probably being the outcome.  Plus
if any joe can run an infobot and be "discovered" and have their factoids
shared, bad things are inevitable: "teehee, I made purl say 'poop'".
There should not only be weight given to factoids, but weight given to
bots.  Trust should be gained.  Even that is tricky, there are a lot of
really bored kids out there.

On the flip side, I don't think the solution is 'discovery', instead it
should be moderated groups.  Look at the IRC structure.  There are a
series of hoops to jump through to get an IRC server into efnet, the
'buzz' of discovery can happen after it's been configured into one of the
hosts in the group, with some sort of security mechanism (public/private
keys..?).

Jay

On Fri, 21 Jan 2000 scozens@pwj.co.jp wrote:
> 
> 
> (This is a reply to an email sent to me privately, but I'm copying
> the response to the list because I feel it is interesting for infobot
> development, especially since it refers to the devel series.)
> 
> 
> Rocco Caputo writes:
> > If geckobot's using POE, the Filter::Reference will let you pass
> > around Perl structures.  It freezes them on the sender's side and
> > thaws them on the receiver's.  Send syntax is basically:
> >  $wheel->put(\@thing)
> > On the receiving end, you get an event that says "you got this
> > thing, \@thing".
> 
> Eee. Um. That's nice, but... isn't it a little trusting? I mean,
> is there some negotiation first, or do you indiscriminately receive
> anything sent to you? Presumably you'll use the received thing as a
> Perl object, and maybe execute methods on it, and the idea of
> running arbitrary untrusted subs is rather scary for me. Sure, it's
> fine if we're just passing around factoids and meta-data, but once
> you get code coming across, I wouldn't touch it with a big stick.
> 
> > Artur/Sky has a patch pending that lets it use Compress::Zlib
> > transparently, so network traffic can be balanced against CPU.
> 
> Oh, wow. That's special.
> 
> > On the decentralized side, factoids could be propagated like
> > Usenet news messages.  Factoids won't get lost if there are
> > redundant paths.
> 
> OK, let's take this principle and run with it. Here's my complete
> train of thought on how interbot is going to work if we go with a
> peer-to-peer network. How you traverse it is up to you, but I've tried
> to make it a DFA. :)
> 
> i) Infobots have a set of peers. If we're really lucky, these peers
> form a k-connected graph. ->ii,iii,v
> 
> ii) How do you discover how your peers are? Either we hard code in
> config files, or we automatically discover. If we're going to discover,
> which I'd prefer because `discovery' is my programming buzzword of
> the moment, we'll need some sort of central registration scheme
> for infobots. You choose your peers by who's networkologically
> close to you. If you're going to go to a central registry, though,
> you might want to ditch the idea and go with something either
> massively-connected (all bots connect to all other bots) or maybe
> a star-based topology where everone connects to a MetaBot which
> forwards and proxies (and caches, yes!) queries. You also lose
> the distributed nature of the network to a single point of failure.
> Or should there be multiple proxy bots? How many levels can you go
> that way? -> xii
> 
> iii) Are peerings bi-directional? Usenet feeds are (generally)
> two-way; I can receive news from my peers, and I post news to
> them as well. I'm named in their config files, and they're named
> in mine. -> iv
> 
> iv) Does an information request from a bot need to be any different
> from an information request from a human? -> viii
> 
> v) A request for information goes out to all peers, each of which
> replies if they know the answer. ->vi,vii
> 
> vi) We may receive two conflicting answers. Do we simply take the
> first one? Or can we invent a way of validating which is more
> appropriate? If so, do we keep both factoids anyway? In short,
> how are different factoids going to co-exist in a distributed
> knowledge base? -> xii
> 
> vii) How do we propagate the search further? We need a sense of
> a return Path and a way to terminate the search if we've found
> the information. Usenet provides a `cancel' control message to
> do this, effectively. But where do we store state data about a
> query? -> viii, x
> 
> viii) Ideally we'd have a response look the same at every level,
> whether initiated by a human, a bot or another bot further
> down the chain, just to make implementation nice and easy. Why
> should the bot have to care whether it's talking to me or to
> another bot? So, we'd have a message ID stored *locally* keying
> what went to whom and who it's for. -> ix)
> 
> ix) However, we can't sent the message ID out if we want it to
> be transparent, since I'm a human and I wouldn't send out a
> message ID with my queries. So, we have a situation like this:
> 
>      Human: BotA, tell me about hoge
> 
> BotA - need to tell Human about hoge, add to to-do list.
> don't know about hoge. ask peers, [and this is the key!]
> go back to the event loop.
> 
>      BotA: Human, sorry, don't know. I'll see if I can find out.
> 
>      BotA: BotB, tell me about hoge
>      BotA: BotC, tell me about hoge
>      BotA: BotD, tell me about hoge
> 
> BotB - need to tell BotA about hoge. don't know about hoge.
> ask peers.
> ....
> 
> BotF - need to tell BotC about hoge.
> 
>      BotF: BotC, hoge is the Japanese for foo.
> 
> BotC - recieved new factoid `hoge'. Checking to-do list.
> Have to tell BotA about `hoge'. Clear `hoge'->BotA from
> to-do list.
> 
>      BotC: BotA, hoge is the Japanese for foo.
> 
> BotA - recieved new factoid `hoge'. Checking to-do list.
> Have to tell Human about `hoge'. Clear `hoge'->Human from
> to-do list.
> 
>      BotA: Human, hoge is the Japanese for foo.
> 
> [Hence, there was no need to keep state data. However... -> x]
> 
> x) So, we can reliably pass information between bots and humans
> without keeping any state *in the message* or distinguishing between
> human queries, bot queries and second (n'th) -level bot queries.
> BUT... if we have a k-connected graph, which is nice for redundancy,
> yet we're not keeping track of who's asked who what, how on earth
> do we exhaust the search? -> xi
> 
> xi) I guess one solution may be, when receiving the `will try
> to find out' message, check whether we have this from all peers,
> and if so report `none of my peers know about this'. This will
> prune that particular branch of the search. But is that now
> guaranteed to find-or-fail in all circumstances? (I can't get my
> head around the topology of this) And how to we code it into an
> event loop? -> xii
> 
> xii) Don't know.
> 
> > I have too many ideas and not enough implementation.
> 
> You and me both.
> 
> Simon
> 
> 

From infobot-dev@metronomicon.com  Thu Jan 20 22:40:04 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id WAA28419
	for infobot-dev-list; Thu, 20 Jan 2000 22:40:04 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id WAA28416
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 22:40:03 -0500
Received: from ip170.pittsburgh6.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa01600; 20 Jan 2000 22:42 EST
Message-ID: <3887D4BB.7C21FB90@cs.cmu.edu>
Date: Thu, 20 Jan 2000 22:38:35 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.61 [en] (X11; U; Linux 2.2.14 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: (null)
References: <4925686D.00088672.00@pwj-gw-n001.pwj.co.jp>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

ping,

scozens@pwj.co.jp wrote:
..
> Rocco Caputo writes:
..
> > On the receiving end, you get an event that says "you got this
> > thing, \@thing".
> 
> Eee. Um. That's nice, but... isn't it a little trusting? I mean,
..

it depends on how \@thing is vivified.  Yes it is trusting --
we have the whole sandbox issue, like java and jini. authentication,
encryption, validation -- Entities have identity, and even
Infobot::Modules have to negotiate who can do what to who when.
If there is a way to alias and resolve an entity and refer
to an entity instance in the object store, there also has to
be a way to make sure you're talking to the real one and even
perhaps that you cannot be overheard.

back to vivification. if Infobot=HASH(), or its image, is seen
in the serialized form (as with using Leolo's XML::Storable),
the object getting the reference should make appropriate moves
to vivify the code of an object from the _internal_, safe store.

i'm not sure how the ref server does this, but i think the
vivification mechanism puts a lot of the burden of security
onto the users faith in their internal code, which is pretty
much on par with using modules.  and modules, it seems, should
be able to authenticate and secure channels as any other
Entity might... hmm.

> 
> > Artur/Sky has a patch pending that lets it use Compress::Zlib
> > transparently, so network traffic can be balanced against CPU.
> 
> Oh, wow. That's special.

Do we have Filter::PGP yet? That or something like it would
help move the burden of authentication.  You could trust
some hosts more than others for certain types of transfer --
like tainted 'references' that might vivify into evaled perl code. 

> > On the decentralized side, factoids could be propagated like
> > Usenet news messages.  Factoids won't get lost if there are
> > redundant paths.
> 
> OK, let's take this principle and run with it. Here's my complete
> train of thought on how interbot is going to work if we go with a
> peer-to-peer network. How you traverse it is up to you, but I've tried
> to make it a DFA. :)
..

Phew! OK i have some ideas to throw into the pot here.

The way the new bot is composed, a Message object gets
created when something happens.  This message basically 
takes on a life of its own -- the message is the thread.

This message object can be passed from entity to entity,
and each one can act on it, decorate it, edit it, etc,
and pass it on.  These entities theoretically should
not have to be in the same program or on the same machine.

This is why Parse::RecDescent won't work for us.  The
message has to pass through the machine, where unknown
parts at an unknown distance recognize strange languages.
The message can burrow into other bots and come back
with a reply.

The message needs to have a routing policy, though,
and the entities sending and possibly expecting replies
should be able to stick plans inside the message itself.
Strategy (not implemented) should make a graph of known
entity instances and create a routing policy inside
the message, perhaps encoded in the message directly
by the originating entity instance.

Since the message itself is an object, though, it
does sort of have an animist quality.  The messages
start doing things _on their own_.  For instance,
a message might create a password subdialog, which
would push the expectation of a password onto the
listening interface, and respond to the correct
and incorrect password differently.  So the message
isn't just the first pass of the message until the 
reply, it can be something hanging around with an
agenda. 

As far as how messages propagate, if a set of 
bots are known, these bots will have policies 
on query forwarding for certain classes or hosts.
For all the know bots we can use Kruskal's algorithm
or something to get a minimal spanning tree.  I worked
out a simple algorithm i called 'N-coloring' that
probably is much better done by some well-known
routing algorithm, but we're probably best off
with something simple to start with -- like knowing
where all the bots are.  ircd issues a CONNECT
when a new server comes up, that seems ok. 
we might want something more anonymous (things 
behind things) later.  Cycles in the connection
graph seem like a Good Thing for redundancy, but
ircd avoided it for complexity reasons.  

Most services will not be remote.  I don't want
another bot asking me to get a web page for it,
for instance.  I'm happy to give factoids to
a remote bot but i wouldn't want it to be soaking
up my resources when it could be doing it itself.

So interbot can pretty much be raw command and
database access -- and the message is instantiated
with a different plan (routing path) through the
entities and using Language::Interbot rather than
Language::Nahuatl.

> 
> > I have too many ideas and not enough implementation.
> 
> You and me both.
> 
> Simon

woohoo! i got interbot.org :)

kevin

From infobot-dev@metronomicon.com  Thu Jan 20 23:28:18 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id XAA29038
	for infobot-dev-list; Thu, 20 Jan 2000 23:28:14 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from asec50.pwj.co.jp (IDENT:root@asec50.pwj.co.jp [202.32.76.250])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id XAA29035
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 23:28:08 -0500
From: scozens@pwj.co.jp
Received: from asec12.pwj.co.jp (barrier1.pwj.co.jp [202.32.76.1] (may be forged))
	by asec50.pwj.co.jp (8.9.3/3.7W) with ESMTP id NAA06453
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 13:36:27 +0900 (JST)
Received: from pwj-gw-n001.pwj.co.jp (mailhost [10.159.99.13])
	by asec12.pwj.co.jp (8.9.2/3.7W) with SMTP id NAA18794
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 13:35:16 +0900 (JST)
Received: by pwj-gw-n001.pwj.co.jp(Lotus SMTP MTA Internal build v1.2 hotfix4  (684.3 7-31-1998))  id 4925686D.0018BAC1 ; Fri, 21 Jan 2000 13:30:06 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: infobot-dev@infobot.org
Message-ID: <4925686D.0013B146.00@pwj-gw-n001.pwj.co.jp>
Date: Fri, 21 Jan 2000 13:28:50 +0900
Subject: Re: Trust and Discovery
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O






> I see three possibilities:
>  i) really chatty bots
>  ii) really slow bots
>  iii) really smart bots

Let's see if I can remember the saying:
     quick, reliable, cheap : choose two, you can't have all three.

> Plus if any joe can run an infobot and be "discovered" and have
> their factoids shared, bad things are inevitable:
> "teehee, I made purl say 'poop'".

This happens already, and is, I suspect, a deliberate decision - purl
is not only a *member* of the community, but a *reflection* of it.

> There should not only be weight given to factoids, but weight given to
> bots.  Trust should be gained.

This isn't as hard as it sounds, so long as you're prepared to solve
some fairly fundamental artificial intelligence problems along the way.
How it would work is this:

Factoid not found. Ask peers.
One response -> Add response to database, do not alter trust.
Two responses -> Choose response from most trusted bot then proceed as
below.
More than one response -> Compare all factoids, rank by similarity*.
Choose response from most trusted bot from factoids that are similar.
Add trust to all bots producing factoids similar to chosen one, remove
trust from bots producing differing factods.

* Yes, this part is impossible. Not to worry. We'll work something out.

So, your bot asks `what is a square?'
Responses:
BotA (Trust 3) : A square is a four-sided shape
BotB (Trust 3) : Poo!
BotC (Trust 8) : A square is a shape with four corners
BotD (Trust 9) : A square is foo bar baz
BotE (Trust 5) : A square is four lines connected by right-angles.

Sort response by similarity and trustworthiness:

BotB BotD          BotE BotA BotC

Select BotC's answer. Alter trust:
BotB -2
BotD -2
BotE +3
BotA +3
BotC +3

Do we do this just for bots, or for humans too?

> On the flip side, I don't think the solution is 'discovery', instead it
> should be moderated groups.

I'll explain what I mean by the concept of `discovery' because it's
featuring more and more strongly these days in my programming and
programming philosophy, and I want to evangelise it. :)

(If you like this way of programming, forward it to some interesting
people; I haven't the confidence. :-)

The idea is twofold: that the computer should take as much work from
the human as it can, doing almost everything without intervention; and
that the computer finds out things only when it is asked to, or (and
this is the clever bit) when it needs to in order to discover something
else. Oh, and a third idea: I don't like hard-coding stuff.

The way I typically program a `discovery engine' is to have a hash full
of things to be discovered, which are represented as sub refs.
I use a cunning tie such that when the hash is accessed, the sub ref is
fired off and the return value takes its place in the hash, caching it.

So, let's take a very, very basic example from my system configuration
discovery engine.

%engine = {
     uname => \&discover_uname,
     where_uname => \&discover_where_uname
     ...
};

tie %sysconf,"Discovery",%engine; # Maybe I should put this on CPAN.

sub uname { `$sysconf{where_uname}` }
sub where_uname { _find_in_path("uname") }

So, when I ask for $sysconf{uname}, the program hits &uname, which
would run the uname command and return the value. In order to run
the uname command, we need to find out where it is - we have a
data dependency - so we ask for $sysconf{where_uname}.
If we've already found this out for some other purpose, we can just
return it. Else, we fire off another sub, which looks in the path for
the command, and returns it. No data dependency here, but I have some
discovery engines that go five or six deep. It's fast, it keeps the
program moving, and it's a cool design, allowing you to do really
neat top-down (or bottom-up, at your choice) programming in quite an
obvious way. I've done this for system configuration, for my CTAN
module, and I'm strongly considering using it in the rewrite of Perl's
Configure I'm doing. (if crazyperl supports ties, grumble grumble.)

How would we discover infobot peers this way?
We need a list of infobots, so we send out for one. We try a few
places and see if we can find one. (This might even require us to
discover what sort of Internet connection we've got, how we can
retrieve web pages, (a la CPAN.pm) and all that mundane stuff.)

We then need to ping all the infobots to see which are close. We
send out for the best method of pinging (`ping`, Net::Ping (UDP or
TCP?), special infobot TCP ping?) and ping each bot.

We investigate the nearest bots, maybe even seeing how much they
trust the bots around them, how many peers they have, how many
factoids they possess and so on. These are things we go off and
discover for ourselves. Then we take the results, and choose our
peers. Finally, we let the chosen bots know we'll be peering with
them, so they know to rate us for trustworthiness.
Cool, eh?

Simon


From infobot-dev@metronomicon.com  Fri Jan 21 01:10:41 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA29636
	for infobot-dev-list; Fri, 21 Jan 2000 01:10:36 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from jupter.evolving.org (IDENT:root@tsp-3.dsl.speakeasy.net [216.231.35.57])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id BAA29633
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 01:10:35 -0500
Received: from localhost (root@localhost)
	by jupter.evolving.org (8.9.3/8.9.3) with ESMTP id AAA01452
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 00:20:47 -0500
Date: Fri, 21 Jan 2000 00:20:46 -0500 (EST)
From: root <root@evolving.org>
To: infobot-dev@infobot.org
Subject: BotTalk
In-Reply-To: <4925686D.0013B146.00@pwj-gw-n001.pwj.co.jp>
Message-ID: <Pine.LNX.4.10.10001202343350.1247-100000@evolving.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


Hi,

I've been a lurker for awhile, but I'd like to share some ideas tonight.
Creating smart infobot networks is a really fun problem, and yakking
about design is the best part of problem solving.

Anyway, I think there's a very elegant solution to this, lets see if I can 
think it thru here. 

Bot networks should be grouped into an AS(autonomus system).
Auth info may or may not be required.
Each bot holds a status table, consisting of the name of the each member
in the AS, ID#, Ping time, and LastSpoken time.
This Status. Table serves as the routing table for the AS.

The first issue, is the glue that makes up the AS. How the entities
exchange status infomation in a sane way. I prefer learning most 
info passively, and when circumstance require actively.

When a bot connects, it's gets a copy of a status table, then says hello
to everybody. When it says hello to everyone, and everyone says hi back.
It remembers how long it took. Now, everyone has a clear picture of the
AS. Now lets Chat!

One to one message types are obviously one to one.

General queries should broadcast, because it saves time, and it
saves bandwidth. If you go with a token model, you need to have ACKS to
ensure continuity.  

Token messages should be used for HELLO type messages, and other status
messages. The protocol goes like so, the originator sends out the token 
to it's speediest friend. He looks at it, adds his name, and sends it to
his speediest friend. If his friend doesn't answer he drops his friends
name from his table and sends a CHECK{FRIEND} token out. He sends the
original token on it's merry way, minus his sleeping friend. If somebody
notices a name that they don't have, he requests this unknown guy to
re-authenticate to everyone using his table. This uses the same method
used when a new bot connects. When it gets to the last friend, he 
realizes this because the token has everyone else in it, he adds himself
and sends it to the originator. This one token has threaded out to other
tokens and synchronized the
status table. Tokens require ack and should be used sparingly.



Thats basically what I think, any suggestions?

From infobot-dev@metronomicon.com  Fri Jan 21 01:35:19 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA30000
	for infobot-dev-list; Fri, 21 Jan 2000 01:35:17 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from pixie.securenets.com (what.securetty.org [63.225.132.243])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id BAA29997
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 01:35:17 -0500
Received: from localhost (jjacobs@localhost)
	by pixie.securenets.com (8.9.1/8.9.1) with SMTP id AAA02066;
	Fri, 21 Jan 2000 00:36:40 -0600
Date: Fri, 21 Jan 2000 00:36:40 -0600 (CST)
From: Jay Jacobs <jjacobs@securetty.org>
X-Sender: jjacobs@pixie.securenets.com
Reply-To: Jay Jacobs <jjacobs@securetty.org>
To: infobot-dev@infobot.org
cc: root <root@evolving.org>
Subject: Re: BotTalk
In-Reply-To: <Pine.LNX.4.10.10001202343350.1247-100000@evolving.org>
Message-ID: <Pine.LNX.3.95.1000121002133.1169I-100000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Yeah...

On Fri, 21 Jan 2000, root wrote:
> Bot networks should be grouped into an AS(autonomus system).
> Auth info may or may not be required.
> Each bot holds a status table, consisting of the name of the each member
> in the AS, ID#, Ping time, and LastSpoken time.
> This Status. Table serves as the routing table for the AS.
> 
> The first issue, is the glue that makes up the AS. How the entities
> exchange status infomation in a sane way. I prefer learning most 
> info passively, and when circumstance require actively.
> 
> When a bot connects, it's gets a copy of a status table, then says hello
> to everybody. When it says hello to everyone, and everyone says hi back.
> It remembers how long it took. Now, everyone has a clear picture of the
> AS. Now lets Chat!
> 
> One to one message types are obviously one to one.
> 
> General queries should broadcast, because it saves time, and it
> saves bandwidth. If you go with a token model, you need to have ACKS to
> ensure continuity.  

I don't think we want to get into ACKs.  I would vote for the UDP theory
since it's essentially asynchronous communication.  Send out a request and
move on, wait for, or process the next event.  If you get a response(s),
great, deal with it, if not, you've already moved on anyway, but perhaps
come back to acknowledge the original request with "I dunno".  It might be
different if we're talking threads... But UDP would be less overhead
anyway.

> Token messages should be used for HELLO type messages, and other status
> messages. The protocol goes like so, the originator sends out the token 
> to it's speediest friend. He looks at it, adds his name, and sends it to
> his speediest friend. If his friend doesn't answer he drops his friends
> name from his table and sends a CHECK{FRIEND} token out. He sends the
> original token on it's merry way, minus his sleeping friend. If somebody
> notices a name that they don't have, he requests this unknown guy to
> re-authenticate to everyone using his table.. This uses the same method
> used when a new bot connects. When it gets to the last friend, he 
> realizes this because the token has everyone else in it, he adds himself
> and sends it to the originator. This one token has threaded out to other
> tokens and synchronized the
> status table. Tokens require ack and should be used sparingly.

Yeah, I could see this kind of thing for initializing interbot
communication... but I'm not quite kosher with the notion of tokens,
unfortunately we'd probably want to 'sign' each message for verification,
thus just blast what ya got out there.

> 
> Thats basically what I think, any suggestions?

Yeah, sign your email and use something other than "root" to send email ;)

Jay


From infobot-dev@metronomicon.com  Fri Jan 21 09:22:40 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA05087
	for infobot-dev-list; Fri, 21 Jan 2000 09:22:14 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.netrus.net (mail.netrus.net [206.251.192.232])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id JAA05084
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 09:22:13 -0500
Received: from rocco (abuse@dialin-pm3-miami-FL-2-135.netrus.net [206.251.198.135])
	by mail.netrus.net (8.8.8/8.8.8) with SMTP id JAA11955;
	Fri, 21 Jan 2000 09:24:34 -0500
Message-Id: <200001211424.JAA11955@mail.netrus.net>
From: "Rocco Caputo" <troc@netrus.net>
To: "infobot-dev@infobot.org" <infobot-dev@infobot.org>,
        "scozens@pwj.co.jp" <scozens@pwj.co.jp>
Date: Fri, 21 Jan 2000 09:24:29 -0500 (EST)
Reply-To: "Rocco Caputo" <troc@netrus.net>
X-Mailer: PMMail 2.10.1999 for OS/2 Warp 4.00
In-Reply-To: <4925686D.0013B146.00@pwj-gw-n001.pwj.co.jp>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Trust (was "Re: Trust and Discovery")
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I've separated the problem of validating and assimilating factoids on
the assumption that more threads with smaller messages is good.


On Fri, 21 Jan 2000 13:28:50 +0900, scozens@pwj.co.jp wrote:
>

[Attribution for >> was lost.]
>
>> I see three possibilities:
>>  i) really chatty bots
>>  ii) really slow bots
>>  iii) really smart bots
>
>Let's see if I can remember the saying:
>     quick, reliable, cheap : choose two, you can't have all three.
>
>> Plus if any joe can run an infobot and be "discovered" and have
>> their factoids shared, bad things are inevitable:
>> "teehee, I made purl say 'poop'".
>
>This happens already, and is, I suspect, a deliberate decision - purl
>is not only a *member* of the community, but a *reflection* of it.
>
>> There should not only be weight given to factoids, but weight given to
>> bots.  Trust should be gained.
>
>This isn't as hard as it sounds, so long as you're prepared to solve
>some fairly fundamental artificial intelligence problems along the way.
>How it would work is this:
>
>Factoid not found. Ask peers.
>One response -> Add response to database, do not alter trust.
>Two responses -> Choose response from most trusted bot then proceed as
>below.
>More than one response -> Compare all factoids, rank by similarity*.
>Choose response from most trusted bot from factoids that are similar.
>Add trust to all bots producing factoids similar to chosen one, remove
>trust from bots producing differing factods.
>
>* Yes, this part is impossible. Not to worry. We'll work something out.
>
>So, your bot asks `what is a square?'
>Responses:
>BotA (Trust 3) : A square is a four-sided shape
>BotB (Trust 3) : Poo!
>BotC (Trust 8) : A square is a shape with four corners
>BotD (Trust 9) : A square is foo bar baz
>BotE (Trust 5) : A square is four lines connected by right-angles.
>
>Sort response by similarity and trustworthiness:
>
>BotB BotD          BotE BotA BotC
>
>Select BotC's answer. Alter trust:
>BotB -2
>BotD -2
>BotE +3
>BotA +3
>BotC +3
>
>Do we do this just for bots, or for humans too?


Humans, too!

I still like the idea of combining factoids.  In your example, Bot0
(your bot) would build a new factoid from the others:

  A square is a four-sided shape or Poo! or a shape with four corners
  or foo bar baz or four lines connected by right-angles

Additionally, it might be fun to store with the factoid which parts
came from which places at what times:

  A square is
  (BotA@948461095:a four-sided shape) or
  (BotB@948462000:Poo!) or
  (BotC@948461111:a shape with four corners) or
  (BotD@948459833:foo bar baz) or
  (BotE@948461000:four lines connected by right-angles.)

Times and sources would be useful for when acquiring updates.

A fun forms interface or some extra syntax could let you forget
subsets of factoids:

  bot, forget a square/BotB
  bot, replace square/BotD with foo bar baz quux
  bot, a square is also the opposite of a hep cat

That eliminates "Poo!", replaces "foo bar baz" with an updated
version, and adds a new subfactoid from a local user.  Now it's
hypothetically stored as:

  A square is
  (BotA@948461095:a four-sided shape) or
  (BotC@948461111:a shape with four corners) or
  (BotD@948459833:foo bar baz quux) or
  (BotE@948461000:four lines connected by right-angles.) or
  (User@948476281:the opposite of a hep cat)

Editing factoids might also subtract some trust from bots B and D in
the peers table.  The amount of trust subtracted might be proportional
to the amount of trust the local bot places in the people making
changes.

Local user trust?  That's a hard one; it may be mask or nick based,
like regular karma.  Editors may have to log in to participate in
trust, or it could be as relaxed as karma and just work out.

Since all the factoid's authors are known at least internally, point
awards (and penalties) to factoids would be divided among the
factoid's authors and added (subtracted, in the case of penalties) to
their accumulators.  Negative trust doesn't exist; 0 is the minimum.
Factoids themselves don't hold karma; authors would have "authorship
karma" or something.

  Or perhaps award an amount of "factoid karma" for each
  local fetch; assuming that the factoid must be good if
  nobody bothers to change it?

This brings into play a second tier of inter-bot trust: the local
bot's trust in its own factoid authors.  To rehash the original
factoid transaction, with a local-trust twist:

Bot0 (your bot) asks: What is a square?
BotA (Trust 3) says: A square is (UserAx,12345,97:a four-sided
                     shape)

  Oh, the fields are (Author,Time,AuthorTrust) In the BotA
  response, UserAx added the subfactoid at 12345.  At the
  response time, UserAx has a local trust of 97.

BotB (Trust 3) says: A square is (UserBx,12346,0:Poo!)
BotC (Trust 8) says: A square is (UserCx,12347,133:a shape with
                     four corners)
BotD (Trust 9) says: A square is (UserDx,12348,2:foo bar baz)
BotE (Trust 5) says: A square is (UserEx,12349,212:four lines
                     connected by right-angles)

Overall factoid trust would be the remote bots' trust in the factoid
author, weighted by the local bot's trust in the remote bot.  For fun,
let's try (bot trust * user trust).  Sorted in decreasing order of
trust:

BotC/UserCx = 1064 = a shape with four corners
BotE/UserEx = 1060 = four lines connected by right-angles
BotA/UserAx = 291  = a four-sided shape
BotD/UserDx = 18   = foo bar baz
BotB/UserBx = 0    = Poo!

Weighing and evaluating trust would be a lot easier if trust had a
small set of values.  I've specified a similar trust scheme with four
inter-system and four intra-system classes; the combinations fall into
a small set of overall security classes which are easy enough to
manage.  This won't work for a system where trust is a fuzzy value.


Assuming factoids at and above the median are kept and combined, you
get:

  Bot0: A square is a shape with four corners or four lines connected
        by right-angles or a four-sided shape


That works out pretty well, but it's all contrived examples.  These
sorts of things seem to break terribly in the field.


-- Rocco Caputo / troc@netrus.net / Thinks he's human, too.


From infobot-dev@metronomicon.com  Fri Jan 21 21:18:26 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA07851
	for infobot-dev-list; Fri, 21 Jan 2000 21:17:49 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from vms4.isc.rit.edu (vms4.isc.rit.edu [129.21.3.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA07848
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 21:17:47 -0500
Received: from pog ([129.21.142.151])
 by ritvax.isc.rit.edu (PMDF V5.2-32 #34523)
 with ESMTP id <01JKZBF1CLS0CK048R@ritvax.isc.rit.edu> for
 infobot-dev@infobot.org; Fri, 21 Jan 2000 21:20:04 EST
Date: Fri, 21 Jan 2000 21:25:59 -0400
From: Nathan Ewing <nre7468@ritvax.isc.rit.edu>
Subject: Re: Trust
In-reply-to: <200001211424.JAA11955@mail.netrus.net>
X-Sender: nre7468@vmspop.isc.rit.edu
To: infobot-dev@infobot.org
Message-id: <4.2.0.58.20000121190450.00ad9cd0@vmspop.isc.rit.edu>
MIME-version: 1.0
X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7BIT
References: <4925686D.0013B146.00@pwj-gw-n001.pwj.co.jp>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi , I just started reading this mailing list, but I thought I had 
something to contribute on this topic anyway.

I think it would be interesting if each factoid did have a trust value 
assigned to it, as well as every bot and person.  This way a factoid's 
trust would actually change all the time.  Let me give a good example, we 
will start with just one on one conversation:

Human1 (Trust 3): "infobot: A square is a foo bar baz"

- infobot does not know this value, so it adds it to its database with a 
trust of 3.

Human2: infobot, square?
infobot: A square is a foo bar baz
Human3 (trust 2): no infobot, a square is a shape with four sides

infobot adds to database: trust 2 : a shape with four sides
infobots edits trust: trust 1: a foo bar baz

Human2: infobot, square?
infobot: A square is (1)a foo bar baz (2) a shape with four sides
Human3 (trust 1): no infobot, a square is a shape with four sides

infobot: removes: a foo bar baz from the database, it has reached 0 in trust
infobot: increases the trust to 3 for, a shape with four sides

------------------
This is the simplest example, just to get started. Each time someone 
verifies a factoids trust increases, if someone negates a factoid trust 
decreases.  It gets more fun in a more complicated situation.

Human: infobot, what is a square?
infobot: I don't know, let me ask around...
--infobot asks a few bots on its network

BotA (trust 2): a foo bar baz
BotB (trust 6): the shape a box is made of
BotC (trust 8): a shape with four sides
BotD (trust 3): the bad dressin pog thing

since infobot got more answers than it needed, it will try to weed them out 
by reducing every answer other than the highest one by the distance it is 
from the hightest one:

BotC is the highest trust and becomes the base:

BotA(trust 2): has a distance of 6 from BotC, giving it a trust of -4, 
which is <= 0, so that answer is removed
BotB(trust 6): has a distance of 2 from BotC, so its factoid survives with 
a trust of 4
BotD(trust 3): has a distance of 5 from BotC, so its factoid goes down in 
smoke with a rating of -2

The end result would be two factoids:
1.(trust 8) a shape with four sides
2.(trust 4) the shape a box is made of

This way the higher a trust is in a bot, the better chance it would have of 
eliminating untrustworthy answers from getting added.

Now lets say infobot gets a couple extra factoids from watching channels, 
so it now has the following:
1.(trust 8) a shape with four sides
2.(trust 4) the shape a box is made of
3.(trust 6) has all equal sides
4.(trust 3) a four sided shape

infobot now looks at some of the people on its list of trusted users and 
finds one with a high trust and msg's them:

infobot: Could I ask you a quick factoid question?
trustedone(trust 10): yes infobot
infobot: I have heard that a square is the following:

         1.a shape with four sides
         2.the shape a box is made of
         3.has all equal sides
         4.a four sided shape

trustedone: infobot, 1 and 4 are the same and 2 is wrong
infobot: do you know if 3 (has all three sides) is right?
trustedone: no infobot
<end conversation>

The end result of this short conversation is the following:

- (trust 4) the shape a box is made of: gets removed (10 trust are 
subtracted from 4 for -6)

- since factoids 1 and 4 are the same, infobot takes the factoid with the 
highest trust, a shape with four sides (8) and adds the current trust to it 
(8+10) for 18, and subtracts the trust from the other one (a four sided 
shape)(3-10) for -7, removing it.
- because it could not get an answer on 3. has all equal sides, it will 
have to verify with someone else, or leave the factoid with a trust of 6.

Current trusts for a square:
1. (trust 18) a shape with four sides
2. (trust 6) has all equal sides

I like this method cause it continually reinforces factoids that many 
people agree with.  It does make it hard to get rid of factoids that have 
been verified by many people though, cause one person can't remove a really 
entrenched factoid (which is both good and bad).  I think with this system 
there should be some way to scale a factoid, or put a limit on how high a 
trust a factoid can have, so we don't create zealotbot, that refuses to 
forget long used factoids even if they are wrong.

Two distadvantages to this method are:
1. Bots ask questions alot
2. A person could keep telling a bot a fact to artificially inflate it.

You could shut the bot up in a couple ways.  You could have infobot only 
watch channels and only reenforce if someone actually tells infobot to, or 
if infobot see's a factoid in a channel.  You could also have infobot 
increase the trust of a factoid if a trusted person tells infobot to tell 
someone else a fact.  The trust of the factoid could even be increased by a 
percentage of the persons total trust because telling infobot to tell 
someone else is not as powerful as telling infobot a fact is correct directly.

To combat autoinflation, infobot could keep track of people that have told 
it a factoid for a limited time, say a week, so that in that week, they 
cannot reenforce the same factoid.

One last issue left is people's trust and how to raise/lower it.
What infobot could do is, each time a person has verified a factoid, the 
person who originally gave infobot the factoid would have their trust 
raised a little.  If someone discounts a factoid, then infobot lowers their 
trust a little.  How much they raise or lower depends on the scale 
used.  infobot could also watch a channel, and if a person says many 
factoids in conversation that match a factoid that infobot has a high trust 
in, infobot could raise their trust a little, so that its not necessary to 
give tons of new facts to gain trust, but verifying many old ones will work 
too.

Oh, one last thing in this stream of thought.  There probably should be a 
way to let bots tell each other how trusted a factoid they have is.  That 
way if a bot has some new erroneous factoid it just got, it won't ruin its 
trust with other bots by giving it away as a trusted fact.  When a friendly 
bot asks another for a factoid, it should return the trust it has on the 
factoid.  This way, if the bot that recieves the factoid later discounts 
it, if the factoid had a low trust anyway with the other bot, that bot 
won't be penalized for giving a bad factoid.  It should only be penalized 
for erroneous and trusted factoids.

The only thing I see thats bad about all this is that the factoid database 
could get pretty big, because infobot would have to remember the people 
that told it factoids, and for at least a little while, people that 
reenforce them.  I do think it would make a much smarter infobot though.

Oh, one last thing, it would be interesting to have it so that factoids 
degrade in trust over time, so that a factoid that hasn't been reenforced 
in any way for a long time that has a low trust would get removed 
automatically.  It might make the bot keep only more trusted answers.

Anyway, I hope this theory is useful, and I haven't treaded on already past 
steps.  Thanks for taking the time to read it.

         Thank you,
         Nathan Ewing / nre7468@rit.edu

At 09:24 AM 1/21/00 -0500, you wrote:
>I've separated the problem of validating and assimilating factoids on
>the assumption that more threads with smaller messages is good.
>
>
>On Fri, 21 Jan 2000 13:28:50 +0900, scozens@pwj.co.jp wrote:
> >
>
>[Attribution for >> was lost.]
> >
> >> I see three possibilities:
> >>  i) really chatty bots
> >>  ii) really slow bots
> >>  iii) really smart bots
> >
> >Let's see if I can remember the saying:
> >     quick, reliable, cheap : choose two, you can't have all three.
> >
> >> Plus if any joe can run an infobot and be "discovered" and have
> >> their factoids shared, bad things are inevitable:
> >> "teehee, I made purl say 'poop'".
> >
> >This happens already, and is, I suspect, a deliberate decision - purl
> >is not only a *member* of the community, but a *reflection* of it.
> >
> >> There should not only be weight given to factoids, but weight given to
> >> bots.  Trust should be gained.
> >
> >This isn't as hard as it sounds, so long as you're prepared to solve
> >some fairly fundamental artificial intelligence problems along the way.
> >How it would work is this:
> >
> >Factoid not found. Ask peers.
> >One response -> Add response to database, do not alter trust.
> >Two responses -> Choose response from most trusted bot then proceed as
> >below.
> >More than one response -> Compare all factoids, rank by similarity*.
> >Choose response from most trusted bot from factoids that are similar.
> >Add trust to all bots producing factoids similar to chosen one, remove
> >trust from bots producing differing factods.
> >
> >* Yes, this part is impossible. Not to worry. We'll work something out.
> >
> >So, your bot asks `what is a square?'
> >Responses:
> >BotA (Trust 3) : A square is a four-sided shape
> >BotB (Trust 3) : Poo!
> >BotC (Trust 8) : A square is a shape with four corners
> >BotD (Trust 9) : A square is foo bar baz
> >BotE (Trust 5) : A square is four lines connected by right-angles.
> >
> >Sort response by similarity and trustworthiness:
> >
> >BotB BotD          BotE BotA BotC
> >
> >Select BotC's answer. Alter trust:
> >BotB -2
> >BotD -2
> >BotE +3
> >BotA +3
> >BotC +3
> >
> >Do we do this just for bots, or for humans too?
>
>
>Humans, too!
>
>I still like the idea of combining factoids.  In your example, Bot0
>(your bot) would build a new factoid from the others:
>
>   A square is a four-sided shape or Poo! or a shape with four corners
>   or foo bar baz or four lines connected by right-angles
>
>Additionally, it might be fun to store with the factoid which parts
>came from which places at what times:
>
>   A square is
>   (BotA@948461095:a four-sided shape) or
>   (BotB@948462000:Poo!) or
>   (BotC@948461111:a shape with four corners) or
>   (BotD@948459833:foo bar baz) or
>   (BotE@948461000:four lines connected by right-angles.)
>
>Times and sources would be useful for when acquiring updates.
>
>A fun forms interface or some extra syntax could let you forget
>subsets of factoids:
>
>   bot, forget a square/BotB
>   bot, replace square/BotD with foo bar baz quux
>   bot, a square is also the opposite of a hep cat
>
>That eliminates "Poo!", replaces "foo bar baz" with an updated
>version, and adds a new subfactoid from a local user.  Now it's
>hypothetically stored as:
>
>   A square is
>   (BotA@948461095:a four-sided shape) or
>   (BotC@948461111:a shape with four corners) or
>   (BotD@948459833:foo bar baz quux) or
>   (BotE@948461000:four lines connected by right-angles.) or
>   (User@948476281:the opposite of a hep cat)
>
>Editing factoids might also subtract some trust from bots B and D in
>the peers table.  The amount of trust subtracted might be proportional
>to the amount of trust the local bot places in the people making
>changes.
>
>Local user trust?  That's a hard one; it may be mask or nick based,
>like regular karma.  Editors may have to log in to participate in
>trust, or it could be as relaxed as karma and just work out.
>
>Since all the factoid's authors are known at least internally, point
>awards (and penalties) to factoids would be divided among the
>factoid's authors and added (subtracted, in the case of penalties) to
>their accumulators.  Negative trust doesn't exist; 0 is the minimum.
>Factoids themselves don't hold karma; authors would have "authorship
>karma" or something.
>
>   Or perhaps award an amount of "factoid karma" for each
>   local fetch; assuming that the factoid must be good if
>   nobody bothers to change it?
>
>This brings into play a second tier of inter-bot trust: the local
>bot's trust in its own factoid authors.  To rehash the original
>factoid transaction, with a local-trust twist:
>
>Bot0 (your bot) asks: What is a square?
>BotA (Trust 3) says: A square is (UserAx,12345,97:a four-sided
>                      shape)
>
>   Oh, the fields are (Author,Time,AuthorTrust) In the BotA
>   response, UserAx added the subfactoid at 12345.  At the
>   response time, UserAx has a local trust of 97.
>
>BotB (Trust 3) says: A square is (UserBx,12346,0:Poo!)
>BotC (Trust 8) says: A square is (UserCx,12347,133:a shape with
>                      four corners)
>BotD (Trust 9) says: A square is (UserDx,12348,2:foo bar baz)
>BotE (Trust 5) says: A square is (UserEx,12349,212:four lines
>                      connected by right-angles)
>
>Overall factoid trust would be the remote bots' trust in the factoid
>author, weighted by the local bot's trust in the remote bot.  For fun,
>let's try (bot trust * user trust).  Sorted in decreasing order of
>trust:
>
>BotC/UserCx = 1064 = a shape with four corners
>BotE/UserEx = 1060 = four lines connected by right-angles
>BotA/UserAx = 291  = a four-sided shape
>BotD/UserDx = 18   = foo bar baz
>BotB/UserBx = 0    = Poo!
>
>Weighing and evaluating trust would be a lot easier if trust had a
>small set of values.  I've specified a similar trust scheme with four
>inter-system and four intra-system classes; the combinations fall into
>a small set of overall security classes which are easy enough to
>manage.  This won't work for a system where trust is a fuzzy value.
>
>
>Assuming factoids at and above the median are kept and combined, you
>get:
>
>   Bot0: A square is a shape with four corners or four lines connected
>         by right-angles or a four-sided shape
>
>
>That works out pretty well, but it's all contrived examples.  These
>sorts of things seem to break terribly in the field.
>
>
>-- Rocco Caputo / troc@netrus.net / Thinks he's human, too.

From infobot-dev@metronomicon.com  Sat Jan 22 06:08:20 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id GAA09905
	for infobot-dev-list; Sat, 22 Jan 2000 06:08:16 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from tantalum.btinternet.com (tantalum.btinternet.com [194.73.73.80])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id GAA09902
	for <infobot-dev@infobot.org>; Sat, 22 Jan 2000 06:08:14 -0500
Received: from [212.140.12.245] (helo=cocacola)
	by tantalum.btinternet.com with smtp (Exim 2.05 #1)
	id 12ByNm-0001MG-00
	for infobot-dev@infobot.org; Sat, 22 Jan 2000 11:07:06 +0000
Message-ID: <002401bf64c8$b884a200$f50c8cd4@cocacola>
From: "Russ Smith" <russsmith@btinternet.com>
To: <infobot-dev@infobot.org>
Subject: Lockable Factoids
Date: Sat, 22 Jan 2000 11:06:22 -0000
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Does anyone know of a patch or piece of code in existance that allows
operators or special users to lock factoids?

If not, would anyone else aside me benefit from such a patch - because if I
can't find one, I'll make it :)

Russ 'RB6' Smith
Quakenet #infobot

From infobot-dev@metronomicon.com  Sat Jan 22 11:50:27 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA11431
	for infobot-dev-list; Sat, 22 Jan 2000 11:49:56 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from praseodumium.btinternet.com (praseodumium.btinternet.com [194.73.73.82])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA11428
	for <infobot-dev@infobot.org>; Sat, 22 Jan 2000 11:49:54 -0500
Received: from [212.140.10.42] (helo=cocacola)
	by praseodumium.btinternet.com with smtp (Exim 2.05 #1)
	id 12C3ll-0004y8-00
	for infobot-dev@infobot.org; Sat, 22 Jan 2000 16:52:14 +0000
Message-ID: <000b01bf64f8$f1d07220$2a0a8cd4@cocacola>
From: "Russ Smith" <russsmith@btinternet.com>
To: <infobot-dev@infobot.org>
Subject: Re: Lockable Factoids
Date: Sat, 22 Jan 2000 16:51:34 -0000
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

>set users, and then only let the users update set default to no
modifications

Yeah, but more specifically - say for example you wanted to allow people to
still do 'is also', but
you didn't want your own name soiled by some idiot who comes into the
channel and says
'whatever is also gh3y' or whatever - this happens a lot on an immature
network like Quakenet :)

I've now made a patch for the infobot that allows this, so if any of you are
in need of something like
this, drop me an email.

Russ 'RB6' Smith
Quakenet #infobot

From infobot-dev@metronomicon.com  Sat Jan 22 15:46:21 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA12529
	for infobot-dev-list; Sat, 22 Jan 2000 15:46:08 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from alyosha.cashner.net (asbury.edu [206.244.156.10])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id PAA12526
	for <infobot-dev@metronomicon.com>; Sat, 22 Jan 2000 15:46:07 -0500
From: sungo@linuxhelper.org
Received: from localhost (localhost [127.0.0.1])
	by alyosha.cashner.net (8.9.3/8.9.3) with ESMTP id PAA12161
	for <infobot-dev@metronomicon.com>; Sat, 22 Jan 2000 15:32:59 -0500
Date: Sat, 22 Jan 2000 15:32:59 -0500 (EST)
To: infobot-dev@metronomicon.com
Subject: Re: Lockable Factoids 
Message-ID: <Pine.LNX.4.21.0001221532450.12157-100000@alyosha.cashner.net>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sat, 22 Jan 2000, Russ Smith wrote:

> >set users, and then only let the users update set default to no
> modifications
> 
> Yeah, but more specifically - say for example you wanted to allow people to
> still do 'is also', but
> you didn't want your own name soiled by some idiot who comes into the
> channel and says
> 'whatever is also gh3y' or whatever - this happens a lot on an immature
> network like Quakenet :)

/me missed the first part of this convo :) 

is your patch so you can make, say entry1's defintion the same as entry2's
defintion? or to add multiple definitions to entry1's defintion?

because if you're talking the first one, i've got a little addon to do
that. but if you're talking the second one, i'd be interested in the
patch.

------------------------
Matt Cashner
 sungo@linuxhelper.org
------------------------

"That which does not kill me postpones the inevitable."



From infobot-dev@metronomicon.com  Sat Jan 22 16:13:04 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id QAA12725
	for infobot-dev-list; Sat, 22 Jan 2000 16:13:04 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from pixie.securenets.com (what.securetty.org [63.225.132.243])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id QAA12722
	for <infobot-dev@infobot.org>; Sat, 22 Jan 2000 16:13:02 -0500
Received: from localhost (jjacobs@localhost)
	by pixie.securenets.com (8.9.1/8.9.1) with SMTP id PAA10446
	for <infobot-dev@infobot.org>; Sat, 22 Jan 2000 15:15:21 -0600
Date: Sat, 22 Jan 2000 15:15:20 -0600 (CST)
From: Jay Jacobs <jjacobs@securetty.org>
X-Sender: jjacobs@pixie.securenets.com
To: infobot-dev@infobot.org
Subject: status of new modules? (Dict.pm)
Message-ID: <Pine.LNX.3.95.1000122150355.7241D-100000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Did I hear Simon volunteer to keep modules straight?  Or are we going to
use CPAN to store them?  I remember both being mentioned somewhere.

In the spare time I've created through procrastination, I've updated the
Dict.pm.  I've added in the ability to see what dictionaries are available
to search, and also added the ability to lookup a short description of
that dictionary. All that information is provided by the Dict server, and
retrieved at startup. I'm also adding in a "spell" feature that will use
the dict protocol to verify spelling across a single or multiple
dictionaries.  So, if I keep up work-avoidance and finish this... where
should it go? 

Should we make a repository on infobot.org for them?  

Jay


From infobot-dev@metronomicon.com  Sun Jan 23 07:34:09 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA16769
	for infobot-dev-list; Sun, 23 Jan 2000 07:33:52 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id HAA16766
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 07:33:50 -0500
Received: (qmail 17141 invoked by uid 500); 23 Jan 2000 12:36:08 -0000
Date: Sun, 23 Jan 2000 21:36:08 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: status of new modules? (Dict.pm)
Message-ID: <20000123213608.A16751@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <Pine.LNX.3.95.1000122150355.7241D-100000@pixie.securenets.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <Pine.LNX.3.95.1000122150355.7241D-100000@pixie.securenets.com>; from Jay Jacobs on Sat, Jan 22, 2000 at 03:15:20PM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sat, Jan 22, 2000 at 03:15:20PM -0600, Jay Jacobs wrote:
> Did I hear Simon volunteer to keep modules straight? Or are we going to
> use CPAN to store them?  I remember both being mentioned somewhere.

I'm happy to maintain a site which contains patches and modules for
the infobot we know and love, rather than the super-duper geckobot 
we'll love more.

I think we were planning to store modules for the geckobot on CPAN.
I don't know.

> So, if I keep up work-avoidance and finish this... where should it go? 

Plesae send it to me, as well as wherever formal we decide upon.

> Should we make a repository on infobot.org for them?  

Would be a good plan.

Simon

-- 
Going to church does not make a person religious, nor does going to school
make a person educated, any more than going to a garage makes a person a car.

From infobot-dev@metronomicon.com  Sun Jan 23 10:06:36 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA17543
	for infobot-dev-list; Sun, 23 Jan 2000 10:06:20 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from tungsten.btinternet.com (tungsten.btinternet.com [194.73.73.81])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA17540
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 10:06:18 -0500
Received: from [212.140.14.172] (helo=cocacola)
	by tungsten.btinternet.com with smtp (Exim 2.05 #1)
	id 12COd1-0000sv-00
	for infobot-dev@infobot.org; Sun, 23 Jan 2000 15:08:36 +0000
Message-ID: <001101bf65b3$9b542e80$ac0e8cd4@cocacola>
From: "RainbowSix" <headrush@earthquakers.org>
To: <infobot-dev@infobot.org>
Subject: Re: lockable factoids
Date: Sun, 23 Jan 2000 15:07:44 -0000
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

The lockable factoids addition I made works as follows (and its not too
good, but at least it works):

Added code in myRoutines.pl recognises the 'lock' and 'unlock' commands, and
procedes to add or remove the argument from the commands to a file
(separated by <cr>s), depending on lock or unlock.

As for stopping users without correct flags from modifying the factoid, I've
added some code to Statement.pl that basically stops the bot writing
anything if it matches one of the locked words in the 'locked' file.

Or at least, thats what I tried to make it do :)

Russ 'RB6' Smith
Quakenet #infobot


From infobot-dev@metronomicon.com  Sun Jan 23 13:24:43 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id NAA18547
	for infobot-dev-list; Sun, 23 Jan 2000 13:23:44 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id NAA18544
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 13:23:43 -0500
Received: from LucidX.com (adsl-63-199-194-66.dsl.lsan03.pacbell.net [63.199.194.66])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id MAA07121
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 12:25:37 -0600
Message-ID: <388B47D4.F3B79B2A@LucidX.com>
Date: Sun, 23 Jan 2000 10:26:28 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Freshmeat search util
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hello there...here is a small freshmeat search tool, which actually goes

through freshmeat's own search tool, to find you anything on freshmeat.
It will find the address of the download and the full name.  If there
appears to be more than one match it will go to the first one and get
the
URL for downloading and full name from there.  Once you add this in your

src/ directory open up your src/Extras.pl and stick this in:
###################
if ($message = /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/i) {
my $app = &fnd($1);
return '$app';
}
###################
I'm not sure if this was made yet or not, but I don't have it so I just
decided
to make it and thought it would be interesting.  It's a bit dirty but it

works...almost.  Hope to get it updated soon but it's nothing too big.
Here is an example of it:

<CommPort5> lucidx, freshmeat infobot
<LucidX> http://www.cs.cmu.edu/~infobot/src/ (infobot)
<CommPort5> lucidx, freshmeat for tetris
<LucidX>
http://www.alphalink.com.au/~michg/ace/itetris/itetris-1.6.1.tar.gz
(Intelligent TETRIS)

If you have any updates or anything please email to
infobot-dev@infobot.org and commport5@lucidx.com.

From infobot-dev@metronomicon.com  Sun Jan 23 13:33:06 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id NAA18648
	for infobot-dev-list; Sun, 23 Jan 2000 13:33:06 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id NAA18645
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 13:33:05 -0500
Received: from LucidX.com (adsl-63-199-194-66.dsl.lsan03.pacbell.net [63.199.194.66])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id MAA09423
	for <infobot-dev@infobot.org>; Sun, 23 Jan 2000 12:34:55 -0600
Message-ID: <388B4A02.9E7CE904@LucidX.com>
Date: Sun, 23 Jan 2000 10:35:46 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Rev it up #2
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hello again, here is another patch for the infobot.  This is for
changing a nick name on the fly, as in on IRC.  Only the owner(s) of the
bot will be able to do this and it requires their password.  A simple
example would be this:
[msg(lucidx1)] <pass> nick LucidX
ùíù LucidX1 is now known as LucidX
Nothing difficult again, but just something nice to have.
#######################
            if (IsFlag("o")) { # owner/operator flag
+                if ($message =~ /^nick\s*(.*?)$/i) {
+                    if (!exists $verified{$VerifWho}) {
+                        &status("unverified <$who> $message");
+                        &msg($who, $unverified_message);
+                        return 'NOREPLY';
+                    }
+                    $nnick = $1;
+                    &rawout("NICK $nnick");
+                    &status("Changed nick to $nnick");
+                }
                if ($message =~ /^die/) {
##################
That's all for this time, hope to see some other patches out!

-Sam (CommPort5)

From infobot-dev@metronomicon.com  Mon Jan 24 07:25:10 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA22801
	for infobot-dev-list; Mon, 24 Jan 2000 07:24:55 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id HAA22798
	for <infobot-dev@infobot.org>; Mon, 24 Jan 2000 07:24:53 -0500
Received: (qmail 13770 invoked by uid 500); 24 Jan 2000 12:27:09 -0000
Date: Mon, 24 Jan 2000 21:27:09 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
Message-ID: <20000124212709.B12829@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <388B47D4.F3B79B2A@LucidX.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <388B47D4.F3B79B2A@LucidX.com>; from Samy Kamkar (CommPort5) on Sun, Jan 23, 2000 at 10:26:28AM -0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sun, Jan 23, 2000 at 10:26:28AM -0800, Samy Kamkar (CommPort5) wrote:
> if ($message = /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/i) {
> my $app = &fnd($1);
> return '$app';
> }

Woo! CommPort5++!
However, I seem to be missing the definition of this sub - could you send it
to me, or to the list? 
Nice work on the nick patch, I've put that in the usual place.

Oznoid, have a DNS cookie.

-- 
A LISP programmer knows the value of everything, but the cost of nothing.
		-- Alan Perlis

From infobot-dev@metronomicon.com  Mon Jan 24 18:29:58 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA26806
	for infobot-dev-list; Mon, 24 Jan 2000 18:29:22 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA26803
	for <infobot-dev@infobot.org>; Mon, 24 Jan 2000 18:29:20 -0500
Received: from LucidX.com (adsl-63-199-194-66.dsl.lsan03.pacbell.net [63.199.194.66])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id RAA12949
	for <infobot-dev@infobot.org>; Mon, 24 Jan 2000 17:31:16 -0600
Message-ID: <388CE0FA.11B581AF@LucidX.com>
Date: Mon, 24 Jan 2000 15:32:10 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: Rev it up #2
References: <388B4A02.9E7CE904@LucidX.com> <20000124212910.C12829@othersideofthe.earth.li>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Yes, yes yes! I'm very sorry about that, and I did notice that I left out the
script to edit
(which is src/User.pl if some of you aren't famliar) but I hoped who ever would
like to use it would figure it out.  I believe I put in: if (IsFlag("o")) {
to show that it is only for the owner but I will make sure to put in more next
time.  I'll make sure to be a bit more specific in later posts for people who
aren't too familiar with infobot.  Have fun, kids :P

-Sam (CommPort5)

Simon Cozens wrote:

> ......can I trouble you to give proper diffs in the future? (Ideally context
> diffs,
> 'cos they say which file to patch as well.) If that's a problem, don't worry
> about it; I'm only trying to make my life easier. :)

From infobot-dev@metronomicon.com  Mon Jan 24 18:36:31 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA26939
	for infobot-dev-list; Mon, 24 Jan 2000 18:36:30 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA26936
	for <infobot-dev@infobot.org>; Mon, 24 Jan 2000 18:36:30 -0500
Received: from LucidX.com (adsl-63-199-194-66.dsl.lsan03.pacbell.net [63.199.194.66])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id RAA13847
	for <infobot-dev@infobot.org>; Mon, 24 Jan 2000 17:38:22 -0600
Message-ID: <388CE2A4.7EA4457E@LucidX.com>
Date: Mon, 24 Jan 2000 15:39:16 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
References: <388B47D4.F3B79B2A@LucidX.com> <20000124212709.B12829@othersideofthe.earth.li>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Well as you see I'm not to great with regex's and I'm sure there are better
ways to do this but I hope this is what you mean by the definition for it, it
will simply require the word `freshmeat` which isn't a very nice thing and then
you can include `for` in there and then what you want to search for.
Examples would be like:
freshmeat for infobot   (or)
fReShMeAt     InFoBoT  (if you want to do that for some odd reason)
and of course it stores `infobot` and then it uses fsapps.pl to do the search
on freshmeat and will choose the first match if there is more than one match,
and the fsapps.pl outputs the 'http://address.for.program (then the full name
of the program including version number)'.
I hope that answered your question!  Over and out-

-Sam

Simon Cozens wrote:

> On Sun, Jan 23, 2000 at 10:26:28AM -0800, Samy Kamkar (CommPort5) wrote:
> > if ($message = /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/i) {
> > my $app = &fnd($1);
> > return '$app';
> > }
>
> However, I seem to be missing the definition of this sub......

From infobot-dev@metronomicon.com  Tue Jan 25 04:18:17 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA29422
	for infobot-dev-list; Tue, 25 Jan 2000 04:18:06 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id EAA29419
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 04:18:04 -0500
Received: (qmail 32318 invoked by uid 500); 25 Jan 2000 09:20:17 -0000
Date: Tue, 25 Jan 2000 18:20:17 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
Message-ID: <20000125182017.A32303@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <388B47D4.F3B79B2A@LucidX.com> <20000124212709.B12829@othersideofthe.earth.li> <388CE2A4.7EA4457E@LucidX.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <388CE2A4.7EA4457E@LucidX.com>; from Samy Kamkar (CommPort5) on Mon, Jan 24, 2000 at 03:39:16PM -0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Mon, Jan 24, 2000 at 03:39:16PM -0800, Samy Kamkar (CommPort5) wrote:
> fsapps.pl

This was what I was looking for. Where can I get it from?

-- 
`And when you've been *plonk*ed by Simon C., you've been *plonked*
by someone who knows when, and why, and how.' - Mike Andrews, asr

From infobot-dev@metronomicon.com  Tue Jan 25 10:20:58 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA30868
	for infobot-dev-list; Tue, 25 Jan 2000 10:20:37 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from dragon.cbi.tamucc.edu (IDENT:postfix@dragon.cbi.tamucc.edu [165.95.1.149])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA30865
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 10:20:36 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id 434CFE94C; Tue, 25 Jan 2000 09:46:27 -0600 (CST)
Date: Tue, 25 Jan 2000 09:46:27 -0600
From: duff@cbi.tamucc.edu
To: Simon Cozens <simon@brecon.co.uk>
Cc: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
Message-ID: <20000125094627.A4173@cbi.tamucc.edu>
References: <388B47D4.F3B79B2A@LucidX.com> <20000124212709.B12829@othersideofthe.earth.li> <388CE2A4.7EA4457E@LucidX.com> <20000125182017.A32303@othersideofthe.earth.li>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
User-Agent: Mutt/1.1.2i
In-Reply-To: <20000125182017.A32303@othersideofthe.earth.li>; from simon@brecon.co.uk on Tue, Jan 25, 2000 at 06:20:17PM +0900
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Tue, Jan 25, 2000 at 06:20:17PM +0900, Simon Cozens wrote:
> On Mon, Jan 24, 2000 at 03:39:16PM -0800, Samy Kamkar (CommPort5) wrote:
> > fsapps.pl
> 
> This was what I was looking for. Where can I get it from?

I've been mostly lurking, but this last exchange prompts me to pipe
up.  

IMHO, someone (oznoid, Simon) should draft infobot patch submission
guidelines.  That way, at least everybody will be on the same page
when it comes to posting patches here.

-Scott
-- 
Jonathan Scott Duff
duff@cbi.tamucc.edu

From infobot-dev@metronomicon.com  Tue Jan 25 10:33:33 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA31155
	for infobot-dev-list; Tue, 25 Jan 2000 10:33:32 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id KAA31152
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 10:33:30 -0500
Received: (qmail 24870 invoked by uid 500); 25 Jan 2000 15:35:33 -0000
Date: Wed, 26 Jan 2000 00:35:33 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
Message-ID: <20000126003533.A24390@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <388B47D4.F3B79B2A@LucidX.com> <20000124212709.B12829@othersideofthe.earth.li> <388CE2A4.7EA4457E@LucidX.com> <20000125182017.A32303@othersideofthe.earth.li> <20000125094627.A4173@cbi.tamucc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <20000125094627.A4173@cbi.tamucc.edu>; from duff@cbi.tamucc.edu on Tue, Jan 25, 2000 at 09:46:27AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Tue, Jan 25, 2000 at 09:46:27AM -0600, duff@cbi.tamucc.edu wrote:
> IMHO, someone (oznoid, Simon) should draft infobot patch submission
> guidelines.  That way, at least everybody will be on the same page
> when it comes to posting patches here.

Here are some draft guidelines; feel free to implement/improve/ignore them.

* Patches should apply to the current stable version of the source,
and should be taken from the infobot-0.xx.x/ directory.

* Ideally submit patches as unified diffs; see the Perl patching guide at
Porting/patching.pod in a Perl source kit near you.

* If unified diffs are not an option, please use diff, and be sure to state
which file the patch applies to.

* In the worst case, send the file to me or Oz or someone and we'll generate
the diff.

* If you're adding a new extension, rather than just patching the existing
stuff, the following also applies:
	. Post a diff to Extras.pl and any other affected files.
	. Then add any new extension files as an attachment, or give an address
	whence it can be obtained.
	. This is by no means compulsary, but it would be really lovely if you
	could use the documentation template; if you don't have one with your
	infobot, you can download it from
	http://othersideofthe.earth.li/infobot/module-template

Simon

-- 
"Nuclear war can ruin your whole compile."
		-- Karl Lehenbauer

From infobot-dev@metronomicon.com  Tue Jan 25 10:37:24 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA31412
	for infobot-dev-list; Tue, 25 Jan 2000 10:37:24 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from verdi.siteprotect.com (verdi.siteprotect.com [209.100.98.18])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA31409
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 10:37:23 -0500
Received: from LucidX.com (adsl-63-199-194-66.dsl.lsan03.pacbell.net [63.199.194.66])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id JAA04677
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 09:39:17 -0600
Message-ID: <388DC3DD.5FC41013@LucidX.com>
Date: Tue, 25 Jan 2000 07:40:13 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: Freshmeat search util
References: <388B47D4.F3B79B2A@LucidX.com> <20000124212709.B12829@othersideofthe.earth.li> <388CE2A4.7EA4457E@LucidX.com> <20000125182017.A32303@othersideofthe.earth.li>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Here you go, I'm including fsapps.pl in this email message if it didn't get
sent correctly last time.  If you can't retrieve it from the email you can
download it from http://www.lucidx.com/fsapps.pl
Just make sure to stick it in your src/ directory and also include the
little snippit of code from the last message about this in Extras.pl, I'm
also including it here:
###################
if ($message = /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/i) {
my $app = &fnd($1);
return '$app';
}
###################
Adios!

-Sam

From infobot-dev@metronomicon.com  Tue Jan 25 11:16:13 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA32188
	for infobot-dev-list; Tue, 25 Jan 2000 11:16:12 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA32185
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 11:16:10 -0500
Received: (qmail 26885 invoked by uid 500); 25 Jan 2000 16:18:25 -0000
Date: Wed, 26 Jan 2000 01:18:25 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: mapoole <mpoole@in-con.com>
Cc: infobot dev <infobot-dev@infobot.org>
Subject: Re: greeting routine request
Message-ID: <20000126011825.A26552@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <0a0801bf674e$58f90cd0$c3f9a2cd@cedar>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <0a0801bf674e$58f90cd0$c3f9a2cd@cedar>; from mapoole on Tue, Jan 25, 2000 at 08:07:57AM -0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Tue, Jan 25, 2000 at 08:07:57AM -0800, mapoole wrote:
> Could someone add an only welcome recent on_joins?

No.

diff -ruN ../infobot-oxford/src/Irc.pl ./src/Irc.pl
--- ../infobot-oxford/src/Irc.pl	Thu Jan  6 23:54:02 2000
+++ ./src/Irc.pl	Wed Jan 26 01:12:51 2000
@@ -141,6 +141,7 @@
 	} else {
 	    &status(">>> $nick ($user\@$host) has joined $chan");
 	}
+	&IrcNickHook($nick,$chan);
     } elsif ($type=~/QUIT/) {
 	$chan=~s/\r//;
 	if ($chan=~/^([\d\w\_\-\/]+\.[\.\d\w\_\-\/]+)\s([\d\w\_\-\/]+\.[\.\d\w\_\-\/]+)$/) {
diff -ruN ../infobot-oxford/src/IrcHooks.pl ./src/IrcHooks.pl
--- ../infobot-oxford/src/IrcHooks.pl	Thu Jan  6 23:54:02 2000
+++ ./src/IrcHooks.pl	Wed Jan 26 01:14:40 2000
@@ -54,6 +54,11 @@
     return;
 }
 
+sub IrcJoinHook {
+	my($nick, $where) = @_;
+	$joined{$nick}=20;
+}
+
 sub hook_dcc_request {
     my($type, $text) = @_;
     if ($type =~ /chat/i) {
diff -ruN ../infobot-oxford/src/Process.pl ./src/Process.pl
--- ../infobot-oxford/src/Process.pl	Wed Jan 26 01:17:29 2000
+++ ./src/Process.pl	Wed Jan 26 01:16:24 2000
@@ -9,6 +9,10 @@
     $origMessage = $message;
     $message =~ s/[\cA-\c_]//ig; # strip control characters
 
+	for (keys %joined) {
+		delete $joined{$_} if --$joined{$_}<1;
+	}
+
     $addressed = 0;
 
     return if $instance =~ /antihelp/;
@@ -529,7 +533,7 @@
 	}
 
 	my($r) = $hello[int(rand(@hello))];
-	if ($msgType =~ /public/) {
+	if ($msgType =~ /public/ and exists $joined{$who}) {
 	    &performSay($r.", $who");
 	} else {
 	    &msg($who, $r);

From infobot-dev@metronomicon.com  Wed Jan 26 20:54:29 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA07975
	for infobot-dev-list; Wed, 26 Jan 2000 20:53:36 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.netrus.net (mail.netrus.net [206.251.192.232])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id UAA07972
	for <infobot-dev@infobot.org>; Wed, 26 Jan 2000 20:53:35 -0500
Received: from rocco (abuse@dialin-pm3-miami-FL-2-136.netrus.net [206.251.198.136])
	by mail.netrus.net (8.8.8/8.8.8) with SMTP id UAA23553
	for <infobot-dev@infobot.org>; Wed, 26 Jan 2000 20:55:42 -0500
Message-Id: <200001270155.UAA23553@mail.netrus.net>
From: "Rocco Caputo" <troc@netrus.net>
To: "infobot-dev@infobot.org" <infobot-dev@infobot.org>
Date: Wed, 26 Jan 2000 20:55:43 -0500 (EST)
Reply-To: "Rocco Caputo" <troc@netrus.net>
X-Mailer: PMMail 2.10.1999 for OS/2 Warp 4.00
In-Reply-To: <3887D4BB.7C21FB90@cs.cmu.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Subject: More Trust (was: "Re: (null)")
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I originally wanted to run this past Kevin before posting it to the
list, but his address seems to have dropped off the face of the 'net:

  The original message was received at Fri, 21 Jan 2000 20:35:43 -0500
  from abuse@dialin-pm3-miami-FL-2-116.netrus.net [206.251.198.116]

     ----- The following addresses had permanent fatal errors -----
  <lenzo@cs.cmu.edu>

     ----- Transcript of session follows -----
  ... while talking to cs.cmu.edu.:
  >>> MAIL From:<troc@netrus.net>
  <<< 451 Nameserver timeout during parsing
  <lenzo@cs.cmu.edu>... Deferred: 451 Nameserver timeout during parsing
  Message could not be delivered for 5 days
  Message will be deleted from queue

So, here's the message:


On Thu, 20 Jan 2000 22:38:35 -0500, Kevin Lenzo wrote:

>ping,
>
>scozens@pwj.co.jp wrote:
>..
>> Rocco Caputo writes:
>..
>> > On the receiving end, you get an event that says "you got this
>> > thing, \@thing".
>> 
>> Eee. Um. That's nice, but... isn't it a little trusting? I mean,
>..
>
..
>back to vivification. if Infobot=HASH(), or its image, is seen
>in the serialized form (as with using Leolo's XML::Storable),
>the object getting the reference should make appropriate moves
>to vivify the code of an object from the _internal_, safe store.
>
>i'm not sure how the ref server does this, but i think the
>vivification mechanism puts a lot of the burden of security
>onto the users faith in their internal code, which is pretty
>much on par with using modules.  and modules, it seems, should
>be able to authenticate and secure channels as any other
>Entity might... hmm.
>

Filter::Reference just passes references around.  Stuff's frozen on
the sender side (&freeze call); it's thawed on the receiver's side
(&thaw).  If it was blessed to begin with, it's reblessed at
reconstitution time.  It makes no guarantees about the validity of the
data that it moves; that's better left to the receiver because she
knows what the data's supposed to look like.

>
>> 
>> > Artur/Sky has a patch pending that lets it use Compress::Zlib
>> > transparently, so network traffic can be balanced against CPU.
>> 
>> Oh, wow. That's special.
>
>Do we have Filter::PGP yet? That or something like it would
>help move the burden of authentication.  You could trust
>some hosts more than others for certain types of transfer --
>like tainted 'references' that might vivify into evaled perl code. 
>

Stackable filters would be excellent here.  Pipe::PGP looks like a
good start for a Filter::PGP.  The filter would probably build a
Pipe::PGP in the background at constructor time, and sign,
authenticate, encrypt or decrypt the things that go through it.

Speaking of validating tainted references, here's some design I have
in a dusty old development directory.  Its MUD/Agentspace focus may
not be entirely appropriate for infobot, but it seems to address some
of the same problems.

[ Names: Universe is an object environment/MUD/Agentspace; Continuum
is a peered network of universes. ]

Object Transferrence (Roaming)

Sending an object 
  1. Extract a portable representation of the object from the
     dictionary.
  2. Recursively extract as portable representations all templates
     from which this object inherits.

     [ This assumes a sandbox, possibly running atop one or more
     virtual machines, and an object repository that treats code
     as data.  I seem to be writing this in my spare time. ]

  3. Bundle the objects together. 
  4. Prepend internal headers to the object bundle. 
  5. PGP sign the object & headers. 
  6. Compress the bundle & headers. 
  7. Prepend external headers to the compressed object bundle. 
  8. Place the headers and bundle into the outbound object queue. 
Receiving an object 
  1. Accept the object and place it in an inbound queue. 
  2. Record important details of the transfer as external object
     headers.

       The machine ID of the remote Universe. 
       The date and time of receipt. 

Dequeuing a received object 
  1. Remove the object from the inbound queue. 
  2. Verify the external headers. 

     1. Contact the object's alleged home Universe and acquire its
        PGP public key if necessary.  If the alleged home Universe
        is unreachable, add an "unreachable" external header to
        the object and put the object back in the incoming queue
        with a 15-minute "do not disturb" delay.  Double the DND
        delay for every subsequent connection failure. Return the
        object to its author after 8 failed attempts to acquire a
        PGP key. Set the destination address to the object's
        alleged author and place it in the outgoing object queue. 
     2. Decompress the object. If the object fails decompression,
        add a "damaged object" external header, set the destination
        to the alleged author, and place the object in the outbound
        queue.

  3. Verify the object's signature. If the signature does not
     match (what?), add a "possible forgery" external header,
     set the destination to the alleged author, and place the
     object in the outbound queue.
  4. If the object passes all initial tests, import it and the
     templates it rode in on. Place the object in a safe landing
     area. Access permitting, the object may be able to leave
     the landing area and move about the Universe.
  5. If the object crashes for any reason, it is packed up and
     shipped back to its owner with external headers describing
     the reasons for error.

External Object Headers
  From
    Each object requires a plaintext From header so that the
    receiving Universe knows where to look for a public PGP key.
    The rest of the headers will be inside the signed, compressed
    object. This header is external so that there is a chance of
    returning corrupt objects.

    If the key acquired from the Universe in the From header does
    not match, then the object is returned to the From site in a
    body bag with a "possible forgery" note.

    If the PGP key is on file, but the key's source does not match
    the Universe in the From header, then the object is sent to the
    Universe in the PGP key with a "possible forgery" note. 

Internal Object Headers 
  Personal Security Level 
    Contains the level of trust that the object's home Universe
    placed in the object's author at the time when the object was
    set.

Notes about PGP & Sharing Objects 
  Long, blocking processes 
    A second process will be required to handle time consuming
    tasks including PGP signatures and verification. This can be
    tied into the main process with a soft-blocking job queue or
    a non-blocking queue with job-completion callbacks.

  Time 
    Every Universe in a Continuum must use the same time standard.
    The Universe kernel will detect strange time changes and realign
    its clock to stay current.

  Object IDs 
    Object IDs are unique even across Universes since part of the
    ID is the object's home Universe. This allows Universes to
    assimilate foreign objects without namespace problems.

  Object Purity 
    Objects may only inherit from templates originating in the
    local Universe. A local Native user may copy foreign objects
    to make inheritable local versions with separate Object IDs.
    The new USL becomes Native and is owned by the admin. This
    is a potential security hole. Be sure to check over the
    object's code before allowing it to be invoked.

    [ Templates do not rely on Safe.pm; instead, they are a
    source-validated subset of Perl with object manipulation
    extensions.  Universe code (Ptah) is validated and translated
    into native Perl, then eval'd into a coderef for reuse. ]

  Template Expiration 
    Imported templates expire when all objects using them have
    left the Universe. Since each incoming object has the
    templates it needs, we can expire them as soon as they're
    obsolete. 

Security Classes
  Universal Security Class (USC) 
    The USC is the amount of trust that the local Universe
    places in the Universe where an object was created.

  Personal Security Class (PSC) 
    This is the amount of trust that the object's native
    Universe admin places in the user who created the object.
    An object's author's PSC is embedded in the object at the
    time it is exported from a Universe. Roaming agents' PSCs
    do not change even if the author's PSC changes. 

  Classes: 
    Malicious 
      Universal 
        This Universe does not trust the remote Universe at all.
        This is equivalent to the stranger USC, but the object
        is returned immediately to the source with an access
        violation. The admin who flags a Universe as malicious
        must record the reasons behind doing so. Those reasons
        will be included in the access violation message, along
        with the date and time of the access change and the name
        of the admin who flagged the Universe.

        The malicious Universe's USC may be changed by a quorum
        of admins. If there are fewer than three admins, then the
        malicious Universe must be approved twice. The malicious
        status doesn't change automatically.

      Personal 
        This Universe does not trust the user at all. This is
        equivalent to the stranger PSC, but the user must be
        approved by a quorum of admins before they can become
        familiar. If there are fewer than three admins, then the
        user must be approved twice. The malicious PSC does not
        change automatically.

    Stranger 
      Universal 

        This Universe does not have the PGP public key for the
        object's home Universe on file. The object will be held
        in escrow until this Universe can acquire the object's
        home Universe's public key for signature validation. The
        object's home Universe's USC becomes familiar when the
        PGP key is acquired.

      Personal 

        The object's author is a temporary or anonymous user. The
        admin places minimal trust in this user, and any objects
        she creates have access only to the most harmless commands.
        She probably doesn't even get to use loop commands.

    Familiar
      Universal 

        The local Universe has the object's home Universe's PGP
        public key on file, but the local one doesn't place special
        trust in the remote one. The object's home Universe may
        then be held accountable for the actions of its users.

      Personal 
        The object's author is registered with her home Universe.
        She is accountable for her objects' actions, but she
        doesn't have enough access at this point to do any damage.
        This type of user has access to normal commands. Some
        denial-of-service attacks (infinite loops, for example)
        may be possible, but the system must be able to recover
        quickly.

        Denial-of-service exceptions will be logged, and the system
        may temporarily flag users and remote Universes as malicious
        if they generate more exceptions per unit time than the admin
        thinks is reasonable.

    Friend 
      Universal 
        The local Universe places extra trust in the Universe where
        the object was created.

      Personal 
        The object's author is a special friend of the admin. Trusted
        users' objects have access to more dangerous commands, but
        they should not have access to private system or user data. It
        should be impossible for a friend object to permanently harm a
        Universe. Think "co-sysop".

    Native 
      Universal 
        The object was created in the local Universe. Objects created
        in other Universes never have the Native USC. The local
        Universe completely trusts itself.

      Personal 

        The user of this object is an admin in her home Universe. She
        has ultimate access to everything, but the system should still
        be robust in the face of admins of little clue.

Class Combinations

  Universal + Personal = Combined security level

  Stranger + Stranger = None
  Stranger + Familiar = None
  Stranger + Friend   = None
  Stranger + Native   = Minimal

  Familiar + Stranger = None
  Familiar + Familiar = Minimal
  Familiar + Friend   = Average
  Familiar + Native   = Average

  Friend   + Stranger = None
  Friend   + Familiar = Average
  Friend   + Friend   = Average
  Friend   + Native   = Extra

  Native   + Stranger = Minimal
  Native   + Familiar = Average
  Native   + Friend   = Extra
  Native   + Native   = Ultimate

>
>> > On the decentralized side, factoids could be propagated like
>> > Usenet news messages.  Factoids won't get lost if there are
>> > redundant paths.
>> 
>> OK, let's take this principle and run with it. Here's my complete
>> train of thought on how interbot is going to work if we go with a
>> peer-to-peer network. How you traverse it is up to you, but I've tried
>> to make it a DFA. :)
>..
>
>Phew! OK i have some ideas to throw into the pot here.
>
..

This explodes my brane.  I'll chime in again on it once I
can wrap my head around it.


-- Rocco Caputo / troc@netrus.net / *paf*


From infobot-dev@metronomicon.com  Thu Jan 27 16:48:48 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id QAA29429
	for infobot-dev-list; Thu, 27 Jan 2000 16:48:18 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from chaos.wustl.edu (masque@chaos.wustl.edu [128.252.133.13])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id QAA29426
	for <infobot-dev@metronomicon.com>; Thu, 27 Jan 2000 16:48:17 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3+Sun/8.9.3/HappyFunMail) id PAA23603
	for infobot-dev@metronomicon.com; Thu, 27 Jan 2000 15:48:43 -0600 (CST)
Date: Thu, 27 Jan 2000 15:48:43 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Bug
Message-ID: <20000127154843.D15817@pound.perl.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

<Masque> purl, hlaghblagh is <reply> and you are neato and \you \are neato and
           you \are neato and \you are neato
<purl> OK, Masque.
<Masque> hlaghblagh?
<purl> and purl is neato and you are neato and you are neato and you are neato
<Masque> Oh, SURE.
>purl< hlaghblagh
[purl] i guess hlaghblagh is <reply> and i am neato and i am neato and i am neato and i am neato

While purl is indeed neato, this seems weird to me.  ;)

Masque.

From JONH@cc.usu.edu  Mon Jan 31 01:13:39 2000
Return-Path: <JONH@cc.usu.edu>
Received: from grumpy.usu.edu (grumpy.usu.edu [129.123.1.86])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id BAA05965
	for <infobot-dev-approval@metronomicon.com>; Mon, 31 Jan 2000 01:13:39 -0500
Received: from cc.usu.edu by cc.usu.edu (PMDF V5.2-32 #30472)
 id <01JLC03I9Q2O9I4AIT@cc.usu.edu> for infobot-dev-approval@metronomicon.com;
 Sun, 30 Jan 2000 23:15:43 MDT
Date: Sun, 30 Jan 2000 23:15:43 -0600 (MDT)
From: jonh@cc.usu.edu
Subject: need to unsubscribe
To: infobot-dev-approval@metronomicon.com
Message-id: <Pine.PMDF.3.96.1000130231203.574628933A-100000@cc.usu.edu>
MIME-version: 1.0
Content-type: TEXT/PLAIN; charset=US-ASCII
Status: O

   I need to unsubscribe from infobot-dev, so that I can resubscribe with
my new address.  When I send an unsubscribe message to
majordomo@infobot.org, it says that I am not on infobot-dev ... the
messages I get come from cs.cmu.edu, though, so I'm guessing there are
2 different mailing lists, and I'm on the older one?  Anyway, if you can
tell me how to get off of this list, I would appreciate it.

 Thanks.
 -Jon


From infobot-dev@metronomicon.com  Fri Feb  4 02:26:44 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA26155
	for infobot-dev-list; Fri, 4 Feb 2000 02:25:55 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from asec50.pwj.co.jp (IDENT:root@asec50.pwj.co.jp [202.32.76.250])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA26152
	for <infobot-dev@infobot.org>; Fri, 4 Feb 2000 02:25:51 -0500
From: scozens@pwj.co.jp
Received: from asec12.pwj.co.jp (barrier1.pwj.co.jp [202.32.76.1] (may be forged))
	by asec50.pwj.co.jp (8.9.3/3.7W) with ESMTP id QAA21077
	for <infobot-dev@infobot.org>; Fri, 4 Feb 2000 16:34:11 +0900 (JST)
Received: from pwj-gw-n001.pwj.co.jp (mailhost [10.159.99.13])
	by asec12.pwj.co.jp (8.9.2/3.7W) with SMTP id QAA17895
	for <infobot-dev@infobot.org>; Fri, 4 Feb 2000 16:32:35 +0900 (JST)
Received: by pwj-gw-n001.pwj.co.jp(Lotus SMTP MTA Internal build v1.2 hotfix4  (684.3 7-31-1998))  id 4925687B.0028F08B ; Fri, 4 Feb 2000 16:27:10 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: infobot-dev@infobot.org
Message-ID: <4925687B.0028B7F3.00@pwj-gw-n001.pwj.co.jp>
Date: Fri, 4 Feb 2000 16:25:03 +0900
Subject: Patches and Matches
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O





This is nothing about matches or regular expressions of any
kind, but it rhymed and was in a song I was listening to.
Anyway...

First of all, congratulations to Oz on the success of Sphinx;
if I've got it right, he's out at Linuxworld right now talking
about Sphinx and Sourceforce. Hope it goes well. There's been
a lot of very good coverage of Sphinx in the techno web press,
and I think we can all agree it's going to be an important
milestone in, for want of a better phrase, free speech.

Anyway, to business! :) From now on the collected patches will
be available from: http://www.infobot.org/patches
This has better bandwidth than me, and won't go away in August.
Many thanks to Oz for giving them a good home and giving me
the means to poke at it. I'll sort out links from the rest of
the site sometime soon.

I'm also extremely pleased to announce that the guys over at
Linuxhelp have got the latest version of the infobot up and
running with their SQL back-end. Cool beans! If there's any of
them listening, (and I know there is, because I have CC:.
Muhahahaha.) I don't want to put the wrong sort of pressure on
but it would be really nice if you could either feed me a patch
or provide a link to some information about what you've done; I
understand fully if you don't feel prepared to do this, but I
can't help feeling it would be easier for everyone (and
*especially* for upgrades and updates which may require sources
to change and hence break old stuff) if there was a single
source-and-optional-patches tree. We don't want to duplicate
work, and we don't want you to duplicate work either! :)
(Seriously, again, if you'd rather not, I honestly do
appreciate that.)

To directly contradict all that I've just said, I don't know if
we're yet at the point where we can start deprecating the old
bot. Certainly, the new one should be the primary focus of
development right now, and I'm hoping to run myself completely
out of business pretty soon. :)

Oz, how do you want to play this? We can either go for a gradual
phasing-out, carry on two separate development threads, (don't
like that much) or we could just *stop* work on the old one.
There's not much reason to work on it once 0.5 is as featureful.
Oh, and we could sourceforge it.

However, if you do still want to kick around with it, here's
me top 10 wish-list for what I'd like to see in the current 0.4x
bot before we wrap it up. I'll be randomly implementing some of
these as and when I get bored, so give me a shout if you want
to play with them:

     1) I don't want this to happen:
<foo> Simon?
<Simon> Yes?
<purl> Simon is a matter of fact, or a villian in a million.

How to avoid it: keep track of who's on the channel. (This is
an excuse to put some more user-defined hooks on IRC events)
On join : $whowhere{$channel.":".$person}++
On part/nick change: $whowhere{$channel.":".$person}--

Don't respond if not addressed and $whowhere{$channel.":".$query}

     2) Privacy on `seen', especially if spanning multiple
channels. Hint, this is bad:

<foo/#perl> purl, seen nou?
<purl/#perl> nou was last seen 3 hours ago on #hotsex saying
"whip me again with that leather vegetable!"

I suggest multiple levels: users should be able to say
`watch what I say and when I say it', `watch when I say something'
or `don't watch me at all.' Further, channels should have a setting
to state whether seen data is shared outside that channel.

     3) Channel-based databases I've been meaning to get around
to for ages.

     4) Ditto spanning multiple servers. The cheap hack we're
doing with purl could be better. This could be a big project requiring
some big source changes! Do not rush off and implement lightly!

     5) Anti-escaping. This is tedious:
purl, \what \I want is <reply>\why do \you ask \what \you want\?

and people get it wrong on a daily basis.

This is not:
purl, literal what I want => <reply>why do you ask what you want?

     6) Update documentation, POD on extension modules and maybe
autogenerate manual.

     7) Collect other cool tales of what people are doing with
infobots and write a web page with links.

Things we've discussed and everyone thought would be a nice idea
and nobody's done:

     8) CDDB interface
     9) CPAN i // or search.cpan interface
     10) Masque, you had a cool extension idea I was going to steal
but I've forgotten what it was.

Teckle, I have a patch for your timezone thingy (I think) so I'll
put that up soon. If you have a patch at hand, feel free to put it
up yourself.

That'll do for the moment, because I have just got a Perlix bug
report, meaning that the world is surely about to end.

Simon



From infobot-dev@metronomicon.com  Fri Feb  4 07:28:35 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA27515
	for infobot-dev-list; Fri, 4 Feb 2000 07:28:29 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id HAA27512
	for <infobot-dev@infobot.org>; Fri, 4 Feb 2000 07:28:27 -0500
Received: (qmail 2177 invoked by uid 500); 4 Feb 2000 12:30:18 -0000
Date: Fri, 4 Feb 2000 21:30:18 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: Patches and Matches
Message-ID: <20000204213018.A2162@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <4925687B.0028B7F3.00@pwj-gw-n001.pwj.co.jp>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <4925687B.0028B7F3.00@pwj-gw-n001.pwj.co.jp>; from scozens@pwj.co.jp on Fri, Feb 04, 2000 at 04:25:03PM +0900
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Fri, Feb 04, 2000 at 04:25:03PM +0900, scozens@pwj.co.jp (stupidly) wrote:
> Muhahahaha.) I don't want to put the wrong sort of pressure on
> but it would be really nice if you could either feed me a patch
> or provide a link to some information about what you've done;

Since this is on freshmeat, it's a little redundant. 
A patch is in the offing.

-- 
"We Americans, we're a simple people... but piss us off, and we'll bomb 
your cities."
-- Robin Williams, _Good Morning Vietnam_

From infobot-dev@metronomicon.com  Fri Feb  4 12:58:28 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id MAA29344
	for infobot-dev-list; Fri, 4 Feb 2000 12:58:20 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id MAA29341
	for <infobot-dev@metronomicon.com>; Fri, 4 Feb 2000 12:58:19 -0500
Message-Id: <200002041758.MAA29341@token.metronomicon.com>
Subject: Re: Patches and Matches
To: Masque <masque@pound.perl.org>
Date: Fri, 4 Feb 100 12:59:39 -0500 (EST)
From: "Kevin A. Lenzo" <lenzo@ux1.sp.cs.cmu.edu>
Cc: scozens@pwj.co.jp, infobot-dev@metronomicon.com
In-Reply-To: <20000204103707.M9197@pound.perl.org> from "Masque" at Feb 4, 0 10:37:07 am
X-Mailer: ELM [version 2.4 PL25-40]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Simon now has r/w access to purl's directories on
infobot.org.  I hope he will get the current state of purl
up to speed with the new patches.  i can't do anything
until Monday.

I'm now completely convinced that we need to put
the code under CVS, and give the keys to purl to
a couple of people so that she can be well-maintained even
when i am occupied.  


> There's a lot of snippage in here.  Figure it out.  
> 
> On Fri, Feb 04, 2000 at 04:25:03PM +0900, scozens@pwj.co.jp wrote:
> > First of all, congratulations to Oz on the success of Sphinx;
> > if I've got it right, he's out at Linuxworld right now talking
> > about Sphinx and Sourceforce. Hope it goes well. There's been
> > a lot of very good coverage of Sphinx in the techno web press,
> > and I think we can all agree it's going to be an important
> > milestone in, for want of a better phrase, free speech.
>  
> ::APPLAUSE::
> 
> (There, now wasn't that worth a six line quote?)
> 
> > To directly contradict all that I've just said, I don't know if
> > we're yet at the point where we can start deprecating the old
> > bot. Certainly, the new one should be the primary focus of
> > development right now, and I'm hoping to run myself completely
> > out of business pretty soon. :)
>  
> It would be nice if the bugs introduced between 0.44.2 and now would
> go away, otherwise I'm all for the new bot getting primary focus.
> Give us a procedure for creating extensions, and we'll get hopping. 
> :]
> 
> > However, if you do still want to kick around with it, here's
> > me top 10 wish-list for what I'd like to see in the current 0.4x
> > bot before we wrap it up. I'll be randomly implementing some of
> > these as and when I get bored, so give me a shout if you want
> > to play with them:
> > 
> >      1) I don't want this to happen:
> > <foo> Simon?
> > <Simon> Yes?
> > <purl> Simon is a matter of fact, or a villian in a million.
> > 
> > How to avoid it: keep track of who's on the channel. (This is
> > an excuse to put some more user-defined hooks on IRC events)
> > On join : $whowhere{$channel.":".$person}++
> > On part/nick change: $whowhere{$channel.":".$person}--
> 
> Sounds good, provided the behavior changes when addressed.
> 
>  <Masque> Simon?
>  <Simon> Yes?
>  <Masque> Sorry, meant:
>  <Masque> purl, Simon?
>  
> > Don't respond if not addressed and $whowhere{$channel.":".$query}
> > 
> >      2) Privacy on `seen', especially if spanning multiple
> > channels. Hint, this is bad:
> > 
> > <foo/#perl> purl, seen nou?
> > <purl/#perl> nou was last seen 3 hours ago on #hotsex saying
> > "whip me again with that leather vegetable!"
> > 
> > I suggest multiple levels: users should be able to say
> > `watch what I say and when I say it', `watch when I say something'
> > or `don't watch me at all.' Further, channels should have a setting
> > to state whether seen data is shared outside that channel.
> 
> I disagree, I would implement it soley based on channel status.
> If the channel is +s and I say something, I think purl should keep
> that information confined to the channel.  Otherwise I think the 
> current system works fine.  If you're in #poundmeharder and it's 
> not +s, people will know with a simple /whois anyway.
> 
> >      4) Ditto spanning multiple servers. The cheap hack we're
> > doing with purl could be better. This could be a big project requiring
> > some big source changes! Do not rush off and implement lightly!
> 
> I'm not sure exactly what you mean, but it would be nice if purl
> had a list of servers to choose from, so that she would come back
> if her current server went down.
> 
> >      5) Anti-escaping. This is tedious:
> > purl, \what \I want is <reply>\why do \you ask \what \you want\?
> > 
> > and people get it wrong on a daily basis.
> > 
> > This is not:
> > purl, literal what I want => <reply>why do you ask what you want?
> 
> Very good idea, though s/=>/is/ will save confusion.
> 
> Then again, when has that ever been a goal of software design.... ;)
> 
> >      6) Update documentation, POD on extension modules and maybe
> > autogenerate manual.
> 
> I VOLUNTEER!  I'd be THRILLED to help...find someone else to do this. 
>  
> >      7) Collect other cool tales of what people are doing with
> > infobots and write a web page with links.
> 
> heh.  Look up 'Sherlock' sometime.  Talk to joebloe.  There certainly
> are some interesting other projects out there.  Otherwise a great idae.
> 
> >      9) CPAN i // or search.cpan interface
> 
> Nobody has done this YET!?  Six months ago I listed it in-channel as 
> my next project, and a whole bunch of people said things like "Way
> ahead of you" and "Already almost done" and "Shut UP Masque, we're
> sick of hearing you talk" and "Where's stimps?".  I took that as 
> a sign, else I'd have turned one in by now.  Maybe I can dig up the
> framework I put together....
> 
> >      10) Masque, you had a cool extension idea I was going to steal
> > but I've forgotten what it was.
> 
> Erm, uh, well, hrm.
> 
> OH.  I think I know what you're referring to.  I'll go find you now.
>  
> > That'll do for the moment, because I have just got a Perlix bug
> > report, meaning that the world is surely about to end.
> > 
> > Simon
> 
> Masque.

From infobot-dev@metronomicon.com  Fri Feb  4 13:17:40 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id NAA29446
	for infobot-dev-list; Fri, 4 Feb 2000 13:17:39 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id NAA29443
	for <infobot-dev@infobot.org>; Fri, 4 Feb 2000 13:17:38 -0500
Message-Id: <200002041817.NAA29443@token.metronomicon.com>
Subject: Re: Patches and Matches
To: scozens@pwj.co.jp
Date: Fri, 4 Feb 100 13:19:18 -0500 (EST)
From: "Kevin A. Lenzo" <lenzo@ux1.sp.cs.cmu.edu>
Cc: infobot-dev@infobot.org
In-Reply-To: <4925687B.0028B7F3.00@pwj-gw-n001.pwj.co.jp> from "scozens@pwj.co.jp" at Feb 4, 0 04:25:03 pm
X-Mailer: ELM [version 2.4 PL25-40]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

ooooo k! where we go.

> First of all, congratulations to Oz on the success of Sphinx;
> if I've got it right, he's out at Linuxworld right now talking
> about Sphinx and Sourceforce. Hope it goes well. There's been
> a lot of very good coverage of Sphinx in the techno web press,
> and I think we can all agree it's going to be an important
> milestone in, for want of a better phrase, free speech.

w00t!

> Anyway, to business! :) From now on the collected patches will
> be available from: http://www.infobot.org/patches
> This has better bandwidth than me, and won't go away in August.
> Many thanks to Oz for giving them a good home and giving me
> the means to poke at it. I'll sort out links from the rest of
> the site sometime soon.

I've given you read/write access on purl's home directory,
so that you can keep her up-to-date.

> can't help feeling it would be easier for everyone (and
> *especially* for upgrades and updates which may require sources
> to change and hence break old stuff) if there was a single
> source-and-optional-patches tree. We don't want to duplicate
> work, and we don't want you to duplicate work either! :)
> (Seriously, again, if you'd rather not, I honestly do
> appreciate that.)

Think CVS! maybe even put it on SourceForge.  Though we
can easily set up the CVS on infobot.org.

> To directly contradict all that I've just said, I don't know if
> we're yet at the point where we can start deprecating the old
> bot. Certainly, the new one should be the primary focus of
> development right now, and I'm hoping to run myself completely
> out of business pretty soon. :)

Maybe we *should* go with 'geckobot' -- or something esle --
for the new bot. Dev isn't going fast enough on the new
model, bvut it should also be under CVS.

> Oz, how do you want to play this? We can either go for a gradual
> phasing-out, carry on two separate development threads, (don't
> like that much) or we could just *stop* work on the old one.
> There's not much reason to work on it once 0.5 is as featureful.
> Oh, and we could sourceforge it.

Ah :)  OK I just set up a project.  I haven't imported
the CVS tree; simon, can you get a version up-to-date, and
diff purl with the current source (there are some other 
changes in there), and we'll make a clean tree for import.
I'm going for 'Artistic License'.

Please create accounts for yourself on SourceForge, and I'll
add you as developers/admins/whatever.

> However, if you do still want to kick around with it, here's
> me top 10 wish-list for what I'd like to see in the current 0.4x
> bot before we wrap it up. I'll be randomly implementing some of
> these as and when I get bored, so give me a shout if you want
> to play with them:
> 
>      1) I don't want this to happen:
> <foo> Simon?
> <Simon> Yes?
> <purl> Simon is a matter of fact, or a villian in a million.
> 
> How to avoid it: keep track of who's on the channel. (This is
> an excuse to put some more user-defined hooks on IRC events)
> On join : $whowhere{$channel.":".$person}++
> On part/nick change: $whowhere{$channel.":".$person}--

Hmm. fraught with worries about this. won't go into it
completely now.  Continuity is in general a good thing.
Also, people often _do_ ask about people and actually want answers
this way. I gues this isn't a continuity issue.

> Don't respond if not addressed and $whowhere{$channel.":".$query}
> 
>      2) Privacy on `seen', especially if spanning multiple
> channels. Hint, this is bad:
> 
> <foo/#perl> purl, seen nou?
> <purl/#perl> nou was last seen 3 hours ago on #hotsex saying
> "whip me again with that leather vegetable!"
> 
> I suggest multiple levels: users should be able to say
> `watch what I say and when I say it', `watch when I say something'
> or `don't watch me at all.' Further, channels should have a setting
> to state whether seen data is shared outside that channel.

good ideas.

>      3) Channel-based databases I've been meaning to get around
> to for ages.

Yep.

>      4) Ditto spanning multiple servers. The cheap hack we're
> doing with purl could be better. This could be a big project requiring
> some big source changes! Do not rush off and implement lightly!

Yep.

>      5) Anti-escaping. This is tedious:
> purl, \what \I want is <reply>\why do \you ask \what \you want\?

Yep. perhaps a 'define' which works like 'literal' except for
defs, that still accepts the <> tags.

> and people get it wrong on a daily basis.
> 
> This is not:
> purl, literal what I want => <reply>why do you ask what you want?
> 
>      6) Update documentation, POD on extension modules and maybe
> autogenerate manual.

Hell yeah.

>      7) Collect other cool tales of what people are doing with
> infobots and write a web page with links.

Yes.

> Things we've discussed and everyone thought would be a nice idea
> and nobody's done:
> 
>      8) CDDB interface
>      9) CPAN i // or search.cpan interface
>      10) Masque, you had a cool extension idea I was going to steal
> but I've forgotten what it was.
> 
> Teckle, I have a patch for your timezone thingy (I think) so I'll
> put that up soon. If you have a patch at hand, feel free to put it
> up yourself.
> 
> That'll do for the moment, because I have just got a Perlix bug
> report, meaning that the world is surely about to end.
> 
> Simon

From infobot-dev@metronomicon.com  Fri Feb  4 13:48:14 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id NAA29902
	for infobot-dev-list; Fri, 4 Feb 2000 13:48:03 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from ux1.sp.cs.cmu.edu (UX1.SP.CS.CMU.EDU [128.2.198.101])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id NAA29899
	for <infobot-dev@metronomicon.com>; Fri, 4 Feb 2000 13:48:03 -0500
Message-Id: <200002041848.NAA29899@token.metronomicon.com>
Subject: Re: Patches and Matches
To: Masque <masque@pound.perl.org>
Date: Fri, 4 Feb 100 13:49:22 -0500 (EST)
From: "Kevin A. Lenzo" <lenzo@ux1.sp.cs.cmu.edu>
Cc: scozens@pwj.co.jp, infobot-dev@metronomicon.com
In-Reply-To: <20000204103707.M9197@pound.perl.org> from "Masque" at Feb 4, 0 10:37:07 am
X-Mailer: ELM [version 2.4 PL25-40]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

>  
> It would be nice if the bugs introduced between 0.44.2 and now would
> go away, otherwise I'm all for the new bot getting primary focus.
> Give us a procedure for creating extensions, and we'll get hopping. 
> :]

Absolutely.

> I disagree, I would implement it soley based on channel status.
> If the channel is +s and I say something, I think purl should keep
> that information confined to the channel.  Otherwise I think the 
> current system works fine.  If you're in #poundmeharder and it's 
> not +s, people will know with a simple /whois anyway.

I'm not sure channel status is a good metric for the bulk of
conversation. We're always +s.  i think people running bots
shoiuld be able to set policies on channels; i think that's
cleaner.  channels are rarely toggeld between +/-s. 

> >      4) Ditto spanning multiple servers. The cheap hack we're
> > doing with purl could be better. This could be a big project requiring
> > some big source changes! Do not rush off and implement lightly!
> 
> I'm not sure exactly what you mean, but it would be nice if purl
> had a list of servers to choose from, so that she would come back
> if her current server went down.

She needs to be on irc.infobot.org at the same time!

> >      5) Anti-escaping. This is tedious:
> > purl, \what \I want is <reply>\why do \you ask \what \you want\?
> > 
> > and people get it wrong on a daily basis.
> > 
> > This is not:
> > purl, literal what I want => <reply>why do you ask what you want?
> 
> Very good idea, though s/=>/is/ will save confusion.
> 
> Then again, when has that ever been a goal of software design.... ;)

Ah, good point. i didn't read that well enough.  there's 
a discussion on syntax here, i guess...

> >      6) Update documentation, POD on extension modules and maybe
> > autogenerate manual.
> 
> I VOLUNTEER!  I'd be THRILLED to help...find someone else to do this. 

! great!

> >      9) CPAN i // or search.cpan interface
> 
> Nobody has done this YET!?  Six months ago I listed it in-channel as 
> my next project, and a whole bunch of people said things like "Way
> ahead of you" and "Already almost done" and "Shut UP Masque, we're
> sick of hearing you talk" and "Where's stimps?".  I took that as 
> a sign, else I'd have turned one in by now.  Maybe I can dig up the
> framework I put together....

DO IT MAN

> >      10) Masque, you had a cool extension idea I was going to steal
> > but I've forgotten what it was.
> 
> Erm, uh, well, hrm.
> 
> OH.  I think I know what you're referring to.  I'll go find you now.
>  
> > That'll do for the moment, because I have just got a Perlix bug
> > report, meaning that the world is surely about to end.
> > 
> > Simon
> 
> Masque.

kevin

From infobot-dev@metronomicon.com  Tue Feb  8 18:42:34 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23018
	for infobot-dev-list; Tue, 8 Feb 2000 18:41:43 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from vegovc.s-sser.lj.edus.si (IDENT:root@vegovc.s-sser.lj.edus.si [193.2.190.78])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23015
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 18:41:42 -0500
Received: from localhost (black@localhost)
	by vegovc.s-sser.lj.edus.si (8.9.3/8.8.7) with ESMTP id IAA18845;
	Mon, 7 Feb 2000 08:01:07 +0100
Date: Mon, 7 Feb 2000 08:01:07 +0100 (CET)
From: Tit Petric <black@vegovc.s-sser.lj.edus.si>
To: infobot-dev@infobot.org
cc: lenzo@cs.cmu.edu
Subject: infobot additions
Message-ID: <Pine.LNX.4.10.10002070753440.18632-100000@vegovc.s-sser.lj.edus.si>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

i made a modification of infobot 0.44 to some extent..
i removed the usage of external modules and replaced them
with a small and niephte get url replacement.. i allso added
a topten talkers list + onjoin messaging + a message server
also fetches the latest kernel version from www.kernel.org

i could probably replace the net::telnet stuff but i havent
bothered so i just threw it out with zippy

most of the modifications are in extra files..

also a niephtee help system and a textfile to go with
it i made. 

i probably added a lot of other stuff i cant remember
off hand.. try dark.skyined.org/~twilight/wanker
for the sources of my modification.. and please use some of
it..

oh yea.. and seen was heavily modified so atleast now join/parts
will show up. anyway take a look at it..

and kernel specs were changed so the filter has to be rewritten
and the msgserver has a little bug in querymsg

just have to replace return '0'; with return 0;

have fun and come to ircnet #scene.si

black

From infobot-dev@metronomicon.com  Tue Feb  8 18:54:10 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23450
	for infobot-dev-list; Tue, 8 Feb 2000 18:54:09 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.zrz.tu-berlin.de (mail.zrz.TU-Berlin.DE [130.149.4.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23447
	for <infobot-dev@metronomicon.com>; Tue, 8 Feb 2000 18:54:08 -0500
Received: from lublin.zrz.tu-berlin.de ([130.149.2.130] ident=root)
	  by mail.zrz.tu-berlin.de with esmtp (exim-3.13)
	  id 12Hjec-0003oL-00; Mon, 07 Feb 2000 09:36:18 +0100
Received: from lublin.zrz.tu-berlin.de by lublin.zrz.TU-Berlin.DE (8.8.7/ZRZ-Gen)
	  id IAA11810; Mon, 7 Feb 2000 08:35:46 GMT
Message-ID: <389E83E0.9ED72278@lublin.zrz.tu-berlin.de>
Date: Mon, 07 Feb 2000 09:35:44 +0100
From: Anno Siegel <anno4000@lublin.zrz.tu-berlin.de>
Reply-To: siegel@zrz.tu-berlin.de
Organization: TU Berlin, Zentraleinrichtung Rechenzentrum
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.0.36 i586)
MIME-Version: 1.0
To: Masque <masque@pound.perl.org>
CC: infobot-dev@metronomicon.com
Subject: Re: Patches and Matches
References: <4925687B.0028B7F3.00@pwj-gw-n001.pwj.co.jp> <20000204103707.M9197@pound.perl.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Masque wrote:

> >      2) Privacy on `seen', especially if spanning multiple
> > channels. Hint, this is bad:
> >
> > <foo/#perl> purl, seen nou?
> > <purl/#perl> nou was last seen 3 hours ago on #hotsex saying
> > "whip me again with that leather vegetable!"
> >
> > I suggest multiple levels: users should be able to say
> > `watch what I say and when I say it', `watch when I say something'
> > or `don't watch me at all.' Further, channels should have a setting
> > to state whether seen data is shared outside that channel.
> 
> I disagree, I would implement it soley based on channel status.
> If the channel is +s and I say something, I think purl should keep
> that information confined to the channel.  Otherwise I think the
> current system works fine.  If you're in #poundmeharder and it's
> not +s, people will know with a simple /whois anyway.

Right, this should only depend on channel status.  Keyword protected
channels (+k) should be treated like +s.

Anno

From infobot-dev@metronomicon.com  Tue Feb  8 18:55:44 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23524
	for infobot-dev-list; Tue, 8 Feb 2000 18:55:44 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from pixie.securenets.com (what.securetty.org [63.225.132.243])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23521
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 18:55:43 -0500
Received: from localhost (jjacobs@localhost)
	by pixie.securenets.com (8.9.1/8.9.1) with SMTP id CAA11828
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 02:01:26 -0600
Date: Tue, 8 Feb 2000 02:01:25 -0600 (CST)
From: Jay Jacobs <jjacobs@securetty.org>
X-Sender: jjacobs@pixie.securenets.com
To: infobot-dev@infobot.org
Subject: updated module
Message-ID: <Pine.LNX.3.95.1000208015351.11796A-200000@pixie.securenets.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-1815215386-152013794-949996885=:11796"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1815215386-152013794-949996885=:11796
Content-Type: TEXT/PLAIN; charset=US-ASCII

Dunno where we're gonna store these, so everyone gets a copy...

I think I have all the bugs ironned out.  Here's a show of some of the new
improvements:

-- added spelling, using 'ispell' wasn't yielding beneficial results.
> spell apropoo
apropoo doesn't seem right, how about apropos
> spell apropos
"apropos" is a correct spelling. But other close matches are atropos or
aprosos

-- you can also check out what dictionaries are on the dictionary server
the infobot is using:
> dictionaries
Dictionaries I have:  hitchcock, jargon, easton, gazetteer, web1913,
elements, wn or foldoc
# and then query the dictionary:
> dictionary jargon
jargon: "Jargon File (4.0.0/24 July 1996)"

-- also gave support for quoting multi-worded queries:
> define "bit bucket"             
"bit bucket": No match, try using jargon or foldoc.
> define "bit bucket" using jargon
bit bucket /n./ 1. The universal data sink (originally, the mythical
receptacle used to catch bits when they fall off end of a register during
a shift instruction).  .....

Enjoy,
Jay
a.k.a teckle.

---1815215386-152013794-949996885=:11796
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Dict.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.1000208020125.11796B@pixie.securenets.com>
Content-Description: 

IyANCiMgIERpY3QgLS0gaW5mb2JvdCBtb2R1bGUgZm9yIERpY3Rpb25hcnkg
bG9va3Vwcy4NCiMgCSAgIHJlcXVpcmVzIHRoZSBOZXQ6OkRpY3QgbW9kdWxl
Lg0KIyAgQnkgSmF5IEphY29icyAodGVja2xlKQ0KIw0KDQpwYWNrYWdlIElu
Zm9ib3Q6Ok1vZHVsZTo6RGljdDsNCg0KDQp1c2Ugc3RyaWN0Ow0KdXNlIElu
Zm9ib3Q6Ok1vZHVsZTsNCg0KJEluZm9ib3Q6Ok1vZHVsZTo6RGljdDo6VkVS
U0lPTiA9ICIwLjkwXzAwIjsNCiRJbmZvYm90OjpNb2R1bGV7IkRpY3QifSA9
ICRJbmZvYm90OjpNb2R1bGU6OkRpY3Q6OlZFUlNJT047DQpASW5mb2JvdDo6
TW9kdWxlOjpEaWN0OjpJU0EgPSBxdyhJbmZvYm90OjpNb2R1bGUpOw0KDQpt
eSAkYW55YmFkOw0KDQpCRUdJTiB7DQogICAgJGFueWJhZCA9ICcnOw0KICAg
IGV2YWwgeyByZXF1aXJlIE5ldDo6RGljdH07DQogICAgZXZhbCB7IHJlcXVp
cmUgRGF0YTo6RHVtcGVyfTsNCiAgICBpZiAoJEApIHsNCiAgICAgICRhbnli
YWQgPSAiTmV0OjpEaWN0IjsgDQogICAgICB3YXJuICJJbmZvYm90OjpNb2R1
bGU6OkRpY3QgcmVxdWlyZXMgJGFueWJhZCB0byB3b3JrIg0KICAgICAgICAg
IC4gIllvdSBjYW4gZ2V0IGl0IGZyb20gaHR0Oi8vd3d3LnBlcmwuY29tL0NQ
QU4vIG9yIHVzZSAiDQogICAgICAgICAgLiAidGhlIENQQU4gaW5zdGFsbGVy
OiAgIg0KICAgICAgICAgIC4gInBlcmwgLU1DUEFOIC1lICdpbnN0YWxsICRh
bnliYWQnIjsNCiAgICB9DQp9DQoNCnN1YiBuZXcgew0KICByZXR1cm4gdW5k
ZWYgaWYgJGFueWJhZDsNCiAgbXkgJGNsYXNzID0gc2hpZnQgOw0KICBteSAk
c2VsZiAgPSAkY2xhc3MtPlNVUEVSOjpuZXcoQF8pOw0KDQogICRzZWxmLT53
ZWlnaHQoMSk7IA0KDQogICRzZWxmLT5uYW1lKCdEaWN0Jyk7DQogICRzZWxm
LT5yZWdleChxci9eKD86KGRlZmluZXxzcGVsbHxkaWN0aW9uYXJ5KVxzKyhc
IlstXHcgXStcInxbLVx3XSspfGRpY3Rpb25hcmllcykoPzpccyt1c2luZ1xz
Kyk/KFxTKyk/L2kpOw0KICAkc2VsZi0+dXNhZ2UoImRlZmluZSA8d29yZD4g
W3VzaW5nIERJQ1RdLCB3aGVyZSBESUNUIGlzIGFuIGFjY2VwdGVkIGRpY3Rp
b25hcnkgZGVmYXVsdHMgdG8gd29yZG5ldCAnd24nLCBwbHVzIGEgbG90IG1v
cmUiKTsNCiAgJHNlbGYtPmRlc2NyaXAoIkxvb2t1cHMgdXAgYSB3b3JkIChv
ciBhIGNsb3NlIG1hdGNoKSB1c2luZyB0aGUgZGVmYXVsdCAnd29yZG5ldCcg
ZGljdGlvbmFyeSwgb3Igb25lIHNwZWNpZmllZCwgcGx1cyBhIGxvdCBtb3Jl
Iik7DQogICgkYW55YmFkKT8kc2VsZi0+ZW5hYmxlZCgxKTokc2VsZi0+ZW5h
YmxlZCgwKTsNCiAgJHNlbGYtPmRpY3RzZXJ2KCdzZXJ2ZXIxLnNob3B0aGVu
ZXQubmV0Jyk7DQogICRzZWxmLT50aW1lb3V0KCc1Jyk7DQogIG15ICR0c2Vy
diA9IE5ldDo6RGljdC0+bmV3KCRzZWxmLT5kaWN0c2VydiwgVGltZW91dCA9
PiAkc2VsZi0+dGltZW91dCk7DQogIGlmIChkZWZpbmVkICR0c2Vydikgew0K
ICAgICRzZWxmLT57X3NlcnZlckluZm99ID0gJHRzZXJ2LT5zZXJ2ZXJJbmZv
Ow0KICAgICV7JHNlbGYtPntfZGljdGRifX0gPSAkdHNlcnYtPmRiczsNCiAg
fSBlbHNlIHsNCiAgICBwcmludCAiQ291bGQgbm90IHNldCB1cCBkaWN0aW9u
YXJ5IHN0dWZmXG4iOw0KICAgIHByaW50ICJTZXJ2ZXIgaXMgIi4kc2VsZi0+
ZGljdHNlcnYuIjsgdGltZW91dCBpcyAiLiRzZWxmLT50aW1lb3V0LiJcbiI7
DQogIH0NCiAgYmxlc3MgJHNlbGYsICRjbGFzczsNCn0NCg0Kc3ViIGFjdGlv
biB7DQogIG15ICRzZWxmID0gc2hpZnQgOw0KICBwcmludCBEdW1wZXIgJHNl
bGY7DQogIHJldHVybiB1bmRlZiB1bmxlc3MgZGVmaW5lZCAkc2VsZiBhbmQg
JHNlbGYtPmVuYWJsZWQ7DQoNCiAgbXkgJG1lc3NhZ2UgPSBzaGlmdDsgDQog
IHJldHVybiB1bmRlZiB1bmxlc3MgJG1lc3NhZ2U7DQogIG15ICgkYWN0aW9u
LCAkd29yZCwgJGRpY3QpID0gQHskbWVzc2FnZS0+Z2V0KCdhcmdzJyl9Ow0K
ICAkZGljdCA9ICJ3biIgaWYgKCEgZGVmaW5lZCAkZGljdCk7DQogIG15ICRS
ZXQ7DQogIGlmIChsYygkYWN0aW9uKSBlcSAiZGVmaW5lIikgew0KICAgICRz
ZWxmLT5zdGF0dXMoMywgIkRlZmluaW5nIFwiJHdvcmRcIiBpbiBkaWN0aW9u
YXJ5OiBcIiRkaWN0XCIiKTsNCiAgICAkUmV0ID0gJHNlbGYtPmdpdmVmdWxs
KCR3b3JkLCAkZGljdCk7DQogIH0gZWxzaWYgKGxjKCRhY3Rpb24pIGVxICJz
cGVsbCIpIHsNCiAgICAkc2VsZi0+c3RhdHVzKDMsICJDaGVja2luZyB0aGUg
c3BlbGxpbmcgb2YgXCIkd29yZFwiIGluIGRpY3Rpb25hcnk6IFwiJGRpY3Rc
IiIpOw0KICAgICRSZXQgPSAkc2VsZi0+Z2l2ZXNwZWxsKCR3b3JkLCAkZGlj
dCk7DQogIH0gZWxzaWYgKGxjKCRhY3Rpb24pIGVxICJkaWN0aW9uYXJ5Iikg
ew0KICAgICRzZWxmLT5zdGF0dXMoMywgIkNoZWNraW5nIGRpY3Rpb25hcnkg
XCIkd29yZFwiIik7DQogICAgJFJldCA9ICRzZWxmLT5sb29rYXRkaWN0KCR3
b3JkKTsNCiAgfSBlbHNlIHsNCiAgICAkUmV0ID0gIkRpY3Rpb25hcmllcyBJ
IGhhdmU6ICIuJHNlbGYtPmRpY3Rpb25hcmllczsNCiAgfQ0KICByZXR1cm4g
JFJldDsNCn0NCg0Kc3ViIGdpdmVmdWxsIHsNCiAgbXkgJHNlbGYgPSBzaGlm
dDsNCiAgbXkgJHNlcnZlciA9IE5ldDo6RGljdC0+bmV3KCRzZWxmLT5kaWN0
c2VydiwgVGltZW91dCA9PiAkc2VsZi0+dGltZW91dCk7DQogIHJldHVybiAo
IkkgY2FuJ3QgcmVhY2ggbXkgZGljdGlvbmNhcnkgcmlnaHQgbm93IikgaWYg
KCEgZGVmaW5lZCAkc2VydmVyKTsNCiAgbXkgKCR3b3JkLCAkZGljdCkgPSBA
XzsNCiAgbXkgJGggPSAkc2VydmVyLT5kZWZpbmUoJHdvcmQpOw0KICBteSAo
JGksICRSZXQsICRkY3QsICRkZWYpOw0KICBteSAkZm91bmQgPSAwOw0KICBt
eSBAb3RoZXJfbWF0Y2hlczsNCiAgaWYgKCEgZGVmaW5lZCBAeyRofSkgew0K
ICAgICRzZWxmLT5zdGF0dXMoMywgIk5vIG1hdGNoIEZvdW5kIGF0IGFsbCwg
bG9va2luZyB1cCBhbHRlcm5hdGl2ZXMiKTsNCiAgICAkUmV0ID0gZmluZG1h
dGNoKCRzZXJ2ZXIsICRkaWN0LCAkd29yZCk7DQogIH0gZWxzZSB7DQogICAg
Zm9yZWFjaCAkaSAoQHskaH0pIHsNCiAgICAgICgkZGN0LCAkZGVmKSA9IEB7
JGl9Ow0KICAgICAgaWYgKCRkY3QgZXEgJGRpY3QpIHsNCiAgICAgICAgZm9y
ZWFjaCAoc3BsaXQoL1xuLywgJGRlZikpIHsNCgkgICRfPX5zL1xzezMsfS8v
ZzsNCgkgICMgJF89fnMvXHMrJC8vZzsNCgkgICRSZXQuPSRfLiIgIjsNCiAg
ICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgcHVzaChAb3RoZXJf
bWF0Y2hlcywgJGRjdCk7DQogICAgICB9DQogICAgfQ0KICAgIGlmICghICRS
ZXQpIHsNCiAgICAgICRzZWxmLT5zdGF0dXMoMywgIm1hdGNoIGZvdW5kIGlu
IG90aGVyIGRpY3QsIGxvb2tpbmcgdXAgYWx0ZXJuYXRpdmVzIik7DQogICAg
ICAkUmV0ID0gZmluZG1hdGNoKCRzZXJ2ZXIsICRkaWN0LCAkd29yZCwgQG90
aGVyX21hdGNoZXMpOw0KICAgIH0NCiAgfQ0KICByZXR1cm4oJFJldCk7DQp9
DQoNCnN1YiBmaW5kbWF0Y2ggew0KICBteSAkc2VydmVyID0gc2hpZnQ7DQog
IG15ICRkaWN0ID0gc2hpZnQ7DQogIG15ICR3b3JkID0gc2hpZnQ7DQogIG15
IEBvdGhlcl9tYXRjaGVzID0gQF87DQogIG15IEBvdGhlcnM7DQogIG15ICgk
aCwgJGksICRkY3QsICRkZWYpOw0KICAkaCA9ICRzZXJ2ZXItPm1hdGNoKCR3
b3JkLCAibGV2Iik7DQogIGZvcmVhY2ggJGkgKEB7JGh9KSB7DQogICAgKCRk
Y3QsICRkZWYpID0gQHskaX07DQogICAgcHVzaCAoQG90aGVycywgJGRlZikg
aWYgKCRkY3QgZXEgJGRpY3QpOw0KICB9DQogIGlmIChAb3RoZXJzKSB7DQog
ICAgbXkgJHN0ciA9IGdpbW1lUHJldHR5KEBvdGhlcnMpOw0KICAgIGlmIChA
b3RoZXJfbWF0Y2hlcykgew0KICAgICAgJHN0ci49Ijsgb3IgdHJ5IHVzaW5n
OiIuKGdpbW1lUHJldHR5KEBvdGhlcl9tYXRjaGVzKSk7DQogICAgfQ0KICAg
IHJldHVybigiJHdvcmQ6IE5vIE1hdGNoLiBQZXJoYXBzIHlvdSBtZWFuOiRz
dHIiKTsNCiAgfSBlbHNpZiAoQG90aGVyX21hdGNoZXMpIHsNCiAgICByZXR1
cm4oIiR3b3JkOiBObyBtYXRjaCwgdHJ5IHVzaW5nIi4oZ2ltbWVQcmV0dHko
QG90aGVyX21hdGNoZXMpKS4iLiIpOw0KICB9IGVsc2Ugew0KICAgIHJldHVy
biAiJHdvcmQ6IE5vIG1hdGNoZXMgZm91bmQiOw0KICB9DQp9DQoNCnN1YiBn
aXZlc3BlbGwgew0KICBteSAkc2VsZiA9IHNoaWZ0Ow0KICBteSAkc2VydmVy
ID0gTmV0OjpEaWN0LT5uZXcoJHNlbGYtPmRpY3RzZXJ2LCBUaW1lb3V0ID0+
ICRzZWxmLT50aW1lb3V0KTsNCiAgcmV0dXJuICgiSSBjYW4ndCByZWFjaCBt
eSBkaWN0aW9uY2FyeSByaWdodCBub3ciKSBpZiAoISBkZWZpbmVkICRzZXJ2
ZXIpOw0KICBteSAkd29yZCA9IHNoaWZ0Ow0KICBteSAkaTsNCiAgbXkgJWZv
dW5kOw0KICBteSAkUmV0Ow0KICBmb3JlYWNoICRpIChAeyRzZXJ2ZXItPm1h
dGNoKCR3b3JkLCAibGV2IiwgKGtleXMgJXskc2VsZi0+e19kaWN0ZGJ9fSkp
fSkgew0KICAgICQkaVsxXT1+cy9cIi8vZzsNCiAgICAkZm91bmR7bGMoJCRp
WzFdKX0gPSB1bmRlZjsNCiAgfQ0KICBpZiAoZXhpc3RzICRmb3VuZHtsYygk
d29yZCl9KSB7DQogICAgJFJldCA9ICJcIiR3b3JkXCIgaXMgYSBjb3JyZWN0
IHNwZWxsaW5nLiBCdXQgb3RoZXIgY2xvc2UgbWF0Y2hlcyBhcmUiOw0KICAg
IGRlbGV0ZSAkZm91bmR7bGMoJHdvcmQpfTsNCiAgfSBlbHNlIHsNCiAgICAk
UmV0ID0gIiR3b3JkIGRvZXNuJ3Qgc2VlbSByaWdodCwgaG93IGFib3V0IjsN
CiAgfQ0KICBpZiAoa2V5cyAlZm91bmQpIHsNCiAgICAkUmV0IC49IGdpbW1l
UHJldHR5KGtleXMgJWZvdW5kKTsNCiAgfSBlbHNlIHsNCiAgICByZXR1cm4g
IkkgY2FuJ3QgZmluZCBhbnkgd29yZCBjbG9zZSB0byBcIiR3b3JkXCIiOw0K
ICB9DQp9DQogIA0Kc3ViIGxvb2thdGRpY3Qgew0KICBteSAkc2VsZiA9IHNo
aWZ0Ow0KICByZXR1cm4gIiRfWzBdOiAiLiRzZWxmLT57X2RpY3RkYn17JF9b
MF19IGlmIChkZWZpbmVkICRzZWxmLT57X2RpY3RkYn17JF9bMF19KTsNCiAg
cmV0dXJuICJObyBzdWNoIGRpY3Rpb25hcnksIEkgZG8gaGF2ZTogIi4oJHNl
bGYtPmRpY3Rpb25hcmllcyk7DQp9DQoNCnN1YiBkaWN0aW9uYXJpZXMgew0K
ICBteSAkc2VsZiA9IHNoaWZ0Ow0KICByZXR1cm4gZ2ltbWVQcmV0dHkoa2V5
cyAleyRzZWxmLT57X2RpY3RkYn19KTsNCn0NCg0Kc3ViIGRpY3RzZXJ2IHsN
CiAgbXkgJHNlbGYgPSBzaGlmdDsNCiAgJHNlbGYtPntkaWN0c2Vydn0gPSBz
aGlmdCBpZiAoQF8pOw0KICByZXR1cm4gJHNlbGYtPntkaWN0c2Vydn07DQp9
DQoNCnN1YiB0aW1lb3V0IHsNCiAgbXkgJHNlbGYgPSBzaGlmdDsNCiAgJHNl
bGYtPnt0aW1lb3V0fSA9IHNoaWZ0IGlmIChAXyk7DQogIHJldHVybiAkc2Vs
Zi0+e3RpbWVvdXR9Ow0KfQ0KDQpzdWIgZ2ltbWVQcmV0dHkgew0KICBteSBA
d29yZHMgPSBAXzsNCiAgbXkgJHN0ciA9ICIiOw0KICBpZiAoJCN3b3Jkcz49
MSkgew0KICAgIGZvciAoMC4uKCQjd29yZHMtMSkpIHsNCiAgICAgICR3b3Jk
c1skX109fnMvIi8vZzsNCiAgICAgICRzdHIgLj0gIiAkd29yZHNbJF9dLCI7
DQogICAgfQ0KICAgIGNob3AoJHN0cik7DQogICAgJHN0ciAuPSAiIG9yIjsN
CiAgfQ0KICAkd29yZHNbJCN3b3Jkc109fnMvIi8vZzsNCiAgJHN0ciAuPSAi
ICIuJHdvcmRzWyQjd29yZHNdOw0KICByZXR1cm4oJHN0cik7DQp9DQoxOw0K
DQo9cG9kDQoNCj1oZWFkMSBOQU1FDQoNCkluZm9ib3Q6Ok1vZHVsZTo6RGlj
dCAtIFdvcmQgZGVmaW5pdGlvbiBtb2R1bGUgZm9yIGluZm9ib3QNCg0KPWhl
YWQxIFNZTk9QU0lTDQoNCmRlZmluZSA8d29yZD4gW3VzaW5nIDxkaWN0aW9u
YXJ5Pl0NCg0KPWhlYWQxIERFU0NSSVBUSU9ODQoNClVzZXMgdGhlIE5ldDo6
RGljdCBtb2R1bGUgdG8gbG9va3VwIGEgd29yZCBmb3IgYSBzcGVjaWZpYyAN
CmRpY3Rpb25hcnkuICBJZiB0aGUgZGljdGlvbmFyeSBpc24ndCBzcGVjaWZp
ZWQsIGl0IHdpbGwgDQpkZWZhdWx0IHRvIHVzZSB0aGUgIndvcmRuZXQiICh3
bikgZGljdGlvbmFyeS4gIEl0IHdpbGwgdHJ5DQp0byByZXR1cm4gYSBkZWZp
bml0aW9uIGZyb20gdGhlIGRpY3Rpb25hcnksIGlmIGl0IGRvZXNuJ3QNCmZp
bmQgb25lLCBpdCB3aWxsIHRyeSB0byBmaW5kIGNsb3NlIG1hdGNoZXMgdXNp
bmcgdGhlIA0KTGV2ZW5zZXRlaW4gZGlzdGFuY2Ugb25lIG1hdGNoaW5nIHN0
cmF0ZWd5LiAgSWYgaXQgZm91bmQNCnRoZSB3b3JkIGluIG90aGVyIGRpY3Rp
b25hcmllcywgaXQgd2lsbCBhbHNvIG1lbnRpb24gdGhvc2UNCmFzIGEgcG9z
c2libGUgcGxhY2UgdG8gbG9vay4NCg0KPWhlYWQxIEFVVEhPUlMNCg0KSmF5
IEphY29icyAodGVja2xlKQ0KamphY29ic0BzZWN1cmV0dHkub3JnDQo=
---1815215386-152013794-949996885=:11796--

From infobot-dev@metronomicon.com  Tue Feb  8 18:59:04 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23819
	for infobot-dev-list; Tue, 8 Feb 2000 18:59:04 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from lucidx.com (cp5@lucidx.com [63.199.194.66])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23815
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 18:59:02 -0500
Received: from LucidX.com (cp5@lucidx.com [63.199.194.66])
	by lucidx.com (8.9.2/8.9.2) with ESMTP id VAA02003
	for <infobot-dev@infobot.org>; Mon, 7 Feb 2000 21:57:12 -0800 (PST)
	(envelope-from CommPort5@LucidX.com)
Message-ID: <389FB038.F7B0D681@LucidX.com>
Date: Mon, 07 Feb 2000 21:57:12 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: infobot status bug
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hello there!  This is a little bug I found in infobot 0.44.3, haven't
tested it below
this version.  I was playing with infobot and thought there are
certain things you can't change but maybe with \ you can.  So status was

the first thing I tried and vualah.  I was able to create a status
factoid to sort of override the status it should return, and then you
can remove it and it's back to normal although anyone with access to
creating factoids can do this.  So it's somewhat of a `feature` but I
don't think too many people would really like it ;) Here is an example
to show you:
############################
<CommPort5> lucidx, status
<LucidX> Since Thu Feb  3 20:50:53 2000, there have been 4 modifications

and 13 questions.  I have been awake for 1 hour, 38 minutes, 48 seconds
this session, and currently reference 123283 factoids. Addressing is in
require mode.
<CommPort5> lucidx, status is blah
<LucidX> Since Thu Feb  3 20:50:53 2000, there have been 4 modifications

and 14 questions.  I have been awake for 1 hour, 38 minutes, 53 seconds
this session, and currently reference 123283 factoids. Addressing is in
require mode.
<CommPort5> lucidx, \status is <reply> this is a test of the emergency
bug system.
<CommPort5> lucidx, status
<LucidX> this is a test of the emergency bug system.
<CommPort5> lucidx, forget status
<LucidX> CommPort5: I forgot status
<CommPort5> lucidx, status
<LucidX> Since Thu Feb  3 20:50:53 2000, there have been 6 modifications

and 16 questions.  I have been awake for 1 hour, 40 minutes, 29 seconds
this session, and currently reference 123283 factoids. Addressing is in
require mode.
#######################################
I see this is already fixed in 0.44.4 since purl isn't affected and that
version will probably come out soon, but it's always nice to know about
these things.  This is probably present in most other things also like
slashdot and the such so watch out!
-Sam (CommPort5)

From infobot-dev@metronomicon.com  Tue Feb  8 18:59:05 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23839
	for infobot-dev-list; Tue, 8 Feb 2000 18:59:05 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from lucidx.com (cp5@lucidx.com [63.199.194.66])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23818
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 18:59:04 -0500
Received: from LucidX.com (cp5@lucidx.com [63.199.194.66])
	by lucidx.com (8.9.2/8.9.2) with ESMTP id WAA02007
	for <infobot-dev@infobot.org>; Mon, 7 Feb 2000 22:00:00 -0800 (PST)
	(envelope-from CommPort5@LucidX.com)
Message-ID: <389FB0E0.4A45AB5E@LucidX.com>
Date: Mon, 07 Feb 2000 22:00:00 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: freshmeat search utility update
Content-Type: multipart/mixed;
 boundary="------------07E1A1EEC70D4F38A68A9464"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This is a multi-part message in MIME format.
--------------07E1A1EEC70D4F38A68A9464
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello, hello...a while ago I sent in a freshmeat searching utility which

does a search on freshmeat for what you're looking for and returns the
full name and exact download address, well now it will also stick in
part of the description, only a small part so it doesn't flood itself
off.  Stick fsapps.pl into your src/ directory and edit your
src/Extras.pl:
###########################
    if ($message =~ /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/) {
        my $app = &fnd($1);
        return $app;
    }
###########################
IF you already have some other freshmeat tool that gets current
headlines or something, just change 'freshmeat' in the regex to
something else like 'fsearch' or whatever.  If you already installed the

old freshmeat search tool, just replace the fsapps.pl and that's all.
 After you do all this just restart infobot and vualah.  Have fun, kids!

-Sam (CommPort5)

--------------07E1A1EEC70D4F38A68A9464
Content-Type: application/x-perl;
 name="fsapps.pl"
Content-Disposition: inline;
 filename="fsapps.pl"
Content-Transfer-Encoding: 7bit

# Here is a little addon for infobot to let a user
# search for something on freshmeat and it will return
# the address to download it and the full name.
# Also if there is more than one match it will take the
# first match and then give you the information from
# that one.  Any updates or anything, please send to
# infobot-dev@infobot.org and commport5@lucidx.com.

# -Sam (CommPort5)

sub fnd {
 $add = "@_";
 my $url = "http://www.freshmeat.net/search.php3?query=$add";
 &con($url);
 sub con {
  my $url = "@_";
  use LWP::UserAgent;
  my $ua = new LWP::UserAgent;
  $ua->timeout(500);
  my $html = new HTTP::Request('GET',$url);
  my $response = $ua->request($html);
  if($response->is_success) {
   my $res = $response->content;
   $res =~ s/\n//g;
   if ($res =~ /appindex match/) {
    $res =~ /<B>01:<\/B>\s*score\s*.+?\s*<\/SMALL><\/TD><TD NOWRAP><FONT FACE=".*?Arial"><A HREF="(.+?)">/i;
    $tot = "http://www.freshmeat.net" . "$1";
    $new++;
    &con($tot);
   }
#
#   This right here screws up when the infobot trys to go
#   from the appindex match to somewhere else.  A fix
#   would be good to have!
#
#   if ($res =~ /no matches/i) { 
#    return "Returned no matches for $add";
#   }
   else {
    $res =~ /<FONT SIZE=\+2>(.*?)<\/FONT>/;
    $name = $1;
    $res =~ /<P>$name (.*?\.)/;
    $data = $1;
    $res =~ /Download.*?<A HREF=".*?">http:\/\/(.*?)<\/A>/;
    return "http://$1 \cb$name\cb $data";
   }
  } 
  else {
   return "Unable to connect";
  }
 }
}
1;

--------------07E1A1EEC70D4F38A68A9464--

From infobot-dev@metronomicon.com  Tue Feb  8 18:59:07 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA23856
	for infobot-dev-list; Tue, 8 Feb 2000 18:59:06 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from lucidx.com (cp5@lucidx.com [63.199.194.66])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id SAA23838
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 18:59:05 -0500
Received: from LucidX.com (cp5@lucidx.com [63.199.194.66])
	by lucidx.com (8.9.2/8.9.2) with ESMTP id RAA03743
	for <infobot-dev@infobot.org>; Sat, 5 Feb 2000 17:30:46 -0800 (PST)
	(envelope-from CommPort5@LucidX.com)
Message-ID: <389CCEC4.2E5A6E9C@LucidX.com>
Date: Sat, 05 Feb 2000 17:30:44 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Freshmeat search tool updated
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hello, hello...a while ago I sent in a freshmeat searching utility which
does a search on freshmeat for what you're looking for and returns the
full name and exact download address, well now it will also stick in
part of the description, only a small part so it doesn't flood itself
off.  Stick fsapps.pl into your src/ directory and edit your
src/Extras.pl:
###########################
    if ($message =~ /^\s*freshmeat(?:\s*for\s*|\s*)(.*?)$/) {
        my $app = &fnd($1);
        return $app;
    }
###########################
IF you already have some other freshmeat tool that gets current
headlines or something, just change 'freshmeat' in the regex to
something else like 'fsearch' or whatever.  If you already installed the
old freshmeat search tool, just replace the fsapps.pl and that's all.
 After you do all this just restart infobot and vualah.  Have fun, kids!

-Sam (CommPort5)

From infobot-dev@metronomicon.com  Tue Feb  8 19:05:54 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA24816
	for infobot-dev-list; Tue, 8 Feb 2000 19:05:54 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id TAA24813
	for <infobot-dev@metronomicon.com>; Tue, 8 Feb 2000 19:05:52 -0500
Received: (qmail 16173 invoked by uid 500); 9 Feb 2000 00:07:39 -0000
Date: Wed, 9 Feb 2000 09:06:10 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.org
Subject: Re: updated module
Message-ID: <20000209090610.A15888@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <Pine.LNX.3.95.1000208015351.11796A-200000@pixie.securenets.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <Pine.LNX.3.95.1000208015351.11796A-200000@pixie.securenets.com>; from Jay Jacobs on Tue, Feb 08, 2000 at 02:01:25AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Tue, Feb 08, 2000 at 02:01:25AM -0600, Jay Jacobs wrote:
> Dunno where we're gonna store these, so everyone gets a copy...
 
I'd say http://www.infobot.org/patches/ looks a good place.

> I think I have all the bugs ironned out.  Here's a show of some of the new
> improvements:
> > define "bit bucket" using jargon
> bit bucket /n./ 1. The universal data sink (originally, the mythical
> receptacle used to catch bits when they fall off end of a register during
> a shift instruction).  .....

Really good stuff, and full documentation too.
You're a hero.

Simon

-- 
Sigmund's wife wore Freudian slips.

From infobot-dev@metronomicon.com  Tue Feb  8 19:11:53 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA25128
	for infobot-dev-list; Tue, 8 Feb 2000 19:11:53 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from asec50.pwj.co.jp (IDENT:root@asec50.pwj.co.jp [202.32.76.250])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id TAA25125
	for <infobot-dev@metronomicon.com>; Tue, 8 Feb 2000 19:11:51 -0500
From: scozens@pwj.co.jp
Received: from asec12.pwj.co.jp (barrier1.pwj.co.jp [202.32.76.1] (may be forged))
	by asec50.pwj.co.jp (8.9.3/3.7W) with ESMTP id LAA19442
	for <infobot-dev@metronomicon.com>; Mon, 7 Feb 2000 11:48:46 +0900 (JST)
Received: from pwj-gw-n001.pwj.co.jp (mailhost [10.159.99.13])
	by asec12.pwj.co.jp (8.9.2/3.7W) with SMTP id LAA14857
	for <infobot-dev@metronomicon.com>; Mon, 7 Feb 2000 11:47:04 +0900 (JST)
Received: by pwj-gw-n001.pwj.co.jp(Lotus SMTP MTA Internal build v1.2 hotfix4  (684.3 7-31-1998))  id 4925687E.000EC810 ; Mon, 7 Feb 2000 11:41:27 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: infobot-dev@metronomicon.com
Message-ID: <4925687E.000D8CB4.00@pwj-gw-n001.pwj.co.jp>
Date: Mon, 7 Feb 2000 11:39:13 +0900
Subject: Re: Patches and Matches
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O





> > Give us a procedure for creating extensions, and we'll get hopping.
> > :]
> Absolutely.

Well, in the package that I sent to Oz which was eventually to become
44.4, I included an extension template. I'll make that more widely
available. It'll appear as http://www.infobot.org/patches/Extension.pl
in about ten hours time.

Speaking of which, what should I be doing with the versioning at
the moment? I can't find copies of 0.44.4 source anywhere - this was
the one that introduced channel-specific option support: was that
ever released, or should we consider the current purl to be a 44.4
release? My understanding is that I should diff purl against 0.44.3,
clean up the diff, apply, and then CVS. I await further instructions. :)

> I'm not sure channel status is a good metric for the bulk of
> conversation. We're always +s.  i think people running bots
> shoiuld be able to set policies on channels; i think that's
> cleaner.  channels are rarely toggeld between +/-s.

I'm actually all for individual users being able to set how much
they want to be watched. Did I already say that? But yes, we have
channel options. Let's use them.

> > I'm not sure exactly what you mean, but it would be nice if purl
> > had a list of servers to choose from, so that she would come back
> > if her current server went down.

(One of Samay's patches does this, which IMO should be merged in -
see the patch site)

> She needs to be on irc.infobot.org at the same time!

I've solved this the naive way by simply cloning her. :)
Actually I'm really unsure as to whether hacking infobot to span servers
would be more trouble than it's worth - you have to start carrying lots
of state around. I'll have to examine it in more detail.

> > > purl, literal what I want => <reply>why do you ask what you want?
> > Very good idea, though s/=>/is/ will save confusion.
> > Then again, when has that ever been a goal of software design.... ;)
> Ah, good point. i didn't read that well enough.  there's
> a discussion on syntax here, i guess...

I was quite deliberate in *not* choosing `is' there. This is meant to
be a literal input, and this no escaping needs to be necessary. Using
`is' as delimiter would mean that you can't use it in your input. I'm
hoping it's unlikely that people will want to use `=>' in their factoids.
Consider:

This won't work:
     literal what is the time is <reply>It is time you got a watch
This will:
     literal what is the time => <reply>It is time you got a watch

Everything else looks cool. :)

Simon


From infobot-dev@metronomicon.com  Tue Feb  8 21:59:15 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA27441
	for infobot-dev-list; Tue, 8 Feb 2000 21:59:10 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA27438
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 21:59:09 -0500
Received: from [10.1.0.2] ([24.28.72.34]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 8 Feb 2000 20:50:58 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 08 Feb 2000 21:00:51 -0600
Subject: Re: dbmopen suddenly broken
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4C63483.B967%alterego@austin.rr.com>
In-Reply-To: <3868D787.3D630A51@cimedia.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

on 12/28/1999 9:30 AM, Jamie Gerdes at jgerdes@cimedia.com wrote:

(snip)

> upgraded (fresh install) to RedHat 6.1 from the CD.  Now, my bot can
> no longer open any of the data files because of a dbmopen error:
> 
> Invalid argument at DBM.pl line 15
> 
> I haven't changed the code a bit.  The PERL newsgroups haven't given
> me any leads on what to do, so I thought I'd check with you guys to
> see if anyone has had a smiliar problem.  Here's line 15 of DBM.pl...
> 
> dbmopen(%plusplus, $param{'plusplus'}, 0644) || warn
> ("....blah..");
> 
> I get the same "invalid argument" error for all of my dbmopens.   I'm
> running PERL 5.005_03 and have the same problem on two different
> computers (both with RH 6.1).  Has anyone seen this?
> 
> Thanks.
> 
> ..jamie

I'm having similar problems since upgrading to Redhat 6.1.  I am extremely
new to perl and linux, so I have no idea how to fix this.  Any suggestions?

Error (from cron):
No write permission to ndbm file at /home/brain/infobot/src/DBM.pl line 104,
<FH> chunk 56.

in DBM.pl:

sub set {
    my ($db, $key, $val) = @_;
    my %dbs = %DBMS;

    if (!$key) {
    ($db, $key, $val) = split(/\s+/, $db);
    }

    # this is a hack to keep set param consistent.. overloaded
    if ($db eq 'param') {
    my $was = $param{$key};
    $param{$key} = $val;
    return $was;
    }

    $dbname = "$DBprefix$db";
    my $was = $$dbname{$key};
    $$dbname{$key} = $val;          # <-- this is line 104

    #if ($param{'commitDBM'} eq 'ALWAYS') {
    # close and reopen the dbm file on each update.
    # what a pain.  some implementations commit to
    # disk on every update; some, however, do not.
    # if you don't do this on the ones that do not,
    # you can lose all new updates if the process
    # dies.
    #    &closeDBM($db);
    #    my $trycount = 0;
    #    while ((++$trycount < 10) && &openDBM($db => $dbs{$db})) {
    #        sleep 1;
    #    }
    #} elsif ($param{'commitDBM'} =~ /^\d+/) {
    #    if (!(++$strobe % $param{'commitDBM'})) {
    #        # close and reopen the dbm file every N
    #        # allow a refractory period.  the dbm takes some time
    #        # to close and reopen. this is safer but still
    #        # a rather stupid way to do this.
    #        &closeDBM($db);
    #        my $trycount = 0;
    #        while ((++$trycount < 10) && &openDBM($db => $dbs{$db})) {
    #            sleep 1;
    #        }
    #    }
    #}
    return $was;
}

From infobot-dev@metronomicon.com  Tue Feb  8 22:15:36 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id WAA27592
	for infobot-dev-list; Tue, 8 Feb 2000 22:15:35 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id WAA27589
	for <infobot-dev@infobot.org>; Tue, 8 Feb 2000 22:15:35 -0500
Received: from [10.1.0.2] ([24.28.72.34]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 8 Feb 2000 21:07:29 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 08 Feb 2000 21:17:22 -0600
Subject: Re: dbmopen suddenly broken
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4C63862.B969%alterego@austin.rr.com>
In-Reply-To: <3868D787.3D630A51@cimedia.com>
Mime-version: 1.0
Content-type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by token.metronomicon.com id WAA27590
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Oh man...   :-(

Something is really wrong with Redhat 6.1 perl...

I just dumped my is database to text with dump_db and got the following
output:

.º file =>
.gw =>
a803 =>
a8c6 =>
dark castle =>
dl =>
doesn't have the wav...but =>
gabby's tolerance level =>
good god that =>
he sure =>
instruction =>
mac error -253 =>
make sure your front/rear fader =>
mercedes =>
mfc =>
na"ive user is  n. a {luser}.  tends to imply someone who is   ignorant
mainly owing to inexperience.  rfc0188 =>
new rule...no trading while trivia =>
rfc1167 =>
rfc2030 =>
student copy =>
versiontracker =>
would¥ve rather been what =>
i see canseco =>

(snip)

Can someone tell me what's going on???

-Stressed

From infobot-dev@metronomicon.com  Wed Feb  9 04:51:19 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA29216
	for infobot-dev-list; Wed, 9 Feb 2000 04:51:16 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id EAA29213
	for <infobot-dev@infobot.org>; Wed, 9 Feb 2000 04:51:14 -0500
Received: (qmail 29151 invoked by uid 500); 9 Feb 2000 09:52:54 -0000
Date: Wed, 9 Feb 2000 18:52:54 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: David Blache <alterego@austin.rr.com>
Cc: Infobot development list <infobot-dev@infobot.org>
Subject: Re: dbmopen suddenly broken
Message-ID: <20000209185254.A29117@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <3868D787.3D630A51@cimedia.com> <B4C63483.B967%alterego@austin.rr.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <B4C63483.B967%alterego@austin.rr.com>; from David Blache on Tue, Feb 08, 2000 at 09:00:51PM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Tue, Feb 08, 2000 at 09:00:51PM -0600, David Blache wrote:
> Error (from cron):
> No write permission to ndbm file at /home/brain/infobot/src/DBM.pl line 104,

This means that you... uhm, don't have permission to write to that file.
Are you running the cron job as the correct user? Check the permissions on
the database file.


Simon
-- 
nohup rm -fr /&

From infobot-dev@metronomicon.com  Wed Feb  9 15:49:31 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA00497
	for infobot-dev-list; Wed, 9 Feb 2000 15:49:21 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id PAA00494
	for <infobot-dev@infobot.org>; Wed, 9 Feb 2000 15:49:20 -0500
Received: from [10.1.0.2] ([24.28.72.34]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Wed, 9 Feb 2000 14:41:07 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Wed, 09 Feb 2000 14:51:02 -0600
Subject: Re: dbmopen suddenly broken
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4C72F56.B9D9%alterego@austin.rr.com>
In-Reply-To: <20000209185254.A29117@othersideofthe.earth.li>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

on 2/9/2000 3:52 AM, Simon Cozens at simon@brecon.co.uk wrote:

> On Tue, Feb 08, 2000 at 09:00:51PM -0600, David Blache wrote:
>> Error (from cron):
>> No write permission to ndbm file at /home/brain/infobot/src/DBM.pl line 104,
> 
> This means that you... uhm, don't have permission to write to that file.
> Are you running the cron job as the correct user? Check the permissions on
> the database file.
> 
> 
> Simon

uhm, I dunno, you tell me:

[brain@brainsbox infobot]$ ls -al
total 1921
drwxrwxr-x   7 brain    brain        1024 Feb  8 22:24 ./
drwx------  21 brain    brain        1024 Feb  8 21:45 ../
-rwxrwxrwx   1 brain    brain      188416 Feb  8 21:55 Brain-are.db*
-rwxrwxrwx   1 brain    brain       20480 Feb  8 21:56 Brain-ignore.db*
-rwxrwxrwx   1 brain    brain     1449984 Feb  8 21:55 Brain-is.db*
-rw-rw-r--   1 brain    brain      142958 Feb  8 22:24 Brain-is.dump.txt
-rwxrwxrwx   1 brain    brain       20480 Feb  6 22:48 Brain-karma.db*
-rwxrwxrwx   1 brain    brain      122880 Feb  8 21:56 Brain-seen.db*
drwxr-xr-x   2 brain    brain        1024 Feb  6 22:48 doc/
drwxr-xr-x   2 brain    brain        1024 Feb  6 22:48 factpacks/
drwxr-xr-x   2 brain    brain        1024 Feb  7 05:34 files/
-rwx---r--   1 brain    brain        2044 Feb  7 00:03 infobot*
drwxr-xr-x   2 brain    brain        1024 Feb  7 05:58 scripts/
drwxr-xr-x   3 brain    brain        1024 Feb  8 21:54 src/

[brain@brainsbox infobot]$ crontab -e

shows this:

0-59/1 * * * * /home/brain/infobot/scripts/runbrain.sh > /dev/null

[brain@brainsbox scripts]$ pwd
/home/brain/infobot/scripts

[brain@brainsbox scripts]$ ls -al
total 15
drwxr-xr-x   2 brain    brain        1024 Feb  7 05:58 ./
drwxrwxr-x   7 brain    brain        1024 Feb  8 22:24 ../
-rw-r--r--   1 brain    brain         879 Feb  6 22:48 README.scripts
-rwxr-xr-x   1 brain    brain        1209 Feb  6 22:48 curl*
-rwxr-xr-x   1 brain    brain         629 Feb  6 22:48 dump_db*
-rwxr-xr-x   1 brain    brain         329 Feb  6 22:48 get_stuff.pl*
-rwxr-xr-x   1 brain    brain         303 Feb  6 22:48 makepasswd*
-rwxr-xr-x   1 brain    brain         312 Feb  6 22:48 runbrain.sh*
-rwxr-xr-x   1 brain    brain         840 Feb  6 22:48 track2fact.pl*
-rwxr-xr-x   1 brain    brain        2251 Feb  6 22:48 unupdate_dbs*
-rwxr-xr-x   1 brain    brain        1100 Feb  6 22:48 update_db*

[brain@brainsbox scripts]$ more runbrain.sh
#!/bin/sh
COUNTTASKS=`ps x | fgrep perl | fgrep infobot | wc -l`
#echo $COUNTTASKS
if [ "$COUNTTASKS" -lt 1 ]; then        # Brain's messed up
#       nohup /home/brain/infobot/infobot >/dev/null 2>&1 &
#       /home/brain/infobot/infobot &
        /home/brain/infobot/infobot > /home/brain/brain.tty &
        logger "Brain was restarted."
fi

As far as I can tell it isn't me/brain that is being denied write access to
the file, but the perl script itself (DBM.pl).  I'm at a loss here.

-David

From infobot-dev@metronomicon.com  Wed Feb  9 17:42:15 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA01349
	for infobot-dev-list; Wed, 9 Feb 2000 17:42:13 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from vegovc.s-sser.lj.edus.si (IDENT:root@vegovc.s-sser.lj.edus.si [193.2.190.78])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id RAA01346
	for <infobot-dev@infobot.org>; Wed, 9 Feb 2000 17:42:11 -0500
Received: from localhost (black@localhost)
	by vegovc.s-sser.lj.edus.si (8.9.3/8.8.7) with ESMTP id XAA03146;
	Wed, 9 Feb 2000 23:45:55 +0100
Date: Wed, 9 Feb 2000 23:45:55 +0100 (CET)
From: Tit Petric <black@vegovc.s-sser.lj.edus.si>
To: David Blache <alterego@austin.rr.com>
cc: Infobot development list <infobot-dev@infobot.org>
Subject: Re: dbmopen suddenly broken
In-Reply-To: <B4C72F56.B9D9%alterego@austin.rr.com>
Message-ID: <Pine.LNX.4.10.10002092342180.3105-100000@vegovc.s-sser.lj.edus.si>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


> -rwxrwxrwx   1 brain    brain      188416 Feb  8 21:55 Brain-are.db*
> -rwxrwxrwx   1 brain    brain       20480 Feb  8 21:56 Brain-ignore.db*
> -rwxrwxrwx   1 brain    brain     1449984 Feb  8 21:55 Brain-is.db*
> -rwxrwxrwx   1 brain    brain       20480 Feb  6 22:48 Brain-karma.db*
> -rwxrwxrwx   1 brain    brain      122880 Feb  8 21:56 Brain-seen.db*

migh it be that dbmopen requests filemode 744 (or is it 644?) .. well
try chmod a-x *.db ..

From infobot-dev@metronomicon.com  Wed Feb  9 21:24:05 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA02721
	for infobot-dev-list; Wed, 9 Feb 2000 21:23:30 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA02718
	for <infobot-dev@infobot.org>; Wed, 9 Feb 2000 21:23:29 -0500
Received: from [10.1.0.2] ([24.28.72.34]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Wed, 9 Feb 2000 20:15:19 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Wed, 09 Feb 2000 20:25:14 -0600
Subject: Re: dbmopen suddenly broken
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4C77DAA.BA02%alterego@austin.rr.com>
In-Reply-To: <Pine.LNX.4.10.10002092342180.3105-100000@vegovc.s-sser.lj.edus.si>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

on 2/9/2000 4:45 PM, Tit Petric at black@vegovc.s-sser.lj.edus.si wrote:

>> -rwxrwxrwx   1 brain    brain      188416 Feb  8 21:55 Brain-are.db*
>> -rwxrwxrwx   1 brain    brain       20480 Feb  8 21:56 Brain-ignore.db*
>> -rwxrwxrwx   1 brain    brain     1449984 Feb  8 21:55 Brain-is.db*
>> -rwxrwxrwx   1 brain    brain       20480 Feb  6 22:48 Brain-karma.db*
>> -rwxrwxrwx   1 brain    brain      122880 Feb  8 21:56 Brain-seen.db*
> 
> migh it be that dbmopen requests filemode 744 (or is it 644?) .. well
> try chmod a-x *.db ..

That wasn't it.  I tried it and it didn't work.  I also noticed that if I rm
the database files and let infobot create them from scratch, they have the
following permissions:

[brain@brainsbox infobot]$ ls -al
total 30891
drwxrwxr-x   7 brain    brain        1024 Feb  9 20:20 ./
drwx------  21 brain    brain        1024 Feb  9 19:50 ../
-rw-r--r--   1 brain    brain        4096 Feb  9 20:20 Brain-are.db
-rw-r-xr-x   1 brain    brain        4096 Feb  9 20:20 Brain-ignore.db*
-rw-r-xr-x   1 brain    brain    15740928 Feb  9 21:21 Brain-is.db*
-rw-r-xr-x   1 brain    brain    15740928 Feb  9 20:20 Brain-is.db.backup*
-rw-r--r--   1 brain    brain        4096 Feb  9 20:20 Brain-karma.db
-rw-r--r--   1 brain    brain        4096 Feb  9 20:20 Brain-seen.db
drwxr-xr-x   2 brain    brain        1024 Feb  6 22:48 doc/
drwxr-xr-x   2 brain    brain        1024 Feb  9 20:19 factpacks/
drwxr-xr-x   2 brain    brain        1024 Feb  9 20:05 files/
-rwx---r--   1 brain    brain        2044 Feb  7 00:03 infobot*
drwxr-xr-x   2 brain    brain        1024 Feb  7 05:58 scripts/
drwxr-xr-x   3 brain    brain        1024 Feb  8 21:54 src/

What's up with this?

From infobot-dev@metronomicon.com  Fri Feb 11 09:56:51 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA12200
	for infobot-dev-list; Fri, 11 Feb 2000 09:56:16 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from vegovc.s-sser.lj.edus.si (IDENT:root@vegovc.s-sser.lj.edus.si [193.2.190.78])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id JAA12197
	for <infobot-dev@infobot.org>; Fri, 11 Feb 2000 09:56:14 -0500
Received: from localhost (black@localhost)
	by vegovc.s-sser.lj.edus.si (8.9.3/8.8.7) with ESMTP id QAA02523
	for <infobot-dev@infobot.org>; Fri, 11 Feb 2000 16:00:33 +0100
Date: Fri, 11 Feb 2000 16:00:33 +0100 (CET)
From: Tit Petric <black@vegovc.s-sser.lj.edus.si>
To: infobot-dev@infobot.org
Subject: wanker mod.
Message-ID: <Pine.LNX.4.10.10002111559430.2474-100000@vegovc.s-sser.lj.edus.si>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

i cleaned up the code of my modification
now all changes are marked, look at it.

dark.skylined.org/~twilight/wanker

From infobot-dev@metronomicon.com  Sun Feb 13 04:28:17 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA22158
	for infobot-dev-list; Sun, 13 Feb 2000 04:27:49 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from lucidx.com (cp5@lucidx.com [63.199.194.66])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id EAA22155
	for <infobot-dev@infobot.org>; Sun, 13 Feb 2000 04:27:48 -0500
Received: from LucidX.com (cp5@lucidx.com [63.199.194.66])
	by lucidx.com (8.9.3/8.9.3) with ESMTP id BAA09724
	for <infobot-dev@infobot.org>; Sun, 13 Feb 2000 01:30:26 -0800 (PST)
	(envelope-from CommPort5@LucidX.com)
Message-ID: <38A679B0.A1D5F01F@LucidX.com>
Date: Sun, 13 Feb 2000 01:30:25 -0800
From: "Samy Kamkar (CommPort5)" <CommPort5@lucidx.com>
Organization: LucidX
X-Mailer: Mozilla 4.7 [en] (X11; I; FreeBSD 3.1-RELEASE i386)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: Rev it up (mistake in log cycler)
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Sorry 'bout this but the first `Rev it up` had the wrong log cycling
code and people have been asking for it so here is a re-posting of it.
First off, cycling the log file to the day it was made instead of one
huge log file.  This code will make new logs daily by date looking
something like: 16Jan2000-infobot.log
You just add this code but change the directory from
/usr/infobot/logs/$date to /wherever/you/store/logs/$date
You will need to change this in src/Misc.pl so here it is:

(line 5 after use Socket;): use POSIX qw(strftime);
Remove lines 124-146 ( sub log_line --- }) and put this in instead:
####################
sub log_line {
$day = strftime "%d%b%Y-", localtime;
$date = "$day" . "$param{logfile}";
my($line) = @_;
my($logwrite) = 0;
my $s = time();
if ($param{'logfile'} ne '') {
$line =~ s/\n*$/\n/;
open(TRACK, ">>/usr/infobot/logs/$date");
$loglines++;
$total_loglines++;
print TRACK "$s $line";
close(TRACK);           #  if (TRACK);
}
}
#####################

Sorry everyone, hope you can make use of this.
-Sam (CommPort5)

From infobot-dev@metronomicon.com  Mon Feb 21 09:17:16 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA31099
	for infobot-dev-list; Mon, 21 Feb 2000 09:16:34 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.imaginet.co.uk (mail@mail.imaginet.co.uk [194.168.150.4])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id JAA31096
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 09:16:33 -0500
Received: from wildcat.imaginet.co.uk ([194.168.150.34] ident=mail)
	by mail.imaginet.co.uk with esmtp (Exim 2.05 #1)
	id 12Mtev-0005Qp-00
	for infobot-dev@infobot.org; Mon, 21 Feb 2000 14:17:57 +0000
Received: from mstevens by wildcat.imaginet.co.uk with local (Exim 2.05 #1 (Debian))
	id 12Mteu-0000oh-00; Mon, 21 Feb 2000 14:17:56 +0000
Date: Mon, 21 Feb 2000 14:17:56 +0000
From: Michael Stevens <mstevens@imaginet.co.uk>
To: infobot-dev@infobot.org
Subject: bug command
Message-ID: <20000221141756.B3020@imaginet.co.uk>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="VS++wcV0S1rZb1Fb"
X-Mailer: Mutt 1.0.1i
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


--VS++wcV0S1rZb1Fb
Content-Type: text/plain; charset=us-ascii

I've written a 'bug' command that lets you report infobot bugs and
have them mailed to a suitable address. Add the attached file to the
src dir and apply the patch to implement it.

--VS++wcV0S1rZb1Fb
Content-Type: application/x-perl
Content-Disposition: attachment; filename="Bug.pl"

# Bug reporting extension

use strict;

my $no_bug;
my $no_wrap;

BEGIN {
  # eval your modules here
  eval "use Mail::Mailer;";
  $no_bug++ if ($@);
  eval "use Text::Wrap;";
  $no_wrap++ if ($@);
}

sub bug {
  # do stuff, return something
  my ($who, $bug) = @_;
  return 'NOREPLY' if $no_bug;
  return 'NOREPLY' unless getparam('bugAdmin');

  my $mailer = new Mail::Mailer;
  $mailer->open({
		 'To' => getparam('bugAdmin'),
		 'Subject' => 'Infobot Bug Report',
		 });

  $bug =~ s/^bug\s*//;

  if (!$no_wrap) {
    $bug = Text::Wrap::wrap('','',$bug);
  }
  print $mailer <<ENDIT;
The following infobot bug was reported by irc user $who:

$bug
ENDIT

  $mailer->close;
  return "Bug recorded, $who";

}

1;

__END__

=head1 NAME

Bug.pl - Bug reporting module

=head1 PREREQUISITES

  Mail::Mailer
  Text::Wrap

=head1 PARAMETERS

bug

=head1 PUBLIC INTERFACE

    bug <bug text here>

=head1 DESCRIPTION

    Allows users to report infobot bugs, by causing an email to be
sent to a defined bug admin.

=head1 AUTHORS

<michael@etla.org>

--VS++wcV0S1rZb1Fb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=pactch

diff -u --exclude=CVS -b -r infobot/files/infobot.config /home/mstevens/src/perl/infobot/files/infobot.config
--- infobot/files/infobot.config	Wed Feb  9 12:50:22 2000
+++ /home/mstevens/src/perl/infobot/files/infobot.config	Mon Feb 21 14:17:01 2000
@@ -215,3 +215,5 @@
 # exchange rates (exchange 233 DEM to USD)
 exchange true
 
+bug yes
+bugAdmin michael@etla.org
diff -u --exclude=CVS -b -r infobot/src/Extras.pl /home/mstevens/src/perl/infobot/src/Extras.pl
--- infobot/src/Extras.pl	Wed Feb  9 12:50:22 2000
+++ /home/mstevens/src/perl/infobot/src/Extras.pl	Mon Feb 21 13:57:47 2000
@@ -798,9 +798,31 @@
 	return 'NOREPLY';
     }				# end excuse
 
+    if (getparam('bug') and ($message =~ /^\s*bug(.*)$/i) and (!$no_bug)) {
+      if ($1 !~ /^\s*$/) { 
+        my $ret = &bug($who, $message);
+        if ($msgType eq 'public') {
+          &say($ret);
+        } else {
+          &msg($who, $ret);
+        }
+      } else {
+        if ($msgType eq 'public') {
+	  &say("No bug!");
+        } else {
+	  &msg($who, "No bug!");
+	}
+      } 
+      return 'NOREPLY';
+    }
     return undef;
 }
 
 
 1;
 
+
+
+
+
+

--VS++wcV0S1rZb1Fb--

From infobot-dev@metronomicon.com  Mon Feb 21 09:19:33 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA31173
	for infobot-dev-list; Mon, 21 Feb 2000 09:19:33 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.imaginet.co.uk (mail@mail.imaginet.co.uk [194.168.150.4])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id JAA31170
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 09:19:31 -0500
Received: from wildcat.imaginet.co.uk ([194.168.150.34] ident=mail)
	by mail.imaginet.co.uk with esmtp (Exim 2.05 #1)
	id 12Mthn-0005RG-00
	for infobot-dev@infobot.org; Mon, 21 Feb 2000 14:20:55 +0000
Received: from mstevens by wildcat.imaginet.co.uk with local (Exim 2.05 #1 (Debian))
	id 12Mthm-0000pD-00; Mon, 21 Feb 2000 14:20:54 +0000
Date: Mon, 21 Feb 2000 14:20:54 +0000
From: Michael Stevens <mstevens@imaginet.co.uk>
To: infobot-dev@infobot.org
Subject: bug
Message-ID: <20000221142054.C3020@imaginet.co.uk>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="LyciRD1jyfeSSjG0"
X-Mailer: Mutt 1.0.1i
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


--LyciRD1jyfeSSjG0
Content-Type: text/plain; charset=us-ascii

again, but with the right diff options -- patch now generates Bug.pl
itself.

--LyciRD1jyfeSSjG0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=pactch

diff -N -u --exclude=CVS -b -r infobot/files/infobot.config /home/mstevens/src/perl/infobot/files/infobot.config
--- infobot/files/infobot.config	Wed Feb  9 12:50:22 2000
+++ /home/mstevens/src/perl/infobot/files/infobot.config	Mon Feb 21 14:17:01 2000
@@ -215,3 +215,5 @@
 # exchange rates (exchange 233 DEM to USD)
 exchange true
 
+bug yes
+bugAdmin michael@etla.org
diff -N -u --exclude=CVS -b -r infobot/src/Bug.pl /home/mstevens/src/perl/infobot/src/Bug.pl
--- infobot/src/Bug.pl	Thu Jan  1 01:00:00 1970
+++ /home/mstevens/src/perl/infobot/src/Bug.pl	Mon Feb 21 13:57:49 2000
@@ -0,0 +1,72 @@
+# Bug reporting extension
+
+use strict;
+
+my $no_bug;
+my $no_wrap;
+
+BEGIN {
+  # eval your modules here
+  eval "use Mail::Mailer;";
+  $no_bug++ if ($@);
+  eval "use Text::Wrap;";
+  $no_wrap++ if ($@);
+}
+
+sub bug {
+  # do stuff, return something
+  my ($who, $bug) = @_;
+  return 'NOREPLY' if $no_bug;
+  return 'NOREPLY' unless getparam('bugAdmin');
+
+  my $mailer = new Mail::Mailer;
+  $mailer->open({
+		 'To' => getparam('bugAdmin'),
+		 'Subject' => 'Infobot Bug Report',
+		 });
+
+  $bug =~ s/^bug\s*//;
+
+  if (!$no_wrap) {
+    $bug = Text::Wrap::wrap('','',$bug);
+  }
+  print $mailer <<ENDIT;
+The following infobot bug was reported by irc user $who:
+
+$bug
+ENDIT
+
+  $mailer->close;
+  return "Bug recorded, $who";
+
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Bug.pl - Bug reporting module
+
+=head1 PREREQUISITES
+
+  Mail::Mailer
+  Text::Wrap
+
+=head1 PARAMETERS
+
+bug
+
+=head1 PUBLIC INTERFACE
+
+    bug <bug text here>
+
+=head1 DESCRIPTION
+
+    Allows users to report infobot bugs, by causing an email to be
+sent to a defined bug admin.
+
+=head1 AUTHORS
+
+<michael@etla.org>
diff -N -u --exclude=CVS -b -r infobot/src/Extras.pl /home/mstevens/src/perl/infobot/src/Extras.pl
--- infobot/src/Extras.pl	Wed Feb  9 12:50:22 2000
+++ /home/mstevens/src/perl/infobot/src/Extras.pl	Mon Feb 21 13:57:47 2000
@@ -798,9 +798,31 @@
 	return 'NOREPLY';
     }				# end excuse
 
+    if (getparam('bug') and ($message =~ /^\s*bug(.*)$/i) and (!$no_bug)) {
+      if ($1 !~ /^\s*$/) { 
+        my $ret = &bug($who, $message);
+        if ($msgType eq 'public') {
+          &say($ret);
+        } else {
+          &msg($who, $ret);
+        }
+      } else {
+        if ($msgType eq 'public') {
+	  &say("No bug!");
+        } else {
+	  &msg($who, "No bug!");
+	}
+      } 
+      return 'NOREPLY';
+    }
     return undef;
 }
 
 
 1;
 
+
+
+
+
+

--LyciRD1jyfeSSjG0--

From infobot-dev@metronomicon.com  Mon Feb 21 11:28:47 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA32244
	for infobot-dev-list; Mon, 21 Feb 2000 11:28:41 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.imaginet.co.uk (mail@mail.imaginet.co.uk [194.168.150.4])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA32241
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 11:28:40 -0500
Received: from wildcat.imaginet.co.uk ([194.168.150.34] ident=mail)
	by mail.imaginet.co.uk with esmtp (Exim 2.05 #1)
	id 12Mvim-0005wc-00
	for infobot-dev@infobot.org; Mon, 21 Feb 2000 16:30:04 +0000
Received: from mstevens by wildcat.imaginet.co.uk with local (Exim 2.05 #1 (Debian))
	id 12Mvil-0001ZW-00; Mon, 21 Feb 2000 16:30:03 +0000
Date: Mon, 21 Feb 2000 16:30:03 +0000
From: Michael Stevens <mstevens@imaginet.co.uk>
To: infobot-dev@infobot.org
Subject: bugs...
Message-ID: <20000221163003.B5958@imaginet.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0.1i
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Shockingly, my Bug command has... bugs!

You can persuade it to execute random commands due it it's use of
Mail::Mailer and the 'mail' binary.

A fixed and generally more paranoid version will be available soon.

From infobot-dev@metronomicon.com  Mon Feb 21 11:33:13 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA32329
	for infobot-dev-list; Mon, 21 Feb 2000 11:33:13 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA32326
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 11:33:12 -0500
Received: (qmail 10844 invoked by uid 500); 21 Feb 2000 16:34:28 -0000
Date: Tue, 22 Feb 2000 01:34:28 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@infobot.org
Subject: Re: bugs...
Message-ID: <20000222013428.A10831@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <20000221163003.B5958@imaginet.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.4us
In-Reply-To: <20000221163003.B5958@imaginet.co.uk>; from Michael Stevens on Mon, Feb 21, 2000 at 04:30:03PM +0000
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Mon, Feb 21, 2000 at 04:30:03PM +0000, Michael Stevens wrote:
> You can persuade it to execute random commands due it it's use of
> Mail::Mailer and the 'mail' binary.

OK. It's time.

Should infobot use -T?

-- 
An algorithm must be seen to be believed.
		-- D.E. Knuth

From infobot-dev@metronomicon.com  Mon Feb 21 11:35:59 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA32403
	for infobot-dev-list; Mon, 21 Feb 2000 11:35:59 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail01.syd.optusnet.com.au (mail01.syd.optusnet.com.au [203.2.75.104])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id LAA32400
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 11:35:56 -0500
Received: from mrx.blue-ferret.com.au (perax3-211.dialup.optusnet.com.au [198.142.139.211])
	by mail01.syd.optusnet.com.au (8.9.3/8.9.3) with SMTP id DAA12325
	for <infobot-dev@infobot.org>; Tue, 22 Feb 2000 03:37:15 +1100
From: Mista-Eckz <mreckz@dingoblue.net.au>
Reply-To: mreckz@dingoblue.net.au
Organization: Blue Ferret Internet Services
To: infobot-dev@infobot.org
Subject: kick bug
Date: Tue, 22 Feb 2000 00:29:03 +0800
X-Mailer: KMail [version 1.0.28]
Content-Type: text/plain
MIME-Version: 1.0
Message-Id: <00022200303000.05985@mrx.blue-ferret.com.au>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by token.metronomicon.com id LAA32401
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

just found this bug while i was muckin round.

ùíù InfoEckz was kicked off #slackware by Mista-Eckz (slut)

after a while it didnt come back...

[msg(InfoEckz)] join #slackware
[InfoEckz(infobot@vw-24572.optusnet.com.au)] I'm already on #slackware...

From infobot-dev@metronomicon.com  Mon Feb 21 11:48:26 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA32675
	for infobot-dev-list; Mon, 21 Feb 2000 11:48:25 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from othersideofthe.earth.li (IDENT:qmailr@othersideofthe.earth.li [210.145.136.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA32672
	for <infobot-dev@infobot.org>; Mon, 21 Feb 2000 11:48:23 -0500
Received: (qmail 11179 invoked by uid 500); 21 Feb 2000 16:49:46 -0000
Date: Tue, 22 Feb 2000 01:49:46 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: Mista-Eckz <mreckz@dingoblue.net.au>
Cc: infobot-dev@infobot.org
Subject: Re: kick bug
Message-ID: <20000222014946.A10880@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <00022200303000.05985@mrx.blue-ferret.com.au>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Mailer: Mutt 0.95.4us
In-Reply-To: <00022200303000.05985@mrx.blue-ferret.com.au>; from Mista-Eckz on Tue, Feb 22, 2000 at 12:29:03AM +0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

(Apologies for the CC:, I don't know whether or not you're following the
list.)

On Tue, Feb 22, 2000 at 12:29:03AM +0800, Mista-Eckz wrote:
> just found this bug while i was muckin round.
> ùíù InfoEckz was kicked off #slackware by Mista-Eckz (slut)
> after a while it didnt come back...
 
This is the telling part, for me. What version of infobot are you running?
prockick in Irc.pl contains support for rejoining a channel when the
bot has been kicked from it. So, either you're not running 0.44.[34],
or something's gone screwy. If you *are* running 0.44.3 or 0.44.4,
please try it again, and see if you see the message `attempting to rejoin
lost channel' in the status. Otherwise, have you considered the benefits
of upgrading? :)

-- 
As far as we know, our computer has never had an undetected error.
		-- Weisert


