Web Presence
Chapter 12
Enhancing the human brain

A system of objects

In 1997, when I began working on the book "Magical A-LifeAvatars", I had no idea what the contents would turn out to be. I simply set out on an adventure of exploration into the world of the Internet - writing about it as I went along.

My starting position was a good grasp of object oriented, computer programming, which I'd developed while writing "Lingo Sorcery". This saw me starting with an empty space in the memory of my computer. The idea was that I could fill this space with software objects to perform various functions.

I began to experiment by creating simple objects that passed messages to each other. I got them to ask each other questions such as "What is the time?" and "What is the date?". The objects could answer these questions by getting information from system software. This was quite easy because I was programming in the formatted space of a multimedia authoring package (Macromedia's DIRECTOR), which has hundreds of ready made functions that software objects could use.

Technical Note

Although this may appear to be very technical, it is surprisingly simple once you begin to get the hang of it. An object is created by going to a menu and and selecting a menu item called "New Object". This will create a space in memory which can be given a name. Let's say the name is "greenFrog". Having created this "greenFrog" memory space (known as the object), it can be sent a message simply by adding the name "greenFrog after the message name. For example, you can ask this "greenFrog" object to tell you the time by including the following message in a code that is activated when a button is clicked on the screen:

tellMeTheTime greenFrog

This "tellMeTheTime" message will go to the place in memory that has been allocated to the "greenFrog" object.

For the object to be able to respond to this message you have to place into the object's memory space a little description of what the object has to do when it receives this "tellMeTheTime" message. This takes the form:

on tellMeTheTime

put the time into field "greenFrogsReply"

end

When the message "tellMeTheTime" reaches the object space in memory, this little bit of code is triggered, causing the object to get the time from the system software and put it into a box on the screen (the box is given the name "greenFrogsReply").

The beauty of this object style programming is that you don't have to worry about how objects do whatever it is you want them to do. You just send them messages that contain key words (built in functions). Hidden software, from behind the scenes, does all the difficult part for you – so you don't have to know how it is done. In this instance, the key words are "the time". The behind the scenes software recognises this phrase and knows that it has to supply the object with the current time. The behind the scenes software also recognises the phrase "into field" and will place the time into the field named after this phrase. It is all very pedantic and mechanical, but, does not require any any arcane techno-wizardry.

With these authoring packages, which may contain thousands of built in functions, you can create objects that will do almost anything. In essence, all the programmer needs to do is remember the names of the key words that call the functions.

Before very long, I was getting the objects to tell each other jokes and play simple card games with each other. I got them to carry out mathematical calculations, sometimes splitting a problem between the objects (so they had to cooperate with each other to produce a result).

As I got more ambitious, I started to investigate the built in functions that allowed software objects to communicate with a Web site. I set up a Web site with a local ISP (Internet Service Provider) and although it took a couple of frustrating hours, sorting out the right parameters and passwords to include with the functions, I soon had objects creating files on my Web site. I then created other objects to download them back again onto my hard disk.

Then I found I could get my objects to download files from anywhere on the Web. All I had to do was to send a message to an object giving it the URL (Web address) of the file and it would use the necessary built in functions to place the file in a designated folder on my hard disk. Experimenting further, I had one object download a file from the Web then pass it on to another object to process the contents. I then found I could set up an object to download a list of different Web pages and send these pages to different objects where they could process the contents in different ways.

It then dawned upon me that I was creating a system that was extending out beyond my computer to the whole of the Internet. In effect, the Internet had become an extension to my hard disk and I could create all kinds of objects to process and deal with information from anywhere on the Web.

I began to introduce emails into this system I'd created. Objects were arranged to read the contents of e-mails and act upon any messages they contained. I then made myself part of the system. I'd read emails and if I found something of particular interest, I'd drag my mouse across the text and send the selected piece to an object that would either act on any instructions it contained or file the content away under any category I chose to define.

Taking an overview of what I was doing with my computer, I was using the computer as an artificial extension of my brain to communicate with the Web. This gave me a new perspective on this world of objects I was creating. I was enhancing the capability of my brain to deal with the vast information environment of the Internet.

I didn't have sufficient natural mental ability to rapidly sort through the information on hundreds of Web sites without some kind of aid; I hadn't the memory to record and categorise thousands of facts. I couldn't remember hundreds of names and relevant details of the people I was exchanging emails with. I had a normal human brain – a brain that hadn't evolved to deal with information of this magnitude – but, my software objects were helping me to overcome this handicap.

This perspective is illustrated in figures 12.10 and 12.11. The conventional notion of using a computer to access processed data from the Web is replaced with the idea that information is downloaded from the Web to be processed by the client – with the aid of client side software objects.

Figure 12.10
The conventional idea of using the Web is that the client side is passive, with all processing arranged on the server side

Figure 12.11
Client side software can be thought of as an enhancement to the human brain, assisting the client to process the information available on the Web

Once I'd made the paradigm shift to see these objects I'd created in my computer memory as an extension to the capabilities of a normal human brain, I began to explore further possibilities. I created an object that simulated a cafe, that could keep a list of everyone I knew and selectively choose amongst them to sit at tables where I could have [e-mail] discussions with them.

If I wanted to speak to programmers, I'd have an object search through my list of contacts and bring all the programmers into the cafe. Similarly with business contacts, social friends and a host of other categories: all I needed to do was to ask an object to produce a particular group of contacts according to a number of selection criteria and they'd be placed at a table ready for me to communicate with.

The advantage of using this object based system was that I could design objects to look out for profiles of particular types of people in much the same way as the matchmaking program described previously looked for partners. It would be different from conventional database searches because the profile searches could choose people on the basis of overall nearness to a fit (rather than be limited to an exact match that would greatly limit the number of criterion that can be used in a selection process).

Note:

Conventional database matching techniques involve selecting against particular criteria. Each step of the selection process considers one criterion at a time, eliminating part of the database at each step until it gets down to just a few possibilities . This is a fast way to select but allows only a relatively small number of criteria to be used and doesn't balance out good points with bad. Using the "simulated emotion" technique of selecting or matching allows any number of criteria to be taken into consideration at the same time, selecting for the best compromise between all the factors taken into consideration.

Despite the apparent complexity of this system of objects, the programming used a fairly small amount of memory. This meant that I could send this brain enhancement software across the Web for others to use. I could also use it as the basis for a myriad of different business ventures.