Friday, July 29, 2016

Infinite Loop

Infinite Loop

There is an interesting phenomenon in the IT world known as an “infinite loop.” It is the state of a program that has no way of ending. I remember first learning of this from friends while visiting the Radio Shack stores way back in the day. Radio Shack released their first personal computer called the TRS 80. There was always one on display at the stores. Security was non-existent, so we would get on the computer and type in a simple BASIC program that would display our name on the screen “infinitely” until someone came along and stopped it.

Later in college, we learned that you could send a simple command to a printer that would cause it to do a page feed. Again, creating a simple program that would send this command to a printer “infinitely” would cause it to spew paper at a rapid pace until the operator could “kill” the program. If a printer was left unattended such a prank could empty a box of printer paper in seconds. We thought it was amazing that we had such power!

I recently re-entered the IT field. Much has changed. The languages are much more stable and sophisticated. I didn’t even consider the fact that they were still capable of getting into an “infinite loop” scenario … until yesterday. I ran a program that should have finished in seconds, but instead ran for several minutes before I stopped it. After further investigation I realized I had omitted a very important step in the logic.

Without getting too technical I’ll give a brief explanation. In SQL, which is what I’m using now, in order to “iterate” or loop through data, you create a “cursor” containing the information you wish to process. You then “fetch” a record from the cursor, test to see if you have reached the end of the cursor, and if not, process the data. At the end of the process you fetch another record from the cursor and repeat. Because of the test for “end of data” at the beginning of the process, this will continue until all data has been processed.

Yesterday I inadvertently left out the “fetch” at the end of the procedure. This caused it to look at the same data over and over with no end in sight. Because I never fetched a new record the test for end-of-data was never satisfied and it just looped. Had I not intervened it would continued running until it timed out.

As I began to consider this a few thoughts came to mind. There are many that live life this way. Like the movie Groundhog Day they live the same day over and over, not even realizing the missing “fetch” that needs to occur to give them new information, new inspiration, new definition, and renewed purpose. They grind out the same data over and over again, each time hoping for a different outcome. Unfortunately, some never realize it until they “time-out”. That is not a life.

My pastor, Bobby Gourley, has been trying to teach me something since his arrival in August 2014. He calls it “margin”. I call it “Sabbath”. They mean the same thing. The writer of Hebrews called it “rest”, as in “Let us therefore strive to enter that rest, so that no one may fall by the same sort of disobedience.” (Hebrews 4:11) Regardless of what you call it, the meaning is the same. You have to take time to “fetch” some new information for your life.

Did you ever notice how Jesus was always pulling away from the crowd to spend time alone with Father? If Jesus needed to “fetch” from time to time I know I do. Moses would spend time alone with God in the Tabernacle in order to be refreshed and renewed as he led Israel through the wilderness. Paul, after his conversion, spent time away from Jerusalem to be taught by the Holy Spirit. We all need “fetch” time in order to stay spiritually, mentally, and physically alive.

“Fetching” can take on many forms. It will most likely be different for each person because our needs vary greatly based on our life experience and position. Regardless of where you are, or what you do, margin/Sabbath/rest is necessary. Without it we simply churn the same old information over and over, never progressing, never producing, just getting tired.


One day your life (process) will end. You will “time out”. Wouldn’t it be better to leave in the middle of a productive life cycle than simply on the treadmill? Find a way to recharge. You will never regret it.

No comments: