In Which, I Finally Find a Topic Upon Which to Expound

It’s been a long night tonight. This is the fourth blog post that I’ve started so far. There are some things that are just too private or too controversial to write about in this venue. My aim with this blog is to entertain and perhaps to educate. It is not to preach my personal beliefs, be they philosophical or political.

Given the dominance of political topics in the news, it is hard to think about anything else. I have racked my brain for something else to write about. When you take sports (I don’t know anything about sports), religion, and politics off the table, there isn’t much left.

I’m passionate about music and computer science. I’m passionate about space exploration and writing fiction. With the possible exception of music, I’ve written a lot about the other three topics in this blog. I need to broaden my purview.

I’ve been a string man most of my life. After a brief encounter with the Tonette, a recorder like instrument that was used to teach us the rudiments of music in the third grade, I spent the bulk of my time learning to play violin, teaching myself to play guitar, and later in life, learning to play electric and standup bass, mandolin, and Celtic harp.

There was another brief flirtation with the trombone my freshman and sophomore years in high school, but other than that, I’ve played strings.

I played classical music when I was learning the violin. The I returned to the instrument in recent years it was to learn to play Irish and Scottish music and the instrument was rebranded a fiddle. It was also around this time that I started playing the mandolin.

For those that aren’t intimately familiar with the mandolin, it is kind of like a violin with frets. It also sports doubled strings so, instead of four strings, it sports eight. They are tuned in pairs though. The bottom two strings are tuned to G, the next pair are tuned to D, the third pair are tuned to A, and the highest pair are tuned to E.

This makes it easier for me to take what I know about the violin and transfer it to the mandolin. The strings are plucked instead of bowed but I have spent the better part of fifty years plucking the strings of a guitar so it is second nature.

The thing I like most about the mandolin is its portability. Guitars and harps are big instruments. Violins are messy by virtue of the rosin on the bow. Mandolins are a perfect size to sit and pick on the couch while having a conversation. I can imagine that is part of why they are so popular in music that was born on the front porches of mountain homesteads.

I like electric stringed instruments as well, not to mention keyboards. I consider keyboards stringed instruments even when they are electronic because they were inspired by the piano. I taught myself just enough keyboards to be able to play accompaniment on one if there isn’t a guitar or mandolin available.

I have focused on instruments tonight. That doesn’t say a whole lot about the styles of music that I like. Truth be told, there are only a very few kinds of music that I’m not terribly fond of. I will save that topic for another night.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

The Attention Economy

The internet has changed the formula for mounting a crusade. Before the internet if you had a cause that you wanted to advocate you first refined your message. You practiced your pitch until you perfected it. You practiced it by speaking to anyone who would listen. You spoke to them individually. You spoke to small groups. You spoke to groups as big as you could muster.

As you started getting your message down pat, you’d start gathering an organization that would help you to get the message out. They’d help you organize and plan. They’d book you on speaking tours to give your pitch to as many people as possible. It took a significant commitment and investment in time and effort.

Now you make comments off the cuff. You post 140 character sound bites on twitter. You don’t need a large organization. You don’t even particularly need any large commitment in time or energy. You can tweet anywhere while you’re doing anything.

What’s more, you don’t even need to attract followers who agree with you.  The only necessary thing is attention. If you can capture and hold people’s attention you can influence them in ways they will neither be aware of or perhaps even approve of. And it’s all because of the instant, inexpensive communication that the internet provides.

I leave it as an exercise for the reader to figure out how this relates to economic matters. But let me be clear, you should be scared. You should be very scared


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Change is Good

I want to encourage anyone that sees my blog posts on Facebook to click through and read them in their entirety and to comment on them. I write my blog to learn how to write things that other people might want to read. It is hard to learn how to do that without feedback.

I have made a lot of new friends since the first of the year (hi Larry :-)). And, I have renewed some old friendships. I am glad to have met these people. I was beginning to feel like I was in a social vacuum. I have always found NASA to be a very socially vibrant work environment. They strive hard to forge a community. They succeed for the most part.

I attended a Maestro User’s Group meeting this week. Maestro is part of the software suite that is written to control the Artemis hardware in the loop simulation system. It is ground breaking software. I am excited to get to use it. But beyond that, I am excited to be a member of a community that uses a piece of software and cares enough about it to periodically meet and talk about it.

