From infobot-dev@metronomicon.com  Sun Nov 14 01:08:40 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA02040
	for infobot-dev-list; Sun, 14 Nov 1999 01:08:23 -0500
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 BAA02037
	for <infobot-dev@metronomicon.com>; Sun, 14 Nov 1999 01:08:23 -0500
Received: from ip190.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa28809; 14 Nov 99 1:07 EST
Message-ID: <382E5197.6465F92F@cs.cmu.edu>
Date: Sun, 14 Nov 1999 01:07:19 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@metronomicon.com
Subject: some terms
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

OK from an on-#perl discussion we have 

botspace  -- the world inside the infobot; in the
   sandbox.

codespace -- the more general, here's-some-rope,
   hang-yourself world where most of infobot-dev
   live.

then i would also recall halfjack's presentation at
yapc where he mentioned

inband  -- human - human interation; the "band" is
   the human relation task.  the bot chimes in with
   assistive or augmentive information as a supplement
   to conversation

outband -- "out" of human-human band; talking to the
   bot.  we tend to discourage talking to the bot,
   but play with it ourselves.

Simon++ perhaps we should start a glossary?

kevin

From infobot-dev@metronomicon.com  Sun Nov 14 03:49:15 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id DAA02538
	for infobot-dev-list; Sun, 14 Nov 1999 03:49:14 -0500
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 DAA02535
	for <infobot-dev@metronomicon.com>; Sun, 14 Nov 1999 03:49:11 -0500
Received: (qmail 20272 invoked by uid 500); 14 Nov 1999 08:48:05 -0000
Date: Sun, 14 Nov 1999 17:48:05 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Miscellaneous patches
Message-ID: <19991114174805.A20113@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: RO

I've collected together and minorly annotated all the random crap that I've
got lying around for the infobot, and it's up at
http://othersideofthe.earth.li/infobot/

I keep meaning to get around to a few modules: I did one that did CPAN
lookups, but I can't find it now, and I think someone else has done it too.
Right now, the priority for me is a *really good* timezone extension. 
(purl, time in Athens?)

To save you wandering off to see something that might not interest you
at all, here's a dump of the index page:

                                Infobot Patches
                                       
   Random hacks, mix and match.
     _________________________________________________________________
   
Extensions

   [1]Botmail.pl - Message passing along with [2]instructions as to what
   you need to hack to make it work. This has been tested and works.
   Needs documenting, though.
   
   [3]SMS.pl - /msg someone's pager. Yow! Just stick
    if ($message =~ /^SMS to (.*?)\s*: (.*)/i) {
        return sms_send($1,$who,$2);
    }

   into Extras.pl; untested, no docs.
   
   [4]oxdate.pl - You almost certainly don't want this. Converts Oxford
   University calendar to Gregorian and back again. Tested, no docs. Glue
   lines:
    if ($message=~ /^oxdate (.*)/) {
        performReply(oxdate("to",$1)); return 'NOREPLY';
    }

    if ($message=~ /^unoxdate (.*)/) {
        performReply(oxdate("from",$1)); return 'NOREPLY';
    }
     _________________________________________________________________
   
Patches

   These are extremely experimental and nasty.
   
   [5]DBM More Info - Do NOT apply this patch if you currently have any
   data. Provides a multilevel framework for factoid storage, allowing
   you to get at how many accesses and modifications the factoid has had,
   and when it was last accessed. (It won't work anyway, because I need
   to change the dbmopens to MLDBM ties.)
   
   [6]Factoid Aliasing - Saying `foo is <alias>bar' will symlink foo to
   bar. Incompatible with above patch.
   
   [7]Flood Protection - A relatively naive way of doing flood protection
   by checking every five seconds to see how much has been said.
   
   [8]Nickometer on Join - When someone joins the channel, the bot
   nickometers their nick and responds sarcastically.
     _________________________________________________________________
   
   Do not forget to *enjoy the source*.

Simon

-- 
"If the future navigation system [for interactive networked services on
the NII] looks like something from Microsoft, it will never work."
(Chairman of Walt Disney Television & Telecommunications)

From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Infobot...bug?
Message-ID: <19991115183855.A16599@pound.perl.org>
References: <19991115145450.A13041@pound.perl.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <19991115145450.A13041@pound.perl.org>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: ROr

>purl< literal karma for masque
[purl] Masque: literal karma for masque =is= <reply>Lots and lots! And lots! 
           And lots of lots! See also 'bunches'.
>purl< forget karma for masque
[purl] Masque: I forgot karma for masque
[purl] NOREPLY

Hmm.

Masque

From infobot-dev@metronomicon.com  Mon Nov 15 20:30:53 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA11016
	for infobot-dev-list; Mon, 15 Nov 1999 20:30:52 -0500
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 UAA11013
	for <infobot-dev@metronomicon.com>; Mon, 15 Nov 1999 20:30:51 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id TAA18064
	for infobot-dev@metronomicon.com; Mon, 15 Nov 1999 19:28:22 -0600 (CST)
Date: Mon, 15 Nov 1999 19:28:22 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Another?
Message-ID: <19991115192822.B16599@pound.perl.org>
References: <19991115145450.A13041@pound.perl.org> <19991115183855.A16599@pound.perl.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <19991115183855.A16599@pound.perl.org>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

<Nasu-chan> purl, mondays are also a good excuse to drink
<purl> okay, Nasu-chan.
<purl> OK, Nasu-chan.

Seen this a couple of times today.

Masque

From infobot-dev@metronomicon.com  Mon Nov 15 21:12:57 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA11239
	for infobot-dev-list; Mon, 15 Nov 1999 21:12:55 -0500
Received: (from lenzo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA11233;
	Mon, 15 Nov 1999 21:12:53 -0500
From: lenzo@metronomicon.com
Message-Id: <199911160212.VAA11233@token.metronomicon.com>
Subject: Re: Infobot...bug?
To: masque@pound.perl.org (Masque)
Date: Mon, 15 Nov 1999 21:12:53 -0500 (EST)
Cc: infobot-dev@metronomicon.com
In-Reply-To: <19991115183855.A16599@pound.perl.org> from "Masque" at Nov 15, 1999 06:38:55 PM
X-Mailer: ELM [version 2.5 PL0pre8]
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

OK i was testing today.  

This should be resolved.  I'd be obliged if people
beat on the bot this eve so i can get closer
to releasing 0.44.4 ... try to work with purl
and find anything i missed.  the whole thing
has had quite a bit of code motion.

kevin

> 
> >purl< literal karma for masque
> [purl] Masque: literal karma for masque =is= <reply>Lots and lots! And lots! 
>            And lots of lots! See also 'bunches'.
> >purl< forget karma for masque
> [purl] Masque: I forgot karma for masque
> [purl] NOREPLY
> 
> Hmm.
> 
> Masque
> 

From infobot-dev@metronomicon.com  Mon Nov 15 23:09:58 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id XAA11512
	for infobot-dev-list; Mon, 15 Nov 1999 23:09:56 -0500
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 XAA11509
	for <infobot-dev@metronomicon.com>; Mon, 15 Nov 1999 23:09:55 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id WAA19802
	for infobot-dev@metronomicon.com; Mon, 15 Nov 1999 22:07:26 -0600 (CST)
Date: Mon, 15 Nov 1999 22:07:26 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: And another.
Message-ID: <19991115220726.A19757@pound.perl.org>
References: <19991115183855.A16599@pound.perl.org> <199911160212.VAA11233@token.metronomicon.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <199911160212.VAA11233@token.metronomicon.com>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

<Masque> purldoc append
<purl> No matches for keyphrase 'purldoc append' found.
<DrForr> Addi - It draws!
<Masque> purldoc my ass
<purl> No matches for keyphrase 'purldoc  ass' found.

'purldoc' was removed from the string in the past - looks like 
the substitution in Extras.pl was replaced with a match...?

Masque

From infobot-dev@metronomicon.com  Tue Nov 16 03:22:36 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id DAA12105
	for infobot-dev-list; Tue, 16 Nov 1999 03:22:34 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id DAA12102
	for <infobot-dev@metronomicon.com>; Tue, 16 Nov 1999 03:22:33 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id BAA18836
	for <infobot-dev@metronomicon.com>; Tue, 16 Nov 1999 01:21:39 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Tue, 16 Nov 99 01:20:05 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8gc9@burner.com>; Tue, 16 Nov 99 01:13:52 MST
Date: Tue, 16 Nov 99 01:13:52 MST
Message-Id: <9911160813.8gc9@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: Another quirky
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

<Brazilian> regurg, ! 
<regurg> ! are u running pci video? 
<Brazilian> forget ! 
<regurg> Brazilian, I didn't have anything matching 

I see things like this stuck in the bot all the time, that I can't get
out.


 :        Bob Maple          :                                             :
 :   bmaple at burner.com    :     Help stamp out, remove and abolish      :
 : www.dimensional.com/~bobm :     redundancy.                             :


From KMeltzer@USCO.com  Tue Nov 16 09:49:10 1999
Return-Path: <KMeltzer@USCO.com>
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 JAA13164;
	Tue, 16 Nov 1999 09:49:09 -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 JAA14615;
	Tue, 16 Nov 1999 09:48:17 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <W59Q8D3X>; Tue, 16 Nov 1999 09:48:16 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F20757F8@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: "'lenzo@metronomicon.com'" <lenzo@metronomicon.com>
Cc: infobot-dev@metronomicon.com
Subject: RE: Infobot...bug?
Date: Tue, 16 Nov 1999 09:48:06 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: text/plain;
	charset="iso-8859-1"
Status: RO

Two different outcomes for same thing...

In public:

<{KM}> CPAN?
<purl> CPAN is the Comprehensive Perl Archive Network and is at
http://www.perl.com/CPAN/ or at http://www.perl.org/CPAN/ or perl -MCPAN -e
shell or perldoc CPAN or the CPAN.pm module (available at
http://www.perl.com/CPAN/modules/by-module/CPAN/ or the Canadian
Parliamentary Access [television] Network or at http://www.cpan.org or
http://search.cpan.org/


in /msg
<{KM}> CPAN?
<purl> CPAN is {km}: i don't know
<purl> sorry...
<{KM}> CPAN?
<purl> it has been said that CPAN is {km}: no idea
<purl> sorry...
<{KM}> CPAN?
<purl> CPAN is {km}: wish i knew
<purl> i'm not following you...

Cheers,
Kevin

> -----Original Message-----
> From: lenzo@metronomicon.com [mailto:lenzo@metronomicon.com]
> Sent: Monday, November 15, 1999 9:13 PM
> To: masque@pound.perl.org
> Cc: infobot-dev@metronomicon.com
> Subject: Re: Infobot...bug?
> 
> 
> OK i was testing today.  
> 
> This should be resolved.  I'd be obliged if people
> beat on the bot this eve so i can get closer
> to releasing 0.44.4 ... try to work with purl
> and find anything i missed.  the whole thing
> has had quite a bit of code motion.
> 
> kevin
> 
> > 
> > >purl< literal karma for masque
> > [purl] Masque: literal karma for masque =is= <reply>Lots 
> and lots! And lots! 
> >            And lots of lots! See also 'bunches'.
> > >purl< forget karma for masque
> > [purl] Masque: I forgot karma for masque
> > [purl] NOREPLY
> > 
> > Hmm.
> > 
> > Masque
> > 
> 

From infobot-dev@metronomicon.com  Tue Nov 16 09:49:17 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA13168
	for infobot-dev-list; Tue, 16 Nov 1999 09:49:11 -0500
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 JAA13164;
	Tue, 16 Nov 1999 09:49:09 -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 JAA14615;
	Tue, 16 Nov 1999 09:48:17 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <W59Q8D3X>; Tue, 16 Nov 1999 09:48:16 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F20757F8@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: "'lenzo@metronomicon.com'" <lenzo@metronomicon.com>
Cc: infobot-dev@metronomicon.com
Subject: RE: Infobot...bug?
Date: Tue, 16 Nov 1999 09:48:06 -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: RO

Two different outcomes for same thing...

In public:

<{KM}> CPAN?
<purl> CPAN is the Comprehensive Perl Archive Network and is at
http://www.perl.com/CPAN/ or at http://www.perl.org/CPAN/ or perl -MCPAN -e
shell or perldoc CPAN or the CPAN.pm module (available at
http://www.perl.com/CPAN/modules/by-module/CPAN/ or the Canadian
Parliamentary Access [television] Network or at http://www.cpan.org or
http://search.cpan.org/


in /msg
<{KM}> CPAN?
<purl> CPAN is {km}: i don't know
<purl> sorry...
<{KM}> CPAN?
<purl> it has been said that CPAN is {km}: no idea
<purl> sorry...
<{KM}> CPAN?
<purl> CPAN is {km}: wish i knew
<purl> i'm not following you...

Cheers,
Kevin

> -----Original Message-----
> From: lenzo@metronomicon.com [mailto:lenzo@metronomicon.com]
> Sent: Monday, November 15, 1999 9:13 PM
> To: masque@pound.perl.org
> Cc: infobot-dev@metronomicon.com
> Subject: Re: Infobot...bug?
> 
> 
> OK i was testing today.  
> 
> This should be resolved.  I'd be obliged if people
> beat on the bot this eve so i can get closer
> to releasing 0.44.4 ... try to work with purl
> and find anything i missed.  the whole thing
> has had quite a bit of code motion.
> 
> kevin
> 
> > 
> > >purl< literal karma for masque
> > [purl] Masque: literal karma for masque =is= <reply>Lots 
> and lots! And lots! 
> >            And lots of lots! See also 'bunches'.
> > >purl< forget karma for masque
> > [purl] Masque: I forgot karma for masque
> > [purl] NOREPLY
> > 
> > Hmm.
> > 
> > Masque
> > 
> 

From infobot-dev@metronomicon.com  Tue Nov 16 11:07:16 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA13433
	for infobot-dev-list; Tue, 16 Nov 1999 11:07:14 -0500
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 LAA13430
	for <infobot-dev@metronomicon.com>; Tue, 16 Nov 1999 11:07:13 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id KAA01509;
	Tue, 16 Nov 1999 10:04:23 -0600 (CST)
Date: Tue, 16 Nov 1999 10:04:23 -0600
From: Masque <masque@pound.perl.org>
To: Bob Maple <bmaple@burner.com>
Cc: infobot-dev@metronomicon.com
Subject: Re: Another quirky
Message-ID: <19991116100423.A1393@pound.perl.org>
References: <9911160813.8gc9@burner.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <9911160813.8gc9@burner.com>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Tue, Nov 16, 1999 at 01:13:52AM -0700, Bob Maple wrote:
> <Brazilian> regurg, ! 
> <regurg> ! are u running pci video? 
> <Brazilian> forget ! 
> <regurg> Brazilian, I didn't have anything matching 
> 
> I see things like this stuck in the bot all the time, that I can't get
> out.

Try appending a space to your instruction.  Instead of:

'<Brazilian> forget !'

Try:

'<Brazilian> forget ! '

purl should accept this.

Masque

From infobot-dev@metronomicon.com  Wed Nov 17 17:04:08 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA16541
	for infobot-dev-list; Wed, 17 Nov 1999 17:03:29 -0500
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 RAA16538
	for <infobot-dev@metronomicon.com>; Wed, 17 Nov 1999 17:03:28 -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 RAA07776
	for <infobot-dev@metronomicon.com>; Wed, 17 Nov 1999 17:02:41 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <W59Q8LQS>; Wed, 17 Nov 1999 17:02:40 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F2075812@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: infobot-dev@metronomicon.com
Subject: excuse.pl patch
Date: Wed, 17 Nov 1999 17:02:38 -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: RO

excuse.pl causes the infobot to fail when when Net::Telnet (a non-essential
module) isn't on the system. This patch will fix excuse.pl so infobot will
still start.

Cheers,
Kevin

--- excuse.pl.orig      Wed Nov 17 17:00:05 1999
+++ excuse.pl   Wed Nov 17 17:00:16 1999
@@ -6,9 +6,7 @@
 #
 
 BEGIN {
-    eval {
-       use Net::Telnet;
-    };
+    eval "use Net::Telnet ()";
 
     $no_excuse++ if ($@) ;

From infobot-dev@metronomicon.com  Wed Nov 17 18:26:54 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA16670
	for infobot-dev-list; Wed, 17 Nov 1999 18:26:53 -0500
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 SAA16667
	for <infobot-dev@metronomicon.com>; Wed, 17 Nov 1999 18:26:52 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id RAA03827
	for infobot-dev@metronomicon.com; Wed, 17 Nov 1999 17:24:28 -0600 (CST)
Date: Wed, 17 Nov 1999 17:24:28 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Quirk #1573-B
Message-ID: <19991117172428.G24068@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: RO

<DMasque> Purl, be boojum
<purl> I'm a little fishie...
<DMasque> Purl, be boojum.
<purl> DMasque:

Masque

From infobot-dev@metronomicon.com  Wed Nov 17 19:10:17 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA16745
	for infobot-dev-list; Wed, 17 Nov 1999 19:10:17 -0500
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 TAA16742
	for <infobot-dev@metronomicon.com>; Wed, 17 Nov 1999 19:10:16 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id SAA04409
	for infobot-dev@metronomicon.com; Wed, 17 Nov 1999 18:07:56 -0600 (CST)
Date: Wed, 17 Nov 1999 18:07:56 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Quirk #1574-A
Message-ID: <19991117180756.H24068@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: RO

<dha> and, of course:  my answer?
<dha> purl?
<purl> dha?
<dha> my answer?
<dha> purl, my answer?
<purl> dha: i don't know
<dha> WHERE'S MY FACTOID, DAMMIT???
<DMasque> dha's answer?
<purl> You do that by READING THE DOCUMENTATION!


Masque.





footbag++

From infobot-dev@metronomicon.com  Wed Nov 17 20:49:37 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA16947
	for infobot-dev-list; Wed, 17 Nov 1999 20:49:34 -0500
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 UAA16944
	for <infobot-dev@metronomicon.com>; Wed, 17 Nov 1999 20:49:33 -0500
Received: from PROTECTED.SPEECH.CS.CMU.EDU by ux1.sp.cs.cmu.edu id aa07241;
          17 Nov 99 20:48 EST
Message-ID: <38335B24.88AF5EB6@cs.cmu.edu>
Date: Wed, 17 Nov 1999 20:49:24 -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.13 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Masque <masque@pound.perl.org>, infobot-dev@metronomicon.com
Subject: My Status and the Next Rev
References: <19991117180756.H24068@pound.perl.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

I have to apologize to those of you who have been living
with purl in her half-deranged state; i'm working on 
something I hope you will all appreciate when i'm done.

That is to say, i'll be making some release soon (sure,
you say :) that pretty comprehensively changes the 
innards of the bot.

Simon++ for extreme patience.  He did a ton of work on
the early form of this next version, and hasn't yet seen
it reach the light of day.

I may go to 0.45 after this rather than 0.44.4.  I'm
tempted to go straight for 0.50 after this; it's a 
pretty major rev.

kevin

From infobot-dev@metronomicon.com  Thu Nov 18 00:56:35 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA17364
	for infobot-dev-list; Thu, 18 Nov 1999 00:56:33 -0500
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 AAA17361
	for <infobot-dev@metronomicon.com>; Thu, 18 Nov 1999 00:56:32 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id XAA08304
	for infobot-dev@metronomicon.com; Wed, 17 Nov 1999 23:54:13 -0600 (CST)
Date: Wed, 17 Nov 1999 23:54:13 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: One more.  :]
Message-ID: <19991117235413.A8284@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: RO

First off, oznoid++ for bringing us purl to begin with.  This project...
well, it has a hell of a lot of potential for a lot of things down the 
road.  I'm proud just to be a lowly bug-spotter.  ;)

This one was just too funny to let go, even though it was likely pointed
out before:

<stimpix> I generally bypass the dating thing for cohabitation. perhaps this is
           odd.
<purl> odd indeed, stimpix.
<stimpix> good bot. =D
<mendel> purl, you're awful conversational lately
<purl> , mendel
<mendel> , purl
<purl> , mendel
<stimpix> haha
<mendel> , purl
<purl> , mendel
<mendel> , purl
<purl> mendel:
<mendel> purl:
<purl> mendel:

Heh.

Masque

From infobot-dev@metronomicon.com  Thu Nov 18 00:58:20 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA17386
	for infobot-dev-list; Thu, 18 Nov 1999 00:58:20 -0500
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 AAA17383
	for <infobot-dev@metronomicon.com>; Thu, 18 Nov 1999 00:58:20 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id XAA08363
	for infobot-dev@metronomicon.com; Wed, 17 Nov 1999 23:55:59 -0600 (CST)
Date: Wed, 17 Nov 1999 23:55:59 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: ...and one more thought.
Message-ID: <19991117235559.B8284@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: RO

<pdt> but actually their Nec .24 17" is $500
<purl> it has been said that $500 is Teratogen's min

Seems that anything following 'is' is parsed.  Woofun.

Masque

From infobot-dev@metronomicon.com  Sat Nov 20 06:40:05 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id GAA26502
	for infobot-dev-list; Sat, 20 Nov 1999 06:39:57 -0500
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 GAA26499
	for <infobot-dev@metronomicon.com>; Sat, 20 Nov 1999 06:39:46 -0500
Received: (qmail 14467 invoked by uid 500); 20 Nov 1999 11:38:55 -0000
Date: Sat, 20 Nov 1999 20:38:55 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: New extension: timezone.pl
Message-ID: <19991120203855.A13691@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.3.27
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Yet another `don't use this', from the usual place:
(http://othersideofthe.earth.li/infobot)

   timezone.pl - My first crude hack at a world time clock. At
   present, it only works on Unices, and probably only on Linux. It's
   bad, horrible and non-portable but it works. Calls out to system date
   command. One day I'll get around to doing a pure-Perl version. If you
   want to use it, here's the glue:

    if (getparam('timezone') and $message=~ /^Time in (\w+)/i) {
        performReply(timezone($1));
        return 'NOREPLY';
    }

This time I've behaved myself and provided documentation and stricture.

Oh, and oznoid++ for valiantly fighting a veritable *mountain* of problems
and bug reports for the greater good. It'll all work out soon. :)

Simon
-- 
Everything can be filed under "miscellaneous".

From MAILER-DAEMON@token.metronomicon.com  Sat Nov 20 07:09:11 1999
Return-Path: <>
Received: from pig.stalphonsos.com (IDENT:8016@pig.stalphonsos.com [199.245.105.134])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id HAA26556
	for <lenzo@metronomicon.com>; Sat, 20 Nov 1999 07:09:11 -0500
Received: from stalphonsos.com (monty@localhost)
	by pig.stalphonsos.com (8.9.1/8.9.1/Dumb all over, a little ugly on the side) with ESMTP id HAA30935;
	Sat, 20 Nov 1999 07:08:24 -0500
Date: Sat, 20 Nov 1999 07:08:24 -0500
Message-Id: <199911201208.HAA30935@pig.stalphonsos.com>
From: attila@stalphonsos.com
To: psu@esgear.com
To: joseph.fridy@alcoa.com
To: phg@jprc.com
To: mthomas@jprc.com
To: faisal@faisal.com
To: lenzo@metronomicon.com
To: lenzo@cs.cmu.edu
To: dbalog@lycos.com
To: progan@lycos.com
To: gray@256.com
To: six@stalphonsos.com
To: goob@goob.com
Subject: flail - a fledgling mua in perl
X-Mailer: flail 0.1.1, the perl mua from stalphonsos.com
Status: O


i'm a sick man.

a sick, sick man.

luckily, it's still legal in this kountry.

but anyway...it amuses me to point you at flail, a fledgling mua i wrote in
perl in a fit of pique.  i've decided i hate all existing unix muas.  i can
say this with certainty because i've tried them all.

it occurred to me while perusing CPAN that there were modules there to
deal with nearly every part of an mua, and they just needed a bit of
stitching together.

so, i stitched.

right now flail has just enough functionality to let you read, reply to,
send, and file email.  even so, it's useful enough that i'm using it now,
and, obviously, it's really easy to add features and fix bugs (like the
one i just found when you re-edit a message you're sending... *sigh*).

what i'd like it to become is a sort of variable-weight mua.  if i write a
nice perl/gtk gui, for instance, and i load it in, then i have a gui.  if i
don't load it in, i don't.  if i write a little ircbot interface so i can
query my mail via irc, then fine.  if i write an http interface, swell.  i
want to add the ability to leave flail running and connect to it in any of
these ways (securely, of course... use Crypt::SSleay), and maybe even have
it be an smtp gateway/relay as well.  while we're at it, what the hell,
maybe someone could write a speech interface using sphinx2 and festival or
something.

on the back-end side, i want this to eventually be based on the
big-heap-o-stuff + inverted index approach of pachyderm and lexicos.  no
folders, just tagged, persistent queries against the index.

right now i use pop3 for slurping down email, but i'll add imap in the next
couple of days (unless one of you wants to do it... ;-).  one of the things
i specifically want is proper imap support with the ability to deal with
remote folders (the cpan Mail::IMAPClient module isn't all that great but it
could be with a little bit of work).  or, perhaps something better that's
native to flail, as long as you can get at it through a standard interface
(https or imap/ssl is what i'm thinking eventually).

the code right now sucks, needs to be modularized, documented, made more
flexible, etc.  in other words, if i were a lesser man, i'd pack it up and
announce it on freshmeat.

however, i am not a lesser man and i refuse to descend to the
tar-up-my-home-directory-and-call-it-version-0.0.1pre99 mentality that seems
to have taken root lately.  instead, i thought i'd plant the seed in a few
other selected heads and see what happened first.  for all i know, one of
you has already done this better and is even worse at releasing your code
than i am.

flail is at http://tmrl.stalphonsos.com/attila along with my various other
unreleased hacks.  it's just a single file right now.  it requires a
shitload of modules from cpan.  i've only used it under 5.00503 built
without threads.  unsafe even when used as directed.  void where prohibited
by law.  question everything.  assume nothing.

voulez vous hackez avec moi?

pax,
                                             :: s
--
attila | hacker, st.alphonsos collective | north american section | A52145C5
attila@stalphonsos.com | http://www.stalphonsos.com/~attila | 1.800.852.3322
     you may think i am loony / that i've run out of luck
        but thankfully, i'm ornery and do not give a fuck    --me

From infobot-dev@metronomicon.com  Sun Nov 21 01:22:34 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA28036
	for infobot-dev-list; Sun, 21 Nov 1999 01:22:31 -0500
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 BAA28033
	for <infobot-dev@metronomicon.com>; Sun, 21 Nov 1999 01:22:26 -0500
Received: (qmail 21752 invoked by uid 500); 21 Nov 1999 06:21:34 -0000
Date: Sun, 21 Nov 1999 15:21:34 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Some developments
Message-ID: <19991121152134.A21225@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.3.27
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Just some ideas I've got working on my local 'bot. Won't post patches
yet because I fear there's a lot of code motion going on.

Abuse of power
	i) `kick $name from $channel: $reason' added to ops commands.
	ii) Stolen gratuitously from Masque, as usual:
		`VI RULES is <kick>Suck it, viboy!'
		So far I haven't got protection on who can set this because
		I want to do something *interesting* to the factoids. More later.
	iiI) `mode $channel $modes' allows you to set bans and things.

Channel Quotes Page
	`quote foo: Bar' adds a quote to a HTML `channel quotes' page.

Something Interesting To The Factoids
	This doesn't quite work yet since I only started work on it very recently,
but if you've seen my DBM patch, you'll know where I'm going.

