Screenshot of recursive remote desktop sessions.

Vinagre remote desktop viewer on AcerGo connected to Grey2, which somehow made an UltraVNC connection back to AcerGo

Did you ever hold a mirror up in front of another mirror and look into the “tunnel” formed by the reflected images?  I was trying  to explain my understanding of recursion to my sister, and that is the model that came to mind.  The incident I was trying to explain is depicted in the image to the left.

How does this subject encroach on a phone call talking about today’s snowstorm and her husband’s recovery from heart surgery?   The short story is that while I was talking to her, I had opened a remote desktop session on my laptop, AcerGo,  to my desktop computer, Grey2, and somehow Grey2 initiated another remote desktop back back to AcerGo, resulting in a theoretical[1][2] infinite number of connections back and forth.

The longer version is simple but could be lengthy.  I have a desktop computer for work involving heavy lifting, and it is in the workshop.  For the times when I’m up and about, especially in the kitchen cooking and eating, I have a laptop available.   Frequently I want to access something that that is “on the other computer”.  But I don’t want the other computer on all the time, that would be wasteful.  So, I got a NAS, or Network Attached Storage, which can be on all the time, as it mostly sleeps and wakes up when another computer connects to it.  So, anything that I want to access from “the other computer” goes on the NAS.  A problem with this is that some programs like Open Office, lock the opened file and trying to open it from another computer will result in a notification that the file is in use and do you want to open read only, or open a copy.  If you want to edit a file already under edit, you typically need to start the other PC, and close the file before editing it on the second machine.

So, sometimes you can’t get around turning on machine A to do something on machine B.  In this case, while talking to my sister, I wanted to open up my “Learning.odt” file on machine B to take some notes about a Java problem, but it was open on machine A.  So, I had walked over to machine A, turned it on, returned to machine B, and attempted to open up a remote desktop to the UltraVnc server that runs on machine A.  In the process, I somehow caused machine A to open another remote desktop session back to machine B, which, in turn, opened yet another session to machine A, resulting in the multiple windows in the above screenshot.  It doesn’t quite look like holding a mirror to a mirror, but the idea is the same.

And, after getting all caught up marveling about recursion, playing with remote desktops,  installing a footnote plugin to WordPress, and writing this, I almost forgot what it was I wanted to write about in Learning.odt.  But, I remember,  it was about running java programs.  If your Java program is RegularExpressionsDemo.java  in package S07, for instance, and you compile it from within the Eclipse platform, Eclipse (or Java) will create a directory bin/S07/, and place RegularExpressionsDemo.class into it.  To run it from the command line, I thought I needed to cd to bin/S07, and execute java RegularExpressionsDemo, but that didn’t work.  Neither did java S07.RegularExpressionsDemo.  But, if you cd back to bin and type java S07/RegularExpressionsDemo, it runs. So, I guess the CLASSPATH has to align with the directory path.

Moral of the story:  Make lots of money, and hire a bunch of people that have the time to tell you how to execute your java programs and maintain your WordPress footnotes plugin, or you will stumble and fall into an infinite recursive tunnel of rat-holes.

  1. [1]In theory, there is no difference between theory and practice.
    In practice, there is. …. Yogi Berra
  2. [2]I had to install a WordPress plugin to add a footnote.  I wanted this footnote to be  a sub-footnote to the earlier footnote, but the plugin does not support recursion.  Tee hee.