English: The loneliness of Culloden Culloden i...
English: The loneliness of Culloden Culloden is one of the few areas that I leave feeling full of sadness. This lonely tree at the sight says it all. (Photo credit: Wikipedia)

Robinson Crusoe was marooned for years on a tropical island. At first he succumbs to despair, but later he starts to make things easier for himself, at first rescuing goods from the shipwreck which is fortunately accessible at least for a while on a reef.

He has no one to talk to, until Friday, but he is kept busy just surviving. This business, wondering where the next meal was coming from, how to provide himself with shelter, all the minutiae of just living would have initially staved off all sense of loneliness.

Robinson crusoe rescues friday-1868
Robinson crusoe rescues friday-1868 (Photo credit: Wikipedia)

Later on though, when his immediate needs were catered for, he must have reflected on the fact that he was totally alone on the island. (I read the book years ago, and I’m speculating – I can’t recall if he ever got into a philosophical mood or not). It would have been a driver to explore the island and finding no other people would have been a blow.

People in general need other people. In the book Treasure Island by Robert Louis Stevenson, Ben Gunn is marooned on an island for years and become slightly unhinged by the loneliness. He spent a lot of the time on the island dreaming of one thing – cheese. However, he does not completely lose his senses and is able to take part in the events that follow.

The Black Spot. Illustration by N. C. Wyeth fo...
The Black Spot. Illustration by N. C. Wyeth for Treasure Island by Robert Louis Stevenson, Charles Scribner’s Sons, 1911 (Photo credit: Wikipedia)

Some people choose to isolate themselves from the rest of the human race, mainly, it seems for religious reasons. It is possible for such hermits to voluntarily return to the human race, something which is not possible for those who are marooned on an island, and this may make the separation more bearable.

The reason that hermits choose to isolate themselves from the human race is so that they can concentrate or religious or spiritual matters without being distracted by the minutiae of human life. Obviously they still need to eat and perform bodily functions, but those can be kept to a minimum and the hermits mind can be free to concentrate on one thing for much of their waking moments.

English: St.Martin in Memmingen. Choir stalls:...
English: St.Martin in Memmingen. Choir stalls: Portrait of a hermit Deutsch: St.Martin in Memmingen. Chorgestühl: Porträt eines Eremiten. (Photo credit: Wikipedia)

While human companionship can help to keep one sane, the constant interruptions to one’s train of thought can be distracting or irritating. Samuel Taylor Coleridge was writing the poem “Kubla Khan” when he was distracted by a person from Porlock and the poem was not completed as originally Coleridge envisaged.

Computer programmers often find that when they are concentrating on their task they will “enter the zone or the flow“. This is an almost trance-like state where the programmer is totally immersed in the task at hand, and the interruptions of normal life are not welcomed. A programmer in the zone may regard time spent on sleep, food and other necessities as unimportant, and this is why programmers sometimes subsist on coffee or energy drinks, and eat pizza and other fast foods that can be ordered in.

The immersive effects of the zone are not only felt in programming, I believe. Programming is in many ways an art, and I can imagine that the same is true of the other arts, such as painting and writing, as the example of Coleridge suggests, though he was using opium at the time he was writing Kubla Khan.

The feeling of being in the zone is, for the most part, intensely solo. While two or more programmers can work simultaneously of the same piece of code, this is much more difficult to achieve. I’ve seen programmers team up and program, but the feeling of being in the zone is much more fragile when more than one person is involved.

English: Programmer
English: Programmer (Photo credit: Wikipedia)

In contrast, debugging a malfunctioning piece of code can be easier for two or more, as the different insights broaden and direct the flow into areas that neither would have thought of by themselves but in general the immersion is not so deep.

Quite often an isolated person, say a shipwrecked person, or an elderly or sick person who is not mobile and therefore spends a lot of time alone, will have an animal as a companion. The little old lady has one or more cats. The shipwrecked or marooned person may have a dog. A companion animal eases the separation from the human race.

Embed from Getty Images

A lonely person may pick an unusual animal as a companion. Some sources suggest that Michael Jackson made a pet of a rat and that his father killed it, but this story is muddled with the story behind his hit song “Ben”.

An isolated person may talk to the animal in default of being able to talk to other human, and may unwisely attribute human traits to the animal. If the person is alone with the animal for too long he or she may come to believe that the animal responds either verbally or by actions.

An albino pet rat eating a piece of bread.
An albino pet rat eating a piece of bread. (Photo credit: Wikipedia)

Sometimes an isolated person may imagine a fictitious companion, either totally invented or based on a real person. He or she may act out what he believes that the imaginary person would act out. In the film “Psycho” Norman Bates assumes and acts out the identity of his dead mother, who he killed 10 years earlier. Bates was isolated by his mental illness, and not by being physically isolated.

There are various causes of isolation – it may be unintentional, as in a shipwreck, or it may be intentional as when a sailor is marooned for mutiny, or a person may be isolated as a result of sickness, either mental or physical, or it may be a side-effect of old age. A person may be isolated by deafness or blindness, or physical inability to move.

Blind Girl
Blind Girl (Photo credit: Wikipedia)

However, some people seek isolation in the form of “peace and quiet”. If a person is highly stressed in their day-to-day life, they may find themselves looking forward to immersing themselves in a book, or taking a bath, or in any of hundreds of ways of isolating themselves from the general hubbub of human society. Possibly with a reasonable supply of alcohol to hand, merely to aid the relaxation of course.

