Saturday, March 26, 2011

Random Musings Regarding Programming

There are two items I wish to express my personal views about.  Mainly, these thoughts and feelings stem from articles I've read or discussions with colleagues.

The first is regarding "stodgy old IBM mainframes".  Don't know why I've seen this more often recently in print and in various online lectures, but there seems to be a lot of misunderstandings about the current state of the IBM mainframe world.  Granted, IBM mainframes are rather graphically-challenged, in many ways, but that's because they are designed to be back-end servers, and not in-your-face desktop systems.  What really gets me are those who ignore the investment and progress that the IBM mainframe has made since the days when these authors and lecturers had any hands-on experience.  The comparisons made generally are of current *nix or Windows capable back-end servers to MVS 3.8J-vintage S/370 mainframes.  The comparisons are as valid as someone comparing an current IBM zSeries mainframe to a Digital PDP/8 or PDP/11.

The reasons why all of these long-lived platforms are so long-lived is simply because they fulfill a business need.  They all have their strengths and weaknesses.  It's become apparent to me, that the computing platform of ones personal choice is very much like ones word-processor of choice.  It might not be the best out there at the time, it might not be the most favored, or not the newest; but it's the first one learned.  The very first word processor I learned was MS Word back in 1986 when everyone else in the world was using WordPerfect.  Personally, I've always like Word better than WordPerfect for one reason, it was my first word processor.  Likewise, my computing platform of choice is z/OS, simply because I learned MVS first.

It's easy to put down other computing platforms when writing articles or presentations where no feedback is permitted.  For me, though, I loose all respect and credibility for those authors or presenters who belittle other platforms with decades old information.  It simply shows me how uninformed they are, and how out of touch with the rest of the computing world that exists outside of their little bubble.  I still remember when back in the early 1990s when Bill Gates made the prediction that the last IBM mainframe would be shut off in 1995.  Not putting down Mr. Gates by any means, just want to express how easy it is for anyone to become out of touch from the greater computing universe.

The second item I wish to bring up is this whole discussion about Basic or Basic-like languages that are easier to learn.  The very first computing language I learned wan't basic at all.  It was the PDP/8-E assembler and macro language.  We didn't learn much, but enough to understand the basics regarding how the computer worked.  The real first computing language I learned was Digital's Edusystem-30 Basic.  At the ripe old age of 14, I was writing binary search routines, bubble sorts, and some simple games.  But the language didn't have to be Basic, it just had to be simple to learn.  There are alternatives out there that are available and free for almost every computing platform.  Recently, I've introduced Rexx to a number of people.  It's as simple to learn as Basic, it's free, and available on pretty much every platform.  Rexx is a great scripting language and teaching tool.  I wish people would take it more seriously!

Thanks for reading my musings and rants.  Please let me know your opinions!

Thursday, March 17, 2011

Still working on Continuum ....

Need to let Continuum just percolate in the back of my mind for a while.  Don't know if any other writer experiences this or not, but the story and my writing is best when not forced.  It's smoldering at the back of my mind or sometimes in my dreams.  When it's ready to be written, then I feel the need and desire to express it.  Otherwise, it sounds forced and contrived instead of envisioned and deep.

Not trying to say anything profound with Continuum.  During my writings so far and dreams I've had since its start, I've created an entire world and history with the Shahdoan.  History going back to when the Shahdoan were still on their home worlds, through the Great Crisis, up to the present day.

Our two peoples, Humans and Shahdoan, are intertwined at important points in each other's history thanks to the Continuum Weaver, Cosima.  Cosima enlisted help from each peoples at pivotal events in history of the other to guide, advise, and help.

If Continuum has anything to say, it's that everything and everyone is connected to each other.  In minor ways, but at times in major ways.  We all are threads woven into a continuum like tapestry.  Each thread adding it's own color, texture and strength to the whole.

Justin is one of a very few humans that Cosima enlisted to help the Shahdoan.  There have been and will be Shahdoan who likewise assist mankind.  In some future time, our two people will discover we are galactic neighbors and more alike than not.  Even though this is Justin's first visit with the Shahdoan, from his point of view, it's in fact the second time Justin was visiting the City.  He heads back to the City in his personal future, and the Shahdoans past to help them through their Great Crisis.  Justin, in fact, creates the prophecy of the Visitor.  Justin, during the time of the Great Crisis, prophecies about his first visit many many years later.

So please be patient.  When I feel the time is ready to write the next chapter or two, I will sit down and type up a storm.  My ex always said when I was typing and concentrating fully on what I was writing, my fingers would blur like Data from Star Trek: TNG.  Well, when one types all day for work, one has a tendency to become rather proficient at that task.  Other abilities suffer, though, like my handwriting.  Typing is so second nature to me, I have a hard time actually writing something.  Not that I have forgotten, I simply don't have the patience for it.  A strike of a key is so much faster than drawing the letter on the page.  My ex always struggled to type, even after typing lessons, but had the most elegant and beautiful handwriting.  Mine makes the scribblings of a medical doctor look like elegant calligraphy.  I'm lucky if I can ready what I wrote a few minutes earlier.

Another Regina REXX example

This example is intended more for the classic IBM Mainframe z/OS user.  Many times, when libraries are backed-up or downloaded, the PDS or PDSE members are downloaded into a folder as separate files.  While this might not be a big deal when dealing with the odd individual member from time to time, but when having to upload the entire folder or directory back into a PDS, dealing with FTP for each member might be a bit tedious.  Not to mention, having to validate the contents of the source for tabs, possible truncation issues, and other cross-platform and cross-character set incompatibilities that might crop up.

While a simple shell script could be written to upload all of the members using FTP individually, I personally like to opt for a single upload in IEBUPDT format.  IEBUPDT is a source update facility that dates back to the OS/360 days.  It's mostly used today to populate empty PDS or PDSEs with members from an installation library or product library.

So this Regina Rexx exec will read all files with a specific suffix within the current working directory and place them into a single IEBUPDT input file ready to be uploaded to z/OS.  This exec also replaces any tabs with spaces and validates the length of each line and spits out a message if the line length is greater than 80.  Of course, this length can be easily changed, but most source on the mainframe that's not-C/C++, is usually limited to 80 bytes.  The exec can be easily extended to check for character or Unicode-EBCDIC translation anomalies that is easily corrected when building the IEBUPDT input deck.

