[Edu-sig] PataPata 0.1.19 release & Stigmergy

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Fri Jun 30 01:58:15 CEST 2006


kirby urner wrote:
> Or committed company employees, or crew members, or television screen writers...

Good point.

By the way, SourceForge is finally allowing logins again, so there is now 
a proper release here:
   http://sourceforge.net/project/showfiles.php?group_id=165910

> I wonder if you've contacted Kevin Altis, the PythonCard developer I
> know best.  Robin Dunn, author of wxPython is also local (we've met
> many times).  I saw the new wx book at Powell's Technical, and almost
> bought it (I'm waiting for a bigger book budget to materialize, so I
> might expand my library).

To be clear, it is limited PythonCard compatibility, but it is using TK to 
achieve that, not WX. Eventually, I hope to improve the wx GUI, but the TK 
one is more advanced right now and the PythonCard compatibility is built 
on that. So, you can take your PythonCard resources (simple ones) and 
build TK GUIs with them (at least, as far as laying out widgets, 
connecting code still needs to be done by hand, and automating that is not 
a priority for me, if it would be doable at all given various issues).
It's a tribute to PythonCard's modular design of using a resource file 
that I was able to do this with PataPata.

The basic difference between PythonCard and PataPata is that PythonCard 
seems focused on helping you develop GUI-oriented Python applications 
faster and in a more maintainable way, whereas PataPata attempts to give 
you a live world of Python objects where some of those objects are Morphs 
and non-visual Prototypes.

Still, I'd expect the PythonCard project might not like a "competitor"? 
:-) I'm all for friendly competition of course -- but the reality is there 
are only so many volunteer developers to go around at any specific time, 
so if PataPata picked up some I would expect PythonCard might lose some. 
Certainly I could have tried to improve PythonCard rather than make 
something different. On the other hand, sometimes when something becomes 
popular, say building GUIs in Python, then everyone benefits (say if VB 
and Ruby and PHP developers switch to Python and either PythonCard or 
PataPata). In the PythonCard case, since it is under a more permissive 
license (BSD-ish) than PataPata (GPL) they do address different audiences.

>>So, see, some teamwork going on, though of an "artifact mediated" kind. I
>>think of that as a form of "Stigmergy".
>>   http://en.wikipedia.org/wiki/Stigmergic
> 
> 
> Wow, I'd never have guessed.  Same root as stigmata, no?  Maybe not.

Never thought of that.

On etymology:

From:
   http://www.answers.com/topic/stigmata
"stigmata ... [plural of stigma, from Gr.,=brand]"

From:
http://stigmergiccollaboration.blogspot.com/2006_05_01_stigmergiccollaboration_archive.html
"Below are some variations on the terms origins (see the [poster for 
references):
     * ‘stigma’ (goad) and ‘ergon’ (work)…” to “…stigmergy (stigma: Wound 
from a pointed object; ergon: Work, product of labour = stimulating 
product of labour).
     * from the Greek words stigma ‘sign’ and ergon ‘action,’ and captures 
the notion that an agent’s actions leave signs in the environment, signs 
that it and other agents sense and that determine their subsequent actions.
     * [F]rom the Greek stigma: sting, and ergon: work."

So actually related in some sense I guess.

>> From there: "Stigmergy is a method of communication in emergent systems
>> in which the individual parts of the system communicate with one another
>> by modifying their local environment."

> So like when I mow my lawn in a certain pattern, signalling a
> satellite, or when ETs use a crop circle to phone home, right?
> Science fiction examples of "stigging out" (slang for "exercising
> stigmergic abilities").

Not quite the same, though interesting examples to work with. The point of 
the individual or group stigmergic activity is not generally explicitly to 
signal, which is what you give examples of -- people intending to send a 
communication, but just doing it by making a large physical artifact. 
Rather, the idea is that each actor does something that feels good to them 
to improve their local environment, and other actors then build on their 
work in some way, or connect their own independent work to the others work 
on recognizing it.  So the cooperation is mediated through the artifact, 
but the artifact itself isn't necessarily intended as a signal (though it 
could be). For a better example, it would be like your neighbor sees you 
mow part of a crop circle in your cornfield, and they then decide to mow 
another part of a circle along the same arc which joins up with yours 
because it feels right, and so on, until soon your community has got a 
really big circle around the whole neighborhood someone really could see 
from space.

In the PataPata example, Gregor wasn't writing xturtle for PataPata, and 
PataPata wasn't written to host xturtle, but it turns out the two things 
can be used together. That is more like stigmergy in termite mound 
building, where termites mill around building little stacks of grains of 
sand, until finally two stacks accidentally lean on each other to make an 
arch, and then other termites get excited and start building stacks next 
to it to make other arches, which makes a tunnel, and so on to make a nest 
(pheromones applied to the constructions are also involved here as 
additional signals). The idea of stigmergy is that there is no central 
blue print (though there may be shared useful behavior) and that there is 
no central signaling architect or supervisor so the overall organic 
structure emerges from the individual local actions (or sometimes local 
signals) of those involved.

Maybe it would be kind of like people building geodesic domes by someone 
fiddling with some construction materials and then making a triangle, and 
then other people getting excited and making triangles and linking them up 
to the first triangle, and then a whole dome somehow going up. Now, this 
may not work with dome in reality, I do not know, but the general idea is 
this building mediated by the artifact as the signal, not by plans or 
other chatter as signals. Perhaps think of it this way -- a bunch of 
people who are deaf, blind, and mute building a geodesic dome by just 
helping each other add parts?

So, for another example, I and Kevin have never talked that I can recall, 
but I am building on his good work in PythonCard by looking at what fields 
and events it defines and using PythonCard samples as motivating use cases 
for PataPata functionality. Then in turn someone may build on ideas from 
PataPata (like PataPata is also built on ideas from Squeak and Self). So, 
collaboration by experiencing artifacts more than by talking.

Now having said that, talking is still very useful lots of times. Ian took 
the time to get me to outline a way to use metaclasses to define 
prototypes, and Francois took the time to make some nice webcasts where he 
explains how to use PataPata. But again, these activities, while involving 
signaling, weren't exactly planned. Nobody told Francois what to do, and 
no one scheduled Ian and myself getting together for a meeting about 
prototypes. So, some emergent behavior is there as well, mediated by this 
mailing list around some common interests related to Python and education.

--Paul Fernhout



More information about the Edu-sig mailing list