I guess that establishes my bona fides as a true software (and space) geek. I remember when I was a teenager me and my friends were determined to build our own space ship and go to space. We never got very far on our private space program but I did end up working on the SLS program to build the next generation rocket that will take us on deep space missions further than mankind has traveled from the Earth before. I guess in that sense I am realizing my childhood dream.

This won’t be the first time that I’ve worked intimately with the space program but it is one of the most direct contributions that I’ve made. It gives you a sense of grave responsibility and pride to work on testing a launch vehicle that will be man-rated.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

The Purposes of Computer Programming Languages

Computer programming can be viewed on many levels. Superficially it is a means for specifying how a computer should perform a given task. If that were all it was, we could must enter a long sequence of numbers that correspond to the machine instructions to accomplish the task.

Modern computer languages go much further. They provide platforms for communicating, not only the specific tasks to accomplish but our assumptions about them, the structure of the data that they will manipulate, and the algorithms that will accomplish them.

But even beyond that, they provide a common language for people to talk to each other about programming tasks. As such, they evolve with the growth of our understanding of the activity of programming, its attributes, and the algorithms that are the final product of the activity.

To summarize, we write programs to enable the automated solution of computational problems by computers but also to communicate with each other about these computational processes. In the interest of clarity of communication, we have seen the trend of programming languages toward higher and higher levels of abstraction with an ever increasing investment in compiler technologies that translate these abstractions into efficient executables that provide the computer tasks that we set out to specify in the first place. It is ultimately this communication that offers their greatest benefit.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

A Red Letter Day

I finally got the information off of the hard drive that was in my iMac that died several years ago. I thought that it was gone but I have it back now, or most of it anyway. I suspect that there may be a few corrupted files on it but that is okay. I thought I had lost all of the information on it.

I will be making frequent backups of my data from here on out. The feeling of relief is incredible. I am going to be looking through it to see what all I recovered. The most important of the things that I recovered is the files that contain my father’s writing. I have lost so much of his legacy it is good that I didn’t lose them as well.

It makes me think again about my digital legacy. How am I going to make sure that what I write survives me after I’m gone. The short answer is that I can’t be absolutely certain but I can make arrangements. It really boils down to finding someone who survives you who cares enough to enforce your wishes.

I don’t even really know why it matters to me but it does. Perhaps it is the idea that having your ideas survive after you are gone is the only immortality you may ever have. In any case, I’m finishing the day happier than I started it.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Another Spin on Life Long Learning

I tried to write about how much things had changed in my lifetime. After about a paragraph I realized that I had bitten off more than I could chew. Especially in one short blog post. That topic would take at least a book. Maybe several books. So I tried to narrow the scope of the topic a little bit.

I am a computer professional. Perhaps I could begin to describe how much computers had changed. In 1955 when I was born computers were huge. They took up entire buildings and had far less computing capability than the Fitbit that I wear on my wrist. When I went to look up how many computers there were in the world at that time, I discovered that there were a lot more than I had supposed.

After browsing some of the pages on the history of computing for fifteen minutes or so I began to realize that I had once again failed to limit the scope of my topic adequately. I was beginning to sense a theme here. It seems that the world had changed so much in my lifetime it was mind boggling.

So why wasn’t my mind boggled? Perhaps I was like the frog that started out in the pan of cold water and by the time he realized the water was boiling he was cooked. In much the same way, I was there for all the changes as they unfolded. Not that I was aware of all of them at the time. But I was aware of enough of them that I had the impression that I could keep up with them all.

But now, I am much older and wiser. I am beginning to have an inkling of how much I don’t know. If the amount that I don’t know keeps increasing at the same rate it has thus far in my life, I’ll be totally ignorant before I know it. I feel like my brain is shrinking in my head even as I write this.

And yet, I get up every morning and I spend a good part of the day trying to learn some small fragment of all that I don’t know. It’s futile, I know. But somehow, it is satisfying. It is how I’ve lived my life this far and how I intend to spend the rest of my life. I heartily recommend that you do the same.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Language is Miraculous