The exec can be easily extended to do a lot more.  Remember, this is just an example!  It also shows how to do file I/O and system calls from within Regina Rexx on Mac OS X 10.6.  Works pretty much as one would expect, but then again, Darwin does have it's differences from other *nix derivatives out there.

One side item to note.  When passing parameters to Rexx execs or rexx subroutines, the parameters are generally blank delimited, with each parameter being placed into each subsequent variable in the argument list.  With the exception of the last variable, which receives what ever is left over in the parameter list, regardless of how many parameters are there.  So, it's considered good form to include another variable at the end of the expected parameter list to accept the errant, unexpected parameters should they be there.  Some people use a period, some the variable Z; I personally like to use Uebrig which is German for "Remaining".  Kind of also reminds me of my time in Berlin.  Walking around on Sunday morning, you'd see rather tired or strung out partiers left from the night before.  Either on their way home or ... anyway.  They were referred to as "die Uebriggebliebene" -- literally "The Ones Left Over" ... as in left over from the night before.  Uebriggebliebene also refers to left over food too.

The exec can be used for more than simply recombining files within a folder back into a single file ready for z/OS.  In principle, one could adapt it as an archiver; or a facility to create a snapshot of the contents of part of a directory.  The LS command provides a lot of information regarding the file in question.  With the parsing power of Rexx, I'm sure there's quite a number of uses the basic structure of this exec could lend itself to.

Back to the exec!  So here it is.  With comments.  Please feel free to make suggestions for improvement or ask questions!  Hope you old mainframers like this mixing of two computing worlds!

(The exec is available for download at files.me.com/bikerdiver/ljxem8 for the next 10 days).



#!/usr/bin/regina
/*  (c) 2011 T. Alan Tranter -- Use anyway you wish, but at your own risk. */
/* */
/*  Set global variables that might someday be better parameterized.       */
maxllen = 80                        /* max line length before warning.     */


/*  Parse input and open up output stream in the current working directory */
/*  File type (ftype) indicates the file extension.  If it's a period '.'  */
/*  then the user wishes to include all files.                             */
parse upper arg outfile ftype uebrig
if ftype = '.' then ftype =''


/* Rexx is a bit different when opening up files.  The first parameter is  */
/* a variable name that contains the information linking to the open file. */
/* Rexx does not use, file handles, per se, rather variable names.         */
rc = stream(outfile,'C','OPEN WRITE REPLACE')


/* Obtain a directory listing of the current working directory and place   */
/* the output into the stem variable dcont., where dcont.0 contains the    */
/* the number of output lines and dcont.1 through dcont.x is each line.    */
address SYSTEM "ls -le" with OUTPUT STEM dcont.
if .rc <> 0 then exit 8


/* Loop through each line.  We start with 2 because the first line is      */
/* always the "total" line.  Might be better to simply check to see if     */
/* the first line and first word in the first line is 'total' and skip it, */
/* but why introduct a compare for every single line.  Check the output    */
/* of your LS command and adjust if necessary!                             */
do e = 2 to dcont.0
 if substr(dcont.e,1,1) = '-' then do           /* - indicates a file.     */
    nextfile = word(dcont.e,words(dcont.e))
    if nextfile = outfile then iterate          /* skip the output file    */
    if ftype <> '' then do
       if ftype <> translate(strip(word(translate(nextfile,' ','.'),2))) then iterate
       end
    call addfile nextfile
    end
 end
 /* Directory listing has been processed.  Now add the IEBUPDT control     */
 /* card indicating it's the end of the input deck.                        */
 rec = './ ENDUP'
 rc = lineout(outfile,rec)
 /* Close output file.                                                     */
 rc = stream(outfile,'C','CLOSE')
 exit 0

/* addfiles subroutine to include the selected file into the IEBUPDAT      */
/* output stream.  Single parameter which is the name of the file.  Must   */
/* reside in the current working directory.                                */
 addfile: parse arg ifile uebrig
 rc = stream(ifile,'C','OPEN READ')
 if rc <> 'READY:' then do
    say 'Error opening input file' ifile ' stream OPEN returned' rc
    say 'file being skipped'
    return
    end
    
 /* Separate the file name from its extension and test if the extension    */
 /* matches the extension, if provided.                                    */
 member = translate(ifile,' ','.')

 /* PDS member names can only be up to 8 characters in length.  To make    */
 /* sure the file name, which will become the directory entry name, is     */
 /* no longer than 8 characters.  Should probably check to see that the    */
 /* contents of the name is also valid for PDSs.  Something for the reader */
 /* to do!                                                                 */
 if length(word(member,1)) > 8 then do
    say word(member,1) "name is too long - file is skipped"
    rc = stream(ifile,'C','CLOSE')
    end
 /* Add the IEBUPDT control card indicating the start of a new PDS or PDSE */
 /* member.  Must be upper case, and must start with a ./.  Check the z/OS */
 /* Utilities manual for more information regarding IEBUPDT.               */
 member = translate(substr(word(member,1),1,8))
 rec = './ ADD NAME='||member
 rc = lineout(outfile,rec)
 maxlen=0
 ftabs = 'N'
 /* The lines() function returns the number of lines left in the input     */
 /* stream - kind of.  It's basically 1 is there are one or more lines and */
 /* 0 if end of file has been reached.  The parameter provided to lines()  */
 /* is the variable name provided stream() open time.                      */
 do while lines(ifile)>0
    rec=linein(ifile)
    /* This check is to make sure the file being included doesn't itself   */
    /* have IEBUPDT control cards imbedded within the file.  This would not*/
    /* be good.                                                            */
    if substr(rec,1,2) = './' then do
       say '** WARNING **  CONTROL CARD FOUND --' rec
    end
    /* Test if there are any tabs, and expand them to 6 blanks if found.   */
    if countstr(d2x(9),rec) > 0 then do
       if ftabs = 'N' then do
          say 'Tabs found in' ifile
          ftabs = 'Y'
       end
       rec=changestr(d2x(9),rec,'      ')