my $factoid = new Infobot::Factoid;
$factoid->text=(["foo","bar",baz");
$factoid->modified(time);
$factoid->created_by("Simon");
$factoid->write_protect(0);
set("is","foo",$factoid);
...

	For the time being, we also check, when we access a factoid, whether it's
a scalar or an object, and if it's in the old (scalar) format, automagically
convert it.

	Suggestions on how to use the metadata would be appreciated.
	Shoot me down if you think this is a Bad Thing.

	Simon

-- 
"Everything's working, try again in half an hour."-chorus.net tech
support

From infobot-dev@metronomicon.com  Tue Nov 23 19:16:49 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA07472
	for infobot-dev-list; Tue, 23 Nov 1999 19:16:10 -0500
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 TAA07469
	for <infobot-dev@metronomicon.com>; Tue, 23 Nov 1999 19:16:08 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id SAA16188
	for infobot-dev@metronomicon.com; Tue, 23 Nov 1999 18:14:15 -0600 (CST)
Date: Tue, 23 Nov 1999 18:14:15 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Karma futz
Message-ID: <19991123181415.D13244@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

Karma is requiring addressing.

such and such++ doesn't work, the bot must be addressed directly, else
the total is not incremented.

<stimpix> purl, karma for masque
<purl> masque has karma of 163
<stimpix> masque++
<stimpix> masque++
<stimpix> purl, karma for masque
<purl> masque has karma of 163
 
Also note that karma is taking priority over factoids, my karma
should be blocked by a half-witted factoid.

*purl*> karma masque
*purl* masque has karma of 163
*purl*> literal karma masque
*purl* Tasque: karma masque =is= <reply>I only deal in used karma.  For new
+karma, you'll have to make your own.|<reply>Yikes!  Masque's karma just ran
+over your dogma!

Masque.

From infobot-dev@metronomicon.com  Wed Nov 24 06:24:03 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id GAA09611
	for infobot-dev-list; Wed, 24 Nov 1999 06:23:57 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id GAA09608
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 06:23:56 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id FAA06672
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 05:23:43 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id FAA13944
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 05:26:35 -0600 (CST)
Date: Wed, 24 Nov 1999 05:26:35 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: infobot-dev@metronomicon.com
Subject: Hello all.
Message-ID: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

After talking in #perl I was refered to this mailing list.  I've been
adding in a few things into an infobot and sending them off to oznoid, and
not really keeping a nice diff source (like q[Simon), but here are a list
of things I'm working on:

Dictionary:
  Uses the Net::Dict package and does realtime definitions for words:

> Murlin: define silica
<Murlin> silica: n : a white or colorless vitreous insoluble solid;
  various forms occur widely in the earth's crust as quartz or
  cristobalite or tridymite or lechartelierite [syn: {silicon oxide},
  {silicon dioxide}] 

Timezones:
  Using another dbm file to list timezones in relation to GMT, there is
still something wrong with it (flubbin' up the DST portion).  And I added
in functionality to define sub-areas:

> What time is it in South Africa?
<Murlin> in South Africa, it is 12:25 Wednesday afternoon.
> What time is it in Paris?
<Murlin> Sorry teckle, I have no time to tell you.
> What time is it in Paris?
<Murlin> in Paris, it is 12:27 Wednesday afternoon.

I have a list of the timezone dbm at
http://www.securetty.org/timezones.txt that isn't updated automagically
yet.

So, hello all, pleased to meet ya.

Jay Jacobs
(teckle)

From infobot-dev@metronomicon.com  Wed Nov 24 06:30:18 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id GAA09651
	for infobot-dev-list; Wed, 24 Nov 1999 06:30:18 -0500
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 GAA09648
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 06:30:15 -0500
Received: (qmail 14863 invoked by uid 500); 24 Nov 1999 11:29:58 -0000
Date: Wed, 24 Nov 1999 20:29:58 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Re: Hello all.
Message-ID: <19991124202958.A14381@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>; from Jay Jacobs on Wed, Nov 24, 1999 at 05:26:35AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Wed, Nov 24, 1999 at 05:26:35AM -0600, Jay Jacobs wrote:
> Timezones:

Ladies and gentlemen, we have a winner.

>   Using another dbm file to list timezones in relation to GMT, there is
> still something wrong with it (flubbin' up the DST portion).  And I added
> in functionality to define sub-areas:

That's nice. As I said on #perl, consider using Time::Timezone (or whatever
it's called - there's a Time::Zone, too, but I haven't compared them) to
convert named timezones to offsets, and then define your sub-areas as your
doing at the moment.

But nice. Very nice. I'll have to think of something else to fiddle with
now...

Simon

-- 
"He was a modest, good-humored boy.  It was Oxford that made him insufferable."

From infobot-dev@metronomicon.com  Wed Nov 24 09:56:42 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA10287
	for infobot-dev-list; Wed, 24 Nov 1999 09:56:32 -0500
Received: from smtp02.primenet.com (daemon@smtp02.primenet.com [206.165.6.132])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id JAA10284
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 09:56:31 -0500
Received: (from daemon@localhost)
	by smtp02.primenet.com (8.8.8/8.8.8) id IAA13609
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 08:03:36 -0700 (MST)
Received: from ip-53-145.scf.primenet.com(206.132.53.145), claiming to be "tarzan"
 via SMTP by smtp02.primenet.com, id smtpd013582; Wed Nov 24 08:03:28 1999
Received: from localhost by primenet.com
	via sendmail with smtp
	id <m11qdpy-0001cGC@tarzan> (Debian Smail3.2.0.102)
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 07:56:02 -0700 (MST) 
Date: Wed, 24 Nov 1999 07:56:02 -0700 (MST)
From: Daniel White <jajuka@primenet.com>
X-Sender: jajuka@tarzan.jungle.org
To: infobot-dev@metronomicon.com
Subject: Re: Hello all.
In-Reply-To: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>
Message-ID: <Pine.LNX.3.96.991124074504.10733C-100000@tarzan.jungle.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


Hi, I'm new here.  Those both sound like very useful additions, I havent
really made any significant mods myself yet, I've mostly just been playing
around with addressing.  My opinion of when it's being addressed seems a
bit different than the bots.
I have a question that some of you may have some experience with, has
anyone done any work on getting all the various web related functions to
work through a proxy server?  I dont need irc through the firewall but I'd
like to enable the search, and similar functions.  At first glance it's
looking to me like it will involve altering each function individually,
but I'm kind of new at this (bots and perl both) and might be missing an
easier method.  Any insights would be appreciated.

Daniel
jajuka@primenet.com




On Wed, 24 Nov 1999, Jay Jacobs wrote:

> After talking in #perl I was refered to this mailing list.  I've been
> adding in a few things into an infobot and sending them off to oznoid, and
> not really keeping a nice diff source (like q[Simon), but here are a list
> of things I'm working on:
> 
> Dictionary:
>   Uses the Net::Dict package and does realtime definitions for words:
> 
> > Murlin: define silica
> <Murlin> silica: n : a white or colorless vitreous insoluble solid;
>   various forms occur widely in the earth's crust as quartz or
>   cristobalite or tridymite or lechartelierite [syn: {silicon oxide},
>   {silicon dioxide}] 
> 
> Timezones:
>   Using another dbm file to list timezones in relation to GMT, there is
> still something wrong with it (flubbin' up the DST portion).  And I added
> in functionality to define sub-areas:
> 
> > What time is it in South Africa?
> <Murlin> in South Africa, it is 12:25 Wednesday afternoon.
> > What time is it in Paris?
> <Murlin> Sorry teckle, I have no time to tell you.
> > What time is it in Paris?
> <Murlin> in Paris, it is 12:27 Wednesday afternoon.
> 
> I have a list of the timezone dbm at
> http://www.securetty.org/timezones.txt that isn't updated automagically
> yet.
> 
> So, hello all, pleased to meet ya.
> 
> Jay Jacobs
> (teckle)
> 
> 

                                               jajuka@primenet.com
---------------------------------------------------------------------------
  Men are born ignorant, not stupid; they are made stupid by education.
  --Bertrand Russell
---------------------------------------------------------------------------

From infobot-dev@metronomicon.com  Wed Nov 24 10:10:50 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10344
	for infobot-dev-list; Wed, 24 Nov 1999 10:10:50 -0500
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 KAA10341
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:10:49 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id DB113E93B; Wed, 24 Nov 1999 09:21:32 -0600 (CST)
Date: Wed, 24 Nov 1999 09:21:32 -0600
From: duff@cbi.tamucc.edu
To: Jay Jacobs <jay@cake.harmonic.com>
Cc: infobot-dev@metronomicon.com
Subject: Re: Hello all.
Message-ID: <19991124092132.A9810@cbi.tamucc.edu>
References: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <Pine.GSO.4.21.9911240515140.10263-100000@cake.harmonic.com>; from jay@cake.harmonic.com on Wed, Nov 24, 1999 at 05:26:35AM -0600
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Wed, Nov 24, 1999 at 05:26:35AM -0600, Jay Jacobs wrote:
> Dictionary:
>   Uses the Net::Dict package and does realtime definitions for words:

Damn you!  I was going to do that!  (As my one and probably only
contribution to the infobot source)  

:-)

Oh well, I'll just critique your implementation when you're done ;-)

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

From infobot-dev@metronomicon.com  Wed Nov 24 10:20:16 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10408
	for infobot-dev-list; Wed, 24 Nov 1999 10:20:16 -0500
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 KAA10405
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:20:15 -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 KAA16804
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:20:03 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <XGY4A2T9>; Wed, 24 Nov 1999 10:20:02 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F2075854@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: infobot-dev@metronomicon.com
Subject: Speaking of contribs..
Date: Wed, 24 Nov 1999 10:20:00 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_000_01BF368F.607EE880"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01BF368F.607EE880
Content-Type: text/plain;
	charset="iso-8859-1"

Hey folks,

Not sure if this made it around, I may have just sent it to oz. This will do
unit conversions (using Math::Units).

trigger is:

convert 5 feet to mm

or 

convert 5 feet mm

Here is the trigger:

if(defined $param{'convert'} && $message =~ /^\s*convert\s+[+-]?\w/) {
        $message =~ s/ to / /i;
        &convert;
        return 'NOREPLY';
}

attached is the script..

Cheers,
Kevin


------_=_NextPart_000_01BF368F.607EE880
Content-Type: application/octet-stream;
	name="convert.pl"
Content-Disposition: attachment;
	filename="convert.pl"

# By Kevin Meltzer (a.k.a. {KM})
# Needs Math::Units to run
# param trigger is 'convert', change if needed.

my $no_convert;

BEGIN {
    $no_convert = 0;
    eval "use Math::Units";
    $no_convert++ if $@;
}

sub convert {
    # configure
    if ($no_convert) {
        &status("Unit conversion requires Math::Units to be installed");
        return '';
    }
    $message =~ s/^\s*convert\s*//i;
    my ($v_in, $u_in, $u_out) = split(/\s+/,$message); 
    if ($v_in !~ /[+-]?\d+/) {
        if ($msgType eq 'private') {
                &msg($who,"Invalid conversion value or unit");
        }else{
                &say("$who: Invalid conversion value or unit");
        }
        return '';
    }
    my $v_out;

    eval { $v_out = Math::Units::convert($v_in, $u_in, $u_out); };
    
    if ($@) {
	if ($msgType eq 'private') {
                &msg($who,"Incompatible units: $u_in vs. $u_out");
        }else{
                &say("$who: Incompatible units: $u_in vs. $u_out");
        }
        return '';
    }

        if ($msgType eq 'private') {
                &msg($who,"$v_in $u_in is equal to $v_out $u_out");
        }else{
                &say("$who: $v_in $u_in is equal to $v_out $u_out");
        }
}

1;


------_=_NextPart_000_01BF368F.607EE880--

From infobot-dev@metronomicon.com  Wed Nov 24 10:30:32 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10469
	for infobot-dev-list; Wed, 24 Nov 1999 10:30:31 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA10466
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:30:31 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id JAA11289;
	Wed, 24 Nov 1999 09:30:18 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id JAA17027;
	Wed, 24 Nov 1999 09:33:10 -0600 (CST)
Date: Wed, 24 Nov 1999 09:33:10 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: duff@cbi.tamucc.edu
cc: infobot-dev@metronomicon.com
Subject: Re: Hello all.
In-Reply-To: <19991124092132.A9810@cbi.tamucc.edu>
Message-ID: <Pine.GSO.4.21.9911240916440.10263-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Okay, here's a paste of the "define" feature... I was using version 0.44.3
and this was in the myRoutines.pl file:

use Net::Dict;
        } elsif ($message =~ /^[Dd]efine (\S+)/) {
            my $definition = "$1";
            my($dict) = Net::Dict->new("dict.org");
            my ($h) = $dict->define($1);
            my ($i, $def, $dict);
            my $ty = "int";
            my $nit = "1";
            my (%mydef);
            my (@jout);
            my $gotadef=0;
            foreach $i (@{$h}) {
              ($dict, $def) = @{$i};
              if ($dict eq "wn") {
                $gotadef=1;
                foreach (split(/[\r\n]+/, $def)) {
                  next if (/^$definition/);
                  if (/^     (\w ){0,3}(\d+): /) {
                    $ty=$1 if (defined $1);
                    $nit=$2;
                  }
                  (s/^\s+//g);
                  (s/\s+$//g);
                  $mydef{$ty}[$nit].=$_." ";
                  $mydef{$ty}[0]=$nit;
                }
              }
            }
            my ($curline);
            foreach $ty (keys %mydef) {
              if ($ty eq "int") {
                push(@jout, "$definition: $mydef{$ty}[1]");
                next;
              }
              if (defined $curline) {
                push(@jout, "$curline");
                undef($curline);
              }
              for (1..$mydef{$ty}[0]) {
                if (defined $curline) {
                  if (((length($mydef{$ty}[$_]))+(length($curline))) >
480) {
                    push (@jout, "$curline");
                    $curline=$mydef{$ty}[$_];
                  } else {
                    $curline.=" ".$mydef{$ty}[$_];
                  }
                } else {
                  $curline=$mydef{$ty}[$_];
                }
              }
            }
            push (@jout, "$curline");
            if ($gotadef) {
                if ($msgType eq 'public') {
                    for (0..($#jout-1)) {
                        &say($jout[$_]);
                        sleep 2;
                    }
                    &say($jout[$#jout]);
                } else {
                    for (0..($#jout-1)) {
                        &msg($who, $jout[$_]);
                                sleep 2;
                            }
                            &msg($who, $jout[$#jout]);
                        }
                    } else {
                        if ($msgType eq 'public') {
                            &say("$definition: Not in my listing");
                        } else {
                            &msg($who, "No definition found for
$definition");
                        }
                    }
                    return 'NOREPLY';
                }
            }

Most of that code is purely for the formatting of the response, which can
only be done with fat code if you look at how Net::Dict returns stuff.

Scott - critique away, this is the product of another insomnia-inspired
hack... 

Possible additions:  a Thesoraus (sp?) would be cool, but I haven't looked
into it.  Another thing would be to make this a function and pass the "wn"
(wordnet listing) to it, that way folks could request stuff like the
"jargon" listing or the webster's 1913 definition....

Cool things about this: It will split off noun/verb etc into different
responses, and shove as much as irc will allow (~480 max msg len) into a
response.

On Wed, 24 Nov 1999 duff@cbi.tamucc.edu wrote:

> On Wed, Nov 24, 1999 at 05:26:35AM -0600, Jay Jacobs wrote:
> > Dictionary:
> >   Uses the Net::Dict package and does realtime definitions for words:
> 
> Damn you!  I was going to do that!  (As my one and probably only
> contribution to the infobot source)  
> 
> :-)
> 
> Oh well, I'll just critique your implementation when you're done ;-)
> 
> -Scott
> -- 
> Jonathan Scott Duff
> duff@cbi.tamucc.edu
> 


From infobot-dev@metronomicon.com  Wed Nov 24 10:34:16 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10497
	for infobot-dev-list; Wed, 24 Nov 1999 10:34:16 -0500
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 KAA10494
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:34:14 -0500
Received: (qmail 27449 invoked by uid 500); 24 Nov 1999 15:34:01 -0000
Date: Thu, 25 Nov 1999 00:34:01 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Re: Speaking of contribs..
Message-ID: <19991125003401.A27432@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <A1335534778DD311991300A0C9F3B3F2075854@ntnau220.usco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <A1335534778DD311991300A0C9F3B3F2075854@ntnau220.usco.com>; from Meltzer, Kevin on Wed, Nov 24, 1999 at 10:20:00AM -0500
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Wed, Nov 24, 1999 at 10:20:00AM -0500, Meltzer, Kevin wrote:
> trigger is:
> convert 5 feet to mm

What are we going to do about trigger overloading, then?
Ewwww.

Simon

-- 
A rolling stone gathers momentum.

From infobot-dev@metronomicon.com  Wed Nov 24 10:35:17 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10508
	for infobot-dev-list; Wed, 24 Nov 1999 10:35:17 -0500
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 KAA10505
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:35:16 -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 KAA17614;
	Wed, 24 Nov 1999 10:34:59 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <XGY4A2YB>; Wed, 24 Nov 1999 10:34:59 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F2075855@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: "'Simon Cozens'" <simon@brecon.co.uk>, infobot-dev@metronomicon.com
Subject: RE: Speaking of contribs..
Date: Wed, 24 Nov 1999 10:34:57 -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

Overloading it, as in (example)?


> On Wed, Nov 24, 1999 at 10:20:00AM -0500, Meltzer, Kevin wrote:
> > trigger is:
> > convert 5 feet to mm
> 
> What are we going to do about trigger overloading, then?
> Ewwww.
> 
> Simon
> 
> -- 
> A rolling stone gathers momentum.
> 

From infobot-dev@metronomicon.com  Wed Nov 24 10:56:01 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA10612
	for infobot-dev-list; Wed, 24 Nov 1999 10:55:59 -0500
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 KAA10609
	for <infobot-dev@metronomicon.com>; Wed, 24 Nov 1999 10:55:58 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id BE1EFE93B; Wed, 24 Nov 1999 10:06:47 -0600 (CST)
Date: Wed, 24 Nov 1999 10:06:47 -0600
From: duff@cbi.tamucc.edu
To: Simon Cozens <simon@brecon.co.uk>
Cc: infobot-dev@metronomicon.com
Subject: Re: Speaking of contribs..
Message-ID: <19991124100647.B10026@cbi.tamucc.edu>
References: <A1335534778DD311991300A0C9F3B3F2075854@ntnau220.usco.com> <19991125003401.A27432@othersideofthe.earth.li>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <19991125003401.A27432@othersideofthe.earth.li>; from simon@brecon.co.uk on Thu, Nov 25, 1999 at 12:34:01AM +0900
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Thu, Nov 25, 1999 at 12:34:01AM +0900, Simon Cozens wrote:
> On Wed, Nov 24, 1999 at 10:20:00AM -0500, Meltzer, Kevin wrote:
> > trigger is:
> > convert 5 feet to mm
> 
> What are we going to do about trigger overloading, then?

How about we don't overload them?  

"units ft to m"

Or we could invent namespaces ;->  Ew.

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

From infobot-dev@metronomicon.com  Fri Nov 26 02:02:06 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA17942
	for infobot-dev-list; Fri, 26 Nov 1999 02:01:35 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA17939
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 02:01:35 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id BAA13202
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 01:01:31 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id BAA27637
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 01:04:24 -0600 (CST)
Date: Fri, 26 Nov 1999 01:04:24 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: infobot-dev@metronomicon.com
Subject: doco's on geckobot?
Message-ID: <Pine.GSO.4.21.9911260101430.20071-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Happy Turkey-day and all that. 

Has there been discussions on the next version?  I've heard that the
geckobot is the next generation, but I was wondering what's been discussed
on it, so as not to be redundant in conversation.  Can anyone forward past
discussions about this?  

thanks,
Jay Jacobs
(teckle)

From infobot-dev@metronomicon.com  Fri Nov 26 20:18:51 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA00633
	for infobot-dev-list; Fri, 26 Nov 1999 20:18:47 -0500
Received: from narya.flash.net (IDENT:root@vilya.flash.net [209.30.164.93])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id UAA00630
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 20:18:42 -0500
Received: from localhost (IDENT:michael@localhost [127.0.0.1])
	by narya.flash.net (8.9.3/8.9.3) with SMTP id SAA12845
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 18:53:58 -0600 (CST)
Date: Fri, 26 Nov 1999 18:53:58 -0600 (CST)
Message-Id: <199911270053.SAA12845@narya.flash.net>
From: FETCHMAIL-DAEMON@flash.net
To: infobot-dev@metronomicon.com
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
	boundary="om-mani-padme-hum-5907-1-943664119"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

--om-mani-padme-hum-5907-1-943664119
Content-Type: text/plain

General SMTP/ESMTP error.


--om-mani-padme-hum-5907-1-943664119
Content-Type: message/delivery-status

Reporting-MTA: dns; localhost

Final-Recipient: rfc822; michael
Last-Attempt-Date: Fri, 26 Nov 1999 18:55:19 -0600 (CST)
Action: failed
Status: 4.0.0
Diagnostic-Code: 451 <infobot-dev@metronomicon.com>... Sender domain must resolve

--om-mani-padme-hum-5907-1-943664119
Content-Type: text/rfc822-headers

Received: from bright.flash.net (bright.flash.net [209.30.2.108])
	by nessie.flash.net (8.9.3/Pro-8.9.3) with ESMTP id BAA09890
	for <michael@flash.net>; Fri, 26 Nov 1999 01:16:35 -0600 (CST)
Received: from bunyip.flash.net (bunyip.flash.net [209.30.2.15])
	by bright.flash.net (8.9.1/8.9.1) with ESMTP id BAA00819
	for <michael@bright.flash.net>; Fri, 26 Nov 1999 01:15:59 -0600 (CST)
Received: from token.metronomicon.com (token.metronomicon.com [199.245.105.171])
	by bunyip.flash.net (8.9.3/Pro-8.9.3) with ESMTP id BAA19005
	for <michael@flash.net>; Fri, 26 Nov 1999 01:16:33 -0600 (CST)
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA17942
	for infobot-dev-list; Fri, 26 Nov 1999 02:01:35 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA17939
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 02:01:35 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id BAA13202
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 01:01:31 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id BAA27637
	for <infobot-dev@metronomicon.com>; Fri, 26 Nov 1999 01:04:24 -0600 (CST)
Date: Fri, 26 Nov 1999 01:04:24 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: infobot-dev@metronomicon.com
Subject: doco's on geckobot?
Message-ID: <Pine.GSO.4.21.9911260101430.20071-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
X-UIDL: 331a41d477271483f5570ccbf4b3300f

--om-mani-padme-hum-5907-1-943664119--

From attila@stalphonsos.com  Fri Nov 26 22:15:19 1999
Return-Path: <attila@stalphonsos.com>
Received: from pig.stalphonsos.com (IDENT:8016@pig.stalphonsos.com [199.245.105.134])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id WAA01000
	for <lenzo@token.metronomicon.com>; Fri, 26 Nov 1999 22:15:18 -0500
Received: from stalphonsos.com (monty@localhost)
	by pig.stalphonsos.com (8.9.1/8.9.1/Dumb all over, a little ugly on the side) with ESMTP id WAA03439;
	Fri, 26 Nov 1999 22:13:33 -0500
Message-Id: <199911270313.WAA03439@pig.stalphonsos.com>
From: attila <attila@stalphonsos.com>
To: lenzo@token.metronomicon.com
Subject: fixed
Cc: lenzo@cs.cmu.edu
Sender: attila <attila@stalphonsos.com>
X-Mailer: flail 0.1.1, the perl mua from stalphonsos.com
Date: Fri Nov 26 22:04:29 1999
Status: O


i hate all that gui sysconfig crap.

the GATEWAY= address in /etc/sysconfig/network was wrong.  the fact that you
had a correct route in /etc/sysconfig/static-routes was just confusing the
issue.  i commented out the static routes for your public interfaces in
static-routes and put the correct GATEWAY= address in network, rebooted and
it works fine.

/etc/sysconfig/static-routes is only for ADDITIONAL static routes besides
the default.  you should always set your primary default route in
/etc/sysconfig/network (i saved the old file in network.private -- it had a
private IP address, which explains why packets wouldn't go anywhere).

i also made sure that network-scripts/ifcfg-eth0{,:1} had the right netmask
and broadcast.  everything looks fine now.

hope soba was sobalicious.  gimme a call sometime or whatever if yinz feel
like getting a beer sometime.  the edge closes at midnight, though.

pax,
                                        :: s

From infobot-dev@metronomicon.com  Sat Nov 27 02:24:16 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA01782
	for infobot-dev-list; Sat, 27 Nov 1999 02:23:58 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA01779
	for <infobot-dev@metronomicon.com>; Sat, 27 Nov 1999 02:23:56 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id AAA26870
	for <infobot-dev@metronomicon.com>; Sat, 27 Nov 1999 00:21:57 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Sat, 27 Nov 99 00:20:08 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8ipi@burner.com>; Sat, 27 Nov 99 00:18:44 MST
Date: Sat, 27 Nov 99 00:18:44 MST
Message-Id: <9911270718.8ipi@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: ANSI escape codes
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I'm running Linux (RH to be exact) and have noticed on the console that some
lines show up with ANSI escape codes in them - mostly the channel mode lines.

Upon looking into it, it uses $b, which upon looking into it, is defined as
c1('bold') which I have no idea what that means :)

In any case, I guess on other *nixes maybe this does the right thing, but am
curious as to why it doesn't in this case.  The other codes seem to work
('bold cyan' for instance).

Any ideas?


 :        Bob Maple          :                                             :
 :   bmaple at burner.com    :     Help stamp out, remove and abolish      :
 : www.dimensional.com/~bobm :     redundancy.                             :


From infobot-dev@metronomicon.com  Sat Nov 27 21:39:09 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA05346
	for infobot-dev-list; Sat, 27 Nov 1999 21:39:05 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA05343
	for <infobot-dev@metronomicon.com>; Sat, 27 Nov 1999 21:38:59 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id TAA27236
	for <infobot-dev@metronomicon.com>; Sat, 27 Nov 1999 19:37:08 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Sat, 27 Nov 99 19:35:20 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8itt@burner.com>; Sat, 27 Nov 99 19:35:12 MST
Date: Sat, 27 Nov 99 19:35:12 MST
Message-Id: <9911280235.8itt@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: Wierd bug
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

OK, here's a wierd one that someone found, this in 0.44.2 at least:

Get two infobots in the same room and type:

-938133838

Or any other large negative number.

<Brazilian> -9381333838 
<ibot> -9381333838 
<regurg> -9381333838 
<ibot> -9381333838 
<regurg> -9381333838 
<ibot> -9381333838
 
...etc into infinity...


 :        Bob Maple          :                                             :
 :   bmaple at burner.com    :     Help stamp out, remove and abolish      :
 : www.dimensional.com/~bobm :     redundancy.                             :


From infobot-dev@metronomicon.com  Sun Nov 28 04:09:40 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA06606
	for infobot-dev-list; Sun, 28 Nov 1999 04:09:22 -0500
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 EAA06603
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 04:09:21 -0500
Received: from [10.1.0.2] ([24.28.71.75]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Sun, 28 Nov 1999 02:59:45 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Sun, 28 Nov 1999 03:07:30 -0600
Subject: Re: Wierd bug
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B4664CF1.990D%alterego@austin.rr.com>
In-Reply-To: <9911280235.8itt@burner.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 11/27/99 8:35 PM, Bob Maple wrote:

> OK, here's a wierd one that someone found, this in 0.44.2 at least:
> 
> Get two infobots in the same room and type:
> 
> -938133838
> 
> Or any other large negative number.
> 
> <Brazilian> -9381333838
> <ibot> -9381333838
> <regurg> -9381333838
> <ibot> -9381333838
> <regurg> -9381333838
> <ibot> -9381333838
> 
> ....etc into infinity...

I've seen that before; and I don't consider it a bug.  It's just doing the
math and returning the result.  You have two bots in the same channel giving
math results.  

You can turn the math feature off in the infobot config file.

From infobot-dev@metronomicon.com  Sun Nov 28 04:53:45 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA06866
	for infobot-dev-list; Sun, 28 Nov 1999 04:53:44 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id EAA06863
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 04:53:43 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id CAA18245
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 02:51:54 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Sun, 28 Nov 99 02:50:04 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8ivc@burner.com>; Sun, 28 Nov 99 02:41:45 MST
Date: Sun, 28 Nov 99 02:41:45 MST
Message-Id: <9911280941.8ivc@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: Re: Wierd bug
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sun 28-Nov-1999  3:07a, David Blache wrote:

DB> I've seen that before; and I don't consider it a bug.  It's just doing the
DB> math and returning the result.  You have two bots in the same channel
DB> giving math results.  

Well, -99999 isn't exactly a math problem.

I assume that it's thinking you're asking it 'what is 0 - whatever' and
responding, because nothing is preceeding the '-' at the beginning.  Granted,
it's a silly thing to ask a calculator but and it rarely happens.. but there
were a couple of jerks doing it in our channel and the (perhaps final)
solution was to just put them on ignore since they were doing other rude
things like trying to erase as many factoids as they could, etc.  <shakes
head>


 :        Bob Maple          :                                             :
 :   bmaple at burner.com    :     Help stamp out, remove and abolish      :
 : www.dimensional.com/~bobm :     redundancy.                             :


From infobot-dev@metronomicon.com  Sun Nov 28 05:29:48 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id FAA06998
	for infobot-dev-list; Sun, 28 Nov 1999 05:29:46 -0500
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 FAA06995
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 05:29:44 -0500
Received: (qmail 10987 invoked by uid 500); 28 Nov 1999 10:27:54 -0000
Date: Sun, 28 Nov 1999 19:27:54 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: Wierd bug
Message-ID: <19991128192754.A10972@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <9911280235.8itt@burner.com> <B4664CF1.990D%alterego@austin.rr.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <B4664CF1.990D%alterego@austin.rr.com>; from David Blache on Sun, Nov 28, 1999 at 03:07:30AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Sun, Nov 28, 1999 at 03:07:30AM -0600, David Blache wrote:
> > Get two infobots in the same room and type:
> > -938133838
> I've seen that before; and I don't consider it a bug.  It's just doing the
> math and returning the result.  You have two bots in the same channel giving
> math results.  

I do consider it a bug, simply 'cos it's not what we want to have happen.
If the two bots are in each others friendly bots array we should be able to
easily sort this out. I'm not sure where to plug the leak, though; it can be
cool to ask one bot something which causes it to ask the other one something
and then get a response. However, we don't want two bots throwing negative
numbers at each other. Suggestions?

-- 
Laugh and the world thinks you're an idiot.

From infobot-dev@metronomicon.com  Sun Nov 28 10:41:44 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA07978
	for infobot-dev-list; Sun, 28 Nov 1999 10:41:41 -0500
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 KAA07975
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 10:41:40 -0500
Received: from ip90.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa14643; 28 Nov 99 10:39 EST
Message-ID: <38414CF1.447FE231@cs.cmu.edu>
Date: Sun, 28 Nov 1999 10:40:33 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: Wierd bug
References: <9911280235.8itt@burner.com> <B4664CF1.990D%alterego@austin.rr.com> <19991128192754.A10972@othersideofthe.earth.li>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


My suggestion would be to compare the input and the 
output and not return undef from the math routine
if it's identical. I'll queue that one up for
the next release.

kevin


Simon Cozens wrote:
> 
> On Sun, Nov 28, 1999 at 03:07:30AM -0600, David Blache wrote:
> > > Get two infobots in the same room and type:
> > > -938133838
> > I've seen that before; and I don't consider it a bug.  It's just doing the
> > math and returning the result.  You have two bots in the same channel giving
> > math results.
> 
> I do consider it a bug, simply 'cos it's not what we want to have happen.
> If the two bots are in each others friendly bots array we should be able to
> easily sort this out. I'm not sure where to plug the leak, though; it can be
> cool to ask one bot something which causes it to ask the other one something
> and then get a response. However, we don't want two bots throwing negative
> numbers at each other. Suggestions?
> 
> --
> Laugh and the world thinks you're an idiot.

From infobot-dev@metronomicon.com  Sun Nov 28 17:37:19 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA09296
	for infobot-dev-list; Sun, 28 Nov 1999 17:37:12 -0500
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 RAA09293
	for <infobot-dev@metronomicon.com>; Sun, 28 Nov 1999 17:37:11 -0500
Received: from ip90.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa17746; 28 Nov 99 17:34 EST
Message-ID: <3841AE4A.86B81F53@cs.cmu.edu>
Date: Sun, 28 Nov 1999 17:35:54 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: Wierd bug
References: <9911280235.8itt@burner.com> <B4664CF1.990D%alterego@austin.rr.com> <19991128192754.A10972@othersideofthe.earth.li> <38414CF1.447FE231@cs.cmu.edu>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Expanding upon this --

the basic problem is that '-' can be either unary
or binary minus -- unary as in some negative integer,
or binary, as in something minus something.

right now it's a regex (!) that tests whether 
something is a valid 'math expression'.  It is OK on positive
numbers because it's \d+, but the - could be
(null) minus integer or minus integer.  so the
point of inserting something that checks if the 
result is the same as the input is a crap workaround
for a true expression parser, or some better constraints
on the input/respond-without-addressing relationship,
which is a tricky bugger.

kevin


Kevin Lenzo wrote:
> 
> My suggestion would be to compare the input and the
> output and not return undef from the math routine
> if it's identical. I'll queue that one up for
> the next release.
> 
> kevin
> 
> Simon Cozens wrote:
> >
> > On Sun, Nov 28, 1999 at 03:07:30AM -0600, David Blache wrote:
> > > > Get two infobots in the same room and type:
> > > > -938133838
> > > I've seen that before; and I don't consider it a bug.  It's just doing the
> > > math and returning the result.  You have two bots in the same channel giving
> > > math results.
> >
> > I do consider it a bug, simply 'cos it's not what we want to have happen.
> > If the two bots are in each others friendly bots array we should be able to
> > easily sort this out. I'm not sure where to plug the leak, though; it can be
> > cool to ask one bot something which causes it to ask the other one something
> > and then get a response. However, we don't want two bots throwing negative
> > numbers at each other. Suggestions?
> >
> > --
> > Laugh and the world thinks you're an idiot.

From infobot-dev@metronomicon.com  Mon Nov 29 18:54:01 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA13982
	for infobot-dev-list; Mon, 29 Nov 1999 18:53:32 -0500
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 SAA13979
	for <infobot-dev@metronomicon.com>; Mon, 29 Nov 1999 18:53:31 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id RAA16354
	for infobot-dev@metronomicon.com; Mon, 29 Nov 1999 17:50:13 -0600 (CST)
Date: Mon, 29 Nov 1999 17:50:13 -0600
From: Masque <masque@pound.perl.org>
To: infobot-dev@metronomicon.com
Subject: Translation module bug
Message-ID: <19991129175013.B12451@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

<q[merlyn]> x from fr " -- C. de Gaulle <Masque> stimp
<Masque> Besides, I have mongers to take care of and lead to victory.
<purl> q[merlyn]: " -- C of Gaulle &lt;Masque&gt;  stimp


kiPretty straightforward....

Masque

From infobot-dev@metronomicon.com  Tue Dec  7 21:04:49 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA26044
	for infobot-dev-list; Tue, 7 Dec 1999 21:04:16 -0500
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 VAA26040
	for <infobot-dev@metronomicon.com>; Tue, 7 Dec 1999 21:04:15 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 7 Dec 1999 19:55:10 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 07 Dec 1999 20:03:10 -0600
Subject: factoid length
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B4731384.9E07%alterego@austin.rr.com>
In-Reply-To: <19991129175013.B12451@pound.perl.org>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

What is the current maximum length of a factoid?

Shouldn't it be possible to have the IRC-defined-maximum number of chars in
each section between | seperators in a factoid?

-- 

       Did you ever notice how the military verbs nouns?

From infobot-dev@metronomicon.com  Tue Dec  7 21:04:49 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA26042
	for infobot-dev-list; Tue, 7 Dec 1999 21:04:16 -0500
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 VAA26036
	for <infobot-dev@metronomicon.com>; Tue, 7 Dec 1999 21:04:14 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 7 Dec 1999 19:55:08 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 07 Dec 1999 20:03:10 -0600
Subject: private responses
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47312CA.9E06%alterego@austin.rr.com>
In-Reply-To: <19991129175013.B12451@pound.perl.org>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Infobot's behavior right now is to always list the entire factoid definition
when the factoid is invoked via a private message.  I would much rather
private messages invoke the same responses as public messages in general.

This is the behavior in public...

<AlterEgo> Brain, asl is <reply> sooooo...come here often, $who? ;D |
<reply> old enough to know better, young enough not to care / only with
metal-freaks / in your wildest dreams, baby! =D

<Brain> okay, AlterEgo

<AlterEgo> asl?

<Brain> sooooo...come here often, AlterEgo? ;D

But this is the behavior in private...

<AlterEgo> asl?

<Brain> asl is, like, <reply> sooooo...come here often, $who? ;D | <reply>
old enough to know better, young enough not to care / only with metal-freaks
/ in your wildest dreams, baby! =D

...

I'd much rather infobot reply just as in public, selecting a random phrase
from the definition.

If there needs to be an exception, I'd rather he only give the full
definition to users with verified masks who send private messages.

-- 

      Disclaimer: Written by a highly caffeinated mammal.

From infobot-dev@metronomicon.com  Tue Dec  7 21:20:04 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA26133
	for infobot-dev-list; Tue, 7 Dec 1999 21:20:03 -0500
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 VAA26130
	for <infobot-dev@metronomicon.com>; Tue, 7 Dec 1999 21:20:02 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id D6416E93B; Tue,  7 Dec 1999 20:29:59 -0600 (CST)
Date: Tue, 7 Dec 1999 20:29:59 -0600
From: duff@cbi.tamucc.edu
To: David Blache <alterego@austin.rr.com>
Cc: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: private responses
Message-ID: <19991207202959.B17212@cbi.tamucc.edu>
References: <19991129175013.B12451@pound.perl.org> <B47312CA.9E06%alterego@austin.rr.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <B47312CA.9E06%alterego@austin.rr.com>; from alterego@austin.rr.com on Tue, Dec 07, 1999 at 08:03:10PM -0600
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Tue, Dec 07, 1999 at 08:03:10PM -0600, David Blache wrote:
> Infobot's behavior right now is to always list the entire factoid definition
> when the factoid is invoked via a private message.  I would much rather
> private messages invoke the same responses as public messages in general.

How do you propose to handle the case when someone asks the bot
"literal foo?"  /dcc query?

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

From infobot-dev@metronomicon.com  Tue Dec  7 21:26:52 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA26190
	for infobot-dev-list; Tue, 7 Dec 1999 21:26:52 -0500
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 VAA26187
	for <infobot-dev@metronomicon.com>; Tue, 7 Dec 1999 21:26:52 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 7 Dec 1999 20:17:47 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 07 Dec 1999 20:25:50 -0600
Subject: Re: private responses
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B4731DCE.9E70%alterego@austin.rr.com>
In-Reply-To: <19991207202959.B17212@cbi.tamucc.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

on 12/7/99 8:29 PM, duff@cbi.tamucc.edu wrote:

> On Tue, Dec 07, 1999 at 08:03:10PM -0600, David Blache wrote:
>> Infobot's behavior right now is to always list the entire factoid definition
>> when the factoid is invoked via a private message.  I would much rather
>> private messages invoke the same responses as public messages in general.
> 
> How do you propose to handle the case when someone asks the bot
> "literal foo?"  /dcc query?

literal foo?  I'm not sure I know what "literal foo" is.  Please explain?

-- 

   Make it idiot proof and someone will make a better idiot.

From infobot-dev@metronomicon.com  Wed Dec  8 00:37:49 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA26942
	for infobot-dev-list; Wed, 8 Dec 1999 00:37:46 -0500
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 AAA26939
	for <infobot-dev@metronomicon.com>; Wed, 8 Dec 1999 00:37:45 -0500
Received: from ip90.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa01107; 8 Dec 99 0:35 EST
Message-ID: <384DEE89.34CF42EB@cs.cmu.edu>
Date: Wed, 08 Dec 1999 00:37:13 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: duff@cbi.tamucc.edu
CC: David Blache <alterego@austin.rr.com>,
        Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: private responses
References: <19991129175013.B12451@pound.perl.org> <B47312CA.9E06%alterego@austin.rr.com> <19991207202959.B17212@cbi.tamucc.edu>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO


that is the expected behaviour. 'literal' will be
the mechanism in both public and private.

kevin

duff@cbi.tamucc.edu wrote:
> 
> On Tue, Dec 07, 1999 at 08:03:10PM -0600, David Blache wrote:
> > Infobot's behavior right now is to always list the entire factoid definition
> > when the factoid is invoked via a private message.  I would much rather
> > private messages invoke the same responses as public messages in general.
> 
> How do you propose to handle the case when someone asks the bot
> "literal foo?"  /dcc query?
> 
> -Scott
> --
> Jonathan Scott Duff
> duff@cbi.tamucc.edu

From infobot-dev@metronomicon.com  Wed Dec  8 00:40:58 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA26958
	for infobot-dev-list; Wed, 8 Dec 1999 00:40:58 -0500
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 AAA26955
	for <infobot-dev@metronomicon.com>; Wed, 8 Dec 1999 00:40:56 -0500
Received: from ip90.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa01262; 8 Dec 99 0:39 EST
Message-ID: <384DEF7F.8C7E3D57@cs.cmu.edu>
Date: Wed, 08 Dec 1999 00:41:19 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: David Blache <alterego@austin.rr.com>
CC: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: factoid length
References: <B4731384.9E07%alterego@austin.rr.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

David Blache wrote:
> 
> What is the current maximum length of a factoid?
> 
> Shouldn't it be possible to have the IRC-defined-maximum 
> number of chars in each section between | seperators in a factoid?
> 
> --
> 
>        Did you ever notice how the military verbs nouns?

these are set as parameters --  maxKeySize and maxDataSize -- in
files/infobot.config . 

# max length of X (the key, 
maxKeySize       50
# max length of Y (value or data, the 'right hand side', or 2nd argument)
maxDataSize      400

the irc protocol will limit how much can be sent back under irc.

kevin

From infobot-dev@metronomicon.com  Wed Dec  8 20:30:26 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA30857
	for infobot-dev-list; Wed, 8 Dec 1999 20:30:21 -0500
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 UAA30854
	for <infobot-dev@metronomicon.com>; Wed, 8 Dec 1999 20:30:20 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id TAA01493;
	Wed, 8 Dec 1999 19:27:39 -0600 (CST)
Date: Wed, 8 Dec 1999 19:27:39 -0600
From: Masque <masque@pound.perl.org>
To: Kevin Lenzo <lenzo@cs.cmu.edu>
Cc: infobot-dev@metronomicon.com
Subject: Re: factoid length
Message-ID: <19991208192739.A1468@pound.perl.org>
References: <B4731384.9E07%alterego@austin.rr.com> <384DEF7F.8C7E3D57@cs.cmu.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <384DEF7F.8C7E3D57@cs.cmu.edu>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Wed, Dec 08, 1999 at 12:41:19AM -0500, Kevin Lenzo wrote:
> David Blache wrote:
> > 
> > What is the current maximum length of a factoid?
> > 
> > Shouldn't it be possible to have the IRC-defined-maximum 
> > number of chars in each section between | seperators in a factoid?
> > 
> > --
> > 
> >        Did you ever notice how the military verbs nouns?
> 
> these are set as parameters --  maxKeySize and maxDataSize -- in
> files/infobot.config . 
> 
> # max length of X (the key, 
> maxKeySize       50
> # max length of Y (value or data, the 'right hand side', or 2nd argument)
> maxDataSize      400
> 
> the irc protocol will limit how much can be sent back under irc.
> 
> kevin

I think he was suggesting that maxDataSize apply to factoid length
between pipes, thus allowing multiple long responses per factoid.

Masque.

From infobot-dev@metronomicon.com  Thu Dec  9 00:56:04 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA31677
	for infobot-dev-list; Thu, 9 Dec 1999 00:55:47 -0500
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 AAA31674
	for <infobot-dev@metronomicon.com>; Thu, 9 Dec 1999 00:55:46 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id A7142E937; Thu,  9 Dec 1999 00:13:53 -0600 (CST)
Date: Thu, 9 Dec 1999 00:13:53 -0600
From: duff@cbi.tamucc.edu
To: David Blache <alterego@austin.rr.com>
Cc: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: private responses
Message-ID: <19991209001353.B7160@cbi.tamucc.edu>
References: <19991207202959.B17212@cbi.tamucc.edu> <B4731DCE.9E70%alterego@austin.rr.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <B4731DCE.9E70%alterego@austin.rr.com>; from alterego@austin.rr.com on Tue, Dec 07, 1999 at 08:25:50PM -0600
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Tue, Dec 07, 1999 at 08:25:50PM -0600, David Blache wrote:
> on 12/7/99 8:29 PM, duff@cbi.tamucc.edu wrote:
> 
> > On Tue, Dec 07, 1999 at 08:03:10PM -0600, David Blache wrote:
> >> Infobot's behavior right now is to always list the entire factoid definition
> >> when the factoid is invoked via a private message.  I would much rather
> >> private messages invoke the same responses as public messages in general.
> > 
> > How do you propose to handle the case when someone asks the bot
> > "literal foo?"  /dcc query?
> 
> literal foo?  I'm not sure I know what "literal foo" is.  Please explain?

Say we have a factoid with multiple entries (multoid? :) separated
by pipes.  When someone queries the bot for "literal <factoid>" the
bot gives them *all* of the text for that factoid.  So how is "literal
<factoid>" to be responded when the literal factoid may be *really* long?

Example:

-> *purl* tpop quote
*purl* tpop quote is <reply>"C and friends present pernicious precedence
+problems"
-> *purl* literal tpop quote
*purl* PerlJam: tpop quote =is= <reply>"clarity is often achieved through
+brevity" |<reply>"Good code needs fewer comments than bad
code"|<reply>"C and friends present pernicious precedence problems"


Now, if each of those alternatives were as long as the maximum factoid
length, we'd have a really long answer to "literal tpop quote".  How
do you propose to handle this?

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

From infobot-dev@metronomicon.com  Thu Dec  9 01:02:53 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA31726
	for infobot-dev-list; Thu, 9 Dec 1999 01:02:53 -0500
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 BAA31723
	for <infobot-dev@metronomicon.com>; Thu, 9 Dec 1999 01:02:52 -0500
Received: (from masque@localhost)
	by chaos.wustl.edu (8.9.3/8.9.3/HappyFunMail) id AAA04003;
	Thu, 9 Dec 1999 00:00:15 -0600 (CST)
Date: Thu, 9 Dec 1999 00:00:15 -0600
From: Masque <masque@pound.perl.org>
To: duff@cbi.tamucc.edu
Cc: infobot-dev@metronomicon.com
Subject: Re: private responses
Message-ID: <19991209000015.B1468@pound.perl.org>
References: <19991207202959.B17212@cbi.tamucc.edu> <B4731DCE.9E70%alterego@austin.rr.com> <19991209001353.B7160@cbi.tamucc.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0pre3i
In-Reply-To: <19991209001353.B7160@cbi.tamucc.edu>
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Thu, Dec 09, 1999 at 12:13:53AM -0600, duff@cbi.tamucc.edu wrote:
> 
> Now, if each of those alternatives were as long as the maximum factoid
> length, we'd have a really long answer to "literal tpop quote".  How
> do you propose to handle this?
> 
> -Scott
> -- 
> Jonathan Scott Duff
> duff@cbi.tamucc.edu

Mulitple messages.  As many will fit in $x chars, where $x is maximum 
message length.

Masuqe.

From infobot-dev@metronomicon.com  Thu Dec  9 01:42:22 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA31869
	for infobot-dev-list; Thu, 9 Dec 1999 01:42:22 -0500
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 BAA31866
	for <infobot-dev@metronomicon.com>; Thu, 9 Dec 1999 01:42:21 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 9 Dec 1999 00:41:35 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 09 Dec 1999 00:41:16 -0600
Subject: Re: private responses
From: David Blache <alterego@austin.rr.com>
To: <duff@cbi.tamucc.edu>
CC: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B474AB2C.9F1D%alterego@austin.rr.com>
In-Reply-To: <19991209001353.B7160@cbi.tamucc.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

on 12/9/99 12:13 AM, duff@cbi.tamucc.edu wrote:

> On Tue, Dec 07, 1999 at 08:25:50PM -0600, David Blache wrote:
>> on 12/7/99 8:29 PM, duff@cbi.tamucc.edu wrote:
>> 
>>> On Tue, Dec 07, 1999 at 08:03:10PM -0600, David Blache wrote:
>>>> Infobot's behavior right now is to always list the entire factoid
>>>> definition
>>>> when the factoid is invoked via a private message.  I would much rather
>>>> private messages invoke the same responses as public messages in general.
>>> 
>>> How do you propose to handle the case when someone asks the bot
>>> "literal foo?"  /dcc query?
>> 
>> literal foo?  I'm not sure I know what "literal foo" is.  Please explain?
> 
> Say we have a factoid with multiple entries (multoid? :) separated
> by pipes.  When someone queries the bot for "literal <factoid>" the
> bot gives them *all* of the text for that factoid.  So how is "literal
> <factoid>" to be responded when the literal factoid may be *really* long?
> 
> Example:
> 
> -> *purl* tpop quote
> *purl* tpop quote is <reply>"C and friends present pernicious precedence
> +problems"
> -> *purl* literal tpop quote
> *purl* PerlJam: tpop quote =is= <reply>"clarity is often achieved through
> +brevity" |<reply>"Good code needs fewer comments than bad
> code"|<reply>"C and friends present pernicious precedence problems"
> 
> 
> Now, if each of those alternatives were as long as the maximum factoid
> length, we'd have a really long answer to "literal tpop quote".  How
> do you propose to handle this?
> 
> -Scott

stick whatever overflows into another msg...you could even be smart about it
and stop one factoid before the cutoff so that no factoids are cut off in
the middle of a msg.

From infobot-dev@metronomicon.com  Thu Dec  9 01:45:45 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA31894
	for infobot-dev-list; Thu, 9 Dec 1999 01:45:45 -0500
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 BAA31891
	for <infobot-dev@metronomicon.com>; Thu, 9 Dec 1999 01:45:44 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 9 Dec 1999 00:45:07 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 09 Dec 1999 00:44:47 -0600
Subject: Re: factoid length
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B474ABFF.9F20%alterego@austin.rr.com>
In-Reply-To: <19991208192739.A1468@pound.perl.org>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

on 12/8/99 7:27 PM, Masque wrote:

>> these are set as parameters --  maxKeySize and maxDataSize -- in
>> files/infobot.config .
>> 
>> # max length of X (the key,
>> maxKeySize       50
>> # max length of Y (value or data, the 'right hand side', or 2nd argument)
>> maxDataSize      400
>> 
>> the irc protocol will limit how much can be sent back under irc.
>> 
>> kevin
> 
> I think he was suggesting that maxDataSize apply to factoid length
> between pipes, thus allowing multiple long responses per factoid.

yes, thank you Masque, I'd like to be able to use the maximum irc-allowable
data for each subfactoid.

-- 

     Four out of five people think the fifth is an idiot.

From infobot-dev@metronomicon.com  Thu Dec  9 10:18:03 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01137
	for infobot-dev-list; Thu, 9 Dec 1999 10:17:58 -0500
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 KAA01134
	for <infobot-dev@metronomicon.com>; Thu, 9 Dec 1999 10:17:51 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id D01AEE93B; Thu,  9 Dec 1999 09:35:54 -0600 (CST)
Date: Thu, 9 Dec 1999 09:35:54 -0600
From: duff@cbi.tamucc.edu
To: Masque <masque@pound.perl.org>
Cc: infobot-dev@metronomicon.com
Subject: Re: private responses
Message-ID: <19991209093554.B7925@cbi.tamucc.edu>
References: <19991207202959.B17212@cbi.tamucc.edu> <B4731DCE.9E70%alterego@austin.rr.com> <19991209001353.B7160@cbi.tamucc.edu> <19991209000015.B1468@pound.perl.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <19991209000015.B1468@pound.perl.org>; from masque@pound.perl.org on Thu, Dec 09, 1999 at 12:00:15AM -0600
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Thu, Dec 09, 1999 at 12:00:15AM -0600, Masque wrote:
> On Thu, Dec 09, 1999 at 12:13:53AM -0600, duff@cbi.tamucc.edu wrote:
> Mulitple messages.  As many will fit in $x chars, where $x is maximum 
> message length.

Okay, is there a limit on the number of alternations in a factoid?

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

From infobot-dev@metronomicon.com  Fri Dec 10 09:58:08 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA10171
	for infobot-dev-list; Fri, 10 Dec 1999 09:57:51 -0500
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 JAA10168
	for <infobot-dev@metronomicon.com>; Fri, 10 Dec 1999 09:57:49 -0500
Received: from lublin.zrz.tu-berlin.de ([130.149.2.130] ident=root)
	  by mail.zrz.tu-berlin.de with esmtp (EXIM-3.12)
	  for <infobot-dev@metronomicon.com>
	  id 11wRTf-0007Vr-00; Fri, 10 Dec 1999 15:56:59 +0100
Received: from lublin.zrz.tu-berlin.de by lublin.zrz.TU-Berlin.DE (8.8.7/ZRZ-Gen)
	  id OAA06475; Fri, 10 Dec 1999 14:56:56 GMT
Message-ID: <385114B6.221F73F7@lublin.zrz.tu-berlin.de>
Date: Fri, 10 Dec 1999 15:56:54 +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: infobot-dev@metronomicon.com
Subject: infobot patch for karma
Content-Type: multipart/mixed; boundary="------------F3A9F535D0AC5D6F53A2A3A7"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

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

The attached patch changes infobot's karma behavior in case
the string after "karma [for]" isn't found in %plusplus.

If the string is surrounded by /.../ or m/.../ this is stripped.
The remaining string is then quotemeta'd and used as a regular
expression against the keys in %plusplus.  The hits are summed
up and reported.

The idea is to enable people to query the combined karma of variants
of their nick.  Example:

karma /siv/
siv and |siv| have karma of 24

Notes:

This is currently implemented in myRoutines.pl, but shouldn't
be hard to transfer to Question.pl.

It makes use of the new-ish qr operator to compile regular
expressions.  If this is undesirable, the line

        my $pat = qr/\Q$in/;

can be replaced by

        my $pat = quotemeta $in; #untested

at a performace penalty.

Anno
--------------F3A9F535D0AC5D6F53A2A3A7
Content-Type: text/plain; charset=us-ascii; name="infobot.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="infobot.patch"

diff -rc infobot-0.44.3/src/myRoutines.pl infobot-0.44.3.patch/src/myRoutines.pl
*** infobot-0.44.3/src/myRoutines.pl	Tue Oct 26 18:37:47 1999
--- infobot-0.44.3.patch/src/myRoutines.pl	Fri Dec 10 13:40:17 1999
***************
*** 8,14 ****
  
  sub myRoutines {
      # called after it decides if it's been addressed.
!     # you have access tothe global variables here, 
      # which is bad, but anyway.
  
      # you can return 'NOREPLY' if you want to stop
--- 8,14 ----
  
  sub myRoutines {
      # called after it decides if it's been addressed.
!     # you have access to the global variables here, 
      # which is bad, but anyway.
  
      # you can return 'NOREPLY' if you want to stop
***************
*** 55,63 ****
  	return $reply;
      }
  
      return '';	# do nothing and let the other routines have a go
      # Extras.pl is called next; look there for more complex examples.
  }
  
! 1;
  
--- 55,114 ----
  	return $reply;
      }
  
+     if ($param{'plusplus'}) {
+         my $in2 = $message;
+ 
+         if ($in2 =~ s/^(karma|score)\s+(for\s+)?//) {
+             return &do_karma( $in2);
+         }
+     }
+ 
+ 
      return '';	# do nothing and let the other routines have a go
      # Extras.pl is called next; look there for more complex examples.
  }
  
! sub do_karma {
!     my $in = shift;
!     $in = lc($in);
!     $in =~ s/\s+/ /g;
!     if ($in eq "me") {
!         $in = lc($who);
!     }
!     my ($karma, @hits) = 0;
!     if (defined($plusplus{$in}) ) {
!         $karma = $plusplus{$in};
!         push @hits, $in;
!     } else {
!         $in = $1 if $in =~ m{^m?/(.*)/\s*$};
!         my $pat = qr/\Q$in/;
!         foreach ( keys %plusplus ) {
!             if ( m/$pat/ ) {
!                 $karma += $plusplus{$_};
!                 push @hits, $_;
!             }
!         }
!     }
!     if ( @hits ) {
!         @hits = sort @hits;
!         if ( $karma ) {
!             $karma = "karma of $karma";
!         } else {
!             $karma = "neutral karma";
!         }
!         if ( @hits > 3 ) {
!             my $rest = @hits - 3;
!             return join(', ', @hits[0..2]) .
!                 " and $rest more have $karma";
!         } elsif ( @hits > 1 ) {
!             return join(', ', @hits[0..$#hits-1]) . 
!                 " and $hits[ -1] have $karma";
!         } else {
!             return "@hits has $karma";
!         }
!     } else {
!         return "$in has no karma";
!     }
! }
  
+ 1;

--------------F3A9F535D0AC5D6F53A2A3A7--

From infobot-dev@metronomicon.com  Sun Dec 12 02:35:01 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA17793
	for infobot-dev-list; Sun, 12 Dec 1999 02:34:33 -0500
Received: from mail.in-con.com (bell.in-con.com [205.162.249.10])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id CAA17790
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 02:34:32 -0500
Received: from cedar (druk.imperma.net[205.162.249.195])by BELL(MailMax 2.040) with ESMTP id 0 for mpoole@in-con.com; Sat, 11 Dec 1999 23:34:22 -0800 PST
Message-ID: <214901bf4473$74611330$c3f9a2cd@cedar>
From: "mapoole" <mpoole@in-con.com>
To: <infobot-dev@metronomicon.com>
Subject: sound of door-bell rining
Date: Sat, 11 Dec 1999 23:35:23 -0800
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 4.72.3110.5
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Am I in yet?

Is the list alive/awake/active?

/me flings papers about, which address did I use to get here anyway...

    urgen


From infobot-dev@metronomicon.com  Sun Dec 12 03:01:33 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id DAA17898
	for infobot-dev-list; Sun, 12 Dec 1999 03:01:33 -0500
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 DAA17895
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 03:01:31 -0500
Received: (qmail 13047 invoked by uid 500); 12 Dec 1999 08:01:00 -0000
Date: Sun, 12 Dec 1999 17:01:00 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Re: sound of door-bell rining
Message-ID: <19991212170100.A12720@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <214901bf4473$74611330$c3f9a2cd@cedar>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <214901bf4473$74611330$c3f9a2cd@cedar>; from mapoole on Sat, Dec 11, 1999 at 11:35:23PM -0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Sat, Dec 11, 1999 at 11:35:23PM -0800, mapoole wrote:
> Am I in yet?
> Is the list alive/awake/active?

Yes, and to prove it, here's an addition to Extras.pl which allows you to
add new time zones to Jay's *EXCELLENT* timezone feature. The one thing that
upsets me here is that you can't have this line matched *before* the ordinary
`X is Y' stuff. Or can you?

    if ($message=~/^([\w\s]+) has the same time.?zone as ([\w\s]+)\s*$/) {
        if (exists $timez{lc($2)}) {
            if (exists $timez{lc($1)}) {
                return "Already have an entry for $1, thanks";
            } else {$timez{lc($1)} = $timez{lc($2)}; return "OK, thanks"}
        } else {
            return "But I don't know where $2 is!"
        }
    }

I also have quite a fairly decent list of timezones ready to go into DBM format - it's a lot bigger than the one Jay provides. I'll put it on my patches site.

Simon

-- 
So remember when you're feeling very small and insecure
How amazingly unlikely is your birth,
And pray that there's intelligent life somewhere up in space,
'Cause there's bugger-all down here on Earth. (Monty Python)

From infobot-dev@metronomicon.com  Sun Dec 12 08:42:14 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id IAA19152
	for infobot-dev-list; Sun, 12 Dec 1999 08:42:12 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id IAA19149
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 08:42:10 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id GAA28727
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 06:42:07 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Sun, 12 Dec 99 06:40:09 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8lid@burner.com>; Sun, 12 Dec 99 06:37:46 MST
Date: Sun, 12 Dec 99 06:37:46 MST
Message-Id: <9912121337.8lid@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: Interesting insult
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Ask purl to "insult mountain dew".

Seems to want to reply in German, I think.


 :        Bob Maple          : If computers get too powerful, we can just  :
 :   bmaple at burner.com    : organize them into a government committee.. :
 : www.dimensional.com/~bobm : That will do them in for sure.              :


From infobot-dev@metronomicon.com  Sun Dec 12 09:06:14 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA19256
	for infobot-dev-list; Sun, 12 Dec 1999 09:06:13 -0500
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 JAA19253
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 09:06:11 -0500
Received: (qmail 8041 invoked by uid 500); 12 Dec 1999 14:06:03 -0000
Date: Sun, 12 Dec 1999 23:05:12 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: Bob Maple <bmaple@burner.com>
Subject: Re: Interesting insult
Message-ID: <19991212230512.A7474@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <9912121337.8lid@burner.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <9912121337.8lid@burner.com>; from Bob Maple on Sun, Dec 12, 1999 at 06:37:46AM -0700
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Sun, Dec 12, 1999 at 06:37:46AM -0700, Bob Maple wrote:
> Ask purl to "insult mountain dew".
                            ^^ ^^
Eek.

In Extras.pl I have:
    if ($person =~ s/ in \s*($babel::lang_regex)\w*\s*$//xi) {

What's that x doing there, eh?
    if ($person =~ s/ in \s*($babel::lang_regex)\w*\s*$//i) {

Better.

Simon
-- 
Old Japanese proverb:
	There are two kinds of fools -- those who never climb Mt. Fuji,
	and those who climb it twice.

From infobot-dev@metronomicon.com  Sun Dec 12 14:30:06 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA20244
	for infobot-dev-list; Sun, 12 Dec 1999 14:30:00 -0500
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 OAA20241
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 14:29:59 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Sun, 12 Dec 1999 13:30:17 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Sun, 12 Dec 1999 13:29:56 -0600
Subject: private message non-literal <reply> tag shows
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47953D4.A07C%alterego@austin.rr.com>
In-Reply-To: <19991212230512.A7474@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: RO

1:28 PM:   AlterEgo: so
1:28 PM:      Brain: so is <reply> so sue me
1:28 PM:   AlterEgo: so
1:28 PM:      Brain: so is <reply> so anyway...
1:28 PM:   AlterEgo: so
1:28 PM:      Brain: i think so is <reply> need a button, AlterEgo?
1:28 PM:   AlterEgo: literal so
1:28 PM:      Brain: AlterEgo: so =is= <reply> so sue me|<reply> so
anyway...|<reply> doh!|<reply> need a button, $who?|<reply> so let's eat a
pumpkin! =D|<reply> so how are the wife and kids?|<reply> so then it's
settled.

In private, the <reply> tage is not being processed.

From infobot-dev@metronomicon.com  Sun Dec 12 14:55:25 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA20341
	for infobot-dev-list; Sun, 12 Dec 1999 14:55:25 -0500
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 OAA20338
	for <infobot-dev@metronomicon.com>; Sun, 12 Dec 1999 14:55:24 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Sun, 12 Dec 1999 13:47:10 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Sun, 12 Dec 1999 13:55:21 -0600
Subject: appending factoid definitions with "x is also x"
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47959C8.A080%alterego@austin.rr.com>
In-Reply-To: <19991209001353.B7160@cbi.tamucc.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

1:50 PM:  greenfive: brain, atex is also a big pile of debris consisting of
useless chunks of hexcode and a abused database
1:50 PM:      Brain: okay, greenfive.
1:51 PM:   AlterEgo: atex?
1:51 PM:      Brain: i guess atex is a is a very insane computer program
coded by some insane swedish coders
1:51 PM:   AlterEgo: hmmm
1:51 PM:   AlterEgo: atex?
1:51 PM:      Brain: atex is a thingie which crashes every computer, even
Macs. or a big pile of debris consisting of useless chunks of hexcode and a
abused database
1:51 PM:   AlterEgo: errrm....
1:51 PM:   AlterEgo: literal atex
1:51 PM:      Brain: AlterEgo: atex =is= a is a very insane computer program
coded by some insane swedish coders | a thingie which crashes every
computer, even Macs. or a big pile of debris consisting of useless chunks of
hexcode and a abused database


...wouldn't it be better to append the new factoid definition with a |
instead of the word "or"?  I'd at least like to be able to set this behavior
with an option in the config file.

From infobot-dev@metronomicon.com  Mon Dec 13 23:06:11 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id XAA26291
	for infobot-dev-list; Mon, 13 Dec 1999 23:05:58 -0500
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 XAA26288
	for <infobot-dev@metronomicon.com>; Mon, 13 Dec 1999 23:05:57 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Mon, 13 Dec 1999 22:06:20 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Mon, 13 Dec 1999 22:05:58 -0600
Subject: killing infobot remotely - "die" command doesn't work?
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47B1E46.A145%alterego@austin.rr.com>
In-Reply-To: <B47959C8.A080%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: RO

In the infobot.users file I use something like this:

UserEntry TestAdmin {
    name  "TestAdmin";
    title "TestAdmin";
    flags +ftrmscpeS;
    pass  testadmin;
    mask  testadmin*!*testadmin@*.austin.rr.com;
}

The bot's nickname is "Brain".

If I use this:

    /msg Brain die

I get this:  

    <Brain> you must identify yourself; /msg Brain <pass> <command>

ok...so if I use this:

    /msg Brain testadmin die

I get this:

    <Brain> excuse me?

What am I missing here?

-- 

        Laughing stock:  cattle with a sense of humor.

From infobot-dev@metronomicon.com  Tue Dec 14 01:13:32 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA26700
	for infobot-dev-list; Tue, 14 Dec 1999 01:13:30 -0500
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 BAA26697
	for <infobot-dev@metronomicon.com>; Tue, 14 Dec 1999 01:13:29 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 14 Dec 1999 00:05:25 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 14 Dec 1999 00:13:37 -0600
Subject: dbname is null in Setup.pl
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47B3C31.A14E%alterego@austin.rr.com>
In-Reply-To: <B47B1E46.A145%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: RO

anyone know why I would get this error only when running from crond?

dbname is null in Setup.pl

-- 

        Condominiums are not effective birth control.

From infobot-dev@metronomicon.com  Tue Dec 14 10:16:14 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA28406
	for infobot-dev-list; Tue, 14 Dec 1999 10:16:03 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA28403
	for <infobot-dev@metronomicon.com>; Tue, 14 Dec 1999 10:15:56 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id JAA12606;
	Tue, 14 Dec 1999 09:16:03 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id JAA02402;
	Tue, 14 Dec 1999 09:19:00 -0600 (CST)
Date: Tue, 14 Dec 1999 09:19:00 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: David Blache <alterego@austin.rr.com>
cc: Infobot development list <infobot-dev@metronomicon.com>
Subject: Re: killing infobot remotely - "die" command doesn't work?
In-Reply-To: <B47B1E46.A145%alterego@austin.rr.com>
Message-ID: <Pine.GSO.4.21.9912140916400.2274-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

infobot-root/scripts> ./makepasswd
plaintext> testadmin
        QYqQKFG53Tbt2

so you should have:
    pass  QYqQKFG53Tbt2;

If the infobot doesn't match a password it'll give you that message.

Jay

On Mon, 13 Dec 1999, David Blache wrote:

> In the infobot.users file I use something like this:
> 
> UserEntry TestAdmin {
>     name  "TestAdmin";
>     title "TestAdmin";
>     flags +ftrmscpeS;
>     pass  testadmin;
>     mask  testadmin*!*testadmin@*.austin.rr.com;
> }
> 
> The bot's nickname is "Brain".
> 
> If I use this:
> 
>     /msg Brain die
> 
> I get this:  
> 
>     <Brain> you must identify yourself; /msg Brain <pass> <command>
> 
> ok...so if I use this:
> 
>     /msg Brain testadmin die
> 
> I get this:
> 
>     <Brain> excuse me?
> 
> What am I missing here?
> 
> -- 
> 
>         Laughing stock:  cattle with a sense of humor.
> 

From infobot-dev@metronomicon.com  Tue Dec 14 10:29:27 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA28475
	for infobot-dev-list; Tue, 14 Dec 1999 10:29:27 -0500
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 KAA28472
	for <infobot-dev@metronomicon.com>; Tue, 14 Dec 1999 10:29:26 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Tue, 14 Dec 1999 09:21:22 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Tue, 14 Dec 1999 09:29:35 -0600
Subject: Re: killing infobot remotely - "die" command doesn't work?
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47BBE7F.A18C%alterego@austin.rr.com>
In-Reply-To: <Pine.GSO.4.21.9912140916400.2274-100000@cake.harmonic.com>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

on 12/14/99 9:19 AM, Jay Jacobs wrote:

> infobot-root/scripts> ./makepasswd
> plaintext> testadmin
> QYqQKFG53Tbt2
> 
> so you should have:
> pass  QYqQKFG53Tbt2;
> 
> If the infobot doesn't match a password it'll give you that message.

aha!  thanks!

-- 

If everything seems to be going well, you have obviously
overlooked something.

From infobot-dev@metronomicon.com  Thu Dec 16 10:12:12 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01597
	for infobot-dev-list; Thu, 16 Dec 1999 10:12:11 -0500
Received: (from lenzo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01592
	for infobot-dev@infobot.org; Thu, 16 Dec 1999 10:12:11 -0500
From: lenzo@metronomicon.com
Message-Id: <199912161512.KAA01592@token.metronomicon.com>
Subject: http://www.infobot.org is live
To: infobot-dev@infobot.org
Date: Thu, 16 Dec 1999 10:12:11 -0500 (EST)
X-Mailer: ELM [version 2.5 PL0pre8]
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Hi Folks,

We've regained infobot.org!

     http://www.infobot.org 

will be the canonical site for the infobot home
page.  Everything is there now, but it should be 
rearranged and stuff.

if anyone would liek to help out with the home page,
i could use the help :) a new design, different 
verbage, a different look perhaps...

we should have a place for images of what people
think certain bots look like :)  faces for the
bots.

kevin

From duff@dragon.cbi.tamucc.edu  Thu Dec 16 10:41:09 1999
Return-Path: <duff@dragon.cbi.tamucc.edu>
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 KAA01740
	for <lenzo@metronomicon.com>; Thu, 16 Dec 1999 10:41:09 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id EA1DFE93C; Thu, 16 Dec 1999 09:57:37 -0600 (CST)
Date: Thu, 16 Dec 1999 09:57:37 -0600
From: duff@cbi.tamucc.edu
To: lenzo@metronomicon.com
Cc: infobot-dev@infobot.org
Subject: Re: http://www.infobot.org is live
Message-ID: <19991216095737.A13935@cbi.tamucc.edu>
References: <199912161512.KAA01592@token.metronomicon.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <199912161512.KAA01592@token.metronomicon.com>; from lenzo@metronomicon.com on Thu, Dec 16, 1999 at 10:12:11AM -0500
Sender: duff@dragon.cbi.tamucc.edu
Status: RO

On Thu, Dec 16, 1999 at 10:12:11AM -0500, lenzo@metronomicon.com wrote:
> we should have a place for images of what people
> think certain bots look like :)  faces for the
> bots.

A "spot that bot" contest perhaps?  "Which one of these most look like
your image of purl?  Vote now!"  :-)

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

From infobot-dev@metronomicon.com  Thu Dec 16 10:41:14 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01745
	for infobot-dev-list; Thu, 16 Dec 1999 10:41:13 -0500
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 KAA01739
	for <infobot-dev@infobot.org>; Thu, 16 Dec 1999 10:41:08 -0500
Received: by dragon.cbi.tamucc.edu (Postfix, from userid 101)
	id EA1DFE93C; Thu, 16 Dec 1999 09:57:37 -0600 (CST)
Date: Thu, 16 Dec 1999 09:57:37 -0600
From: duff@cbi.tamucc.edu
To: lenzo@metronomicon.com
Cc: infobot-dev@infobot.org
Subject: Re: http://www.infobot.org is live
Message-ID: <19991216095737.A13935@cbi.tamucc.edu>
References: <199912161512.KAA01592@token.metronomicon.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0us
In-Reply-To: <199912161512.KAA01592@token.metronomicon.com>; from lenzo@metronomicon.com on Thu, Dec 16, 1999 at 10:12:11AM -0500
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

On Thu, Dec 16, 1999 at 10:12:11AM -0500, lenzo@metronomicon.com wrote:
> we should have a place for images of what people
> think certain bots look like :)  faces for the
> bots.

A "spot that bot" contest perhaps?  "Which one of these most look like
your image of purl?  Vote now!"  :-)

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

From infobot-dev@metronomicon.com  Thu Dec 16 10:45:32 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01765
	for infobot-dev-list; Thu, 16 Dec 1999 10:45:32 -0500
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 KAA01762
	for <infobot-dev@metronomicon.com>; Thu, 16 Dec 1999 10:45:31 -0500
Received: from ip94.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa22859; 16 Dec 99 10:23 EST
Message-ID: <38590485.E9161A85@cs.cmu.edu>
Date: Thu, 16 Dec 1999 10:25:57 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@metronomicon.com
Subject: [Fwd: status of 0.50 (1.0? 0.99?)]
Content-Type: multipart/mixed;
 boundary="------------DB34C7EA66CED5D20A95CD2A"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

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

Hi folks,

I'm sorry if you get this twice.  I foolishly
sent it to the old address, which means i have
to apologize to you charter members of infobot-dev :)

kevin
--------------DB34C7EA66CED5D20A95CD2A
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Return-Path: <ml-infobot-dev-request@MLIST-1.SP.cs.cmu.edu>
Received: from MLIST-1.SP.CS.CMU.EDU by ux1.sp.cs.cmu.edu id aa22645;
          16 Dec 99 10:10 EST
Received: from mlist-1.sp.cs.cmu.edu by mlist-1.sp.cs.cmu.edu id aa18029;
          16 Dec 99 10:06 EST
Received: from UX1.SP.CS.CMU.EDU by mlist-1.sp.cs.cmu.edu id aa18027;
          16 Dec 99 10:05 EST
Received: from ip94.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa22548; 16 Dec 99 10:05 EST
Sender: lenzo@ux1.sp.cs.cmu.edu
Message-ID: <3859002B.424E8243@cs.cmu.edu>
Date: Thu, 16 Dec 1999 10:07:23 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@cs.cmu.edu
Subject: status of 0.50 (1.0? 0.99?)
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mozilla-Status2: 00000000

Hi folks,

I just wanted to let you know about the things i've been
workin on a little bit for 0.50 (possibly 1.0).  I'd
like to get a prototype out to you shortly.

1) everything runs under use strict; !

2) everything is a module (see list at end)

3) readline support, CPAN-like shell

 [lenzo@haven i050c]$ perl -MInfobot -e shell
 [    1] Session start at Thu Dec 16 09:45:39 1999 [945355539]
 [    2] Modules +Weather +W3Search +Babelfish +Nickometer +Convert +Exchange +Extras +Purldoc
+METAR +Math +Whois +Nslookup +ModuleMgr +Zippy +Example +Excuse +Insult (17)
 [    3] This is Infobot 0.50 [Quixote]
 > 

4) command-line execution. 

 [lenzo@haven i050c]$ perl -MInfobot -e 'e("x is y")'
 okay
 [lenzo@haven i050c]$ perl -MInfobot -e 'e("x")'
 x is, like, y

5) command-line switches for raw and raw_quote for mail
 filtering, etc.  works on files or on STDIO

 [lenzo@haven i050c]$ perl -MInfobot -e 'raw'             
 hello
 bonjour, Player
 what is x
 it has been said that x is bar

 [lenzo@haven i050c]$ cat > foo.file
 hello
 x is foo
 no, x is bar
 x
 [lenzo@haven i050c]$ perl -MInfobot -e 'raw_quote("foo.file")'

 > hello

 hey, Player

 > x is foo

 ...but x is sdsad...

 > no, x is bar

 OK

 > x

 x is bar


6) Infobot::Modules degrade gracefully and provide
   diagnostic info when they fail.  Bot still works
   without them.  All modules are derived from
   the class Infobot::Module, which does most of
   the heavy work.  Modules can define a regex
   or define a matches() operator. Modules can be
   turned on or off at run-time.

 [    1] Session start at Thu Dec 16 10:02:04 1999 [945356524]
 [    2] Module    Weather ****  NOT OK
 [    3] ./Infobot/Module/Weather.pm did not return a true 
         value at Infobot.pm line 278, <FH> chunk 52.
 [    4] Modules +W3Search +Babelfish +Nickometer +Convert 
         +Exchange +Extras +Purldoc +METAR +Math +Whois 
         +Nslookup +ModuleMgr +Zippy +Example +Excuse 
         +Insult (16)
 [    5] This is Infobot 0.50 [Quixote]

vs a good run (with more verbosity -- 3 is the default).

[lenzo@haven i050c]$ perl -MInfobot -e 'shell(verbosity=>4)'
[    1] Session start at Thu Dec 16 10:04:03 1999 [945356643]
[    2] db         are -> ./data/i-Quixote-are [8 entries]
[    3] db        seen -> ./data/i-Quixote-seen [3 entries]
[    4] db       karma -> ./data/i-Quixote-karma [0 entries]
[    5] db          is -> ./data/i-Quixote-is [14 entries]
[    6] Channel file ./conf/infobot.channels loaded (10 lines)
[    7] Module  Babelfish 0.01  OK
[    8] Module      METAR 0.01  OK
[    9] Module  ModuleMgr 0.01  OK
[   10] Module   W3Search 0.01  OK
[   11] Module    Weather 0.01  OK
[   12] Module      Zippy 0.01  OK
[   13] Module     Extras 0.01  OK
[   14] Module    Example 0.01  OK
[   15] Module      Whois 0.01  OK
[   16] Module       Math 0.01  OK
[   17] Module   Exchange 0.01  OK
[   18] Module   Nslookup 0.01  OK
[   19] Module    Convert 0.01  OK
[   20] Module     Excuse 0.01  OK
[   21] Module     Insult 0.01  OK
[   22] Module Nickometer 1.02  OK
[   23] Module    Purldoc 0.01  OK
[   24] Modules +Weather +W3Search +Babelfish +Nickometer +Convert +Exchange +Extras +Purldoc +METAR
+Math +Whois +Nslookup +ModuleMgr +Zippy +Example +Excuse +Insult (17)
[   25] Term::ReadLine support enabled
[   26] This is Infobot 0.50 [Quixote]


7) A first attempt at internationalization with 
   Infobot::Language and Infobot::Language::English.
   This actually lets us do a lot more -- it can
   let us do things like use the 'rude' variation 
   for someone.

8) fork/don't fork is a bot-level option.  modules
   specify their "weight" and a bot policy decides
   how to process them.

9) all messages are sent using an Infobot::Message
   object that is traceable, and so processing flow
   can be analyzed by watching the message-passing.

10) a start at at least stubbing out POD docs for 
   everything.

OK, now things that need to be done:

1) I ripped out the IRC handling to focus on the 
   basic workings of it, but the hooks are still
   there.  Either POE::Component::IRC will have to
   be hooked in here, and user verification extended
   to handle the new multiprotocol situation.

2) The DBs need some work.  I'd like the dbs to be
   a separate process what other interfaces (like
   the Natural Language -> db query interface) can
   all use, allowing 1 db to be shared by many faces.

3) Set up a SocketFactory to handle random clients;
   POE looks good for the IRC + SocketFactory.
   The bot actually does not require POE by itself,
   but will for the full blown version

4) More work on Entity.pm, resolution of names
   across protocols, and access control.

5) Tests for all modules.

6) Makefile.PL and Infobot::Bundle on CPAN.

7) More documentation.

8) More.


These are the code modules so far:

./Infobot.pm
./Infobot/DB.pm
./Infobot/RDF.pm
./Infobot/Module/Babelfish.pm
./Infobot/Module/METAR.pm
./Infobot/Module/ModuleMgr.pm
./Infobot/Module/W3Search.pm
./Infobot/Module/Weather.pm
./Infobot/Module/Zippy.pm
./Infobot/Module/Extras.pm
./Infobot/Module/Example.pm
./Infobot/Module/Whois.pm
./Infobot/Module/Math.pm
./Infobot/Module/Exchange.pm
./Infobot/Module/Nslookup.pm
./Infobot/Module/Convert.pm
./Infobot/Module/Excuse.pm
./Infobot/Module/Insult.pm
./Infobot/Module/Nickometer.pm
./Infobot/Module/Purldoc.pm
./Infobot/Question.pm
./Infobot/Statement.pm
./Infobot/Process.pm
./Infobot/Console.pm
./Infobot/Interbot.pm
./Infobot/Message.pm
./Infobot/Entity.pm
./Infobot/Module.pm
./Infobot/_hold/Karma.pm
./Infobot/_hold/Seen.pm
./Infobot/_hold/Search.pm
./Infobot/_hold/Speller.pm
./Infobot/_hold/Traceroute.pm
./Infobot/_hold/Help.pm
./Infobot/_hold/Tell.pm
./Infobot/Language/English.pm
./Infobot/Language.pm

kevin
lenzo@cs.cmu.edu

--------------DB34C7EA66CED5D20A95CD2A--

From jay@cake.harmonic.com  Thu Dec 16 13:36:46 1999
Return-Path: <jay@cake.harmonic.com>
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id NAA02357
	for <lenzo@metronomicon.com>; Thu, 16 Dec 1999 13:36:46 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id MAA13368
	for <lenzo@metronomicon.com>; Thu, 16 Dec 1999 12:34:11 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id MAA02032
	for <lenzo@metronomicon.com>; Thu, 16 Dec 1999 12:37:10 -0600 (CST)
Date: Thu, 16 Dec 1999 12:37:09 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: lenzo@metronomicon.com
Subject: Re: http://www.infobot.org is live
In-Reply-To: <199912161512.KAA01592@token.metronomicon.com>
Message-ID: <Pine.GSO.4.21.9912161210590.16692-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Status: RO

On Thu, 16 Dec 1999 lenzo@metronomicon.com wrote:

> if anyone would liek to help out with the home page,
> i could use the help :) a new design, different 
> verbage, a different look perhaps...

I'll volunteer.  I've got too much experience in HTML, plus I've set up an
email archiving system... and I have tremendous interest in the infobot
project as a whole.

 Oh yeah, and I have plenty of graphical experience.

Jay Jacobs


From lenzo@token.metronomicon.com  Thu Dec 16 20:49:21 1999
Received: from Mail.austin.rr.com ([24.93.35.55])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id UAA04274
	for <infobot-dev@infobot.org>; Thu, 16 Dec 1999 20:48:30 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 16 Dec 1999 19:28:05 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 16 Dec 1999 19:36:24 -0600
Subject: log file location
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@cs.cmu.edu>,
        <infobot-dev@infobot.org>
Message-ID: <B47EEFB7.A29C%alterego@austin.rr.com>
In-Reply-To: <3859002B.424E8243@cs.cmu.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit

in Misc.pl:

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);
    }
}

shouldn't it be 
    open(TRACK, ">> $infobot_base_dir $param{logfile}");

- I'd rather the log file stay in the same directory as the rest of the
bot's files, rather than being created in whatever the current wd is.

From lenzo@token.metronomicon.com  Fri Dec 17 10:52:02 1999
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 KAA06936
	for <infobot-dev@metronomicon.com>; Fri, 17 Dec 1999 10:52:02 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Fri, 17 Dec 1999 09:41:14 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Fri, 17 Dec 1999 09:49:34 -0600
Subject: infobot.users location
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@metronomicon.com>
Message-ID: <B47FB7AD.A2D1%alterego@austin.rr.com>
In-Reply-To: <3859002B.424E8243@cs.cmu.edu>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit

in User.pl:

sub parseUserfile {
    $file = $param{'miscdir'}.$filesep.$param{'userList'};
....
}

When crond is launching infobot via a shell script, $param{'miscdir'} is
equal to "./".  I'm not sure why as I am a newbie to perl.

But replacing $param{'miscdir'} with $initmiscdir here fixes that problem.

From infobot-dev@metronomicon.com  Wed Dec 22 09:16:10 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA00852
	for infobot-dev-list; Wed, 22 Dec 1999 09:15:52 -0500
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 JAA00849
	for <infobot-dev@infobot.org>; Wed, 22 Dec 1999 09:15:51 -0500
Received: from ip169.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa26966; 22 Dec 99 9:11 EST
Message-ID: <3860DCB6.1446CC6E@cs.cmu.edu>
Date: Wed, 22 Dec 1999 09:14:14 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Infobot 0.49.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO


Hi folks,                    1999-Dec-22

I put a horribly underdocumented development version 
of the infobot up at 

   http://www.infobot.org/src/dev/

It's version 0.49.0, the odd-numbered minor predecessor
to 0.50.0. I expect we'll use the 0.5 series up and
then go to 1.0.

While I've stubbed out perldoc for most things, 
it is really just that -- stubs -- for the most
part.  That will all have to be fleshed out.

The bot doesn't do IRC right now, nor remote 
access of any kind.  It only does Console and Raw.

  tar zxvf Infobot-0.49.tar.gz
  cd Infobot-0.49
  perl Makefile.PL
  make
  make test

If something fails there, let me know! It should be
ok with the modules, etc.

You can either install system wide with make dist,
or just work with it here.

  perl -MInfobot -e shell
or
  perl -MInfobot -e 'shell(verbosity=>10)'

should get you a shell.  Note: It will be much prettier
if you have Term::ANSIColor.pm. You see here that you
can also pass arguments to shell, which it passes
on to Infobot::new().  Any parameter can be passed 
here for initialization.  The default verbosity is 
much lower (3).

You can also do

  perl -MInfobot -e raw
or
  perl -MInfobot -e 'raw("filename")'

which is a glitz-free interface.  one line in, reply out.
no color, no flash.  Good for use under a pipe. If
it's given a file name, it will operate on the file, otherwise
uses STDIN.

  perl -MInfobot -e raw_quote
or
  perl -MInfobot -e 'raw_quote("filename")'

quotes each input line as for mail quoting to STDOUT.  Same
file dealy.

An executable named

  infobot

should be on your system; it's a very simple invocation
of the basic setup.

THINGS YOU CAN DO

try

   par
or 
   parameters

which should give you all the current settings at
the bot level.

   modules

will list out the active modules.  + means active,
- means inactive.  

   set Zippy off

will turn Zippy off, and

   set Zippy on

well, you get the idea.

   set par verbosity 10
or
   set bot verbosity 10

will set the BOT's verbosity. thus 

   set <modulename> <parameter> <value>

will affect a module, whereas

   set bot <parameter> <value> 

will affect the bot's params.

One interesting thing to do is

   set bot forking 1

(the default is forking 0).

The bot should be able to do x is y kinda
stuff, plus everything in the modules. 

Note: Not All Modules have been Ported.
Unported modules are not in this release; 
a couple more days.

I apologize for the disarray.  I hope to
get more of the communication up soon
so that these bots will be on the net soon,
but i wanted to get the basic console, module,
module loader, and structure out to you.

Infobot::Entity and Infobot::Entity::Dispatcher
are the base classes of everything, and
Infobot::Entity::Dispatcher is just an 
Infobot::Entity that can send and receiver (remote)
messages.

kevin
lenzo@cs.cmu.edu

From infobot-dev@metronomicon.com  Wed Dec 22 09:55:59 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA01021
	for infobot-dev-list; Wed, 22 Dec 1999 09:55:49 -0500
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 JAA01018
	for <infobot-dev@infobot.org>; Wed, 22 Dec 1999 09:55:48 -0500
Received: from ip169.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa27349; 22 Dec 99 9:45 EST
Message-ID: <3860E47E.FDC4AB5E@cs.cmu.edu>
Date: Wed, 22 Dec 1999 09:47:26 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: 0.49 early issues
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

hi, re: 0.49.0

Apparently dbmopen() fails on some systems,
possibly due to using NDBM (?) and tells you
it doesn't define an exists method.  This
has happened to one person.

My plans for graceful degradation of modules
were thwarted by my own last-minute hacks.
METAR will bring the whole thing down
without Geo::METAR, but at least it should
tell you so in the make test.

I guess its fair to say that if you download
this you're helping debug the install process :)

I expect i'll put up 0.49.1 by this evening
with patches from this first install fallout.

thanks for your patience and indulgence,

kevin
lenzo@cs.cmu.edu

From infobot-dev@metronomicon.com  Wed Dec 22 11:28:16 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA01358
	for infobot-dev-list; Wed, 22 Dec 1999 11:28:13 -0500
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 LAA01355
	for <infobot-dev@metronomicon.com>; Wed, 22 Dec 1999 11:28:12 -0500
Received: from lublin.zrz.tu-berlin.de ([130.149.2.130] ident=root)
	  by mail.zrz.tu-berlin.de with esmtp (EXIM-3.12)
	  for <infobot-dev@metronomicon.com>
	  id 120oaR-0000YC-00; Wed, 22 Dec 1999 17:26:03 +0100
Received: from lublin.zrz.tu-berlin.de by lublin.zrz.TU-Berlin.DE (8.8.7/ZRZ-Gen)
	  id QAA05430; Wed, 22 Dec 1999 16:26:00 GMT
Message-ID: <3860FB97.F24B0C04@lublin.zrz.tu-berlin.de>
Date: Wed, 22 Dec 1999 17:25:59 +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: infobot-dev@metronomicon.com
Subject: Infobot 0.49
Content-Type: multipart/mixed; boundary="------------D3CB4FC857314823C23D3405"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

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

There were two changes necessary to make infobot run on my
machine (patch attached):

1 - On systems that have more than one of the DB modules installed,
    it may be necessary to rearrange the priority in @AnyDBM_File::ISA.
    This can be done in Infobot/DB.pm.

    As far as I can see, this is only necessary because DB-tied
    hashes are queried with exists.  As far as I know, there is
    no difference in exists() and defined() for these hashes, so
    s/exists/defined/ may make this unnecessary.  I can find the
    pertinent exits()s (others are better left alone).

2 - In Infobot.pm it says, basically

              if ($instance) {
                # some code
              } else {
                $M->{$instance->name} = undef;
                $self->status(0, "$module not instantiated");
              }

The method call $instance->name in the else part *must* fail, if
it is reached.  On the other hand, if $M->{ something} is ever
accessed, it will return undef anyway, so I just commented that line
out.

Further:  0.49 doesn't understand "xyx++" and "karma xyz".  I suppose,
this is just not yet implemented.  I'd like to patch "karma" so that
it optionally reports sums of karma for multiple (similar) items.

infobot-dev@metronomicon.com seems to be a mailing list.  How do
I subscribe?

Anno
--------------D3CB4FC857314823C23D3405
Content-Type: text/plain; charset=us-ascii; name="0.49.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="0.49.patch"

diff -rc Infobot-0.49/Infobot/DB.pm Infobot-0.49.patch/Infobot/DB.pm
*** Infobot-0.49/Infobot/DB.pm	Tue Dec 21 20:50:31 1999
--- Infobot-0.49.patch/Infobot/DB.pm	Wed Dec 22 17:02:19 1999
***************
*** 1,6 ****
--- 1,9 ----
  # infobot :: Kevin Lenzo  (c) 1997
  
  package Infobot::DB;
+ 
+ BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) }
+ 
  use Infobot::Entity::Dispatcher;
  use Infobot::Message;
  
diff -rc Infobot-0.49/Infobot.pm Infobot-0.49.patch/Infobot.pm
*** Infobot-0.49/Infobot.pm	Tue Dec 21 20:50:31 1999
--- Infobot-0.49.patch/Infobot.pm	Wed Dec 22 16:36:08 1999
***************
*** 407,413 ****
  	    $instance->enabled($defenable);
  
  	  } else {
! 	    $M->{$instance->name} = undef;
  	    $self->status(0, "$module not instantiated");
  	  }
  	}
--- 407,413 ----
  	    $instance->enabled($defenable);
  
  	  } else {
! #	    $M->{$instance->name} = undef;
  	    $self->status(0, "$module not instantiated");
  	  }
  	}
Only in Infobot-0.49.patch/: Makefile

--------------D3CB4FC857314823C23D3405--

From infobot-dev@metronomicon.com  Wed Dec 22 12:33:28 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id MAA01795
	for infobot-dev-list; Wed, 22 Dec 1999 12:33:27 -0500
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 MAA01792
	for <infobot-dev@infobot.org>; Wed, 22 Dec 1999 12:33:26 -0500
Received: from ip169.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa29454; 22 Dec 99 12:28 EST
Message-ID: <38610ADD.C895DFD4@cs.cmu.edu>
Date: Wed, 22 Dec 1999 12:31:09 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Re: Infobot 0.49.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Anno --

Thanks! You're subtly defusing the future frustration 
of generations of cluebees.

Subscribe to infobot-dev by sending the single line 

  subscribe infobot-dev

to 

   majordomo@infobot.org 

When it replies, it will say it's at metronomicon.com,
but i find infobot.org shorter to type.  I think i've
fixed the BOUNCE problem some folks were getting.

Ok, to substance :)

Anno Siegel wrote:
> 
> There were two changes necessary to make infobot run on my
> machine (patch attached):
> 
> 1 - On systems that have more than one of the DB modules
installed,

ok we'll work with that 

> 2 - In Infobot.pm it says, basically

righto
>
> Further:  0.49 doesn't understand "xyx++" and "karma xyz".  I
suppose,
> this is just not yet implemented.  I'd like to patch "karma" so
that
> it optionally reports sums of karma for multiple (similar) items.

Karma will be a module.  Modules can act like filters (changing
the content of the message, like processing the ++ and --)
and also return certain language when queried (as defined by
some regex).  So the ++/-- handling becomes a module executed
early on the input stream that affects the karma relation,
then there's some later processing that sees if you're asking
about karma.

...

> infobot-dev@metronomicon.com seems to be a mailing list.  How do
> I subscribe?
> 
> Anno

From infobot-dev@metronomicon.com  Wed Dec 22 14:44:30 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA02238
	for infobot-dev-list; Wed, 22 Dec 1999 14:44:28 -0500
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 OAA02235
	for <infobot-dev@infobot.org>; Wed, 22 Dec 1999 14:44:27 -0500
Received: from ip169.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa01604; 22 Dec 99 14:32 EST
Message-ID: <386127DB.7F8B2320@cs.cmu.edu>
Date: Wed, 22 Dec 1999 14:34:51 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: 0.49_01 (Lungfish)
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Hi,

Infobot 0.49_01 (Lungfish) is up under the dev/ 
directory. It fixes some of the more egregious 
problems with 0.49.0.  Also added some docs
under Infobot::Entity that should help in figuring
things out.

kevin

Revision history for Perl extension Infobot.

0.49.1 Wed Dec 22 12:56:36 EST 1999
        - Version name: Lungfish

        <lenzo@cs.cmu.edu>
        - changed all exists to defineds in Infobot::DB so that
          it wouldn't trigger the infamous "doesn't define 
          exists method" message from some implementations of 
          DBM.  anno++

        - changed Exhange so that the TLDs weren't created
          in a hash every time it was called, but rather 
          processes data from beneath __DATA__ when new() is
          called.

        - put in sanity undef returns in the existing Modules,
          to make sure they return undef to new() if any of
          the modules they need are not available. 

        - made Infobot::Module::ModuleMgr report the modules
          that don't instantiate as 'bad', and used anno++'s 
          to fix a crashing bug in the module load when there
          were bad modules.

        - fleshed out some of the pod in Infobot::Entity so
          people can have a better idea what it does.

0.49  Tue Dec 21 12:09:46 1999
        - Version name: Quixote

        <lenzo@cs.cmu.edu>
        - first build under h2xs, and first appearance of the 
          new model infobot.

        - Has a Console
        - Term::ReadLine support
        - Modularized
        - blah blah. lots of things left to do.

From infobot-dev@metronomicon.com  Wed Dec 22 17:33:50 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA04709
	for infobot-dev-list; Wed, 22 Dec 1999 17:33:47 -0500
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 RAA04700
	for <infobot-dev@infobot.org>; Wed, 22 Dec 1999 17:33:46 -0500
Received: from ip118.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa04154; 22 Dec 99 17:31 EST
Message-ID: <386151BF.5DF5DC44@cs.cmu.edu>
Date: Wed, 22 Dec 1999 17:33:35 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: mailing list archive
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Hi,

If all goes well, this message should be automatically
added to the mailing list archive at 

  http://www.infobot.org/list/

So far, MHonArc, majordomo, sendmail, and cron all seem happy
with the idea.

kevin
From infobot-dev@metronomicon.com  Thu Dec 23 10:29:26 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA09449
	for infobot-dev-list; Thu, 23 Dec 1999 10:29:07 -0500
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 KAA09446
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 10:29:07 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 23 Dec 1999 09:18:37 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 23 Dec 1999 09:27:08 -0600
Subject: infobot.users location
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4879B6C.A4BE%alterego@austin.rr.com>
In-Reply-To: <386151BF.5DF5DC44@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

I'm not sure this made it to the list amidst all of the confusion, so I am
posting it again:

in User.pl:

sub parseUserfile {
    $file = $param{'miscdir'}.$filesep.$param{'userList'};
....
}

When crond is launching infobot via a shell script, $param{'miscdir'} is
equal to "./".  I'm not sure why as I am a newbie to perl.

But replacing $param{'miscdir'} with $initmiscdir here fixes that problem.

From infobot-dev@metronomicon.com  Thu Dec 23 10:30:19 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA09464
	for infobot-dev-list; Thu, 23 Dec 1999 10:30:19 -0500
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 KAA09461
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 10:30:18 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Thu, 23 Dec 1999 09:19:48 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Thu, 23 Dec 1999 09:28:20 -0600
Subject: infobot.log location
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
Message-ID: <B4879BB3.A4BF%alterego@austin.rr.com>
In-Reply-To: <386151BF.5DF5DC44@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

I'm not sure this made it to the list amidst all of the confusion, so I am
posting it again:

in Misc.pl:

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);
    }
}

shouldn't it be 
    open(TRACK, ">> $infobot_base_dir $param{logfile}");

I'd rather the log file stay in the same directory as the rest of the
bot's files, rather than being created in whatever the current wd is.

From infobot-dev@metronomicon.com  Thu Dec 23 19:51:43 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id TAA11329
	for infobot-dev-list; Thu, 23 Dec 1999 19:51:35 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id TAA11326
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 19:51:33 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id SAA17442
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 18:49:33 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id SAA13991
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 18:52:29 -0600 (CST)
Date: Thu, 23 Dec 1999 18:52:29 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot-dev <infobot-dev@infobot.org>
Subject: infobot-0.49_01 no likey perl5.004
Message-ID: <Pine.GSO.4.21.9912231818110.11604-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

couldn't make infobot-0.49_01 under perl5.00404 (under solaris/sparc).

The qr// operator is a new feature in 5.005, and as a consequnce anything
prior to that infobot fails on. 

It is located in these files:
Infobot.pm:395:         $v .= " qr/$rx/";
Infobot/Language.pm:67:      return qr/$r/;
Infobot/Module.pm:27:    regex => qr/^\000$/,   # triggered by this regex

I thought about trying to make it compatable, but the qr operator is too
cool, figured I'd just upgrade perl.

Jay



From infobot-dev@metronomicon.com  Thu Dec 23 21:45:19 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA11699
	for infobot-dev-list; Thu, 23 Dec 1999 21:45:17 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id VAA11695
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 21:45:14 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id UAA18199
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 20:43:14 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id UAA15452
	for <infobot-dev@infobot.org>; Thu, 23 Dec 1999 20:46:14 -0600 (CST)
Date: Thu, 23 Dec 1999 20:46:14 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: small typo in 0.49_1
Message-ID: <Pine.GSO.4.21.9912232026520.11604-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


Line 80 of Infobot/Module/Nickometer.pm:
  my $arg  = $message->geT('args')->[0];
should have a small 't' in get: 
  my $arg  = $message->get('args')->[0];                                                                                  

Jay

From infobot-dev@metronomicon.com  Sat Dec 25 03:14:45 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id DAA17529
	for infobot-dev-list; Sat, 25 Dec 1999 03:14:16 -0500
Received: from quasar.dimensional.com (root@quasar.dimensional.com [206.124.0.15])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id DAA17525
	for <infobot-dev@metronomicon.com>; Sat, 25 Dec 1999 03:14:15 -0500
Received: from burner (channelz@burner.com [206.124.1.82])
	by quasar.dimensional.com (8.9.3/8.9.3) with SMTP id BAA09328
	for <infobot-dev@metronomicon.com>; Sat, 25 Dec 1999 01:12:20 -0700 (MST)
Received: by burner.com (Amiga SMTPpost 1.04 December 9, 1994)
        id AA01; Sat, 25 Dec 99 01:10:06 MST
Received: by burner.com (V1.17-beta/Amiga)
	  id <8nh2@burner.com>; Sat, 25 Dec 99 01:01:04 MST
Date: Sat, 25 Dec 99 01:01:04 MST
Message-Id: <9912250801.8nh2@burner.com>
From: bmaple@burner.com (Bob Maple)
Subject: Problem in RSS routine on 44.3
To: infobot-dev@metronomicon.com
Organization: The Back Burner BBS
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I'm a little behind, just getting 44.3 running.  I ran into a little quirk
with the RSS inline replace:

<Brazilian> testthis is
<rss="http://www.thebesite.com/3/about/headlines.php3?type=rss">

<Brazilian> testthis
<regurg> Brazilian:
<rss="http://www.thebesite.com/3/about/headlines.php3?type=rss">

In spite of not being 'the brightest perl in the sea', I did however manage to
track this down after awhile and figure out that when it does the in-line
replacement of the <rss=...> with the result of the query, it was getting
confused with the ? in the original URL, mistaking it for a regex.

The following patch in Reply.pl seemed to fix this:

} else {

        $replace =~ s/\?/\\\?/;  # patch -- swap out the ? for a \?

        # original code after this

        $theMsg =~ s/$replace/$result/;
        $theMsg = "$who: $theMsg";
}

This being right around line 201 of Reply.pl (I added a couple of comment
lines somewhere up above in my source so this number isn't exact to the stock
Reply.pl)

Not being that much of a perl wizard, was this a decent way to deal with this
or is there something better?  Probably could stand to catch other goofy
characters than just ? but..


 :        Bob Maple          : If computers get too powerful, we can just  :
 :   bmaple at burner.com    : organize them into a government committee.. :
 : www.dimensional.com/~bobm : That will do them in for sure.              :


From infobot-dev@metronomicon.com  Sat Dec 25 08:57:50 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id IAA18776
	for infobot-dev-list; Sat, 25 Dec 1999 08:57:47 -0500
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 IAA18773
	for <infobot-dev@infobot.org>; Sat, 25 Dec 1999 08:57:47 -0500
Received: from ip81.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa02042; 25 Dec 99 8:55 EST
Message-ID: <3864CD6E.B43C5E8B@cs.cmu.edu>
Date: Sat, 25 Dec 1999 08:58:06 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Infobot-0.49_02.tar.gz
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi folks,

Infobot-0.49_02.tar.gz is available at

  http://www.infobot.org/src/dev/

It includes KM's new Convert module, among other
things, and a few fixes.  I just tried it
on a new machine with a clean Perl install and
everything that failed in the modules did so
happily and gracefully.

I wanted to push this version out for you before
I go away for the weekend.

Also, it appears that the _automatic_ archival 
isn't working on the mailing list right now;
I'll fix that when i getback.  So far it's no
big deal to add items manually.

kevin


Revision history for Perl extension Infobot.

0.49.02 Sat Dec 25 08:42:00 EST 1999
        - Version name: Bluebottle

        <lenzo@cs.cmu.edu> oznoid, Kevin Lenzo

        - fixed a 'geT' typo that caused a craashing big in 
          Nickometer.pm. KM++ and anno++.

        - abstracted set/get to rset/rget ('relation' set/set)
          now set(X,Y) is an alias for rset('parameter', X, Y)

        - more robust message reporting for Infobot::Modules
          that depend on Net::Telnet

        - fleshed out the pod in Infobot::Module::Example.

        <perlguy@perlguy.com> {KM}, Kevin Meltzer

        - Moved ord() and chr() into Infobot::Module::Extras.pm
        
        - created new Infobot::Module::Convert.pm that
          uses Math::Units to do unit conversion! {KM}++.

From infobot-dev@metronomicon.com  Sat Dec 25 09:14:18 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id JAA19142
	for infobot-dev-list; Sat, 25 Dec 1999 09:14:18 -0500
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 JAA19139
	for <infobot-dev@infobot.org>; Sat, 25 Dec 1999 09:14:17 -0500
Received: from ip81.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa02166; 25 Dec 99 9:11 EST
Message-ID: <3864D123.9DA709F4@cs.cmu.edu>
Date: Sat, 25 Dec 1999 09:13:55 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: WHOA NELLIE 
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO


Whoa folks,

I'm very sorry about the infobot-dev majordomo
spam.  I have it fixed now.  

Please accept my deep apologies!

kevin

From infobot-dev@metronomicon.com  Sun Dec 26 15:26:54 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA25162
	for infobot-dev-list; Sun, 26 Dec 1999 15:26:39 -0500
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 PAA25159
	for <infobot-dev@infobot.org>; Sun, 26 Dec 1999 15:26:38 -0500
Received: from [10.1.0.2] ([24.28.72.17]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Sun, 26 Dec 1999 14:16:14 -0600
User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
Date: Sun, 26 Dec 1999 14:24:50 -0600
Subject: mac speech manager error codes
From: David Blache <alterego@austin.rr.com>
To: Infobot development list <infobot-dev@infobot.org>
CC: Kevin Lenzo <lenzo@cs.cmu.edu>
Message-ID: <B48BD5B1.A54A%alterego@austin.rr.com>
In-Reply-To: <3864D123.9DA709F4@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: RO

Please add these to the mac error codes factoid when you get a chance:

mac error -240 is (noSynthFound) Could not find the specified speech
synthesizer **Sound Manager Errors**
mac error -241 is (synthOpenFailed) Could not open another speech
synthesizer channel **Sound Manager Errors**
mac error -242 is (synthNotReady) Speech synthesizer is still busy speaking
**Sound Manager Errors**
mac error -243 is (bufTooSmall) Output buffer is too small to hold result
**Sound Manager Errors**
mac error -244 is (voiceNotFound) Voice resource not found **Sound Manager
Errors**
mac error -245 is (incompatibleVoice) Specified voice cannot be used with
synthesizer **Sound Manager Errors**
mac error -246 is (badDictFormat) Pronunciation dictionary format error
**Sound Manager Errors**
mac error -247 is (badPhonemeText) Raw phoneme text contains invalid
character **Sound Manager Errors**
mac error -248 is (unimplMsg) Unimplemented message **Sound Manager Errors**


From infobot-dev@metronomicon.com  Mon Dec 27 17:25:56 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA30159
	for infobot-dev-list; Mon, 27 Dec 1999 17:18:30 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id RAA30155
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 17:18:14 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id QAA30749
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 16:15:33 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id QAA29747
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 16:18:31 -0600 (CST)
Date: Mon, 27 Dec 1999 16:18:31 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: message length in 0.49?
Message-ID: <Pine.GSO.4.21.9912271612010.15907-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I've been playing around with modules for 0.49, trying to convert my
dictionary stuff into a module for it.  One concern I see for it is the
message length.  Normally the response would just be returned, but if the
response is going to be over the irc limit, would the brains split it
up?  chop it off?  

Looking at how 0.49 works, I can see that IRC may not be the only use for
this, which would make me think that the module(s) shouldn't split up the
message, the interfaces should... i.e. mail interface may want to word
wrap, web interface may want to <BR>eak it up, IRC client may split it.

Thoughts?

Jay Jacobs
(teckle)

From infobot-dev@metronomicon.com  Tue Dec 28 00:01:31 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA31491
	for infobot-dev-list; Tue, 28 Dec 1999 00:01:28 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id AAA31488
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 00:01:26 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id WAA01521
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 22:59:45 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id XAA04235
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 23:02:43 -0600 (CST)
Date: Mon, 27 Dec 1999 23:02:43 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: Dict.pm for 0.49
Message-ID: <Pine.GSO.4.21.9912272254480.15907-200000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1251336619-946357363=:15907"
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.

---559023410-1251336619-946357363=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII

I think I out did myself (a.k.a. "Vacation time is a good thing")

Now you can specify what dictionary to use (or defaults to wordnet), and
it does a "Levensetein distance one matching strategy" to try and find a
similar word.  It does require the Net::Dict module (tests for it), and it
can get really, really wordy, which is the concern about the message
length.

Lemme know if you find anything goofy, or just plain broken, some words
may break it, but I haven't found any and I'm running out of words to try.

Here are some examples taken from 0.49_2:

> define insult
insult n 1: a rude expression intended to offend or hurt; (blah blah)

> define inslut
inslut: No Match. Perhaps you mean: insult

> define lifen
lifen: No Match. Perhaps you mean:  lien, life, liken, limen, linen, liven
or lifer; or try using: web1913

> define lifen using web1913
Lifen \Lif"en\ (l[imac]f"'n), v. t. To enliven. [Obs.] --Marston. 

> define nslookup
nslookup: No match, try using foldoc.

> define nslookup using foldoc
nslookup  A {Unix} utility by Andrew Cherenson for querying {Internet}
{domain name server}s. .... (blah blah)


cool beans,
Jay
(teckle)

---559023410-1251336619-946357363=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Dict.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.9912272302430.15907@cake.harmonic.com>
Content-Description: 
Content-Disposition: attachment; filename="Dict.pm"

IyANCiMgIERpY3QgLS0gaW5mb2JvdCBtb2R1bGUgZm9yIERpY3Rpb25hcnkg
bG9va3Vwcy4NCiMgCSAgIHJlcXVpcmVzIHRoZSBOZXQ6OkRpY3QgbW9kdWxl
Lg0KIyAgQnkgSmF5IEphY29icyAodGVja2xlKQ0KIw0KDQpwYWNrYWdlIElu
Zm9ib3Q6Ok1vZHVsZTo6RGljdDsNCg0KDQp1c2Ugc3RyaWN0Ow0KdXNlIElu
Zm9ib3Q6Ok1vZHVsZTsNCg0KJEluZm9ib3Q6Ok1vZHVsZTo6RGljdDo6VkVS
U0lPTiA9ICIwLjAxXzAwIjsNCiRJbmZvYm90OjpNb2R1bGV7IkRpY3QifSA9
ICRJbmZvYm90OjpNb2R1bGU6OkRpY3Q6OlZFUlNJT047DQpASW5mb2JvdDo6
TW9kdWxlOjpEaWN0OjpJU0EgPSBxdyhJbmZvYm90OjpNb2R1bGUpOw0KDQpt
eSAkYW55YmFkOw0KDQpCRUdJTiB7DQogICAgJGFueWJhZCA9ICcnOw0KICAg
IGV2YWwgeyByZXF1aXJlIE5ldDo6RGljdH07DQogICAgaWYgKCRAKSB7DQog
ICAgICAkYW55YmFkID0gIk5ldDo6RGljdCI7IA0KICAgICAgd2FybiAiSW5m
b2JvdDo6TW9kdWxlOjpEaWN0IHJlcXVpcmVzICRhbnliYWQgdG8gd29yayIN
CiAgICAgICAgICAuICJZb3UgY2FuIGdldCBpdCBmcm9tIGh0dDovL3d3dy5w
ZXJsLmNvbS9DUEFOLyBvciB1c2UgIg0KICAgICAgICAgIC4gInRoZSBDUEFO
IGluc3RhbGxlcjogICINCiAgICAgICAgICAuICJwZXJsIC1NQ1BBTiAtZSAn
aW5zdGFsbCAkYW55YmFkJyI7DQogICAgfQ0KfQ0KDQpzdWIgbmV3IHsNCiAg
cmV0dXJuIHVuZGVmIGlmICRhbnliYWQ7DQogIG15ICRjbGFzcyA9IHNoaWZ0
IDsNCiAgbXkgJHNlbGYgID0gJGNsYXNzLT5TVVBFUjo6bmV3KEBfKTsNCg0K
ICAkc2VsZi0+d2VpZ2h0KDEpOyANCg0KICAkc2VsZi0+bmFtZSgnRGljdCcp
Ow0KICAkc2VsZi0+cmVnZXgocXIvXmRlZmluZSAoXFMrKShccyt1c2luZ1xz
Kyk/KFxTKyk/L2kpOw0KICAkc2VsZi0+dXNhZ2UoImRlZmluZSA8d29yZD4g
W3VzaW5nIERJQ1RdLCB3aGVyZSBESUNUIGlzIGFuIGFjY2VwdGVkIGRpY3Rp
b25hcnkgZGVmYXVsdHMgdG8gd29yZG5ldCAnd24nIik7DQogICRzZWxmLT5k
ZXNjcmlwKCJMb29rdXBzIHVwIGEgd29yZCAob3IgYSBjbG9zZSBtYXRjaCkg
dXNpbmcgdGhlIGRlZmF1bHQgJ3dvcmRuZXQnIGRpY3Rpb25hcnksIG9yIG9u
ZSBzcGVjaWZpZWQiKTsNCiAgKCRhbnliYWQpPyRzZWxmLT5lbmFibGVkKDEp
OiRzZWxmLT5lbmFibGVkKDApOw0KDQogIGJsZXNzICRzZWxmLCAkY2xhc3M7
DQp9DQoNCnN1YiBhY3Rpb24gew0KICBteSAkc2VsZiA9IHNoaWZ0IDsNCiAg
cmV0dXJuIHVuZGVmIHVubGVzcyBkZWZpbmVkICRzZWxmIGFuZCAkc2VsZi0+
ZW5hYmxlZDsNCg0KICBteSAkbWVzc2FnZSA9IHNoaWZ0OyANCiAgcmV0dXJu
IHVuZGVmIHVubGVzcyAkbWVzc2FnZTsNCiAgbXkgKCR3b3JkLCB1bmRlZiwg
JGRpY3QpID0gQHskbWVzc2FnZS0+Z2V0KCdhcmdzJyl9Ow0KICAkZGljdCA9
ICJ3biIgaWYgKCEgZGVmaW5lZCAkZGljdCk7DQogICRzZWxmLT5zdGF0dXMo
MywgImxvb2tpbmcgdXAgXCIkd29yZFwiIGluIGRpY3Rpb25hcnk6IFwiJGRp
Y3RcIiIpOw0KICAjIG15ICRSZXQgPSAiTG9va2luZyB1cCB0aGUgd29yZDog
XCIkd29yZFwiIjsNCiAgIyAkUmV0Lj0iLCBpbiB0aGUgZGljdGlvbmFyeSBc
IiRkaWN0XCIiOw0KICAjICRSZXQuPSIuIjsNCiAgIyByZXR1cm4oJFJldCk7
DQogIG15ICRzZXJ2ZXIgPSBOZXQ6OkRpY3QtPm5ldygiZGljdC5vcmciKTsN
CiAgbXkgJGggPSAkc2VydmVyLT5kZWZpbmUoJHdvcmQpOw0KICBteSAoJGks
ICRSZXQsICRkY3QsICRkZWYpOw0KICBteSAkZm91bmQgPSAwOw0KICBteSBA
b3RoZXJfbWF0Y2hlczsNCiAgaWYgKCEgZGVmaW5lZCBAeyRofSkgew0KICAg
ICRzZWxmLT5zdGF0dXMoMywgIk5vIG1hdGNoIEZvdW5kIGF0IGFsbCwgbG9v
a2luZyB1cCBhbHRlcm5hdGl2ZXMiKTsNCiAgICAkUmV0ID0gZmluZG1hdGNo
KCRzZXJ2ZXIsICRkaWN0LCAkd29yZCk7DQogIH0gZWxzZSB7DQogICAgZm9y
ZWFjaCAkaSAoQHskaH0pIHsNCiAgICAgICgkZGN0LCAkZGVmKSA9IEB7JGl9
Ow0KICAgICAgaWYgKCRkY3QgZXEgJGRpY3QpIHsNCiAgICAgICAgZm9yZWFj
aCAoc3BsaXQoL1xuLywgJGRlZikpIHsNCgkgICRfPX5zL1xzezMsfS8vZzsN
CgkgICMgJF89fnMvXHMrJC8vZzsNCgkgICRSZXQuPSRfLiIgIjsNCiAgICAg
ICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgcHVzaChAb3RoZXJfbWF0
Y2hlcywgJGRjdCk7DQogICAgICB9DQogICAgfQ0KICAgIGlmICghICRSZXQp
IHsNCiAgICAgICRzZWxmLT5zdGF0dXMoMywgIm1hdGNoIGZvdW5kIGluIG90
aGVyIGRpY3QsIGxvb2tpbmcgdXAgYWx0ZXJuYXRpdmVzIik7DQogICAgICAk
UmV0ID0gZmluZG1hdGNoKCRzZXJ2ZXIsICRkaWN0LCAkd29yZCwgQG90aGVy
X21hdGNoZXMpOw0KICAgIH0NCiAgfQ0KICByZXR1cm4oJFJldCk7DQp9DQoN
CnN1YiBmaW5kbWF0Y2ggew0KICBteSAkc2VydmVyID0gc2hpZnQ7DQogIG15
ICRkaWN0ID0gc2hpZnQ7DQogIG15ICR3b3JkID0gc2hpZnQ7DQogIG15IEBv
dGhlcl9tYXRjaGVzID0gQF87DQogIG15IEBvdGhlcnM7DQogIG15ICgkaCwg
JGksICRkY3QsICRkZWYpOw0KICAkaCA9ICRzZXJ2ZXItPm1hdGNoKCR3b3Jk
LCAibGV2Iik7DQogIGZvcmVhY2ggJGkgKEB7JGh9KSB7DQogICAgKCRkY3Qs
ICRkZWYpID0gQHskaX07DQogICAgcHVzaCAoQG90aGVycywgJGRlZikgaWYg
KCRkY3QgZXEgJGRpY3QpOw0KICB9DQogIGlmIChAb3RoZXJzKSB7DQogICAg
bXkgJHN0ciA9IGdpbW1lUHJldHR5KEBvdGhlcnMpOw0KICAgIGlmIChAb3Ro
ZXJfbWF0Y2hlcykgew0KICAgICAgJHN0ci49Ijsgb3IgdHJ5IHVzaW5nOiAi
LihnaW1tZVByZXR0eShAb3RoZXJfbWF0Y2hlcykpOw0KICAgIH0NCiAgICBy
ZXR1cm4oIiR3b3JkOiBObyBNYXRjaC4gUGVyaGFwcyB5b3UgbWVhbjogJHN0
ciIpOw0KICB9IGVsc2lmIChAb3RoZXJfbWF0Y2hlcykgew0KICAgIHJldHVy
bigiJHdvcmQ6IE5vIG1hdGNoLCB0cnkgdXNpbmcgIi4oZ2ltbWVQcmV0dHko
QG90aGVyX21hdGNoZXMpKS4iLiIpOw0KICB9IGVsc2Ugew0KICAgIHJldHVy
biAiJHdvcmQ6IE5vIG1hdGNoZXMgZm91bmQiOw0KICB9DQp9DQoNCnN1YiBn
aW1tZVByZXR0eSB7DQogIG15IEB3b3JkcyA9IEBfOw0KICBteSAkc3RyID0g
IiI7DQogIGlmICgkI3dvcmRzPj0xKSB7DQogICAgZm9yICgwLi4oJCN3b3Jk
cy0xKSkgew0KICAgICAgJHdvcmRzWyRfXT1+cy8iLy9nOw0KICAgICAgJHN0
ciAuPSAiICR3b3Jkc1skX10sIjsNCiAgICB9DQogICAgY2hvcCgkc3RyKTsN
CiAgICAkc3RyIC49ICIgb3IgIjsNCiAgfQ0KICAkd29yZHNbJCN3b3Jkc109
fnMvIi8vZzsNCiAgJHN0ciAuPSAkd29yZHNbJCN3b3Jkc107DQogIHJldHVy
bigkc3RyKTsNCn0NCjE7DQoNCj1wb2QNCg0KPWhlYWQxIE5BTUUNCg0KSW5m
b2JvdDo6TW9kdWxlOjpEaWN0IC0gV29yZCBkZWZpbml0aW9uIG1vZHVsZSBm
b3IgaW5mb2JvdA0KDQo9aGVhZDEgU1lOT1BTSVMNCg0KZGVmaW5lIDx3b3Jk
PiBbdXNpbmcgPGRpY3Rpb25hcnk+XQ0KDQo9aGVhZDEgREVTQ1JJUFRJT04N
Cg0KVXNlcyB0aGUgTmV0OjpEaWN0IG1vZHVsZSB0byBsb29rdXAgYSB3b3Jk
IGZvciBhIHNwZWNpZmljIA0KZGljdGlvbmFyeS4gIElmIHRoZSBkaWN0aW9u
YXJ5IGlzbid0IHNwZWNpZmllZCwgaXQgd2lsbCANCmRlZmF1bHQgdG8gdXNl
IHRoZSAid29yZG5ldCIgKHduKSBkaWN0aW9uYXJ5LiAgSXQgd2lsbCB0cnkN
CnRvIHJldHVybiBhIGRlZmluaXRpb24gZnJvbSB0aGUgZGljdGlvbmFyeSwg
aWYgaXQgZG9lc24ndA0KZmluZCBvbmUsIGl0IHdpbGwgdHJ5IHRvIGZpbmQg
Y2xvc2UgbWF0Y2hlcyB1c2luZyB0aGUgDQpMZXZlbnNldGVpbiBkaXN0YW5j
ZSBvbmUgbWF0Y2hpbmcgc3RyYXRlZ3kuICBJZiBpdCBmb3VuZA0KdGhlIHdv
cmQgaW4gb3RoZXIgZGljdGlvbmFyaWVzLCBpdCB3aWxsIGFsc28gbWVudGlv
biB0aG9zZQ0KYXMgYSBwb3NzaWJsZSBwbGFjZSB0byBsb29rLg0KDQo9aGVh
ZDEgQVVUSE9SUw0KDQpKYXkgSmFjb2JzICh0ZWNrbGUpDQpqamFjb2JzQHNl
Y3VyZXR0eS5vcmcNCg==
---559023410-1251336619-946357363=:15907--

From infobot-dev@metronomicon.com  Tue Dec 28 00:26:02 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id AAA31596
	for infobot-dev-list; Tue, 28 Dec 1999 00:26:01 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id AAA31593
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 00:26:01 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id XAA01706
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 23:24:24 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id XAA04492
	for <infobot-dev@infobot.org>; Mon, 27 Dec 1999 23:27:25 -0600 (CST)
Date: Mon, 27 Dec 1999 23:27:25 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: Re: Dict.pm for 0.49
In-Reply-To: <Pine.GSO.4.21.9912272254480.15907-200000@cake.harmonic.com>
Message-ID: <Pine.GSO.4.21.9912272325190.15907-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

oh yeah, dictionaries recognized are:

hitchcock : "Hitchcock's Bible Names Dictionary (late 1800's)"
jargon : "Jargon File (4.0.0/24 July 1996)"
easton : "Easton's 1897 Bible Dictionary"
gazetteer : "U.S. Gazetteer (1990)"
web1913 : "Webster's Revised Unabridged Dictionary (1913)"
elements : "The Elements (22Oct97)"
wn : "WordNet (r) 1.6"
foldoc : "The Free On-line Dictionary of Computing (15Feb98)"

these are taking from Net::Dict connected to dict.org...

Jay


From infobot-dev@metronomicon.com  Tue Dec 28 02:24:24 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA32023
	for infobot-dev-list; Tue, 28 Dec 1999 02:24:22 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id CAA32020
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 02:24:21 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id BAA02492
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 01:22:42 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id BAA05609
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 01:25:43 -0600 (CST)
Date: Tue, 28 Dec 1999 01:25:43 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: file under "non-essential" (WServer)
Message-ID: <Pine.GSO.4.21.9912280120150.15907-200000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-641078858-946365943=:15907"
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.

---559023410-641078858-946365943=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII

This module (for 0.49+) looks up the software version (if it can) of a
specified webserver.  It requires the LWP::Simple module.


> webserver at www.infobot.org?
www.infobot.org is running "Apache/1.3.6 (Unix)  (Red Hat/Linux)"

> server for www.microsoft.com 
www.microsoft.com is running "Microsoft-IIS/5.0"

> What server is at http://www.novell.com?
http://www.novell.com is running "Netscape-Enterprise/3.5-For-NetWare"

Does novell still sell their own webserver?

Jay
(teckle)

---559023410-641078858-946365943=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="WServer.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.9912280125430.15907@cake.harmonic.com>
Content-Description: 
Content-Disposition: attachment; filename="WServer.pm"

cGFja2FnZSBJbmZvYm90OjpNb2R1bGU6OldTZXJ2ZXI7DQoNCnVzZSBzdHJp
Y3Q7DQp1c2UgSW5mb2JvdDo6TW9kdWxlOw0KDQokSW5mb2JvdDo6TW9kdWxl
OjpXU2VydmVyOjpWRVJTSU9OID0gIjAuMDFfMDAiOw0KJEluZm9ib3Q6Ok1v
ZHVsZXsiV1NlcnZlciJ9ID0gJEluZm9ib3Q6Ok1vZHVsZTo6V1NlcnZlcjo6
VkVSU0lPTjsNCkBJbmZvYm90OjpNb2R1bGU6OldTZXJ2ZXI6OklTQSA9IHF3
KEluZm9ib3Q6Ok1vZHVsZSk7DQoNCm15ICRhbnlfYmFkOw0KDQpCRUdJTiB7
DQogIGV2YWwgeyByZXF1aXJlIExXUDo6U2ltcGxlIH07DQogICRAIGFuZCAk
YW55X2JhZCA9ICJMV1A6OlNpbXBsZSI7DQogIHdhcm4gIkluZm9ib3Q6Ok1v
ZHVsZTo6V1NlcnZlciByZXF1aXJlcyAkYW55X2JhZCIgaWYgJGFueV9iYWQ7
DQp9DQoNCnN1YiBJbmZvYm90OjpNb2R1bGU6OldTZXJ2ZXI6Om5ldyB7DQog
IG15ICRjbGFzcyA9IHNoaWZ0IDsNCiAgcmV0dXJuIHVuZGVmIGlmICRhbnlf
YmFkOw0KDQogIG15ICRzZWxmICA9ICRjbGFzcy0+U1VQRVI6Om5ldyhAXyk7
DQogICRzZWxmLT53ZWlnaHQoMCk7IA0KICANCiAgJHNlbGYtPmVuYWJsZWQo
MSk7DQogICRzZWxmLT5uYW1lKCdXU2VydmVyJyk7DQogICRzZWxmLT5yZWdl
eChxci9zZXJ2ZXJccysoPzphdHxmb3J8aXNccythdCk/XHMqKFxTKykvaSk7
DQogICRzZWxmLT51c2FnZSgnd2Vic2VydmVyIGF0IDxzaXRlPicpOw0KICAk
c2VsZi0+ZGVzY3JpcCgiVHJpZXMgdG8gbG9va3VwIHNlcnZlciBydW5uaW5n
IGF0IHNpdGUiKTsNCg0KICBibGVzcyAkc2VsZiwgJGNsYXNzOw0KfQ0KDQpz
dWIgSW5mb2JvdDo6TW9kdWxlOjpXU2VydmVyOjphY3Rpb24gew0KICAgIG15
ICgkc2VsZiwgJG1lc3NhZ2UpID0gQF87DQogICAgcmV0dXJuIHVuZGVmIHVu
bGVzcyAkc2VsZi0+ZW5hYmxlZDsNCg0KICAgIG15ICR1cmwgPSAkbWVzc2Fn
ZS0+Z2V0KCdhcmdzJyktPlswXTsNCiAgICBteSAkb3JpZyA9ICR1cmw7DQog
ICAgJHVybCA9ICJodHRwOi8vIi4kdXJsIGlmICgkdXJsIX4vXmh0dHA6XC9c
Ly8pOw0KICAgICRzZWxmLT5zdGF0dXMoMiwibG9va2luZyB1cCAkdXJsIik7
DQogICAgIyBpc24ndCBnb29kIHZhcmlhYmxlIG5hbWluZyBmdW5kYW1lbnRh
bD8NCiAgICBteSBAc3R1ZmYgPSBMV1A6OlNpbXBsZTo6aGVhZCgkdXJsKTsN
CiAgICBpZiAoQHN0dWZmKSB7DQogICAgICByZXR1cm4oIiRvcmlnIGlzIHJ1
bm5pbmcgXCIkc3R1ZmZbJCNzdHVmZl1cIiIpOw0KICAgIH0gZWxzZSB7DQog
ICAgICByZXR1cm4oIkNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHNvcnJ5Iik7
DQogICAgfQ0KfQ0KDQoxOw0KDQpfX0VORF9fDQoNCj1oZWFkMSBOQU1FDQoN
CldTZXJ2ZXIgLS0gbG9va3MgdXAgdGhlIHNlcnZlciBzb2Z0d2FyZSBmb3Ig
YSBnaXZlbiB3ZWJzZXJ2ZXIuDQoNCj1oZWFkMSBTWU5PUFNJUw0KDQp3ZWJz
ZXJ2ZXIgYXQgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tDQoNCnNlcnZlciBm
b3Igd3d3LmluZm9ib3Qub3JnDQoNCndoYXQgd2Vic2VydmVyIGlzIGF0IHd3
dy5zZWN1cmV0dHkub3JnPw0KDQo9aGVhZDEgUFJFUkVRVUlTSVRFUw0KDQoJ
TFdQOjpTaW1wbGUNCg0KPWhlYWQxIERFU0NSSVBUSU9ODQoNCglTaG93cyB0
aGUgc2VydmVyIHNvZnR3YXJlIHJ1bm5pbmcgYXQgbG9jYXRpb24gc3BlY2lm
aWVkLg0KDQo9aGVhZDEgQVVUSE9SUw0KDQpKYXkgSmFjb2JzICh0ZWNrbGUp
IDxqamFjb2JzQHNlY3VyZXR0eS5vcmc+DQo=
---559023410-641078858-946365943=:15907--

From infobot-dev@metronomicon.com  Tue Dec 28 10:32:44 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id KAA01204
	for infobot-dev-list; Tue, 28 Dec 1999 10:32:40 -0500
Received: from mail.cimedia.com (mail.cimedia.com [208.147.172.2])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id KAA01201
	for <infobot-dev@metronomicon.com>; Tue, 28 Dec 1999 10:32:40 -0500
Received: from cimedia.com (jamie@omaha-15.cimedia.com [172.17.16.15])
	by mail.cimedia.com (8.8.8/8.8.8) with ESMTP id KAA19974
	for <infobot-dev@metronomicon.com>; Tue, 28 Dec 1999 10:30:32 -0500 (EST)
Message-ID: <3868D787.3D630A51@cimedia.com>
Date: Tue, 28 Dec 1999 09:30:15 -0600
From: Jamie Gerdes <jgerdes@cimedia.com>
X-Mailer: Mozilla 4.61 [en] (X11; U; Linux 2.2.12-20 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@metronomicon.com
Subject: dbmopen suddenly broken
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

Hi all..  I'm new to the list, so please be gentle..  :)


I've been running my own infobot for over a year now...  I just
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





AND FOR THOSE INTERESTED
Below is a copy of my infobot helpfile showing some of the
modifications I've done to my bot (ebug)... just for fun.


--------
acronym: ebug, acro NBA -- you can also use 'acronym' instead of
'acro'

calendar: ebug, cal 12 1998 -- gives the calendar printout for
December, 1998.  If you leave off the date and just type "ebug, cal"
he'll show you this month's calendar.  You could also spell out
"calendar", rather than the abbreviation.

date/time: what time is it? -- self explanatory

eball: eball, Does Peggy Sue love me? -- works like the eightball
we've all grown to know and love

heads/tails:  heads we got to mcdonalds, tails we go to burger king.
-- really it just looks for the "heads" (or "tails") at the beginning
of the line.. the rest is unnecessary.

http: Anytime you enter the URL of a website, ebug will attempt to go
grab the title of that site.  The tags <title> & </title> must be on
the same line of the site's code.

horoscope: ebug, horoscope taurus -- self explanatory I think... don't
kill the messenger if he doesn't bring good news...

pun: ebug, tell me a pun -- matches on "a pun" and returns a random
pun.  I love puns.

rgb/hex: ebug, convert 255,12,125 -- ebug can also do reverse
converstion by typing: ebug, convert ff23de

superhero: ebug,  (hero | heros | villain | villains) - ebug will
generate a random hero for you...  depending on which keyword you
flag, it will be either good
 or bad and a team or a single person

synid: ebug, synid OED -- will return the Synergy ID for user OED. 
'ebug, synergy id OED' also works.
temperature: ebug, what's the temperature in omaha, ne? -- most major
US cities are supported

translate: ebug, translate to german "i like trees" -- english is
always one of the converting languages (to or from), so you could also
ask ebug to *translate from german "ich mag Bδume".  Available
languanges include german, italian, french, spanish, and portuguese.

travel: ebug, travel from omaha, ne to minneapolis, mn -- he can
handle directions for most cities and even large cities in neighboring
countries..

websters: ebug, websters hail -- returns the definition for 'hail'. 
This pulls from the m-w.com website which is not very exact..so ebug
has trouble parsing out the pages sometimes.

word: today's word -- ebug, what's today's word? -- Just a random
"word of the day" to keep ya smart.

yo mama: ebug, yo mama? -- He'll give you a random "yo mama" phrase.

From infobot-dev@metronomicon.com  Tue Dec 28 14:07:39 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA01882
	for infobot-dev-list; Tue, 28 Dec 1999 14:07:32 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id OAA01879
	for <infobot-dev@infobot.org>; Tue, 28 Dec 1999 14:07:32 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id NAA12196;
	Tue, 28 Dec 1999 13:05:51 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id NAA16120;
	Tue, 28 Dec 1999 13:08:51 -0600 (CST)
Date: Tue, 28 Dec 1999 13:08:50 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
cc: bounty <bounty@is.lamefree.com>
Subject: Dict for 0.44.3
In-Reply-To: <Pine.BSF.4.10.9912280750001.72391-100000@is.lamefree.com>
Message-ID: <Pine.GSO.4.21.9912281302250.15907-200000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-570397931-946408130=:15907"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: RO

  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.

---559023410-570397931-946408130=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII

Attached is the diff from Statement.pl.  This is the new version which
allows using any of the dictionaries, and support for close matches if the
word isn't found.  I also added in a splitit() function which splits it
under the IRC message limit (I think I hardcoded 476), with trailing (and
prepended) "..." to denote multi-line response.

In addition to this you also have to modify the infobot BEGIN section to
"use Net::Dict".

I noticed that this version is MUCH slower than the previous version,
there are more function calls, and a lot of time spent "doing the right
thing", but the outcome is worth it in my opinion.  

Jay
(teckle)

On Tue, 28 Dec 1999, bounty wrote:

> can i use this on my infobot 0.44.3..and what/where would i put it so that
> it works..i already installed Net::Dict. please advise..thanks for the
> help.
> 
> john
> 
> 

---559023410-570397931-946408130=:15907
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="diff.Statement"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.9912281308500.15907@cake.harmonic.com>
Content-Description: 
Content-Disposition: attachment; filename="diff.Statement"

MzQsNzlkMzMNCjwgICAgIGlmICgkaW49fi9eZGVmaW5lIChcUyspKFxzK3Vz
aW5nXHMrKT8oXFMrKT8vaSkgew0KPCAgICAgICBteSAkd29yZCA9ICQxOw0K
PCAgICAgICBteSAkZGljdCA9ICQzOw0KPCAgICAgICAkZGljdCA9ICJ3biIg
aWYgKCEgZGVmaW5lZCAkZGljdCk7DQo8ICAgICAgIG15ICRzZXJ2ZXIgPSBO
ZXQ6OkRpY3QtPm5ldygiZGljdC5vcmciKTsNCjwgICAgICAgbXkgJGggPSAk
c2VydmVyLT5kZWZpbmUoJHdvcmQpOw0KPCAgICAgICBteSAoJGksICRSZXQs
ICRkY3QsICRkZWYpOw0KPCAgICAgICBteSAkZm91bmQgPSAwOw0KPCAgICAg
ICBteSBAb3RoZXJfbWF0Y2hlczsNCjwgICAgICAgaWYgKCEgZGVmaW5lZCBA
eyRofSkgew0KPCAgICAgICAgICMgJHNlbGYtPnN0YXR1cygzLCAiTm8gbWF0
Y2ggRm91bmQgYXQgYWxsLCBsb29raW5nIHVwIGFsdGVybmF0aXZlcyIpOw0K
PCAgICAgICAgICRSZXQgPSBmaW5kbWF0Y2goJHNlcnZlciwgJGRpY3QsICR3
b3JkKTsNCjwgICAgICAgfSBlbHNlIHsNCjwgCWZvcmVhY2ggJGkgKEB7JGh9
KSB7DQo8IAkgICgkZGN0LCAkZGVmKSA9IEB7JGl9Ow0KPCAJICBpZiAoJGRj
dCBlcSAkZGljdCkgew0KPCAJICAgIGZvcmVhY2ggKHNwbGl0KC9cbi8sICRk
ZWYpKSB7DQo8IAkgICAgICAkXz1+cy9cc3szLH0vL2c7DQo8IAkgICAgICAk
UmV0Lj0kXy4iICI7DQo8IAkgICAgfQ0KPCAJICB9IGVsc2Ugew0KPCAJICAg
IHB1c2goQG90aGVyX21hdGNoZXMsICRkY3QpOw0KPCAJICB9DQo8IAl9DQo8
ICAgICAgICAgaWYgKCEgJFJldCkgew0KPCAgICAgICAgICAgIyAkc2VsZi0+
c3RhdHVzKDMsICJtYXRjaCBmb3VuZCBpbiBvdGhlciBkaWN0LCBsb29raW5n
IHVwIGFsdGVybmF0aXZlcyIpOw0KPCAgICAgICAgICAgJFJldCA9IGZpbmRt
YXRjaCgkc2VydmVyLCAkZGljdCwgJHdvcmQsIEBvdGhlcl9tYXRjaGVzKTsN
CjwgICAgICAgICB9DQo8ICAgICAgIH0NCjwgICAgICAgbXkgQGpvdXQgPSBz
cGxpdGl0KCRSZXQpOw0KPCAgICAgICBpZiAoJG1zZ1R5cGUgZXEgJ3B1Ymxp
YycpIHsNCjwgICAgICAgICBmb3IgKDAuLigkI2pvdXQtMSkpIHsNCjwgICAg
ICAgICAgICZzYXkoJGpvdXRbJF9dKTsNCjwgICAgICAgICAgIHNsZWVwIDI7
DQo8ICAgICAgICAgfQ0KPCAgICAgICAgICZzYXkoJGpvdXRbJCNqb3V0XSk7
DQo8ICAgICAgIH0gZWxzZSB7DQo8ICAgICAgICAgZm9yICgwLi4oJCNqb3V0
LTEpKSB7DQo8ICAgICAgICAgICAmbXNnKCR3aG8sICRqb3V0WyRfXSk7DQo8
ICAgICAgICAgICBzbGVlcCAyOw0KPCAgICAgICAgIH0NCjwgICAgICAgICAm
bXNnKCR3aG8sICRqb3V0WyRfXSk7DQo8ICAgICAgIH0NCjwgICAgICAgcmV0
dXJuICdOT1JFUExZJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICANCjwgICAgIH0NCjwgDQoyNTIsMzE1ZDIw
NQ0KPCBzdWIgc3BsaXRpdCB7DQo8ICAgbXkgJG1zZyA9IHNoaWZ0Ow0KPCAg
IG15ICRjOw0KPCAgIG15IEBvdXQ7DQo8ICAgbXkgJG9yZyA9IGxlbmd0aCgk
bXNnKTsNCjwgICB3aGlsZSAobGVuZ3RoKCRtc2cpID4gNDczKSB7DQo8ICAg
ICBmb3IgKCRjPTQ3MzsgJGM+MTsgJGMtLSkgew0KPCAgICAgICBpZiAoc3Vi
c3RyKCRtc2csICRjLCAxKSBlcSAiICIpIHsNCjwgICAgICAgICBwdXNoKEBv
dXQsIHN1YnN0cigkbXNnLCAwLCAkYykuIi4uLiIpOw0KPCAgICAgICAgICRt
c2c9Ii4uLiIuc3Vic3RyKCRtc2csICgkYysxKSk7DQo8ICAgICAgICAgbGFz
dDsNCjwgICAgICAgfQ0KPCAgICAgfQ0KPCAgICAgaWYgKGxlbmd0aCgkbXNn
KSA9PSAkb3JnKSB7DQo8ICAgICAgIHB1c2goQG91dCwgc3Vic3RyKCRtc2cs
IDAsIDQ3MykuIi4uLiIpOw0KPCAgICAgICAkbXNnPSIuLi4iLnN1YnN0cigk
bXNnLCA0NzMpOw0KPCAgICAgfQ0KPCAgICAgJG9yZyA9IGxlbmd0aCgkbXNn
KTsNCjwgICB9DQo8ICAgcHVzaChAb3V0LCAkbXNnKTsNCjwgICByZXR1cm4g
KEBvdXQpOw0KPCB9DQo8IA0KPCBzdWIgZmluZG1hdGNoIHsNCjwgICBteSAk
c2VydmVyID0gc2hpZnQ7DQo8ICAgbXkgJGRpY3QgPSBzaGlmdDsNCjwgICBt
eSAkd29yZCA9IHNoaWZ0Ow0KPCAgIG15IEBvdGhlcl9tYXRjaGVzID0gQF87
DQo8ICAgbXkgQG90aGVyczsNCjwgICBteSAoJGgsICRpLCAkZGN0LCAkZGVm
KTsNCjwgICAkaCA9ICRzZXJ2ZXItPm1hdGNoKCR3b3JkLCAibGV2Iik7DQo8
ICAgZm9yZWFjaCAkaSAoQHskaH0pIHsNCjwgICAgICgkZGN0LCAkZGVmKSA9
IEB7JGl9Ow0KPCAgICAgcHVzaCAoQG90aGVycywgJGRlZikgaWYgKCRkY3Qg
ZXEgJGRpY3QpOw0KPCAgIH0NCjwgICBpZiAoQG90aGVycykgew0KPCAgICAg
bXkgJHN0ciA9IGdpbW1lUHJldHR5KEBvdGhlcnMpOw0KPCAgICAgaWYgKEBv
dGhlcl9tYXRjaGVzKSB7DQo8ICAgICAgICRzdHIuPSI7IG9yIHRyeSB1c2lu
ZzogIi4oZ2ltbWVQcmV0dHkoQG90aGVyX21hdGNoZXMpKTsNCjwgICAgIH0N
CjwgICAgIHJldHVybigiJHdvcmQ6IE5vIE1hdGNoLiBQZXJoYXBzIHlvdSBt
ZWFuOiAkc3RyIik7DQo8ICAgfSBlbHNpZiAoQG90aGVyX21hdGNoZXMpIHsN
CjwgICAgIHJldHVybigiJHdvcmQ6IE5vIG1hdGNoLCB0cnkgdXNpbmcgIi4o
Z2ltbWVQcmV0dHkoQG90aGVyX21hdGNoZXMpKS4iLiIpOw0KPCAgIH0gZWxz
ZSB7DQo8ICAgICByZXR1cm4gIiR3b3JkOiBObyBtYXRjaGVzIGZvdW5kIjsN
CjwgICB9DQo8IH0NCjwgDQo8IHN1YiBnaW1tZVByZXR0eSB7DQo8ICAgbXkg
QHdvcmRzID0gQF87DQo8ICAgbXkgJHN0ciA9ICIiOw0KPCAgIGlmICgkI3dv
cmRzPj0xKSB7DQo8ICAgICBmb3IgKDAuLigkI3dvcmRzLTEpKSB7DQo8ICAg
ICAgICR3b3Jkc1skX109fnMvIi8vZzsNCjwgICAgICAgJHN0ciAuPSAiICR3
b3Jkc1skX10sIjsNCjwgICAgIH0NCjwgICAgIGNob3AoJHN0cik7DQo8ICAg
ICAkc3RyIC49ICIgb3IgIjsNCjwgICB9DQo8ICAgJHdvcmRzWyQjd29yZHNd
PX5zLyIvL2c7DQo8ICAgJHN0ciAuPSAkd29yZHNbJCN3b3Jkc107DQo8ICAg
cmV0dXJuKCRzdHIpOw0KPCB9DQo8IA0K
---559023410-570397931-946408130=:15907--

From infobot-dev@metronomicon.com  Wed Dec 29 15:28:06 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id PAA06859
	for infobot-dev-list; Wed, 29 Dec 1999 15:27:37 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id PAA06856
	for <infobot-dev@infobot.org>; Wed, 29 Dec 1999 15:27:36 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id OAA00425
	for <infobot-dev@infobot.org>; Wed, 29 Dec 1999 14:26:57 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id OAA13335
	for <infobot-dev@infobot.org>; Wed, 29 Dec 1999 14:29:57 -0600 (CST)
Date: Wed, 29 Dec 1999 14:29:57 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: Stock Quotes
Message-ID: <Pine.GSO.4.21.9912291422300.25087-200000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1903590565-946499397=:25087"
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.

---559023410-1903590565-946499397=:25087
Content-Type: TEXT/PLAIN; charset=US-ASCII

This is a functional hack-job.  It uses LWP::Simple to lookup a stock
quote from Yahoo's stocks.  Scrapes through the page to try and pull out
stock information.  If yahoo changes page format, this'll probably break.

But here we go:
> stock YHOO
YHOO currently at 402 3/4 (+12 1/2 change)
> stock quote MSFT
MSFT currently at 117 3/4 (+1/4 change)
> stock price of LNUX
LNUX currently at 178 (-5 change)
> stock for RHAT
RHAT currently at 224 1/4 (-7 3/4 change)

The regex is pretty flexible...

Jay

---559023410-1903590565-946499397=:25087
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Stock.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.9912291429570.25087@cake.harmonic.com>
Content-Description: 
Content-Disposition: attachment; filename="Stock.pm"

IyANCiMgIFN0b2NrIC0tIGluZm9ib3QgbW9kdWxlIGZvciBzdG9jayBxdW90
ZSBsb29rdXBzLg0KIyAJICAgIHJlcXVpcmVzIHRoZSBMV1A6OlNpbXBsZSBt
b2R1bGUuDQojICBCeSBKYXkgSmFjb2JzICh0ZWNrbGUpDQojDQoNCnBhY2th
Z2UgSW5mb2JvdDo6TW9kdWxlOjpTdG9jazsNCg0KdXNlIHN0cmljdDsNCnVz
ZSBJbmZvYm90OjpNb2R1bGU7DQoNCiRJbmZvYm90OjpNb2R1bGU6OlN0b2Nr
OjpWRVJTSU9OID0gIjAuMDFfMDAiOw0KJEluZm9ib3Q6Ok1vZHVsZXsiU3Rv
Y2sifSA9ICRJbmZvYm90OjpNb2R1bGU6OlN0b2NrOjpWRVJTSU9OOw0KQElu
Zm9ib3Q6Ok1vZHVsZTo6U3RvY2s6OklTQSA9IHF3KEluZm9ib3Q6Ok1vZHVs
ZSk7DQoNCm15ICRhbnlfYmFkOw0KDQpCRUdJTiB7DQogIGV2YWwgeyByZXF1
aXJlIExXUDo6U2ltcGxlIH07DQogICRAIGFuZCAkYW55X2JhZCA9ICJMV1A6
OlNpbXBsZSI7DQogIHdhcm4gIkluZm9ib3Q6Ok1vZHVsZTo6U3RvY2sgcmVx
dWlyZXMgJGFueV9iYWQiIGlmICRhbnlfYmFkOw0KfQ0KDQpzdWIgSW5mb2Jv
dDo6TW9kdWxlOjpTdG9jazo6bmV3IHsNCiAgbXkgJGNsYXNzID0gc2hpZnQg
Ow0KICByZXR1cm4gdW5kZWYgaWYgJGFueV9iYWQ7DQoNCiAgbXkgJHNlbGYg
ID0gJGNsYXNzLT5TVVBFUjo6bmV3KEBfKTsNCiAgJHNlbGYtPndlaWdodCgw
KTsgDQogIA0KICAkc2VsZi0+ZW5hYmxlZCgxKTsNCiAgJHNlbGYtPm5hbWUo
J1N0b2NrJyk7DQogICRzZWxmLT5yZWdleChxci9zdG9ja1xzKyg/OnByaWNl
IHxxdW90ZSB8Zm9yICk/XHMqKD86Zm9yfGF0fG9mKT9ccyooXFMrKS9pKTsN
CiAgJHNlbGYtPnVzYWdlKCdzdG9jayA8U1lNQk9MPicpOw0KICAkc2VsZi0+
ZGVzY3JpcCgiVHJpZXMgdG8gbG9va3VwIHN0b2NrIHF1b3RlIGZvciBTWU1C
T0wiKTsNCg0KICBibGVzcyAkc2VsZiwgJGNsYXNzOw0KfQ0KDQpzdWIgSW5m
b2JvdDo6TW9kdWxlOjpTdG9jazo6YWN0aW9uIHsNCiAgbXkgKCRzZWxmLCAk
bWVzc2FnZSkgPSBAXzsNCiAgcmV0dXJuIHVuZGVmIHVubGVzcyAkc2VsZi0+
ZW5hYmxlZDsNCg0KICBteSAkc3ltYm9sID0gdWMoJG1lc3NhZ2UtPmdldCgn
YXJncycpLT5bMF0pOw0KICAkc2VsZi0+c3RhdHVzKDIsImxvb2tpbmcgdXAg
c3RvY2sgZm9yICRzeW1ib2wiKTsNCiAgbXkgJGNvbnRlbnQgPSBMV1A6OlNp
bXBsZTo6Z2V0KCJodHRwOi8vZmluYW5jZS55YWhvby5jb20vcT9zPSRzeW1i
b2xcJmQ9djEiKTsNCiAgcmV0dXJuKCIkc3ltYm9sOiBjb3VsZCBub3QgZ2V0
IGluZm9ybWF0aW9uIikgaWYgKCEgZGVmaW5lZCAkY29udGVudCk7DQogIG15
ICRmb3VuZCA9IDA7DQogIG15IEBnb29kczsNCiAgZm9yZWFjaCAoc3BsaXQo
L1xuLywgJGNvbnRlbnQpKSB7DQogICAgbmV4dCB1bmxlc3MgKCgkZm91bmQp
IHx8ICgoL2JvcmRlclxzKj1ccyoxLykgJiYgKC88dGFibGUvaSkpKTsNCiAg
ICBsYXN0IGlmICgvPFwvdGFibGU+L2kpOw0KICAgICRmb3VuZD0xOw0KICAg
IChzLzxbXj5dKz4vL2cpOw0KICAgIHB1c2ggKEBnb29kcywgJF8pIGlmICgv
XHcrLyk7DQogIH0NCiAgcmV0dXJuICgiJHN5bWJvbDogbm90IHZhbGlkLCB0
cnkgbG9va2luZyB1cCBzeW1ib2xzIGF0IGh0dHA6Ly9maW5hbmNlLnlhaG9v
LmNvbS9sIikgaWYgKCRnb29kc1skI2dvb2RzXT1+L1RyeVxzK1N5bWJvbFxz
K0xvb2t1cC9pKTsNCiAgcmV0dXJuICgiJGdvb2RzWzVdIGN1cnJlbnRseSBh
dCAkZ29vZHNbN10gKCRnb29kc1s4XSBjaGFuZ2UpIik7DQp9DQoNCjE7DQoN
Cl9fRU5EX18NCg0KPWhlYWQxIE5BTUUNCg0KU3RvY2sgLS0gbG9va3MgdXAg
dGhlIGN1cnJlbnQgc3RvY2sgcXVvdGUgb2YgYSBnaXZlbiBzdG9jay4NCg0K
PWhlYWQxIFNZTk9QU0lTDQoNCnN0b2NrIGZvciA8U1lNQk9MPg0KDQpzdG9j
ayBxdW90ZSBmb3IgPFNZTUJPTD4NCg0KPWhlYWQxIFBSRVJFUVVJU0lURVMN
Cg0KCUxXUDo6U2ltcGxlDQoNCj1oZWFkMSBERVNDUklQVElPTg0KDQoJQ29u
bmVjdHMgdXAgdG8geWFob28ncyBzdG9jayB3ZWJwYWdlLCBkb2VzIHNvbWUg
DQoJc2ltcGxlIHNjcmVlbi1zY3JhcGluZywgYW5kIHJldHVybnMgd2hhdCBp
dCBjYW4uICBXaGljaA0KCW1lYW5zIHRoYXQgaXQgY291bGQgdmVyeSBlYXNp
bHkgYmUgYnJva2VuIGlmIFlhaG9vIGNoYW5nZXMNCgl0aGVpciB3ZWJwYWdl
IGZvcm1hdC4NCg0KPWhlYWQxIEFVVEhPUlMNCg0KSmF5IEphY29icyAodGVj
a2xlKSA8amphY29ic0BzZWN1cmV0dHkub3JnPg0K
---559023410-1903590565-946499397=:25087--

From infobot-dev@metronomicon.com  Wed Dec 29 16:59:57 1999
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id QAA07175
	for infobot-dev-list; Wed, 29 Dec 1999 16:59:55 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id QAA07172
	for <infobot-dev@infobot.org>; Wed, 29 Dec 1999 16:59:54 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id PAA02577;
	Wed, 29 Dec 1999 15:59:43 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id QAA14606;
	Wed, 29 Dec 1999 16:02:45 -0600 (CST)
Date: Wed, 29 Dec 1999 16:02:45 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
cc: "Cap'n Carl" <carlb@2qwk4u.dmv.com>
Subject: Re: Stock Quotes
In-Reply-To: <m123Q0Z-001gz0C@2qwk4u>
Message-ID: <Pine.GSO.4.21.9912291554510.25087-200000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-342241519-946504965=:25087"
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.

---559023410-342241519-946504965=:25087
Content-Type: TEXT/PLAIN; charset=US-ASCII

Rizz++ for his insight.

I rewrote it (now version 0.10!), and it's about twice as small and ten
times as robust.  A thought for a next version would be something like
"detailed stock quote for <BLAH>" to give all the info you get from the
CSV style.  Currently just reports last trade and change (KISS was
applied).

But this does the trick for now, I feel a little bad taking this away from
Rizz since his purpose seemed to be this exact thing, but I saw his
"dot" do this this morning and thought "What a great idea", so thanks to
Rizz for the inspiration also.

I ended up going with LWP::Simple instead of Telnet since it was already
embedded in my code and it's one function call.

Jay

On Wed, 29 Dec 1999, Cap'n Carl wrote:

> Another way of doing it: Add Net::Telnet to your Perl libs and use
> code like the following:
> 
>   elsif( $str =~ /^(quote|ticker|stock) (\S+)/i && $directed ) {
>     my $t = new Net::Telnet( Timeout => 10 );
>     $t->open( Host => 'finance.yahoo.com', Port => 80 ) or
> 	 return "unable to get info.  try later, dude.";
>     $t->print( "get /d/quotes.csv?s=$2&f=sl1d1t1c1ohgv&e=.csv\n\n" );           
>     my $res = $t->getline;                                                      
>     chop( $res );                                                               
>     $t->close;                                                                  
>     $res =~ s/"//g;                                                             
>     ( $symbol, $last, $c_date, $c_time, $change, $open, $high,
>       $low, $volume ) = split( /,/, $res );
>     if( $last > 0 && $open > 0 ) {
>       $pct = sprintf( "%3.2f", ($change/$open)*100 );
>     }
>     return "$symbol - $last (range:$high - $low open:$open ".
>       "chg:$change $pct % vol:$volume as of $c_time on $c_date)";
>   }
> 
> I joined this list specifically so I could add a module to do just
> that after talking to someone in #infobot.  *8)
> 
> Please note: This is NOT drop-in code for Oznoid's infobot source.
> This is the code that little ``dot'' uses on EFnet.  BTW, say hi
> to her sometime.  She hangs out in quite a few channels.  :)
> 
> Just running with that Perl philosophy.  Four million ways to do
> everything.  *8)
> 
> -- Carl ``Rizz'' Boernecke (carlb@2qwk4u.dmv.com)
>    http://home.dmv.com/~carlb && http://www.n2o.org
> 

---559023410-342241519-946504965=:25087
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Stock.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.21.9912291602450.25087@cake.harmonic.com>
Content-Description: 
Content-Disposition: attachment; filename="Stock.pm"

IyANCiMgIFN0b2NrIC0tIGluZm9ib3QgbW9kdWxlIGZvciBzdG9jayBxdW90
ZSBsb29rdXBzLg0KIyAJICAgIHJlcXVpcmVzIHRoZSBMV1A6OlNpbXBsZSBt
b2R1bGUuDQojICBCeSBKYXkgSmFjb2JzICh0ZWNrbGUpDQojICBDU1YgcG9p
bnRlcnMgZnJvbSBDYXJsIEJvZXJuZWNrZSAoUml6eikNCiMNCg0KcGFja2Fn
ZSBJbmZvYm90OjpNb2R1bGU6OlN0b2NrOw0KDQp1c2Ugc3RyaWN0Ow0KdXNl
IEluZm9ib3Q6Ok1vZHVsZTsNCg0KJEluZm9ib3Q6Ok1vZHVsZTo6U3RvY2s6
OlZFUlNJT04gPSAiMC4xMF8wMCI7DQokSW5mb2JvdDo6TW9kdWxleyJTdG9j
ayJ9ID0gJEluZm9ib3Q6Ok1vZHVsZTo6U3RvY2s6OlZFUlNJT047DQpASW5m
b2JvdDo6TW9kdWxlOjpTdG9jazo6SVNBID0gcXcoSW5mb2JvdDo6TW9kdWxl
KTsNCg0KbXkgJGFueV9iYWQ7DQoNCkJFR0lOIHsNCiAgZXZhbCB7IHJlcXVp
cmUgTFdQOjpTaW1wbGUgfTsNCiAgJEAgYW5kICRhbnlfYmFkID0gIkxXUDo6
U2ltcGxlIjsNCiAgd2FybiAiSW5mb2JvdDo6TW9kdWxlOjpTdG9jayByZXF1
aXJlcyAkYW55X2JhZCIgaWYgJGFueV9iYWQ7DQp9DQoNCnN1YiBJbmZvYm90
OjpNb2R1bGU6OlN0b2NrOjpuZXcgew0KICBteSAkY2xhc3MgPSBzaGlmdCA7
DQogIHJldHVybiB1bmRlZiBpZiAkYW55X2JhZDsNCg0KICBteSAkc2VsZiAg
PSAkY2xhc3MtPlNVUEVSOjpuZXcoQF8pOw0KICAkc2VsZi0+d2VpZ2h0KDAp
OyANCiAgDQogICRzZWxmLT5lbmFibGVkKDEpOw0KICAkc2VsZi0+bmFtZSgn
U3RvY2snKTsNCiAgJHNlbGYtPnJlZ2V4KHFyL3N0b2NrXHMrKD86cHJpY2Ug
fHF1b3RlIHxmb3IgKT9ccyooPzpmb3J8YXR8b2YpP1xzKihcUyspL2kpOw0K
ICAkc2VsZi0+dXNhZ2UoJ3N0b2NrIDxTWU1CT0w+Jyk7DQogICRzZWxmLT5k
ZXNjcmlwKCJUcmllcyB0byBsb29rdXAgc3RvY2sgcXVvdGUgZm9yIFNZTUJP
TCIpOw0KDQogIGJsZXNzICRzZWxmLCAkY2xhc3M7DQp9DQoNCnN1YiBJbmZv
Ym90OjpNb2R1bGU6OlN0b2NrOjphY3Rpb24gew0KICBteSAoJHNlbGYsICRt
ZXNzYWdlKSA9IEBfOw0KICByZXR1cm4gdW5kZWYgdW5sZXNzICRzZWxmLT5l
bmFibGVkOw0KDQogIG15ICRzeW1ib2wgPSB1YygkbWVzc2FnZS0+Z2V0KCdh
cmdzJyktPlswXSk7DQogICRzZWxmLT5zdGF0dXMoNSwibG9va2luZyB1cCBz
dG9jayBmb3IgJHN5bWJvbCIpOw0KICBteSAkY29udGVudCA9IExXUDo6U2lt
cGxlOjpnZXQoImh0dHA6Ly9maW5hbmNlLnlhaG9vLmNvbS9kL3F1b3Rlcy5j
c3Y/cz0kc3ltYm9sXCZmPXNsMWQxdDFjMW9oZ3ZcJmU9LmNzdiIpOw0KICBy
ZXR1cm4oIiRzeW1ib2w6IGNvdWxkIG5vdCBnZXQgaW5mb3JtYXRpb24iKSBp
ZiAoISBkZWZpbmVkICRjb250ZW50KTsNCiAgbXkgKCR0cmFkZSwgJGNoYW5n
ZSkgPSAoc3BsaXQoLywvLCAkY29udGVudCkpWzEsNF07DQogIHJldHVybigi
c3RvY2sgc3ltYm9sICckc3ltYm9sJyBkb2Vzbid0IGV4aXN0IikgaWYgKCR0
cmFkZSBlcSAiMC4wMCIpOw0KICByZXR1cm4oIiRzeW1ib2wgbGFzdCB0cmFk
ZWQgYXQgJHRyYWRlICgkY2hhbmdlIGNoYW5nZSkiKTsNCn0NCg0KMTsNCg0K
X19FTkRfXw0KDQo9aGVhZDEgTkFNRQ0KDQpTdG9jayAtLSBsb29rcyB1cCB0
aGUgY3VycmVudCBzdG9jayBxdW90ZSBvZiBhIGdpdmVuIHN0b2NrLg0KDQo9
aGVhZDEgU1lOT1BTSVMNCg0Kc3RvY2sgZm9yIDxTWU1CT0w+DQoNCnN0b2Nr
IHF1b3RlIGZvciA8U1lNQk9MPg0KDQo9aGVhZDEgUFJFUkVRVUlTSVRFUw0K
DQoJTFdQOjpTaW1wbGUNCg0KPWhlYWQxIERFU0NSSVBUSU9ODQoNCglDb25u
ZWN0cyB1cCB0byB5YWhvbydzIHN0b2NrIHdlYnBhZ2UsIHB1bGxzIGRvd24N
CglhIENTViBmaWxlIGFuZCBwYXJzZXMgaXQgZm9yIHRoZSBpbmZvLg0KDQo9
aGVhZDEgQVVUSE9SUw0KDQpKYXkgSmFjb2JzICh0ZWNrbGUpIDxqamFjb2Jz
QHNlY3VyZXR0eS5vcmc+DQpSaXp6KysgZm9yIHRoZSBjc3YgaW5mb3JtYXRp
b24uDQo=
---559023410-342241519-946504965=:25087--

From infobot-dev@metronomicon.com  Sun Jan  2 03:04:38 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id DAA24995
	for infobot-dev-list; Sun, 2 Jan 2000 03:03:15 -0500
Received: from mail2.panix.com (mail2.panix.com [166.84.0.213])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id DAA24992
	for <infobot-dev@infobot.org>; Sun, 2 Jan 2000 03:03:14 -0500
Received: from panix7.panix.com (panix7.panix.com [166.84.0.232])
	by mail2.panix.com (Postfix) with ESMTP id E824B1552E
	for <infobot-dev@infobot.org>; Sun,  2 Jan 2000 03:03:16 -0500 (EST)
Received: (from dha@localhost) by panix7.panix.com (8.8.8/8.7.1/PanixN1.0) id DAA28171 for infobot-dev@infobot.org; Sun, 2 Jan 2000 03:03:16 -0500 (EST)
Date: Sun, 2 Jan 2000 03:03:16 -0500
From: "David H. Adler" <dha@panix.com>
To: infobot-dev@infobot.org
Subject: New(?) karma weirdness...
Message-ID: <20000102030316.A24645@panix.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 1.0i
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Purl seems to be only taking karma on lines that are 10 or more
characters long tonight.  This, in and of itself is kind of odd
(unless I missed a meeting... :-), but beyond that, purl claims to be
infobot 0.44.4 - but the latest version I see at www.infobot.org is
0.44.3, making it difficult to get the source for the purpose of
investigating the karma issue...

Have I gone all loopy or is the site slightly behind the times?

dave

-- 
David H. Adler - <dha@panix.com> - http://www.panix.com/~dha/
Learned?  You must be crazy.  Do you think I could play as badly as
this if I had had lessons?	- Patrick Troughton

From infobot-dev@metronomicon.com  Sun Jan  2 17:18:55 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA28747
	for infobot-dev-list; Sun, 2 Jan 2000 17:18:39 -0500
Received: from is.lamefree.com (bounty@is.lamefree.com [209.84.189.37])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id RAA28744
	for <infobot-dev@infobot.org>; Sun, 2 Jan 2000 17:18:37 -0500
Received: from localhost (bounty@localhost)
	by is.lamefree.com (8.9.3/8.9.1) with ESMTP id OAA23277
	for <infobot-dev@infobot.org>; Sun, 2 Jan 2000 14:19:48 -0800 (PST)
Date: Sun, 2 Jan 2000 14:19:48 -0800 (PST)
From: bounty <bounty@is.lamefree.com>
To: infobot-dev@infobot.org
Subject: infobot-is
Message-ID: <Pine.BSF.4.10.10001021417090.23084-100000@is.lamefree.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi everyone,

i have a problem, my bot crashed and now when i start it up, it dont
recongize his infobot-is db..its there, when i status the bot it tells me
it only has 11,000 factiods, but my bot had well over 30,000 factiods.
please is there any way i can fix it..i dont want to start all over again.

thanks

From infobot-dev@metronomicon.com  Sun Jan  2 18:50:16 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id SAA29068
	for infobot-dev-list; Sun, 2 Jan 2000 18:50:15 -0500
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 SAA29065
	for <infobot-dev@infobot.org>; Sun, 2 Jan 2000 18:50:14 -0500
Received: from ip189.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa20360; 2 Jan 2000 18:50 EST
Message-ID: <386FE43D.AA3489A2@cs.cmu.edu>
Date: Sun, 02 Jan 2000 18:50:21 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: bounty <bounty@is.lamefree.com>
CC: infobot-dev@infobot.org
Subject: Re: infobot-is
References: <Pine.BSF.4.10.10001021417090.23084-100000@is.lamefree.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

hmm ok there are 2 ways i can think of right off.
one is, if you've kept the log file, everything 
can be rebuilt from the log. That may be best.

second, i've never tried this on a corrupted db,
but it may be possible to recover by using 'each',
or so i've heard, on some platforms.  This would be
a program like the one below, which is slightly
different from dump_db in that it uses 'each' instead
of keys %is.

If you need to recover from the log, let me know.
Also let me know if the each() works!  

kevin


#!/usr/bin/perl

$| = 1;
$dbname = 'infobot-is';
dbmopen(%db, $dbname, undef) || die "Couldn't dbmopen \"$dbname\"";

while (my ($k, $v) = each %db) {
  print "$k => $v\n";
}

From infobot-dev@metronomicon.com  Tue Jan  4 12:23:43 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id MAA04902
	for infobot-dev-list; Tue, 4 Jan 2000 12:23:04 -0500
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 MAA04899
	for <infobot-dev@infobot.org>; Tue, 4 Jan 2000 12:23:02 -0500
Received: from ip189.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa05149; 4 Jan 2000 12:22 EST
Message-ID: <38722C85.5E1484A8@cs.cmu.edu>
Date: Tue, 04 Jan 2000 12:23:17 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Infobot 0.49_03
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi,

0.49_03 is on http://www.infobot.org/dev/

You can run it EITHER in server mode OR as
console, but not both.  As Server, it will
accept connections from any IRC chat client.
It's not a perfect emulator, but starts getting
you there.  To use the server, get the 
latest development version of POE from
  http://www.newts.org/~troc/poe.html 

Private vs. public stuff still needs to be done,
etc etc, but this will allow you to start the 
server and have several people connect to
it.

It currently considers everything said on
the server to be 'private', and thus always
considers itself addressed.  

kevin

0.49.03 
        - Version name: Fledgling

        <lenzo@cs.cmu.edu> oznoid, Kevin Lenzo

        - Infobot::Server.  This requires POE,
          and in fact the latest development 
          version, 0.08_03.  dngor++ indeed.

          HOWEVER, it should also still be able
          to run as a shell without POE.  See
          the pod docs for Infobot::Server.

          After installing it, start it with

            perl -MInfobot -e 'server(verbosity=>10)'

          and then connect to it with an irc client
          on port 19100.  you can also set the port
          there -- but only if you have the latest
          development release of POE.

          Infobot::Server also has the first 
          germs to support 'connect' -- 
          'connect machine 19100' should link
          two bots, chat-wise. No factoid sharing
          implemented yet.

        - added pod in several places, including
          Infobot.pm explaining invocation and 
          parameters.

        - extended rset and rget to arbitrary number
          of arguments.  

        <jay@cake.harmonic.com> teckle, Jay Jacobs 

        - Infobot::Module::Dict.pm, requires Net::Dict. 
          Looks up definions in several online 
          dictionaries! Nice!  see the pod on it.

        - Infobot::Module::WServer.pm, requires LWP::Simple.
          Gets the web server version from a site. see
          the pod on it.

        - Infobot::Module::Stock.pm, requires LWP::Simple.
          Gets stock quotes from yahoo!.  teckle++ has
          been quote active :)

        <perlguy@perlguy.com> {KM}, Kevin Meltzer

        - Infobot::Module::Zappa.pm, Frank Zappa
          quotes!  Like Zippy but Zappa.

From infobot-dev@metronomicon.com  Tue Jan  4 17:52:16 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id RAA06066
	for infobot-dev-list; Tue, 4 Jan 2000 17:52:07 -0500
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 RAA06063
	for <infobot-dev@infobot.org>; Tue, 4 Jan 2000 17:52:06 -0500
Received: from ip251.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa09776; 4 Jan 2000 17:52 EST
Message-ID: <38728710.E2069A9E@cs.cmu.edu>
Date: Tue, 04 Jan 2000 18:49:36 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@infobot.org
Subject: Private CPAN Bundle for Module Modules
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Hi folks,

I've just made up a private CPAN bundle that
should make getting all the Infobot::Module
dependencies for you.

http://www.infobot.org/dev/i-bundle.tgz

get it, unpack it, then enter the directory
  infobot-private-bundle

and do  

 perl -MCPAN -e 'install Bundle::infobot_modules'

or 

 perl -MCPAN -e shell
 install Bundle::infobot_modules

this should get you everything like Geo::METAR,
Term::ANSIColor, Term::ReadLine, WWW::Search,
LWP, Net::Telnet, Math::Trig, Math::Units, etc
etc etc.

POE is NOT in there, because we require 
POE 0.0804 or better (in the 0.08 clan).  When
the next version of POE gets on CPAN, it will also
be in the Bundle.

Let me know how it goes,

kevin
lenzo@cs.cmu.edu

From infobot-dev@metronomicon.com  Tue Jan  4 21:05:09 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA06731
	for infobot-dev-list; Tue, 4 Jan 2000 21:05:05 -0500
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 VAA06728
	for <infobot-dev@infobot.org>; Tue, 4 Jan 2000 21:05:05 -0500
Received: from LucidX.com (ppp-207-214-184-171.psdn11.pacbell.net [207.214.184.171])
	by verdi.siteprotect.com (8.8.5/8.8.5) with ESMTP id UAA12714
	for <infobot-dev@infobot.org>; Tue, 4 Jan 2000 20:05:24 -0600
Message-ID: <3872A6F6.A876C906@LucidX.com>
Date: Tue, 04 Jan 2000 18:05:42 -0800
From: Samy Kamkar <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: Re: Private CPAN Bundle for Module Modules
References: <38728710.E2069A9E@cs.cmu.edu>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

As I've just experienced Math::Units has some problems, even with the
latest version of CPAN.  Couldn't get it from CPAN directly either, take
a look at this:
--------------------------------
Running make test
<some fun stuff here>
t/*.................can't open t/*.t. No such file or directory
can't close t/*.t. Bad file descriptor
Can't open perl script "t/*.t": No such file or directory
dubious
       Test returned status 2 (wstat 512, 0x200)
FAILED--1 test script could be run, alas--no output ever seen
*** Error code 2
--------------------
Check out the first line...'Running make test'...even though it was a
force install!
I believe Kevin will be updating it by taking the module out unless it
gets fixed.  Also I get some strange stuff when install'ing it after
cleaning it, just Math::Units that is.
Any of you _not_ get this error?

-Samy Kamkar (CommPort5)

From infobot-dev@metronomicon.com  Wed Jan  5 07:51:00 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA09200
	for infobot-dev-list; Wed, 5 Jan 2000 07:50:49 -0500
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 HAA09197
	for <infobot-dev@infobot.org>; Wed, 5 Jan 2000 07:50:48 -0500
Received: from ip251.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa16014; 5 Jan 2000 7:50 EST
Message-ID: <38733D7E.E5F553D0@cs.cmu.edu>
Date: Wed, 05 Jan 2000 07:47:58 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Samy Kamkar <CommPort5@lucidx.com>
CC: infobot-dev@infobot.org
Subject: Re: Private CPAN Bundle for Module Modules
References: <38728710.E2069A9E@cs.cmu.edu> <3872A6F6.A876C906@LucidX.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Yes I got this behaviour also.  Math::Units
requires a 

  force install Math::Units

because the test suite fails.  After you do the force
install, it works in Infobot::Module::Conver -- at least
for me.

I'm going to leave the bundle as it is for a bit, though,
in case this behaviour _doesn't_ show up on some platform.

It shows up for me on RH linux 6.0 and Perl 5.005_3;
Samy was using FreeBSD.

Now to get that IRC interface working with the
new architecture...

kevin


Samy Kamkar wrote:
> 
> As I've just experienced Math::Units has some problems, even with the
> latest version of CPAN.  Couldn't get it from CPAN directly either, take
> a look at this:
> --------------------------------
> Running make test
> <some fun stuff here>
> t/*.................can't open t/*.t. No such file or directory
> can't close t/*.t. Bad file descriptor
> Can't open perl script "t/*.t": No such file or directory
> dubious
>        Test returned status 2 (wstat 512, 0x200)
> FAILED--1 test script could be run, alas--no output ever seen
> *** Error code 2
> --------------------
> Check out the first line...'Running make test'...even though it was a
> force install!
> I believe Kevin will be updating it by taking the module out unless it
> gets fixed.  Also I get some strange stuff when install'ing it after
> cleaning it, just Math::Units that is.
> Any of you _not_ get this error?
> 
> -Samy Kamkar (CommPort5)

From infobot-dev@metronomicon.com  Fri Jan  7 04:17:22 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA18168
	for infobot-dev-list; Fri, 7 Jan 2000 04:16:46 -0500
Received: from swami.pcguru.com.au (swami.pcguru.com.au [203.8.109.69])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id EAA18165
	for <infobot-dev@metronomicon.com>; Fri, 7 Jan 2000 04:16:42 -0500
Received: from swami.pcguru.com.au (swami.pcguru.com.au [203.8.109.69])
	by swami.pcguru.com.au (8.9.3/8.8.7) with ESMTP id RAA07809
	for <infobot-dev@metronomicon.com>; Fri, 7 Jan 2000 17:16:43 +0800
Message-ID: <3875AEDD.A96CF4B5@swami.pcguru.com.au>
Date: Fri, 07 Jan 2000 17:16:13 +0800
From: Jason Jordan <guru@swami.pcguru.com.au>
Reply-To: guru@swami.pcguru.com.au
X-No-Archive: Yes
X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.3.34 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: infobot-dev@metronomicon.com
Subject: Infobot Modules
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Howdy,

Has anyone written a module for Infobot that will grab stock quotes, the
Dow and NASDAQ?

I use a channel called #daytraders and this would be very useful.. 8-)

Cheers, Jas

-- 
Jason D. Jordan                            Perth, Western Australia
  ... less than 12 months til the start of the 3rd Millennium and
             the beginning of the 21st Century!
-------------------------------------------------------------------
"The threat to our liberty lies not with the evil-minded ruler, for 
  men born to freedom are quick to resist tyranny, rather it lies 
  with men of zeal - well meaning, but lacking in understanding." 
         Justice Louis Brandeis - USA Supreme Court

From infobot-dev@metronomicon.com  Fri Jan  7 04:51:57 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id EAA18305
	for infobot-dev-list; Fri, 7 Jan 2000 04:51:56 -0500
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 EAA18302
	for <infobot-dev@metronomicon.com>; Fri, 7 Jan 2000 04:51:54 -0500
Received: (qmail 11260 invoked by uid 500); 7 Jan 2000 09:52:28 -0000
Date: Fri, 7 Jan 2000 18:52:28 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: infobot-dev@metronomicon.com
Subject: Re: Infobot Modules
Message-ID: <20000107185228.A11250@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <3875AEDD.A96CF4B5@swami.pcguru.com.au>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Mailer: Mutt 0.95.6i
In-Reply-To: <3875AEDD.A96CF4B5@swami.pcguru.com.au>; from Jason Jordan on Fri, Jan 07, 2000 at 05:16:13PM +0800
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

On Fri, Jan 07, 2000 at 05:16:13PM +0800, Jason Jordan wrote:
> Has anyone written a module for Infobot that will grab stock quotes, the
> Dow and NASDAQ?

I've sent the quote.pl thingy separately. I've not be following the current
thread very well - do we have a central repository for these extensions now?

Simon
-- 
As in certain cults it is possible to kill a process if you know its true name.
		-- Ken Thompson and Dennis M. Ritchie

From infobot-dev@metronomicon.com  Fri Jan  7 07:57:14 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id HAA18924
	for infobot-dev-list; Fri, 7 Jan 2000 07:57:04 -0500
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 HAA18921
	for <infobot-dev@metronomicon.com>; Fri, 7 Jan 2000 07:57:04 -0500
Received: from ip251.pittsburgh5.pa.pub-ip.psi.net by ux1.sp.cs.cmu.edu
          id aa15653; 7 Jan 2000 7:57 EST
Message-ID: <3875E1F8.B7A9D9FC@cs.cmu.edu>
Date: Fri, 07 Jan 2000 07:54:16 -0500
From: Kevin Lenzo <lenzo@cs.cmu.edu>
Organization: School of Computer Science, Carnegie Mellon University
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.12 i686)
X-Accept-Language: en
MIME-Version: 1.0
To: Simon Cozens <simon@brecon.co.uk>
CC: infobot-dev@metronomicon.com
Subject: Re: Infobot Modules
References: <3875AEDD.A96CF4B5@swami.pcguru.com.au> <20000107185228.A11250@othersideofthe.earth.li>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

hi folks,

Teckle did Infobot::Module::Stock.pm as a module, to answer
the immediate question (simon i was to slow in converting
stock.pl to a module, and the new one is quite compact), but
that raises the issue of who does what to which modules.

the Infobot will be on CPAN, and I'm sure that I would be 
overwhelmed and slow if I independently made every change to
the Infobot::Modules that other people develop; furthermore,
I hope people will put things under the Infobot::Module
directory on CPAN using PAUSE without me being involved. 

I think I'll try to keep the Infobot core with a few modules,
and then have a Bundle on CPAN for pulling in all the
modules there.  That means that module authors should probably
all get PAUSE ids, though it's not required, of course.

So far, the contributed Modules have been in the .tar.gz
files on 
   http://www.infobot.org/dev/ 
and the discussion is archived on
   http://www.infobot.org/list/
which has most of the submissions, it it's awkward to get
to because the modules aren't individually available yet.

I'll make a burst directory that has the whole source
open, but this will just be a short-term solution for
having the whole tree under CVS.


Simon Cozens wrote:
> 
> On Fri, Jan 07, 2000 at 05:16:13PM +0800, Jason Jordan wrote:
> > Has anyone written a module for Infobot that will grab stock quotes, the
> > Dow and NASDAQ?
> 
> I've sent the quote.pl thingy separately. I've not be following the current
> thread very well - do we have a central repository for these extensions now?
> 
> Simon
> --
> As in certain cults it is possible to kill a process if you know its true name.
>                 -- Ken Thompson and Dennis M. Ritchie

included below is Infobot::Module::Stock.pm in its current
state.

cheers,

kevin
# 
#  Stock -- infobot module for stock quote lookups.
#           requires the LWP::Simple module.
#  By Jay Jacobs (teckle)
#  CSV pointers from Carl Boernecke (Rizz)
#

package Infobot::Module::Stock;

use strict;
use Infobot::Module;

$Infobot::Module::Stock::VERSION = "0.10_00";
$Infobot::Module{"Stock"} = $Infobot::Module::Stock::VERSION;
@Infobot::Module::Stock::ISA = qw(Infobot::Module);

my $any_bad;

BEGIN {
  eval { require LWP::Simple };
  $@ and $any_bad = "LWP::Simple";
  warn "Infobot::Module::Stock requires $any_bad" if $any_bad;
}

sub Infobot::Module::Stock::new {
  my $class = shift ;
  return undef if $any_bad;

  my $self  = $class->SUPER::new(@_);
  $self->weight(0); 
  
  $self->enabled(1);
  $self->name('Stock');
  $self->regex(qr/stock\s+(?:price |quote |for )?\s*(?:for|at|of)?\s*(\S+)/i);
  $self->usage('stock <SYMBOL>');
  $self->descrip("Tries to lookup stock quote for SYMBOL");

  bless $self, $class;
}

sub Infobot::Module::Stock::action {
  my ($self, $message) = @_;
  return undef unless $self->enabled;

  my $symbol = uc($message->get('args')->[0]);
  $self->status(5,"looking up stock for $symbol");
  my $content = LWP::Simple::get("http://finance.yahoo.com/d/quotes.csv?s=$symbo
l\&f=sl1d1t1c1ohgv\&e=.csv");
  return("$symbol: could not get information") if (! defined $content);
  my ($trade, $change) = (split(/,/, $content))[1,4];
  return("stock symbol '$symbol' doesn't exist") if ($trade eq "0.00");
  return("$symbol last traded at $trade ($change change)");
}

1;

__END__

=head1 NAME

Stock -- looks up the current stock quote of a given stock.

=head1 SYNOPSIS

stock for <SYMBOL>

stock quote for <SYMBOL>

=head1 PREREQUISITES

        LWP::Simple

=head1 DESCRIPTION

        Connects up to yahoo's stock webpage, pulls down
        a CSV file and parses it for the info.

=head1 AUTHORS

Jay Jacobs (teckle) <jjacobs@securetty.org>
Rizz++ for the csv information.

From infobot-dev@metronomicon.com  Sun Jan  9 01:30:11 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA27259
	for infobot-dev-list; Sun, 9 Jan 2000 01:29:22 -0500
Received: from ops_rs6k.harmonic.com (IDENT:0@harmonic.com [206.146.220.1])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id BAA27256
	for <infobot-dev@infobot.org>; Sun, 9 Jan 2000 01:29:21 -0500
Received: from cake.harmonic.com (noc.harmonic.com [206.146.220.44])
	by ops_rs6k.harmonic.com (8.9.0/8.9.1) with ESMTP id AAA08378
	for <infobot-dev@infobot.org>; Sun, 9 Jan 2000 00:30:12 -0600
Received: from noc.harmonic.com (noc.harmonic.com [206.146.220.44])
	by cake.harmonic.com (8.9.2/8.9.1) with ESMTP id AAA28768
	for <infobot-dev@infobot.org>; Sun, 9 Jan 2000 00:33:17 -0600 (CST)
Date: Sun, 9 Jan 2000 00:33:16 -0600 (CST)
From: Jay Jacobs <jay@cake.harmonic.com>
X-Sender: jay@cake.harmonic.com
To: Infobot development list <infobot-dev@infobot.org>
Subject: module idear (Quotes anyone?)
Message-ID: <Pine.GSO.4.21.0001090025270.28690-100000@cake.harmonic.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

I was thinking of starting work on a quote module. and here are my
thoughts on it.

usage: quote <nick>

would take the last thing <nick> said and stick it into a dbm or some way
tie it to the nick.  In theory I was thinking that it could be taken from
the seen-dbm, but I haven't looked at it.

There'd be a one-to-many relationship between nick-to-quote.

more usage: (spit out|regurgitate|recite) quote (from) <nick>

that would pick a random quote from <nick> and recite it with:
> teckle says "I like to smell my shoes after a long day"
Or something like that.  One problem I see (as with a lot of infobot
info) is data verification and removal of quotes... but that'll be the
second version of the module I suppose.

This is all in theory and no work has been done yet.  But I figured rather
then start something someone else was working on I'd post here.  That and
possibly get some direction/assistance on it.

Jay
(teckle)

From infobot-dev@metronomicon.com  Sun Jan  9 01:50:42 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id BAA27365
	for infobot-dev-list; Sun, 9 Jan 2000 01:50:42 -0500
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 BAA27362
	for <infobot-dev@infobot.org>; Sun, 9 Jan 2000 01:50:40 -0500
Received: (qmail 21777 invoked by uid 500); 9 Jan 2000 06:51:29 -0000
Date: Sun, 9 Jan 2000 15:51:29 +0900
From: Simon Cozens <simon@brecon.co.uk>
To: Infobot development list <infobot-dev@infobot.org>
Subject: Re: module idear (Quotes anyone?)
Message-ID: <20000109155129.A21689@othersideofthe.earth.li>
Reply-To: Simon Cozens <simon@brecon.co.uk>
References: <Pine.GSO.4.21.0001090025270.28690-100000@cake.harmonic.com>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="TB36FDmn/VVEgNH/"
X-Mailer: Mutt 0.95.6i
In-Reply-To: <Pine.GSO.4.21.0001090025270.28690-100000@cake.harmonic.com>; from Jay Jacobs on Sun, Jan 09, 2000 at 12:33:16AM -0600
X-Operating-System: Linux othersideofthe.earth.li 2.2.13
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O


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

On Sun, Jan 09, 2000 at 12:33:16AM -0600, Jay Jacobs wrote:
> I was thinking of starting work on a quote module. and here are my
> thoughts on it.

Been there, done that.

-- 
Behind every great computer sits a skinny little geek.

--TB36FDmn/VVEgNH/
Content-Type: application/x-perl
Content-Disposition: attachment; filename="oxquote.pl"

# Template infobot extension


BEGIN {
	eval "use Mail::Send"; $nomm++ if $@;
}

sub oxquote { 
	my ($from, $by, $what) = @_;
	return "Not available at this time." if defined $main::nomm;
	my $msg=Mail::Send->new(Subject=>"OxIRC quote submission",
			To=>"Matthew.Clemson\@keble.oxford.ac.uk");
	
	my $fh=$msg->open or return "Couldn't open the filehandle";
	print $fh "At ".(scalar localtime)."(JAPAN TIME!) on ".channel().":\n";
	print $fh "$by said: $what\n\n";
	print $fh "$from thought this was funny, apparently.\n";
	$fh->close;
	return "OK, told Rap.";
}

1;

__END__

=head1 NAME

Filename.pl - Description

=head1 PREREQUISITES

	Some::Module

=head1 PARAMETERS

switchname

=over 4

=item value1

Description

=item value2

Description

=back

=head1 PUBLIC INTERFACE

Here you put how you call your sub from the bot user's point of view

=head1 DESCRIPTION

What is it?

=head1 AUTHORS

Who are you?

--TB36FDmn/VVEgNH/--

From infobot-dev@metronomicon.com  Mon Jan 10 22:06:12 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id WAA02197
	for infobot-dev-list; Mon, 10 Jan 2000 22:06:12 -0500
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 WAA02194
	for <infobot-dev@infobot.org>; Mon, 10 Jan 2000 22:06:11 -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 VAA02055
	for <infobot-dev@infobot.org>; Mon, 10 Jan 2000 21:08:41 -0600
Message-ID: <387A9ED6.F0740026@LucidX.com>
Date: Mon, 10 Jan 2000 19:09:10 -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: Current OS versions
Content-Type: multipart/mixed; boundary="------------A7B5D442518768BFC38A7457"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

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

Greetings, osvers.pl is a little add-on to Infobot which goes to a CGI
(unix.cgi although it will _actually_ go to
www.LucidX.com/cgi-bin/unix.pl) and that CGI will go out to a couple of
other web sites and grab current OS version numbers.  It goes to
official OS web sites such as freebsd.org and redhat.com, although a lot
of OSs weren't added since it would be difficult for the CGI to
understand what to find for the newer versions of the OS since the HTML
on the page is bound to change.  If anyone can add to unix.cgi, please
do and get it out so it can be used.  To get Infobot to work with
osvers.pl place this in src/Extras.pl:

    if ($message =~ /^\s*(cur|current|)( |)(os|unix|operating(
|)system(s|))( |)ver/) {
        my $os = &vers();
        return $os;
    }

So you know you DO NOT need to use unix.cgi, I just put that their since
that's the real program that does most of the work.  The reason I didn't
incorperate it into osvers.pl is because it would really lag the
connection of the bot that is using it.  So if you wish please mess
around with unix.cgi and send it back if you got a neater/better
version.
Ten four,
-CommPort5

--------------A7B5D442518768BFC38A7457
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.mandrake.org/en/fdownload.php3"); }
 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 #####
   if($name eq "Mandrake") {
    $res =~ /Linux 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");

--------------A7B5D442518768BFC38A7457
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;

--------------A7B5D442518768BFC38A7457--

From infobot-dev@metronomicon.com  Tue Jan 11 13:43:19 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from majordomo@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id NAA03880
	for infobot-dev-list; Tue, 11 Jan 2000 13:42:32 -0500
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 NAA03877
	for <infobot-dev@infobot.org>; Tue, 11 Jan 2000 13:42:32 -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 NAA26262
	for <infobot-dev@infobot.org>; Tue, 11 Jan 2000 13:44:55 -0500 (EST)
Received: by ntnau210.usco.com with Internet Mail Service (5.5.2650.21)
	id <ZAJX8QTA>; Tue, 11 Jan 2000 13:44:54 -0500
Message-ID: <A1335534778DD311991300A0C9F3B3F268C76F@ntnau220.usco.com>
From: "Meltzer, Kevin" <KMeltzer@USCO.com>
To: "'infobot-dev@infobot.org'" <infobot-dev@infobot.org>
Subject: Wuname
Date: Tue, 11 Jan 2000 13:44:49 -0500
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: multipart/mixed;
	boundary="----_=_NextPart_000_01BF5C63.F2F8BF20"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01BF5C63.F2F8BF20
Content-Type: text/plain;
	charset="iso-8859-1"

Since we were having fun for a bit this morning with getting wunames, I
modularized it:

wuname Larry Wall 
or
wuname for Larry Wall 

returns:
wuname for Larry Wall is 'Asthmatic Enemy of God'

Cheers,
Kevin

 <<Wuname.pm>> 

------_=_NextPart_000_01BF5C63.F2F8BF20
Content-Type: application/octet-stream;
	name="Wuname.pm"
Content-Disposition: attachment;
	filename="Wuname.pm"

#!/usr/bin/perl

package Infobot::Module::Wuname;

use strict;
use Infobot::Module;

$Infobot::Module::Wuname::VERSION = "0.01_00";
$Infobot::Module{"Wuname"} = $Infobot::Module::Wuname::VERSION;
@Infobot::Module::Wuname::ISA = qw(Infobot::Module);

my $anybad;

BEGIN {
  $anybad = 0;
  eval "use LWP::UserAgent";
  $@ and do { $anybad = "Wuname is missing LWP::UserAgent\n"; 
	      print STDERR $anybad; };
}

sub new {
  return undef if $anybad;
  my $class = shift ;
  my $self  = $class->SUPER::new(@_);

  $self->weight(1); 

  $self->name('Wuname');
  $self->regex(qr/^wuname(?:\s+for)?\s+(.*)$/i);
  $self->usage('wuname (for)? Joe Schmoe');
  $self->descrip("Get someones Wuname");

  bless $self, $class;
}

sub action {
  my ($self, $message) = @_;

  return '' unless $self->enabled;
  my $name = $message->get('args')->[0];
  my ($fname, $sname) = split(/\s+/,$name);
  $fname = ucfirst($fname);
  $sname = ucfirst($sname);

  my $result;

  my $url = "http://www.recordstore.com/cgi-bin/wuname/wuname.pl?fname=$fname&sname=$sname";

  my $ua = new LWP::UserAgent;
  $ua->timeout(4);
  $ua->proxy('http','http://wwwproxy1.external.usco.com:8000/');
  my $req =  HTTP::Request->new('GET', $url);
  my $res = $ua->request($req);

  return "there was some error getting a wuname from $url" 
      unless $res->is_success;

  my $content = $res->content;
  $content =~ s/\n//g;
  if ($content =~ /<SPAN class=\"newname\">(.*?)<\/SPAN>/ig) {
	$result = qq(wuname for $fname $sname is "$1");
  }else{
	$result = qq(There was a problem getting the Wuname: $1 $fname $sname);
  }

  return $result;
}
1;

__END__

=head1 NAME

Wuname.pm - Get your Wuname! (whatever that is)

=head1 SYNOPSIS

wuname for Kevin Meltzer
wuname Larry Wall

=head1 PREREQUISITES

LWP::*

=head1 PUBLIC INTERFACE

        wuname [for] <firstname> <lastname>

=head1 DESCRIPTION

Gets the wuname for the given name. This is a name based on names
from the band (sic) Wu-Tang Clan. I don't listen to them, but we
were having fun on #perl one day with this so I whipped this up.

=head1 AUTHORS

Kevin Meltzer ({KM}) <perlguy@perlguy.com>
The Wuname script is located at 
http://www.recordstore.com/cgi-bin/wuname/wuname.pl


------_=_NextPart_000_01BF5C63.F2F8BF20--

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 20:25:47 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id UAA19274
	for infobot-dev-list; Wed, 19 Jan 2000 20:25:38 -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 UAA19271
	for <infobot-dev@infobot.org>; Wed, 19 Jan 2000 20:25:36 -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 KAA26713
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 10:33:15 +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 KAA18452
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 10:32:06 +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.0007F994 ; Thu, 20 Jan 2000 10:27:06 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: infobot-dev@infobot.org
Message-ID: <4925686C.0006B3FA.00@pwj-gw-n001.pwj.co.jp>
Date: Thu, 20 Jan 2000 10:25:51 +0900
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O





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  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 02:25:10 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA21531
	for infobot-dev-list; Thu, 20 Jan 2000 02:25:09 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mlx7.unm.edu (qmailr@mlx7.unm.edu [129.24.8.209])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id CAA21528
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 02:25:09 -0500
Received: (qmail 21014 invoked from network); 20 Jan 2000 07:27:32 -0000
Received: from ppp-227.unm.edu (HELO lachler) (129.24.14.227)
  by mlx7.unm.edu with SMTP; 20 Jan 2000 07:27:32 -0000
Message-Id: <3.0.6.32.20000120002731.008550c0@stonehenge.netadventure.net>
X-Sender: sburke@stonehenge.netadventure.net
X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32)
Date: Thu, 20 Jan 2000 00:27:31 -0700
To: infobot-dev@infobot.org
From: "Sean M. Burke" <sburke@netadventure.net>
Subject: factoid
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

The long arm of coincidence yet again...

>Date: Thu, 20 Jan 2000 00:05:03 -0500
>From: Wordsmith <wsmith@wordsmith.org>
>To: linguaphile@wordsmith.org
>Subject: A.Word.A.Day--factoid
>
>factoid (FAK-toid) noun
>
>   Unverified or inaccurate information that is presented in the press as
>   factual, often as part of a publicity effort, and that is then accepted
>   as true because of constant repetition.
>
>   "This sort of thing is infuriating to practicing historians who can
>   tell fact from factoid, without, in a deep way, being able to explain
>   why."
>   A New Philosophy of History, The Economist, 11 Nov 1995.
>
>   "Real-life factoid: Estes is married to Bissett, who'll be leaving
>   Melrose at midseason to have a baby."
>   Bruce Fretts, et al., Television: The Week, Entertainment Weekly,
>   6 Sep 1996.
>
>This week's theme: words often used in a sense different from their established
>definitions.  
>
>.............................................................................
>My idea of education is to unsettle the minds of the young and inflame their
>intellects. -Robert Maynard Hutchins
>
>Q: What other services are available at Wordsmith.Org?
>A: Have you tried "I, Rearrangement Servant" also known as "Internet Anagram
>   Server"? You can anagrammatize your name, your friends' names, and even
>   your pet's name. Find it at: http://wordsmith.org/anagram/index.html
>
>Pronunciation:
>http://www.wordsmith.org/words/factoid.wav
>http://www.wordsmith.org/words/factoid.ram
>
>
--
Sean M. Burke sburke@netadventure.net http://www.netadventure.net/~sburke/

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:27:20 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id OAA24752
	for infobot-dev-list; Thu, 20 Jan 2000 14:27:09 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from kiev.wall.org (kiev.wall.org [205.178.11.135])
	by token.metronomicon.com (8.9.3/8.8.7) with ESMTP id OAA24749
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 14:27:06 -0500
Received: by kiev.wall.org (8.9.3/8.9.3) id LAA08774;
	Thu, 20 Jan 2000 11:27:54 -0800 (PST)
Date: Thu, 20 Jan 2000 11:27:54 -0800 (PST)
From: Larry Wall <larry@wall.org>
Message-Id: <200001201927.LAA08774@kiev.wall.org>
To: scozens@pwj.co.jp
Cc: infobot-dev@infobot.org, lenzo@cs.cmu.edu, larry@wall.org
Subject: Re: a propos of artificial intelligence, linguistics, and geckos
In-Reply-To: <4925686C.0019F820.00@pwj-gw-n001.pwj.co.jp>
 (from scozens@pwj.co.jp on Thu, 20 Jan 2000 14:25:04 +0900)
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

scozens@pwj.co.jp writes:
: 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.

Hmm, you just contradicted yourself.  I agree with the first statement,
but not with the second.  In fact, the big idea from tagmemics is that
the code is useless without a context.  Latin is a "dead" language
precisely because there's no living culture around it.  It has a code,
and people can even read the code, but it doesn't much matter.  A
culture can create a language if it doesn't have one (see pidgin), but
even so great a language as Latin cannot create a culture once it is
lost.

In fact, only one dead language has ever managed to resurrect itself,
namely Hebrew.  But that's only because the culture survived and chose
to resurrect it.

And the only way a manufactured language like Esperanto, Lojban,
Quenya, or Klingon can ever succeed is if a culture decides to adopt
them.  Otherwise nobody will ever teach those languages to their
children as a first language.

In this light, Perl succeeded only because it managed to get itself
adopted by Unix culture, and later by Web culture.

Larry

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 21:41:00 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id VAA27814
	for infobot-dev-list; Thu, 20 Jan 2000 21:40:57 -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 VAA27811
	for <infobot-dev@infobot.org>; Thu, 20 Jan 2000 21:40:52 -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 LAA13473;
	Fri, 21 Jan 2000 11:49:08 +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 LAA25663;
	Fri, 21 Jan 2000 11:47:58 +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.000EE69C ; Fri, 21 Jan 2000 11:42:45 +0900
X-Lotus-FromDomain: PRICE WATERHOUSE-JAPAN
To: troc@netrus.net
cc: infobot-dev@infobot.org
Message-ID: <4925686D.00088672.00@pwj-gw-n001.pwj.co.jp>
Date: Fri, 21 Jan 2000 11:41:28 +0900
Subject: Re: (null)
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 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: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 02:18:20 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id CAA30411
	for infobot-dev-list; Fri, 21 Jan 2000 02:18:17 -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 CAA30408
	for <infobot-dev@infobot.org>; Fri, 21 Jan 2000 02:18:17 -0500
Received: from rocco (abuse@dialin-pm3-miami-FL-2-107.netrus.net [206.251.198.107])
	by mail.netrus.net (8.8.8/8.8.8) with SMTP id CAA03934;
	Fri, 21 Jan 2000 02:19:21 -0500
Message-Id: <200001210719.CAA03934@mail.netrus.net>
From: "Rocco Caputo" <troc@netrus.net>
To: "scozens@pwj.co.jp" <scozens@pwj.co.jp>
Cc: "infobot-dev@infobot.org" <infobot-dev@infobot.org>
Date: Fri, 21 Jan 2000 02:19:10 -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.00088672.00@pwj-gw-n001.pwj.co.jp>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Subject: GeckoNet
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

Apologies for any incoherence throughout this document.  Stream of
consciousness runs fast and rough around the turns. :)

On Fri, 21 Jan 2000 11:41:28 +0900, 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.


False for at least two reasons, one of which you can pin on me:

First, the example \@thing is intended to be an unblessed Perl data
structure.  It's my fault for implying objectness by using the name
"thing".  I apologize for the confusion there.

And B: Even if it were a blessed reference, Storable's freeze() and
thaw() don't work the way you seem to expect.  freeze() doesn't
include code along with the blessed reference; thaw() doesn't inject
strange code into your program.  The receiver's code is its own.

The rest of the code works the same either way.  If it's an object,
the receiver's package has validators and accessors.  If it's a data
packet, the receiver has a library of validation functions and just
accesses the data direcly.

And you can use ref() and can() to make sure the object is blessed
properly.


>> 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


Discovery is harder, but I like it better.  Hard problems are more
fun, anyway.

About central registries: An abbreviated DNS model might work.  Set up
a single open registrar for the geckobot network.  Distribute its data
among mirrors regularly.  Hardcode the root cache into geckobot.
Geckobots pull a copy of the peer database at install time, and they
periodically update against it.  This is my favorite choice so far.

IRC makes an interesting star topology.  Set up a small network of
private servers, and have all the 'bots meet on a reserved channel.
NO HUMANZ ALOWED!!!  Are there any limits on channel sizes?

If you want to go all crazy and impractical and stuff, set up a
virtual private network, and put all the bots on the same subnet.
Sling broadcast packets around:

  Hey, everyone on the subnet, tell me what ``foo'' is.
  [X number of ACKs saying: Foo is yatta yatta]
  [Y number of NAKs saying: I don't know]

VPN is my other favorite choice, if I'm allowed to be a complete loon.


>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


I like UDP right now; it's my socket flavor of the week.  They're
comfy and easy to broadcast.

At initial startup, the querist bot grabs a list of servers from one
of the registrar sites or mirrors.  It periodically updates this list,
perhaps daily.

Peerings are one-way: data is propagated by fetch only.

How a querist asks peers for a factoid:

  Create a virtual connection pool; load the question "What is foo?"
  into it.

  Preload it with the N most appropriate peers.  Appropriateness is
  gauged by willingness to answer past and the typical response time.
  Quicker peers float to the top, where they get hit more often.  I
  assume this will balance out the overall bot-network load.

To begin with, there may be a few types of responses.  No matter which
response type, note the round trip time for load balancing.  Keep an
eye on round trip times, and keep a running average, since conditions
constantly change.

  Positive lookup; here's your factoid.  Stop loading addresses into
  the connection pool.  Wait for any remaining transactions to finish.

  No factoid here.  Discard the remote peer's address.

  No factoid here, and let me know if you find something out.  Here's
  a cookie to remind me that I asked for the data you might be pushing
  at me later.  Cache the remote address in case we can send a
  response.

  Stop asking me questions.  Flag the site as unwilling to transact;
  don't contact it again for a long while (on the order of a day or
  more).  Why recontact at all?  In case the site's policies change.

  No response; eventually time out (on the order of a few seconds).
  This could get *slow*.

The virtual connection pool will eventually run out, either because
there are no more peers to ask or because an ACK stopped new peers
from being loaded into it.  If we received a positive response,
broadcast copies of the factoid to sites that gave us cookies.  If
nobody knows the factoid, throw away the cookies (or be friendly and
NAK them?).


Or something.


>iv) Does an information request from a bot need to be any different
>from an information request from a human? -> viii


Probably, since additional information may let the bot network
transact more efficiently.


>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


Combine them:

  A asks, "What is foo?"
  B says, "Foo is what comes before bar."
  C says, "Foo is silence."
  D says, "I don't know; please tell me what you found out."

  A assimilates "Foo is what comes before bar. or silence."

  A says to D, "I found out: Foo is what comes before bar. or
  silence."

Overlapping factoids are a little harder:

  A asks, "What is foo?"
  B says, "Foo is silence, or what comes before bar."
  C says, "Foo is silence."
  D says, "Foo is what comes before bar or a metavariable."

A will have to be smart enough to figure out:

  A assimilates, "Foo is silence or what comes before bar or a
  metavariable."


>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


Defined under my response to (iii).  Recap: Bot transactions happen
one level at a time.  No more than N-1 outstanding transactions need
to be cleaned up, and the "I don't know, but tell me what you find
out" response gives bots a reason to wait past a positive remote
lookup.

This doesn't ensure that a found factoid propagates to *everyone*, but
it does help spread the information around.  The factoid will be
cached on more servers for the next time.


>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)


The idea in (iii) involves only one level of store and forward at any
time.  Respondents that don't know what a factoid means can pass the
querist back a cookie along with the "I don't know, but please tell
me" response.  The querist can use the cookie to validate the factoid
it's found.  Cookies might expire after (timeout * known_servers +
fudge) seconds.  That gives the querist enough time to finish its
rounds.

The whole idea invalidates the "bots and humans living together"
aspect.  That is, they would have to speak different languages.  That
may be unacceptable.


>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]


The list method in (iii) avoids collissions when BotA and BotB both
ask BotF.  It's also potentially hideously slow.  On the other hand,
the tree method you have in (ix) lets questions percolate through the
network where they might not normally be allowed.

List method example:

  Nick asks BotA: Foo?
  BotA asks BotB: Foo?
  BotA asks BotC: Foo?
  BotB says to BotA: Doesn't know.
  BotC says to BotA: Stop asking.

Tree method:

  Nick asks BotA: Foo?
  BotA asks BotB: Foo?
  BotA asks BotC: Foo?
  BotB says to BotA: Doesn't know, but is looking.
  BotC says to BotA: Stop asking.
  BotB asks BotC: Foo?
  BotC says to BotB: Foo is silence.
  BotB says to BotA: Foo is silence.

The factoid gets back to Nick in the tree structure, where it fails in
the list structure.

On the other other hand, the list structure balances network and bot
loads by picking on ones that seem to have better resources.  Perhaps
a combination of the two methods:

Acquire a list of possible peers at initial startup, from a registrar
or mirror.  Assign them all 0ms response times and assume they're all
willing to answer.  This ensures that every peer is tested before
live statistics are used.

On the first local factoid fail, process the list in list mode.  This
adjusts the response times, and it finds out which peers don't want
talk with us directly.  Continue to process peers in list mode until
they all have been checked.

On subsequent factoid fails, walk through our list of cooperative
hosts, and pass along a few uncooperative hosts to each one.  In this
mode, the cooperative hosts check to see if they cooperate with one of
the uncooperative hosts.  If so, they act as a proxy.

Proxies return the factoid, and identify the uncooperative (to the
initial querist) host they contacted.  The querist replaces the
uncooperative host in its list with a path to it through the proxy.

These rules recurse as necessary (big gloss over interesting
details here), until each geckobot has built routes to each other
geckobot.  At that point we decide that non-cooperation isn't
workable unless bots (or small nets) decide to firewall themselves
off from others totally.  Then we give them their own registrars
and send them on their way.

Chains would be periodically broken and retested, in case server
policies change.
  

>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


My entire premise, back at (iii) sort of hinges on bots speaking to
one another in a special way and/or on a special network.


>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 am now extremely tired.  Again, please forgive the rough bits.

-- Rocco Caputo / troc@netrus.net


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:04:55 2000
Return-Path: <infobot-dev@metronomicon.com>
Received: (from mail@localhost)
	by token.metronomicon.com (8.9.3/8.8.7) id LAA31943
	for infobot-dev-list; Tue, 25 Jan 2000 11:04:55 -0500
X-Authentication-Warning: token.metronomicon.com: mail set sender to infobot-dev@metronomicon.com using -f
Received: from mail.in-con.com (bell.in-con.com [205.162.249.10])
	by token.metronomicon.com (8.9.3/8.8.7) with SMTP id LAA31940
	for <infobot-dev@infobot.org>; Tue, 25 Jan 2000 11:04:54 -0500
Received: from cedar (druk.imperma.net[205.162.249.195])by BELL(MailMax 2.040) with ESMTP id 0 for mpoole@in-con.com; Tue, 25 Jan 2000 08:06:54 -0800 PST
Message-ID: <0a0801bf674e$58f90cd0$c3f9a2cd@cedar>
From: "mapoole" <mpoole@in-con.com>
To: "infobot dev" <infobot-dev@infobot.org>
Subject: greeting routine request
Date: Tue, 25 Jan 2000 08:07:57 -0800
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0A05_01BF670B.49DE4D70"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.5
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Sender: infobot-dev@metronomicon.com
Precedence: bulk
Status: O

This is a multi-part message in MIME format.

------=_NextPart_000_0A05_01BF670B.49DE4D70
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I know I shouldn't just make lists of things that would be nice see =
happen but this is something that should get installed to prevent =
channel irritations.

when someone comes on channel and everyone says hi the bot doesn't =
really know who it should address and consequently addresses everyone

Could someone add an only welcome recent on_joins?

I'll try to contribute other ways like assisting with the development of =
guidelines etc. until my code gets up to speed where I can actually do =
things for myself.

    thanks, urgen/efnet

------=_NextPart_000_0A05_01BF670B.49DE4D70
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>

<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type>
<META content=3D'"MSHTML 4.72.3110.7"' name=3DGENERATOR>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT color=3D#000000 size=3D2>I know I shouldn't just make lists =
of things=20
that would be nice see happen but this is something that should get =
installed to=20
prevent channel irritations.</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>when someone comes on channel and =
everyone says=20
hi the bot doesn't really know who it should address and consequently =
addresses=20
everyone</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>Could someone add an only welcome =
recent=20
on_joins?</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>I'll try to contribute other ways =
like assisting=20
with the development of guidelines etc. until my code gets up to speed =
where I=20
can actually do things for myself.</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>&nbsp;&nbsp;&nbsp; thanks,=20
urgen/efnet</FONT></DIV></BODY></HTML>

------=_NextPart_000_0A05_01BF670B.49DE4D70--


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.