Words are spells. Incantations that conjure up pictures in the minds of other readers. They can make us forget our troubles and remember our triumphs. They can inspire laughter and tears, sometimes both at the same time. By some estimates the average person has a speaking vocabulary of about 5,000 words that they use frequently, a writing vocabulary of about twice that many. A college educated person probably has a vocabulary of around 80,000 words.

Some people hypothesize that it’s mankind’s use of tools that set us apart from animals. Yet we see many examples of animals using tools. I think it is our use of language that sets us apart. I don’t think it is necessarily beyond the ability of animals. I know my dogs and cat have substantial vocabularies of words they understand. And there are animals, like parrots and crows, that can be taught to speak. In the case of parrots, I believe they often actually understand what it is they are saying.

The important thing is that they don’t create language of their own accord. There is something about the way our brains are wired that causes us to create language even if we aren’t exposed to language as we are developing. William S. Burroughs introduced the concept that language was a virus from outer space. This was reiterated in a song by Laurie Anderson. I’m not sure it is that far from the truth. It certainly changed the potential for acheivement of mankind.

It was after the development of language, mythologized in the story of the tower of Babel, that man became capable of coordinating his efforts to achieve monumental projects like the pyramids, and other prehistoric constructions. Language allowed man to pass on what he had learned to his children giving them a head start in learning new things about the world around them.

Written language extended the influence of a man past the people that heard him speak on to future generations beyond the sound of his voice. The limit of his influence was bounded only by the durability of the medium that he wrote on and the persistence of literacy.

I suppose that is what concerns me most about the modern trend that I see of glorifying ignorance and the bland acceptance of illiteracy. I could easily see us falling back into a new dark age if this trend is not stopped by those of us that value our linguistic heritage.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Whatever Happened To…?

I’ve been thinking a lot lately about various people I’ve known at different times in my life. In my mind they are still the age they were when I knew them. For that matter, I am still a young man in my own mind. When I see the white haired man in the mirror in the morning it is startling. I have learned a lot since I was a young man but I still harbor the illusion of being the same person that I was then.

I recently changed task assignments. In my new assignment I work in an environment where several different contractors work together on the same team for a government customer. When I reported to the assignment I was pleasantly surprised to discover that several of the members of the team were coworkers that I hadn’t seen in over twenty five years. They had aged much as I have. They were still recognizable but they had grey hair and other signs of aging.

It has been disconcerting to learn who they have become. It has been an indication to me that maybe I have changed more than I realize. I hope I have changed for the better but that remains to be seen. You can only make those kinds of judgement by comparing the behavior of the person that you were with the behavior of the person you are now. It is hard to remember the behavior of the person that you were then. In any case, your memory of how you behaved will certainly differ from the memory of other people that you knew then.

Some of the people that I’ve been thinking about go back even further in my life than twenty five years. For instance, I’ve been thinking about the people that I went to grade school with. I have found some of them on the internet. One is a librarian. Another is a judge. I would never have guessed he would be a judge, much less a lawyer. The librarian was easier to predict. She always had her nose in a book.

I want to attempt to catch up with some of those people. One of the problems is that they live so far away from where I live now. Another is the fear that whatever we new about each other then will be so far in the past that we wouldn’t even recognize each other now, either externally or internally.

Then there is my best friend from junior high and high school. We haven’t talked to each other for years. I got the impression the last time I talked to him that he wasn’t particularly interested in talking with me. I suppose I can relate to that. It’s hard enough cultivating and maintaining friendship the first time around. After decades of neglect, it is understandable that you might not want to invest anything in a relationship that may evaporate just as quickly as it did the first time around.

I guess the only way you can find out is to try. There are so many ways to communicate in this modern society. We managed to keep in touch for ten years or so with pen, paper, envelopes, and postage stamps. We also used to exchange letters on cassette tapes. That will give you an idea of how long ago it was. I suppose I am just as wary of reestablishing contact as he was the last time I tried.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Programming Principle to Ponder

In my years as a programmer I have discovered a number of simple facts about computers that aren’t obvious at first. I thought that I’d share a few of them with you.

The first is what I call the fundamental theorem of Computer Science. It is in any system you can trade processing for storage and vice versa. An example may serve to help illustrate what I mean. Say for instance you need a function that returns the sine of the integers between 0 and 89. You can either write an algorithm that computes the sine or you can have an array of 90 floats that are preloaded with the sine of the first 90 integers.