end
/* Strip any trailing blanks and test the length.  If greater than 80,  */
/* than spit out a message indicating such.  The hwm length for the file*/
/* is saved, but no message is issued until the entire file has been    */
/* processed.                                                           */
    rec=strip(rec,'T')
    if maxlen < length(rec) then maxlen=length(rec)
    rc=lineout(outfile,rec)
 end
 /* Close up the input file and issue warning if max length is greater than */
 /* 80.                                                                     */
 rc = stream(ifile,'C','CLOSE')
 if maxlen > maxllen then ,
  say '** WARNING **' ifile "maximum record length is" maxlen
 return

Tuesday, March 1, 2011

First Example Rexx Exec

In the previous Blog, I described how to install and customize the Regina Rexx interpreter for Mac OS X Snow Leopard.  Any comments or installation instructions are based upon that blog.

Today, I thought I'd share a short exec that I use in place of the LS command.  Coming from a Windows/DOS world, I kind of missed my DIR command.  This seems like a reasonable replacement.  Hope you find it useful!


#!/usr/bin/regina
address SYSTEM "ls -le" with OUTPUT STEM wdir.
if rc = 0 then do l = 2 to wdir.0
   say wdir.l
end
address SYSTEM "pwd" with OUTPUT STEM wdir.
if rc = 0 then do
   say
   say "Current directory is:" wdir.1
   say
end
exit 0

Save the above text as ~/Shells/dir then issued the terminal commands:

cd ~/Shells
chmod u+x dir


Once done, you can simply type in DIR, just like good old DOS and see the directory listing.  Below is the output when using DIR to list my home directory:


MacIron:~ ttranter$ dir
drwxr-xr-x  24 ttranter  staff     816 Feb 27 15:23 Backed Up
drwxr-xr-x   3 ttranter  staff     102 May  3  2010 CPA
-rw-r--r--@  1 ttranter  wheel  518992 Feb 24 17:14 CUPS-PDF Spool
drwx------   4 ttranter  staff     136 Feb 28 18:07 Desktop
drwx------  28 ttranter  staff     952 Feb 18 23:06 Documents
drwx------   5 ttranter  staff     170 Mar  1 13:53 Downloads
drwx------  55 ttranter  staff    1870 Feb 28 11:22 Library
drwx------   7 ttranter  staff     238 Feb  7 23:44 Movies
drwx------   8 ttranter  staff     272 Mar  2  2010 Music
drwx------  14 ttranter  staff     476 Feb  6 11:25 Pictures
drwxr-xr-x  25 ttranter  staff     850 Feb 27 23:27 Projects
drwxr-x-wx   6 ttranter  staff     204 May 17  2010 Public
drwxr-xr-x@ 31 ttranter  staff    1054 Mar  1 21:30 Shells
drwxr-xr-x+  6 ttranter  staff     204 Mar 15  2010 Sites
 0: group:everyone deny delete
-rw-r--r--@  1 ttranter  staff  519112 Feb 25 23:29 eBooks


Current directory is: /Users/ttranter


MacIron:~ ttranter$ 

Hope you find it useful!

For you IBM Mainframe loving Mac OS X users ...

This entry probably will not be of interest to most reader, but for the select few who know REXX from the IBM mainframe world and wish they could use it on their Mac, then these next few blogs are for you!

Basics and Installation

One nice feature that *nix systems have is the ability to indicate which shell interpreter to use from within the script itself.   The the first line of the script start with characters #!, then the rest of the string, up to the first space, indicates the directory and interpreter name.  In TSO/E, it is similar to adding a /* REXX */ in the first line to indicate it's a rexx exec vs a standard CLIST.

There are many good free rexx interpreters for various non-mainframe environments.  The one I've chosen to use and write about is the Regina Rexx interpreter.  There is a pre-buit version for the Mac that is easy to install.

As  much as I like Regina rexx (from now on simply Regina), its Mac OS X documentation is sometimes misleading or simply wrong.  Have a feeling the documentation simply needs to be updated for the newer versions of Mac OS X.  I'm using Snow Leopard (10.6), so anything in these Regina inspired next few blogs will pertain only to that level of Mac OS X.

Before continuing, I'd make myself somewhat familiar with using the Terminal application inside of the Utilities sub-directory within Applications.  Apple has also provided quite a nice document titled The Shell Scripting Primer.

Once you install Regina, you need to customize the installation for your use.  The customization steps are what I personally recommend, but are not necessarily the only or the best for your situation.  If anything, I hope it provides a good starting point.  So, the following steps are best for me, adjust for yourself as necessary or if preferred.

1) Create a "Shell" subdirectory within your home directory.  I also listed it my Finder's sidebar Places list.  This is where I keep any shell scripts I write, regardless of interpreter.

2) There are a couple of variables that need to be defined as part of the initial default shell.  There is a hidden directory and file in your home directory.  The hidden directory is .MacOSX.  There is a plist file aptly named environment.plist within the .MacOSX directory.  If there is no .MacOSX or environments.plist entries, you an simply create them from the normal TextEdit program.  There is a Snow Leopard trick to see hidden files and directories.  Once in the normal Open Dialog, just press the key combination of command-shift-period, and that will toggle on and off the display of hidden files and directories.  This key combination works for pretty much all applications with the exception of the Finder.  You can also use the Properties List Editor as well.  Below is the contents of my environments.plist file:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LIBPATH</key>
<string>/usr/lib</string>
<key>PATH</key>
<string>/users/ttranter/shells:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin</string>
</dict>
</plist>

My home directory is /users/ttranter, please alter according to the name of your home directory.  Also make sure you include any other PATH contents that currently exist. See the Shell Primer document for more information.  The LIBPATH variable is used by Regina to locate various Dylds and other components of the interpreter.  This normally should be set to /usr/lib.  The first directory entrie in my PATH statement indicate where my shell scripts reside.  Some people create a rexx subdirectory within /usr (example /usr/rexx) and include that entry within the PATH statement as well for any rexx execs that can be globally used by any user on the Mac.  

3) Once ~/.MacOSX/environments.plist has either been altered or created, log-out then log back on.  Reboot is not necessary.  Frankly, Don't even know if re-logging is really necessary.  For my Mac, I found it was.  Better safe the sorry.

