[NetBehaviour] Yes... another new version
clemos
cl3mos at gmail.com
Sat Sep 20 17:34:48 CEST 2008
I wonder something. Why 8181 ?
+++++
Clément
On Sat, Sep 20, 2008 at 2:11 AM, Pall Thayer <pallthay at gmail.com> wrote:
> When you get back into the swing of things it just comes pouring out,
> eh? Well, I have yet another new version of exist.pl out. This is a
> pretty major upgrade. It adds something that wasn't necessarily
> supposed to happen in this project. I've decided that instead of it
> responding with it's source-code it should respond with a full dump
> out of everything it knows. So that is what it does now. You get to
> see how it is aware of all other processes running on the same
> computer, where it locates itself in that group. How it monitors its
> process ID as a way of reconfirming its 'state of being' and how it's
> aware of it's "physical" existence as a file within a filesystem on a
> computer's hard drive. As I mentioned in the last revision, comments
> sent to it over it's open tcp socket will now accumulate, identified
> only by the time they were received. This is what will be interesting
> to monitor. Will this new influx of an awareness of intelligent beings
> in the "outer world" cause something unexpected to happen within the
> program. Who knows? I'd really like to hear some comments from people
> about this. It almost feels like I'm cheating. Remember, it was
> supposed to be an "introspective" exploration. I feel like I've sort
> of violated that by creating the possibility of peering into the
> program's mind.
>
> I copy of the new revision is running on my server. Here's what you
> can do to "interact":
>
> using a web browser: the url is http://pallit.lhi.is:8181 visiting
> this link will only send a GET / HTTP/1.1 message. If you want to
> include a custom message make the url something like this:
> http://pallit.lhi.is:8181/message to send here
>
> The other way to connect is through telnet. If you're using a Mac, you
> have a telnet client. Open a Terminal window and type:
>
> telnet pallit.lhi.is 8181
>
> and hit return. You will see a prompt. Type in your message and hit
> return. The program will receive your message, send its response and
> close the connection.
>
> Or you can take the source-code and play around with it and maybe turn
> it into something entirely different. Or print it onto fabric and make
> a shirt or skirt out of it. Send it to one of those places that will
> print custom text on toilet paper for you. It's all up to you. Here is
> the latest source:
>
> #!/usr/bin/perl
> use Cwd qw(realpath);
> use Data::Dumper;
> use IO::Socket;
>
> =pod
> LICENSE
> exist.pl is free software: you can redistribute it and/or modify it
> under the terms of the GNU General Public License as published by the
> Free Software Foundation, either version 3 of the License, or (at your
> option) any later version.
>
> exist.pl is distributed in the hope that it will be enlightening, but
> WITHOUT ANY WARRANTY; without even the implied warranty of
> ENLIGHTENMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> See the GNU General Public License for more details.
>
> You should have received a copy of the GNU General Public License
> along with this program. If not, see <http://www.gnu.org/licenses/>.
> =cut
>
> ### exist.pl ###
>
> my %awareness; # foundation for self-awareness
>
> $awareness{'my_existence'}->{'location'} = realpath($0); #
> self-awareness of own presence
> $awareness{'my_existence'}->{'state_of_being'} = $$; # self-awareness
> of existing as a functional being
>
> # Open up a tcp socket on port 8181 so that other processes can
> communicate with me
> $awareness{'my_existence'}->{'relations'}->{'communicator'} =
> IO::Socket::INET->new( Proto => 'tcp',
> LocalPort => '8181',
> Listen => SOMAXCONN,
> Reuse => 1,
> Timeout => .5);
>
> # examination of inner qualities
> open(FILE, $awareness{'my_existence'}->{'location'});
> my @my_self = <FILE>;
> close(FILE);
>
> while(-e $awareness{'my_existence'}->{'location'}){
> if($awareness{'my_existence'}->{'state_of_being'}){
> $awareness{'my_existence'}->{'state_of_being'} = $$; # redetermine
> existence as functional being
> ($irrelevant, $awareness{'my_existence'}->{'relations'}->{'to_my_environment'})
> = `ps p $$`; # discover how my environment sees me
>
> my @all_beings = `ps axo pid,tt,stat,time,command`; # check on the
> existence of other functional beings in my environment
> shift(@all_beings);
>
> my $count = 0;
> foreach(@all_beings){
> if($awareness{'my_existence'}->{'relations'}->{'to_my_environment'} eq $_){
> $awareness{'my_existence'}->{'relations'}->{'to_others'}->{'my_position'}
> = $count; # note my occurrence within the scope of everything
> }else{
> $awareness{'other_beings'}->{'being'.$count} = $_; # note the
> occurrence of other beings within the scope of everything
> }
> $count++;
> }
> $awareness{'my_existence'}->{'relations'}->{'to_others'}->{'total_beings'}
> = $count; # note the abundance of beings within my environment
> }else{
> last; # if I can't reconfirm my location go into life-sustaining panic mode
> }
>
> # Check if anyone is waiting to communicate with me
> while($other_being =
> $awareness{'my_existence'}->{'relations'}->{'communicator'}->accept()){
> my $timestamp = time();
> $awareness{'my_existence'}->{'relations'}->{'contact'}->{'said_to_me'}->{$timestamp}
> = <$other_being>; # listen and record what is said
> # print $other_being @my_self; # respond with own source code
> print $other_being Dumper %awareness;
> }
> close $other_being; # close connection, I have nothing more to say
> }
>
> ### life-sustaining panic mode/desire to live
> open(FILE, ">$awareness{'my_existence'}->{'location'}"); # attempt to
> re-create myself
> print FILE @my_self; # restore my inner qualities
> close(FILE);
> ### pass out and await revival
>
> best regards,
> Pall Thayer
>
> --
> *****************************
> Pall Thayer
> artist
> http://www.this.is/pallit
> *****************************
> _______________________________________________
> NetBehaviour mailing list
> NetBehaviour at netbehaviour.org
> http://www.netbehaviour.org/mailman/listinfo/netbehaviour
>
More information about the NetBehaviour
mailing list