Nerds, Unix and Virtual Parenting.
by Rob "CmdrTaco" Malda
slashdot.org
It started off innocently enough, with one of my friends buying one of those Tamaguchi(sp) things at Toys Backwards R Us for twelve bucks.
For those of you who aren't familiar with the technology, here's a recap- it's a small, colorful egg with an LCD screen and some buttons. Inside you create a virtual child, and use the buttons to feed it, play with it, and administer shots in times of medical emergency. The tiny device beeps occasionally, and small icons indicate that your child is bored or hungry or whatever and then you do whatever you feel is appropriate to care for the toy.
The goal is to have a happy little child, that occasionally beeps, and you can play with him. If you are psychotic, you can randomly punish him and he'll eventually get angry or sad, or sick and die.
The Japanese love these things.
So anyway, back to the story at hand. My friend, let's call him 'Nate' (Name placed inside quotes to preserve anonymity) has been carrying his around on his key chain for quite some time. It beeps, and he responds.
My other roomates (there are like 4 of us last count) ridicule 'Nate' for his passion, and on an offhanded comment is thrown out from someone... probably me although I don't want to take any responsibility for this- "why don't you code one of those things"?
Let me explain another fact- our house has 4 people. 7 computers. 5 printers, a terminal, 2 PDA's, over 300 megs of RAM (20 of which is on a sculpture I created in class last semester) and like 5,000 feet of twisted pair networking cable.
In short- we are nerds.
So a bit later the app is coded. Written by one of my one of my roomates using straight Xlib calls (We're the best kind of Nerds:Linux Nerds. The rest of this story will prove it). The tiny window sits on screen and makes demands at the user until its simple virtual desires are appeased, and tranquility returns to its little piece of RAM and CRT space. Obvious improvements on the original are needed- the original merely beeped when it had no true needs to designate that it was being naughty. Our version catted obnoxious sound effects to /dev/audio or consumed of 100% CPU time or began randomly paging 10 megs of the letter 'S' to the swap partition to signify sin.
But a problem arises. The premise of the original toy required a constant commitment. 'Nate' carries his with him everywhere. He probably wears the thing while he's necking with his girlfriend. Since our computers exist on a LAN, and most of us are pretty network savy, things begin to decline.
We decide that our children need a voice, and the vocal chords already exist in the form of SMTP. So, soon after, the wails of the infants can be heard in pine or elm along with requests for transparent rxvts and other assorted drivel that trickles in every time you post to usenet or put something interesting on your web page.
It becomes obvious at this point that we can now be contacted anywhere we can read the e-mail sent by our children... but we have no way to talk back. Soon, a daemon is coded that can take various commands and pass them on to the child. It's a good thing we never setuid root on the thing.
The decension continues.
Being the wonderful nerds are, we quickly discover that we can use cron jobs and perl scripts to feed our pets at regularly spaced intervals. the scripts provide us with a variety of quick and easy ways to provide appropriate nurturing.
Soon we discover that this isn't going to be good enough. See, now we can take care of our pets anywhere that is TCP/IP equipped (the PDAs for example) but we can't always be around to answer the requests of the virtual pets. Hunger can be predicted, but not disease, boredom, or any of the other states our kinder could potentially stumble into.
It becomes apparent that we need to make decisions. And these decisions are obvious. Being latch key kids of the 80's turned techno geeks of the 90's, we do the only thing we can.
Enter procmail. Suddenly, I have e-mails arriving and automatically fed through the mail filter and Based on the contents of the messages my pet is automatically cared for without any intervention on my part at all! I don't even need to be there. The messages arrive, and various perl scripts do everything that a good parent should- from doctors appointments, to applying band-aids to the boo-boo's to attending Teacher's Conferences and saving money for his eventual acceptance into MIT.
So my child is now 58 weeks old. He is perfectly happy, he recieves his allowance in clock cycles, is scolded when he is not nice 20, and his played with when he is bored- all automatically. I haven't actually intervened since his first birthday- I added him to my systems init files last summer.
It really isn't all that different from my own childhood.
This story is fiction.
None of the programs described in this article have
been written.
Don't e-mail me asking for source, they don't exist.
Yet.
Copyright 1998 http://slashdot.org:80/malda/nerds.shtml