Okay, installed and customized!  Below is a small rexx execs.  Use TextEdit (or equivalent like TextWrangler) and place it inside of the Shells directory as reginatest.

#!/usr/bin/regina
/*  The Regina Rexx Test Exec */
parse version whoami
say "Executing Interpreter --" whoami
exit 0

Make sure you issue the chmod u+x reginatest too!  The output should look similar to:

MacIron:~ ttranter$ reginatest
Executing Interpreter -- REXX-Regina_3.5(MT) 5.00 31 Dec 2009
MacIron:~ ttranter$ 

Think that's enough for this blog.  Good luck!  Next couple of blogs will describe a few interesting rexx execs I've written for the Mac!



Thursday, February 17, 2011

AppleScript and iTunes

Don't know about anyone else, but I've at times have had the need to either copy the contents of a play list or just the selected items displayed, to a folder external to itunes.  Could be a quick back-up for all items, let's say -  in Purchased, but maybe just need to copy the items to an external folder to be modified or edited.

Encountered a site http://dougscripts.com/itunes/ that has some great examples and tips on how to use AppleScript with iTunes.  I altered a script that moved items, to simply copy them.  Have to give the site credit, but thought it was a good enough sight to write a blog entry about! 

Check out Doug's site for more details how to write scripts and how to integrate them into iTunes.

Copy iTunes items ---

-- ************************************************
--
-- not to be used to redistribute copyrighted material!!!!
-- based on a script obtained from dougscripts.com/iTunes/
--
-- ************************************************
--
tell application "iTunes"
set trackList to the selection of window 1 -- any window with a selection
if ((count trackList) is 0) then
display dialog "No tracks are selected!" with icon caution buttons {"Drat"} default button 1
return
end if
set theFolder to choose folder with prompt "Pick folder to copy the selected tracks to"
if theFolder is not "" then
repeat with theTrack in trackList
set theTrackName to ((the location of theTrack)) -- may need to coerce to alias for OS 9
log theTrackName
tell application "Finder"
try
duplicate file theTrackName to theFolder
on error
tell application "iTunes"
display dialog "The Finder reported an error: The file [" & (theTrackName as string) & "] could not be copied to [" & theFolder & "]." with icon caution
end tell
end try
end tell
end repeat
display dialog "Finished!" buttons {"Thanks"} default button 1 with icon 1
end if
end tell

Preface vs Forward vs Introduction?

Sounds confusing?  Well, after doing some research, I've come to the conclusion that what Continuum needs is a Preface from me detailing where and why I've written Continuum.  And an Introduction which I hope sets the proper tone and gives Continuum a proper starting point.

If you're confused when a Preface, Forward or Introduction should be used, then do a bit of online research.  They differences are subtle but important.

So now Continuum has a proper Preface and what used to be the Preface is now an Introduction.  Which I've again, changed:


Life in the universe is varied and vast.  From bits of matter that are slightly more than inorganic reactions to beings known simply as the Continuum Weavers.  A very ancient race with great power that live in, yet are not bound by, our 4-dimensions of space-time.  Little is known about them.  Very rarely do they interact with anyone, including their own.  But on occasion, when the need arises, they do enlist help with their weaving.

Why am I continually changing and refining the introduction?  Well, how often is it true that the first impression is the most important?  The Introduction is generally ones first impression of the book.  For me, it should be short, set the tone and draw the person into the story.  Tall order for sure.  Hopefully, the Introduction above, is pretty much completed.  I'm pretty happy with it finally.


Sunday, February 13, 2011

Chapter 9 - Am I Like You?

Finally got Chapter 9 done.  Hope you enjoy!
--------------------------------------------------------



