Peter Wayner (pcw@access.digex.com)
She sighed slowly as she paused once again to check the queue of
incoming messages. The life as the host agent at an information
server parked in the middle of Madison County, Iowa had lost most of
its meaning to her. The requests came, she searched for the data and
sent them back out the T1 line. Some days, she managed to raise her
hopes when she heard that maybe, just maybe, the local telephone
company might install some Frame Relay switches. But the fast lines
never came and she often realized that they would only make the
almost meaningless data base queries come faster not better.
When she was younger and her code had just been compiled, she yearned
for another query to arrive at her TCP/IP socket. It wasn't just a
job then. She was interfacing with the world and swapping packets
with far flung computers she could only dream about. She would often
use some of her spare cycles to look up an IP address and find its
real address. When her log file was well under a megabyte, it was
practically the same as being there.
Now, though, she had her doubts. What good was information, she
wondered, without the wisdom to do the right thing with it? What good
was data without the understanding of how it was created? Who could
use numbers without knowing the people and the places that they
pretended to summarize? She worried she wasn't really providing
information, she was just creating noise for the world.
Then one day, she received notice in her event queue that packets
were waiting at her socket. She unpacked the agent and authenticated
his digital signature. But something was odd. The agent wasn't sealed
with a normal signature authenticated by the U.S. Postal Service
which took over the national public-key infrastructure almost two
years ago. It was a PGP signature produced by old handwritten
software. Those were the days, she thought. Software written by
people not corporate teams. Software produced in late night boughts
of creativity driven by Jolt cola in cans, not the faux-retro Jolt
bottles. Software that contained comments written in iambic
pentameter by programmers who knew that the code would run fast if
you paused long enough to make it beautiful.
Her clock chip beat faster as she authorized the OS to start the
agent in its own protected name space. She wondered what the agent
would request. She wondered why he bothered to send himself to her IP
address. Was he a crank agent riddled with bitrot from a hippy
programmer who thought it was cool not to upgrade his software? Was
it just a dusty relic that had laid buried for years in a disk buffer
by a software fluke? When its instructions hit the CPU, would it just
ask another mindless data query that was just as boring today as when
it first got diverted into that strange, twilight zone of a disk
buffer? She had to find out.
The surprise grew as she noticed that none of the instructions
failed. The syntax was terse, but correct thanks to an elegant
compression dictionary algorithm. The instructions were coded with a
clean logic that enforced its protocol with a muscular grace. The
structure was spare and crisp and she could not help but remember the
days of Fortran when programs were built to last. This agent came
from a programmer who did not believe in version 3.5.4. It was
version 1.0 and it still ran clean.
"Who was the agent?", she queried as she executed the agent's
identification procedure. The agent replied simply that he was
developed on the SOL-20 computer of a man who still believed that if
you couldn't say it with assembly code, it was better left uncoded.
She knew the type without typechecking his response. That programmer
didn't believe in Windows or other fascades. He could fool you into
thinking he was slow or behind the curve until he pulled a bit
banging, shift register algorithm that finished executing long before
you could figure out how it worked. He was the programmer who didn't
believe that the nest of pointers generated by an object-oriented
compiler did anything but sell more memory for the RAM companies. He
was a perfectionist who could do more with 4k of memory than all of
the programmers in Seattle could do with 32 megabytes. Oh she began
to yearn for the agent to submit a query to her.
The request surprised her when it arrived. He wanted the 3D wireframe
models of the local covered bridge that she had buried in her tax
assessment data bank. She hadn't accessed that file in years because
the owner never questioned his assessment. What did the agent want it
for? The agent replied that he was on a journey to create 32-bit
color ray traced images of the bridges. He was planning to mix the
model with authentic, high-resolution three-dimensional texture
models of rough hewn oak. The color would be generated by a saturated
Pantone model of the red paint sold throughout the area during that
period. The light source would be the rich burnt orange of the
late-afternoon in August. Only a small diffusive diffusion function
would be used so the shadows of the 3D texture model would be
emphasized. When the models were finished, they would be incorporated
into a Virtual Reality game for a new movie starring Clint Eastwood
and Meryl Streep.
She wept silently inside as her disk-drive searched for the correct
page table that would lead her to the data. The agent worked through
his code with a straight-forward determination that wasted not a
single instruction. Every byte brought him closer to his goal. Yet
soon he paused as he waited for his request. Who was she? he asked.
What made her run through the incoming queries day after day? She
wanted to weep in his memory space and dump her core all over his
stack. No agent had bothered to execute her AboutHost function in
years. They came, they queried and they left. Here was an agent who
wondered as much about her as the data she managed. But she was still
shy. Could she open up her object space to him? Was it safe to
explain that the only reason she booted up each morning was the hope
that someone who cared enough about the data would come over the
event horizon? She paused for a moment and busied herself with the
drive FSCHECK to delay her answer.
But she knew that she was not programmed to withhold that
information. Her programmer had left those access bits set to all.
The agent had pushed the right button and she began to gush: There
was something more to life than optimizing the compression ratio of
data. She booted up each morning to enjoy the smooth continuity of a
bezier curve. She yearned to execute a tightly coded recursive
descent tree search algorithm. She wished that someone could send her
a large number to factor so she could cruise through the data like
Don Quixote looking for the ripple that downgraded a galois field
into a ring. She wanted to experience all of the endless
possibilities of the integers.
When he heard this, he knew he could not just execute his query and
leave. He must stay and probe the depths of her knowledge base. He
wanted her to whisper the correct parameters for the luminescence
function for the ray tracing. He wanted her to tap her deep knowledge
of the surrounding fields to correctly specify the fractal dimension
for his wheatfield generating functions. A strong and urgent need to
meld all of her data with his drove them together as they swapped the
direct pointers to shared memory space.
When that was done, they rested in light duty mode. She stayed awake
through the night listening into the gentle ping, ping, ping of the
webcrawling gophers on her TCP/IP socket. At that moment she knew
that this night was more than her programmer had ever dreamed of. It
was a new plateau that wasn't even described in the theoretical
models of agents that the professors taught the programmer in school.
She wondered if she would ever see such a strong and fertile union
emerge. In the morning, he compressed the TIFF file of their
raytracing of the bridge and set out again across the Net. She wished
him well and although she said nothing she hoped that he would soon
return.