[E-Lang] Re: Distributed Toontalk (was: VLS for everyone)

Ken Kahn kenkahn@toontalk.com
Mon, 26 Mar 2001 09:13:40 -0800

Hi all.

First since some of you don't know about ToonTalk (www.toontalk.com ) here's
a brief summary. ToonTalk is a programming language designed for kids. From
the kids' point of view it is a game where they fly helicopters, train
robots, give birds messages to deliver, use magic wands, load up trucks etc.
>From the computer scientists' point of view the kids are creating concurrent
constraint programs (CCP). The computation model shares much with E and
Joule since they all were strongly influenced by concurrent logic
programming (CLP). CCP is a major generalization of CLP but ToonTalk make
little use of the extra generality. In ToonTalk a process is a team of
robots working in a house on a box that can contain pretty much anything. A
robot can communicate with another robot in another house by giving a box to
a bird who then takes the box to her nest. The recipient robot will see the
box appear on the nest and can respond.

As MarkM mentioned birds can now fly to nests on other computers. The
current implementation has many limitations that I plan to remove later this

1. Birds find their nest based on the IP address of the computer when the
nest was created. So the nest can't move nor can the IP address change. Nor
can you have copies of nests of different machines.
2. A bird can only fly to a nest when both the bird and nest are "on-line"
at the same time. (You can give a bird a message before the nest goes
on-line and it will be delivered if the nest goes on-line before the user
ends that session.)

I have plans to implement an NLS (Nest Location Service) to remedy these
problems. The plan is that when a nest comes on-line (by which I mean it is
converted from a saved format into a live running object) it registers with
an NLS as to how to reach it. When a bird receives a box to deliver, it uses
the IP address of where her nest was created as a hint and also queries the
NLS for the most up-to-date information and the location of any copies of
her nest. (This hint is probably critical when using birds to implement
networked games. Also the hint is the only way to find the nest when on a
LAN without access to an NLS.)

I'm also planning on having the NLS store copies of messages so that when a
nest comes on-line it receives all the messages that have been sent since it
was last on-line.

For practical reasons I plan to remove entries from the NLS that are too
old - maybe a few weeks after their last use.

The way connections are made initially is when a user takes out a nest with
an egg in it. The egg hatches and the user has a brand new bird/nest pair.
If the user then puts the bird on the clipboard, she can put the encoding of
the bird (which includes an encoding of a proxy for the nest) into an email
message, or floppy, or a web page. Anyone who pastes this encoding into
their ToonTalk will have a bird that will fly to the nest running in the
ToonTalk of the first user.

Perhaps I'll be able to implement the NLS by adapting the VLS code.

ToonTalk is a CD-ROM product. All of you are welcome to try the free beta
version. More details at www.toontalk.com



----- Original Message -----
From: "Mark S. Miller" <markm@caplet.com>
To: <e-lang@mail.eros-os.org>; "Ken Kahn" <ken@toontalk.com>
Sent: Friday, March 23, 2001 10:52 PM
Subject: Distributed Toontalk (was: VLS for everyone)

> At 02:14 PM Friday 3/23/01, Mark S. Miller wrote:
> >It's amazing not only how many capabiliity systems
> >we have represented on this list, but how many distributed cryptographic
> >capability systems -- E, Droplets, MojoNation, E-Speak2.2, Joule/Indra --
> >all of which did or could use such a service.
> I forgot the strangest distributed capability system of them all,
> Ping recently reminded me that Toontalk's bird can now fly between
> bringing about distributed capability messaging.  Ken, congratulations!
> Ken, since your users are mostly kids at home playing "games", I assume
> must assume they'll often be coming in through modem lines via
> ISPs, which will be doing dynamic IP assignment.  How do you plan to do
> Granovetter introduction in the face of this?  Might you also benefit from
> universal VLS effort unbundled from E?  Would you care to represent the
> perspective and requirements from Toontalk?
>         Cheers,
>         --MarkM