There was that bell again that reminded him so of living in Munich.  The same bell from the Transitor during the tour of the city.  Deep baritone sounding bell with a warm yet commanding tambour.  Justin didn’t know if he was hearing the bell as part of a dream or if morning had indeed arrived.  As sleep ebbed its way into a new days arousal, Justin realized morning had arrived and the bell was someone at his door.  He hopped out of bed, threw on his clothes, then went to answer the door.  Not knowing who was at the door, he asked in a rather loud voice, “Who’s there?”, but no answer.  He asked again, with slightly difference phrasing but with the same response.  The bell rang again.  Not knowing what to do, Justin placed a hand into the Info-Me-Port next to the portal and placed the question a question in his mind, “Who’s at the door?”  There was no answer, but a window appeared in the doorway.  Apparently it was a one-way window, since the person on the other side was definitely not aware of Justin observing their activity.  Justin tried again, “Who’s there?”
“Morning, Gustin.  It’s Eschiir.  Hope you don’t mind, I’m in the same building as Gawult and thought I’d just come by and wake you.”
Justin, with his hand still in the Info-Me-Port, granted entry to to Eschiir.  The portal cleared and entered Eschiir.  She looked well rested and ready for the new day.  She was wearing similar attire compared to the day before, but a different color.  Much of what the Shahdoan wore was very similar to Roman attire.  Long flowing togas of varying colors and patterns with a wide metallic looking belt to keep everything in place.
“Good morning, Gawult.  Glad to see you’re up.  Have you had morning milk or availed yourself of the hygiene-center?”
Justin, feeling a bit more relaxed knowing who was at the door, started to yawn and stretch.  “Nope.  You woke me.”
Eschiir started to chuckle a little, “No worries.  Thought you might not know how to use the life-organizer to set an alarm.  My place is three floors above yours.  Do you recognize anything or do you need help?”
“Well, I know how to get milk and how to use some of the functions of the hygiene-center.  How about clothing?  From the looks I got from you and others yesterday, I would assume what I’m wearing is not the best choice.”  In the eyes of the Shahdoan, what Justin was wearing was a costume rather than normal everyday clothing.
Eschiir smiled at Justin and walked over to an info-me-port that was next to the hygiene-center portal.  She placed her hand inside.  As the color of the info-me-port turned from it’s typical green to gobe, a portal opened up next to the hygiene-center with several shelves filled with clothing.  “Let me help select something for you to wear today.”  After looking around and shuffling a few things, Eschiir pulled out a deep blue colored tunic with a burgundy colored metallic looking belt and laid it to the side.
“Thanks!  Looks good to me!”
“You’re welcome, and I think you’ll garner fewer strange looks today wearing this.  I will be back in a half an hour to start our day.”  Eschiir walked towards the entrance portal which cleared automatically as she approached, then closed again once she passed through.
This time Justin seemed a bit more at easy using the hygiene-center then put on the clothes that Eschiir had picked out for him.  He activated the Display-Me and made sure his clothes were put on properly and everything looked in order.  This was a device that Justin was still amazed by.  Not that he really liked gazing at himself.  Justin wondered simply how the device worked.  Not just the ability for the device locate and obtain the image, but the ability to display a 3D image with such quality.  Justin realized quickly though one way not to use the Display-Me.  There appeared to be a spot of dirt on the small of his back.  He quickly realized that it appeared he was checking out his own butt if he bent over behind the image.  He quickly straightened himself, hoping that no one saw that momentary awkward and embarrassing pose.  Something else that Justin realized was the lack of any footwear, anywhere.  This was something Justin really liked.  Back on Earth, Justin never wore shoes indoors, and only wore shoes outdoors if the terrain or weather dictated so.
Eschiir rang the doorbell again.  Justin, now knowing how to receive visitors, greeted Eschiir and let her into his place.  Eschiir smiled and commented on Justin’s appearance, “Now that’s much better.  You look like a proper adult Shahdoan.  Ready to head back to the Central Registry for your psychological profiling and memory testing?”
“Yup.”, answered Justin in a chipper mood.  He really felt in some ways like he was 6 years old again and on his way to his very first day of school.
The two left and headed down to the Central Registry.  This time, though, they took the Transitor tubes.  The City had rush-hours every morning and evening, just like many cities on Earth.  Justin was very excited and eager to start school.  Shahdoan were obviously much further ahead of mankind when it came to the sciences and technology.  The more he thought about what lay ahead of him as they made their way to the Central Registry, the feeling of apprehension swept over him.  Again, a distant memory from his other existence back on Earth came to mind.  Strange as it was, the memory was part of a song from a new alternative music group he had recently been introduced to, called Ejector.  The song Like You started out with the lyrics:
Who do I have to be, where do I have to go
What do I have to say - Am I like you?
Can you show me, give me a sign
Help me find a way - Am I like you? 
In many ways, this is exactly what Justin was feeling and thinking.  The apprehension continued to mount within Justin.  As the two approached the entrance to the Central Registry, Justin turned to Eschiir and just before fainting, grabbed her arm and said, “I can’t do this.  I - just - can’t.”
Eschiir became very distraught and yelled for help.  A number of other Shahdoans gathered around.  Justin just laid there, unconscious.  A couple of minutes later, Justin was taken back to the Help-Me-Center and put under observation.  His vital signs, as far as doctors were concerned, were perfectly normal.  As far as any doctor could tell, Justin should have been awake and moving about.  What the doctors didn’t know what the strange dream-state that Justin as forced into by Cosima.
Justin found himself back in the white void.  He remembered the name he had given the little meteorite the last time he found himself in this place of nothing, so Justin looked up, turned about and yelled out, “Cosima!  Are you there?”
Cosima answered in a motherly calming voice, “I am here and I am sorry for abruptly interrupting your time with the Shahdoan.  There are a few things that you need to be made aware of.  You cannot tell anyone that you are a visitor.  Not yet.  There will be a time, when you cannot stop from making your origin known, but that time is yet to come.  Please do not worry about your abilities.  Yes, the Shahdoan are in some ways more advanced than humans, both biologically and technologically.  Though, there are other less tangible ways where humans are much more advanced than the Shahdoans.  You have been endowed with the best of both peoples.  Enjoy what you’ve been given and don’t worry.  Just relax.  Get to know the Shahdoan, their ways, their science and their culture.”
Justin just stood there, but turning about and looking up and around for someone to respond to.  All the time, though, with his mouth hanging open.  He felt like he’d been sent on one of those euphemistically named “working vacations”, which in reality was a working assignment that required a vacation afterwards.  Once Justin composed himself, he yelled back feeling somewhat frustrated, “All well and good.  And, I guess I should thank you.  But there are times when I say something very distinctly human.  Or better yet, Justin-ly-human.  And in what ways are humans more advanced?  They see better, hear better, are smarter and live longer.  So we humans have better sense of taste and smell than they do.  Big deal.  Are humans better because they have an ass that needs wiping from time to time?”
Justin felt a bit better after his rant, but did not feel anymore reassured.  There was a pronounced pause between the time when Justin finished an when Cosima answered, “Just be yourself, apply yourself and enjoy yourself.  I am always close by.”
As soon as Cosima’s little speech was over, Justin started to regain consciousness again finding himself laying in bed and back at the Help-Me-Center with Eschiir, Gawult and a couple other Shahdoan doctors hovering around him.
Eschiir was the first to notice Justin was awake.  “Gustin!  Are you okay?  Do you remember what happened?  How do you feel?”
Justin gathered himself mentally while looking around and letting his eyes adjust to the rather bright lights above him. “Feel fine.  Don’t know what happened.  Think I forgot to have my milk earlier.”
Gawult nodded to one of the other Shahdoans in the room who then went to fetch some milk for Justin.  Gawult then faced Justin, smiled and in very much a relieved voice said, “Some milk is on its way.  Continue to lay back and rest.  The doctors say you’re fine, but let them check out a few things before you head back to the Central Registry with Eschiir.”  The Shahdoan who was sent to fetch some milk returned and gave Justin the glass.
“Thank you.  I’ll do what ever the doctor says.  But feeling fine and even better now with a little milk in me.”
“Good.  I need to head back to Council Chambers.  Time permitting, I might stop by this evening with Dantee and see how your day went.”  Gawult took both hands and  shook Justin’s, then spun about and left in typical Gawult manner with tunic flowing and a hand raised waving bye as he exited the room. 
“Okay.  Bye, Gawult”, answered Justin as he finished sipping on his milk.  He started to feel much better and realized any apprehension that he felt before his quick “conference call” with Cosima had almost faded away.  Not completely, though.
While Gawult and Justin had been talking, Eschiir and the other Shahdoan doctors had left the room.  Justin found himself laying there alone and wondering what the rest of the day would bring when Eschiir reenters the room.
“Well, the doctors say you’re fine and not to forget to drink your milk!  We can head over to the Central Registry when ever you’re ready.”
Justin was just finishing the last little bit of milk, then answered, “Ready when you are.”
Justin was still in his tunic and just laying on top of the bed, so he gave the empty glass to Eschiir and sprang out of bed and started to head out of the room.
“Gustin, wait a second.”, commanded Eschiir.  “The empty glass.  You’ve been leaving empty glasses around.  Don’t you know what to do with them?”
Justin stopped and turned around.  Somewhat embarrassed, he answered, “Uh ... frankly no.  Felt really stupid asking.”
“Don’t worry about asking any question of me.  That’s why I’m here.  Empty glasses go here.”  Eschiir placed her hand into an info me port next to the hygiene-center and just above where her and was opened and small shelf where she placed the empty glass.  As soon as she removed her had from the Info-Me-Port, the shelf opening disappeared but you could still hear the glass be shattered and quickly carried away with a blast of air.  “It’s considered to be very impolite not to return your own empty glasses.”
“Thank you, I won’t forget.”
The two headed out and back to the Central Registry.  As they approached the entranceway to the Central Registry this time, the song and lyrics that had given Justin such an intense feeling of apprehension popped back into his again again:
Who do I have to be, where do I have to go
What do I have to say - Am I like you?
Can you show me, give me a sign
Help me find a way - Am I like you?
But this time, Justin welled up with feelings of curiosity and anticipation.  He started to take the of everything being a challenge and an opportunity.  Justin smiled a little to himself as the rest of the song played away in his head.
Back up to floor 562 in the Central Registry where Gamtoo was there waiting for them when the building shuttle door opened.
Gamtoo stood there smiling at both Eschiir and Justin. “Good morning.  Ready for your second round of testing today?”
The two exited the building shuttle as Justin answered, “Sure.  Think so.  What kind of testings must I endure today?  Think you said they were psychological?”
Gamtoo slowing again and looking for the correct room on the left side of the hallway answered in a rather upbeat and joking manner.  “You’re correct.  We first take out your brain and spine.  After you recover from the shock of pain and the lost of all of your senses, we start our psych tests before stuffing you back into your body.”
Justin stopped and stood there, with a strange look on his face of both horror and disbelief, ‘Gamtoo, I do hope you’re making that up.”
Gamtoo and Eschiir started to both laugh.  Gamtoo stopped in front of the portal he had been searching for and cleared the portal for the three to enter.  Justin noticed the room number above, 236.  Another number, that for some reason, seemed familiar to Justin.
The room was the same pale featureless off white like most of the Central Registry.  Instead of a large featureless machine with a tube in the middle, this room contained one large chair and a display screen in front.  Just like a pale off white version of the Infotainer at his new home.
Gamtoo turned to Justin, “Sit down, but do not place your hands into the Info-Me-Ports yet.  Did you bring your Is-Me card with you?”
Justin fumbled for his Is-Me card in the one pocket in his tunic that spanned his midsection, and then gave it to Gamtoo.  He then made his way over to what looked like a super big, over stuffed, combination bean-bag and lounge chair.  As Justin sat back in the big chair, he found it surprisingly comfortable chair.  All the while, Gamtoo was off preparing another Spritz-Me for Justin’s day of testing.
Gamtoo walked up then stood in front and faced Justin. “Okay, Gustin.  Today, the Central Registry has been specially programmed to see if there are any memories buried somewhere deep in your mind along with determining if there was any non-physical brain damage.  From there, the Central Registry will make a suggested recovery plan to help you with the restoration of your memory or the replacement with that, that was learned and then lost.  The procedure is painless and you should have no memory of anything you experience during the process.  Now look into my eyes.”
With the light of the display screen behind him, Gamtoo noticed Justin’s eyes for the first time.  He had never seen eyes like this before.  So clear, striking yet deep and wise.  Gamtoo grabbed Justin’s chin and gave him a similar Spritz-Me shot through the fleshy underside of his chin like Justin had experienced several times before.  This time, the taste was not at all bad.  Rather, Justin found the taste quite palatable, if Shahdoans even had palates.  As the medication kicked in, Justin started to feel very blank.  Not good, not bad, not tired, he felt simply blank.  It was as if he had been chemically hypnotized or someone had just pressed his reset button, and now he was waiting to be rebooted, yet still completely conscious.
“Now place your hands into the Info-Me-Ports.  Lay back.  Yes, that’s right.  Now face forward.” 
Gamtoo helped Justin to position himself into the big chair for the day of test.  “This will take most of the day.  We will be back when you’re finished with the tests.  Enjoy the show.”
Gamtoo and Eschiir made their way leisurely to the hallway with Justin staring blankly into the display screen hanging before him.  The room darkened and lights started dancing about on the screen, then slowly spread through out the silent room.
“How is Gustin doing?  There was a note for me that he had fainted and was taken to the Help-Me Center.”, asked Gamtoo.
“Gustin seems fine, but he fainted earlier today.  No one knows why.  Some think it might be related to his memory loss.  That, maybe, it’s his memory trying to return, and return too quickly.”
Gamtoo looked at Eschiir with a half smile.  Gamtoo then turned to the wall and after placing his hand into a convenient Info-Me-Port started to study a set of rapidly changing charts and diagrams that appeared in front of him.  “The tests today should help us understand better what is going on inside of Gustin’s head.  The tests might even trigger some repressed or latent memories.  What?”  Gamtoo started to study various other displays he called up via the Info-Me-Port.
Eschiir said with a bit of curiosity and a lot of concern, “Is everything okay?”
“Better than okay, I’d say.  Gustin has a remarkable mind.”
Eschiir smiled and excused herself from Gamtoo, who was much more interested in what was being displayed on the wall than anything else around him at the moment.  Eschiir was also needing a break to rest.  For the Shahdoan, pregnancies were extremely taxing.  Much more so than for humans and for a longer period of time.  The only saving grace for the Shahdoan was the actual birth, which took just a few minutes and with little to no pain.  Which was a very good thing, considering most Shahdoan are near death at the point when they are ready to give birth.  Eschiir was half way through her pregnancy, so she was still able to work a partial day.  In earth-time, the average Shahdoan pregnancy lasted 26 months, the last nine, of which, were spent bed ridden.  The last 2 months, the mother Shahdoan is in almost a comatose state, requiring a lot more milk.  After the birth, the mother sleeps for several days.  The baby Shahdoan is taken by the other two parents and is cared for.  This is when the other two Shahdoan parents in the triad start to lactate, and therefor, can feed the child.  Only when the mother awakes is there a great celebration.  The celebration is not just for the new Shahdoan life, but also for the return of the mother Shahdoan back to the land of the living.
The tests were finally done.  Outside the door of Justin’s examination room was gathered a large crowed of people looking at the various test results displayed on the wall.  Justin was awake, but no completely aware of all that was shown and asked of him during the testing.  The only thing Justin could feel was another rather blazing headache.  Justin stared to blink and look around, while trying to remember where he was and what he was.  Wanting to get up and maybe get something to rid himself of this headache (without any lingering bad taste) became the only guiding thought as he yelled out for some help.  “Gamtoo, Eschiir, anyone!  Are the tests done?  Is anyone there?”
The portal opened and Gamtoo hurried in with a deep look of shame on his face.  “Oh, Gustin, I’m so so sorry.  Let me help you up.”
“Thanks.  No worries.  Was a bit startled when there was no one around to help.”
Gamtoo smiled and looked at Gustin, “The tests are done, and you are remarkable.  Uh, I mean you did remarkably well.  Did any of your memories return?  Do you remember much of the testing?”
Justin felt a bit uneasy about Gamtoo’s “remarkable” remark.  Not in any sense of attraction, rather, just in the sense of not knowing what Gamtoo saw in his tests that made him so remarkable.  Justin thought for a second, and answered, “Nope, still blank on the memory side and nothing about the tests either.  Have a remarkable headache, though.  Can you help me with that?”
“The headache is to be expected.  No, there is nothing that I can give you to relieve pain.  The best thing is for you to go back to your quarters and sleep.  You should be feeling quite sleepy after the tests.  Do you?”
“Oh, ya, I am quite tired.  The bed back home sounds like a great play to be right now.  Don’t know what’s worse, this headache or that awful taste from those spritz-mes.”
“That’s quite normal.  Eschiir is not feeling well enough to help you back home, though.  Do you think you can make it home yourself?”
“Not at the moment.  Can you help me home?”
“Well, let me ask if I can take the time to help you home.”  Gamtoo turned and just before placing his hand into an Info-Me-Port, looked up to see Gawult standing and facing the two.
“Thank you, Gamtoo.  I’ll take Gustin home.  Please keep those results to yourself.  Remember Gustin’s privacy.  Because of your indiscretion earlier today, there is a lot of chatter in the city about Gustin and who he might be.  This is not acceptable.”  Gawult’s expression turned sour while his upper body turned a light brown color.  The Shahdoan expressed their emotions, when they had them, not just through vocal inflections and facial expressions, but also through upper body color.  The more intense the color, the more intense the emotion.  When Shahdoans were frustrated or angry, their upper bodies turned from tan to dark brown.  Tan being more frustrated, and brown being quite angry.  Gawult’s upper body turned a dark tan, but not quite brown.
Gamtoo bowed with his upper body turning gobe in color, “Decider Gawult, I’m truly sorry.  Should I transmit a retraction?  What should I do?”
“Simply say nothing more.  Neither confirm nor deny anything.  Do not lie, do not add, do not subtract anything.  Simply state there is nothing more to be said, and you are under orders of the City Deciders to say nothing more.”
“Yes, sir.”
Both of their upper body colors faded back to their normal metallic white.  Gamtoo scurried off leaving Gawult and Justin alone.
“So Gustin, you probably have a really bad headache right now and can only think of your quarters and bed right now about now.  Correct?”
“Yes.  How long will it take to get home?”, asked Justin, now expression visually the fact that he was beyond simply tired.
“Not long.  I’ve arranged a private transitor shuttle for us.”
“Great.  Home via a limo.  Love this place.”
“What’s a limo?”, asked Gawult?
At this point, Justin was teetering on the edge of being awake.  Gawult helped Justin down to the front of the Central Registry and into the private transitor.  Justin fell asleep during their trip back to their building where Gawult struggled to wake then to keep Justin awake long enough to get him home and into bed.  It was normal to be tired after a set of tests like the ones Justin had just endured, but no one had ever seen anyone this tired before.
After leaving a loudly snoring Justin, laid out on his bed asleep, Gawult returned to his quarters with Justin’s Is-Me-Card that contained the test results from that days testing.  Gawult placed the Is-Me-Card into a special reader next to an Info-Me-Port.  Justin’s results astonished Gawult.  Shahdoans have 2 types of memory.  Non-procedural and procedural memory.  The former being memory of names, events, facts, figures, people and so on.  The latter being memory of how to do something, like how to ride a bike, how to speak or now to play an instrument.  Justin’s non-procedural memory was almost non-existent.  Yet his procedural memory for basic shahdoan interaction, like speech, was completely in tact.  Justin possessed basic math, speech, reading and writing skills, but little else.  Then there were the aptitude tests.  Justin ranked above average in most of the Shahdoan aptitude tests.  With just 2 exceptions.  These two exceptions were not just extraordinary for a shahdoan, they were the highest of any tested shahdoan in recorded city history.
Gawult spent most of the remaining evening coming up with a re-education plan for Justin.  It was obvious that what ever memories Justin had possessed were gone or buried so deep they might as well be gone.
Shortly before heading to bed, Gawult decided it would be a good idea to make a report to the Central Registry for review later while everything was fresh in his mind.  He placed his hand inside of another Info-Me-Port, and started his report:
Council Members - regarding the case of Gustin.  This Shahdoan continues to be an enigma, stirring up conjectures about possibly being The Visitor.  Frankly, I would discourage that line of thinking, insomuch as a broadcasted report indicating that Gustin is a Shahdoan with severe laps in his memory, most likely caused by an injury.  The broadcast should include a request for information regarding anyone knowing anything about Gustin.