English: Peace and quiet This part of the trac...
English: Peace and quiet This part of the track is very quiet apart from birdsong, the gateway on the left is about four feet wide, small enough for animals to pass through when the farmers and lead miners had horses and carts. (Photo credit: Wikipedia)

In the Zone

(Ugh! I forgot to post this last week. My apologies)

English: Two programmers
English: Two programmers (Photo credit: Wikipedia)

Programming, as I’ve probably said before is a strange occupation. You start with a blank sheet, steal bits and pieces from where ever you can find them and glue them together modify them, add some bits of original (to you) code and try to think of all the possible ways your program can go wrong.

Then you try and break your code (and usually succeed at first). Programming is still very much an art form. Of course things have changed a lot over the years, and we are able to use the work of others to help us in our endeavours, but my first paragraph is still true.

This image was selected as a picture of the we...
This image was selected as a picture of the week on the Farsi Wikipedia for the 13th week, 2011. (Photo credit: Wikipedia)

In the beginning there was “Hello World”. This is probably the simplest program that does something visible. It doesn’t take any information in and its output, the words “Hello” and “World” are not very useful in themselves. Actually, I’d say that there is an even simpler program that takes no input, produces no output, and in the process changes nothing. A “null” program if you like.

A programmer writing a new program may well jump in and start coding by grabbing some other code that he or she has access to, but that stolen code was developed, ultimately, from “Hello World” or the null program.

Picture of "hello world" in C by Use...
Picture of “hello world” in C by User:aarchiba. (Photo credit: Wikipedia)

A good programmer is one who steals code from elsewhere and modifies it to do what he or she wants. There is no stigma of plagiarism attached to this process, and it is in fact strongly encouraged that programmers share code. A spoof news item that I came across stated that all programming courses would be replaced with a course on how to find code on “Stack Overflow“.  I’ve been unable to find the link again, but I believe that the item was on “The Onion“, a well known satirical website.

Of course, such a  process may propagate errors or bugs across many programs, but it is such an effective strategy that it is used more often than not. If code exists to solve a problem then it would be silly to pass it by and write it ones self, maybe introducing bugs to the code. The advantage of “borrowing” code is that while errors and bugs may be in the borrowed code, many eyes will have looked at the code and there is nothing more that programmers like than pointing out bugs in the code of other programmers.

Wheel bugs mating
Wheel bugs mating (Photo credit: Wikipedia)

Stack Overflow allows anyone to post code and comment (up to a point), so code posted may not be top quality, but other programmers are quick to jump if they see bugs or inefficiencies in code. Contributors will also point out code which doesn’t follow standards or conventions in the programming language being used. This is considered useful, as the code, if modified, can be accessed and understood more easily, and may often be safer and free of more bugs than unconventional code.

Embed from Getty Images

When a program is written it starts out as literally a few lines of code or even an empty file. Any programmer knows that a program grows swiftly and in ways that can’t be foreseen until it may be of enormous size. It won’t be all written in one sitting but is usually written in stages. I personally like to write my programs in very small chunks, building on what has gone before. I think that many programmers use this process, though there may be others who write a sizeable chunk of code before testing it.

Ah, testing! Testing is the less enthralling parts of writing programs. Any program must be tested, to ensure that it does all that is required and nothing else. Generally the program being written doesn’t do all that is required and does things that shouldn’t happen, and initially it is likely to crash or produce cryptic error messages under some conditions.

Embed from Getty Images

Testing is supposed to reduce the number of such unwanted happenings, and the programmer may do some rudimentary testing and may handle at least some errors. However the programmer will realise that users who are unfamiliar with how the program is written may well do something that he has not expected.

So clever people have developed ways of automatically testing programs. To do this they have had to write the programs that are used to test programs. And of course those testing programs may have bugs. You can see where that leads to!

Zebra (programming language)
Zebra (programming language) (Photo credit: Wikipedia)

When a programmer knows a programming language really well, he is able to literally think in that language. The word “literally” has been devalued in recent time, but I am using it in the true sense of the word. This is hard for some people to understand as they think of language as something like French or Tagalog, and they can’t understand how one can think in a programming language, which is qualitatively different from a spoken language.

An interesting thing happens when a true programmer is programming something. His thought processes become so involved in the process of programming and in thinking in the programming language that he loses track of the outside world. That’s why programmers are whimsically thought to subsist on fizzy energy drinks and dialled in pizza. It is because those things are easily acquired and the programmer can keep programming.

Embed from Getty Images

A programmer “in the zone” is so embedded in the world of the program that he or she may often be reluctant to leave that world and respond to irritations like bodily needs and colleagues. I doubt that there is a real programmer who has not surfaced from a deep dive into the depths of a programming problem and realised that all his colleagues have left and it is late at night or very early in the morning. That’s the reason programmers stay after all other people have left – they know that they can slay the current bug with just a few more changes and a few more runs of the program.

The zone has similarities to the state of meditation. While meditation is passive though, programming is an active state. In both cases the person basically disconnects from the world, so far as he or she can, and the concentration is directed internally. Now that I think about it, any deep thought, be it meditation, programming, or philosophising, even playing a sport at a very high level, needs such concentration that much of the world is disregarded and the exponent enters the zone.

Embed from Getty Images