The first will be more expensive in terms of the time that it takes to return a result. The second will be more expensive in terms of the memory that it takes to store the table. The correct choice will depend on whether you need a fast answer or a memory efficient one.

Another fundamental principle of programming I learned from a book entitled The Pragmatic Programmer by Andy Hunt and Dave Thomas. They call it the DRY principle and it stands for Don’t Repeat Yourself. This principle was first espoused by database gurus in the form of first normal form.

The idea is if you store the same value more than one place in your program you run the risk of changing it in one of those places and forgetting to change it in the other. It is a simple thing to do but it helps avoid hard to find bugs.

One more and I’ll call it a night. It was first brought to my attention by David Heinemeier Hanson (or DHH as he is commonly referred to by the community), the original architect and author of Ruby on Rails. He calls it configuration by convention. To explain I need to describe how people handled configuration of their programs before.

There were two popular approaches. One was to specify the configuration of your program with so called command line options. These usually consisted of symbols, either single letters or entire words, that were associated with a value for the option.

This soon got rather cumbersome if there were a lot of options. The first attempt to simplify the specification of options was by creating a file that had a special syntax that made it easy for a program to associate the option specifier with the value to be assigned to the option. The problem was that the configuration file syntax was often complex and error prone. For example, XML was a popular syntax used in configuration files.

And, when people started using configuration files the proliferated such that every new library that you adopted in your program would have it’s own configuration file.

DHH observed that a large percentage of the things that are configured by configuration files can be established by having conventional configurations. For example, a common configuration parameter was the specification of the directory where particular files of interest to the application could be found. Instead, DHH established a default directory layout that the application used and documented it.

He asserted that software should be opinionated. It should expect things to be done a particular way and reap the benefits of simplification that these assumptions enabled.

I think the thread that runs through these principles is that the most important thing a programmer needs to do is think about the problem that they are trying to solve and ways that they can solve it instead of what most of us do which is to try to reuse techniques that were successful on previous projects.

This is only bad if it is done without careful thought about the project at hand. Are you trying to drive a nail with a monkey wrench? Programmers are often too quick to start coding instead of taking the time to think about the problem.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

Kellie’s Professional Origin Story

When I was a teenager, I was interested in electronics. I liked listening to AM radio broadcasts from all over the country. I read Popular Electronics magazine. I built small electronic kits and took apart old inoperable television sets for their parts but mostly to learn how to solder and desolder.

When I was in my first year of college Popular Electronics published a construction article on how to build your own personal computer. I had always been intrigued by computers and avidly read science fiction books and watched science fiction tv shows and movies. I wanted a computer. But the $600 price tag was way beyond my meager student finances.

I found a Plato terminal in the library and obtained an account on it. Plato was a time sharing system that provided computer based instruction in everything from psychology, physics, literature, and even computer programming. In particular, there were lessons on the Tutor language, the computer language in which all of the instructional material on Plato was implemented. I pursued it with great relish and wrote short animated presentations with it.

Time passed. I got married. We were extremely broke students. Inevitably my wife got pregnant and I had to look for a job. It was during a recession and I had no marketable skills. I decided to remedy that situation and spoke with an Army recruiter. I told him I wanted to enlist for the longest school that taught computers. I figured that they wouldn’t spend any more time than necessary on training and consequently the longest school would have the most content. I was right.

For the next year I learned every circuit in the commercial minicomputer that served as the ground control computer of the Pershing missile system. Along the way, I learned a little bit about programming from my course work and a lot about programming from magazines like Byte, Kilobaud, and Compute! to name just a few.

I tell this story to explain that my perspective on computers has always been two pronged. That is, I have an appreciation for both the hardware that comprises the computer and the software that runs on it. Most people in the computer business specialize in either computer hardware or computer software. I decided early in my career that I liked to write software but I also enjoy understanding how the hardware works so that I can make the computer do things that other people might not imagine that it was capable of.

Another of my long term interests has been in Artificial Intelligence. But that is a topic best left for another post. Dinner and the weekend beckon and I have managed to fulfill my daily writing goals early today.


Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.