For myself, I feel that Gustin could possibly be The Visitor that was promised us from long ago.  Reviewing the prophecy, Gustin does fit much of the description of that one.  But as everyone knows on the Council, those records are neither complete nor verified to being without error.  The work continues on retrieving the damaged information, with very slow progress.  It’s been 20 generations of work, yet we’ve only retrieved 10% of the information.  The priority is still to retrieve information regarding our destination, but if the Council deems otherwise, the priority can be focused on retrieving other portions of the damaged records.

Regarding Gustin.  Gustin has endeared all those who have met and interacted with him.  There is a depth of maturity, spontaneity and creativity that emanates from Gustin, enthralling all of those who’ve talked with him in person.  Check the attached summary of Gustin’s tests to see why.  Gustin has added more new words to our language in the last couple of days than has been experienced by the city in the last 20 generations.  Gustin’s tests yielded no physical brain or bodily damage.  The phycological profile tests yielded a very strange mix of amnesia.  There is very little non-procedural memory in Gustin’s mind.  His amnesia seems permanent, in this regard.  Gustin’s procedural memories that remain, are very peculiar, in the sense they seem to have been carefully chosen.  Not a random loss of procedural memory as one might expect.  The procedural memories Gustin still possesses encompasses basic math, basic science, speech, reading and writing.  Nothing else.  Gustin’s physical tests yield an estimated age of around 50 city-years, yet his maturity-index is near 250 city-years.  The other item to note is Gustin’s estimated creativity-index.  The average Shahdoan has a creativity-index around 100.  Gustin’s is near 400.  No Shahdoan has ever been this creative before.  This might account for all of the language changes Gustin has unwittingly introduced.  Personally, I have to say I enjoy some of the new words and phrases.  Peckish being my favorite.  Peckish, means hungry for milk but not starving for milk.  One word now for what used to take an entire phrase.  Even though we all speak a single standard language, we do know there have been other languages spoken in the past on the home world, yet we have no record of those languages with the exception of a few fragments here and there.  We have no way of knowing what those fragments mean either.  It’s almost as if Gustin knows not only our standard language but there is at least another language or two buried deep within Gustin’s memory.

My recommendations for Gustin.  One or more private tutors.  To place Gustin in a classroom situation would be more of a distraction than anything else.  Gustin doesn’t possess any other extraordinary abilities other than the two listed above.  He should progress at a natural, possibly slightly accelerated rate.  The first couple of city-years will be more of filling in pieces of non-procedural memories we all take for granted.  Example, how to use the Info-Me-Ports.  I would estimate that within 10 city-years, Gustin should be able to return to a contributing city passenger.  My only worry is Gustin’s ability to fit in regarding certain City regulations and procedures.  There is an old saying, encouraging one to think outside of the City.  Gustin seems to be able to only do that.  This might cause conflicts and a tendency to rebel.  Hopefully his high maturity index will help to keep these tendencies at bay.

In closing.  Our next solar system encounter is in 16 city-years.  We have started to gather data already.  The solar system has a single sun.  Even though the records indicate the destination solar system with 2 or even 3 suns, the sun in this system very closely matches the size and metallicity of the primary sun of the destination solar system.  This solar system is the closest match to the destination solar system in several generations.  We are already preparing additional scouting ships to fly ahead of the city.  There will be an increased need for Seekers.  Gustin seems like a very good candidate for that additional training.  Once Gustin’s basic schooling is completed, I’d suggest, if Gustin is also willing, that he be trained to be a Seeker.

Council Members.  I hope that you find this report informative.  Let us convene in conference tomorrow after mid-city-day milk to discuss these matters further.

Best Regards, Decider Gawult.

Gawult started to feel very tired and ready for bed after posting the report.  He decided to relax a bit with a bit of extra evening milk when Dantee returned from visiting Kahnir.  Dantee had been trying to salvage what ever relationship the three had.  The  visit had not gone well.
“Evening, dear.”, greeted Gawult as Dantee entered their quarters.
“Evening.”, answered Dantee in a rather distraught and depressed manner.
“Oh my.  Guess your visit with Kahnir didn’t go well?”, asked Gawult sincerely.
“No, it didn’t.  We both got a bit emotional, and then things just fell apart.  Kahnir is blaming us both for loosing the child.  He blames me for not taking care of myself, and he blames you for not giving up some of your Decider duties to help.”
“That’s ridiculous.  The loss of the child was no ones fault.  The Doctors have confirmed this.  The child was simply not meant to be.  And please, please don’t take the fault upon yourself, dear.  I love you too much to loose you as well.  We’ve been together almost 100 city-years, and we still have another good 100 city-years left together.  I’m sure we’ll meet another that we can synch with again.  Why Kahnir is blaming us for the loss, is beyond me.”
The two sat on their couch together with Gawult holding Dantee.  Gawult, while still holding Dantee, looked at her with his right hand held up, fingers spread slightly and palm facing her.  Dantee took the reciprocal hand, then matching how Gawult was holding his hand, touched his hand with just the finger tips.  The two stared deeply into each other’s eyes, their upper bodies turned a very deep charcoal black for a time.  The shade of black for Shahdoans indicates affection or love.  The darker the black, the deeper the love.  Through their finger tips, Gawult and Dantee were sharing feelings, thoughts, memories and emotions at a much more intimate level than any human has experienced.  This way, the Shahdoan could share their inner most selves, completely and unedited.  They did not do this often, since it took quite a bit of energy and concentration, but when two Shahdoan wanted to be intimate with their thoughts and emotions, there was no better way.  The Shahdoan call it soul-sharing.
After some soul-sharing, the two just sat there holding each other on the couch.  Dantee broke the silence, “It’s getting late.  You and I have a busy day tomorrow and we can continue this in bed.  By the way, how is this Gustin person doing?  There’s much a-buzz about him.”
“Gustin is quite a remarkable Shahdoan.  His quarters are just down the hall from ours.  Maybe in a few city-days, we can have him over for some evening-milk and you can get to know him.”
“I’d like that.  From our earlier soul-sharing, I sensed he’s made an impression upon you in a way few others have.”
“Yes, he has.  Good night Dantee.  I love you very much.  Sleep well.”
Dantee smiled back at Gawult as the two crawled into bed and held each other as they drifted off to sleep.