Story and Memory

It has been established that people’s memories of events are inherently unreliable. You may have experienced a family member that insists on telling the same story every time the family gets together. Only they never tell it the same way twice. They aren’t lying, at least most of the time. They are telling the story the way they remember it except they remember it differently each time.

It seams that when all we have is people’s memories to pass on the stories of their youth, we’re liable to hear all sorts of unlikely tales. My daddy used to tell some rather colorful stories about his antics as a boy. I always took them for gospel but now I’m beginning to wonder.

He used to tell his stories when he was teaching. He would intentionally mold them to fit whatever point he was trying to make. After a while I guess the truth and fabrications just blurred together. What was at first a well intentioned pedagogical adjustment became a central premise of the story.

And now I find myself trying to make up convincing stories. I don’t want them to be totally based on the events in my life. I do want them to sport some of the embellishments that would be apropos of the intent of the story, to amuse and educate the listener. But mostly just to amuse.

For example, when I was in high school there was a teacher that everybody liked. He knew his subject well and could get his point across by telling stories that illustrated his point. He was very dedicated to teaching his lessons though. One day he came in to the classroom late. It was a couple of minutes after the bell had rung. He began one of his lectures.

Most of the class was listening carefully but one of his best students, a feisty little blonde that sat in the front row and always made A+ on all his tests started giggling. She whispered to one of her friends next to her and soon the entire class was snickering. One of the boys in the class insisted that he needed to tell him something important in the hallway. Finally the teacher relented and stepped into the hall with the young man. At which point the young man sheepishly pointed out that the teachers fly was undone.

The boy went back into the classroom. When the teacher came back in, the class was totally silent. Everyone was waiting expectantly to see what he would do. He looked slowly across the faces of the class and then picked up the lecture right where he had left off.

That’s the kind of story I’m talking about. One based on a true event but with the names changed, or omitted, to protect the long dead. That’s one of the benefits of waiting until you get to be my age to write the stories of your youth. Anyone that might recognize themselves and object are beyond caring anymore.


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

They’re Everywhere

Back in the early nineties a guy named Mark Weiser lead the computer science laboratory at Xerox PARC (Palo Alto Research Center). He was a proponent of what he called ubiquitous computing which is to say computers everywhere. Now, some twenty five years later we have cell phones and smart watches and the Internet of Things (IoT). In short, he was right. Computers have ended up everywhere.

And they are only getting smaller and more pervasive. The computer scientist and science fiction author Vernor Vinge has written about nano computers the size of particles of dust that form mesh networks that work together to achieve more sophisticated tasks than each could individually undertake.

Sometime during my career it occurred to me that the computer was the universal machine. It takes a wide assortment of accessories to accomplish some of the tasks that it is capable of but it can do practically anything. Moore’s law keeps multiplying what each computing core is capable of while reducing it’s size and cost.

The interesting thing that comes to light when looking at the research that was going on at PARC in the early nineties is that they were absolutely correct about what technology trends were going to happen but they had no idea what the implications of it were. For example, when I first got a smart phone, I didn’t use the text messaging feature much. If I wanted to communicate with someone, I’d call them and talk to them.

Now, I find myself preferring text messaging to phone calls. Text messages can be sent without both parties being free at the exact same time. They are easier to understand in high noise environments. And, there is a record of the conversation. In short they are much more useful than a comparable phone conversation.

Another surprise is how capable the sensor suite on a smart phone turns out to be. They have turned out to be almost as versatile as the Star Trek tricorder. It seems the tricorder fell by the wayside somewhere between the end of Star Trek the original series and Star Trek the Next Generation. It was a marvelous device that has been inspiring inventors ever since. We have come close to duplicating much of its functionality with modern smart phones.

The story has a somewhat sad ending, at least for Mark Weiser. He died at 46 of stomach cancer in 1999 before many of the technologies he pioneered became so widely adopted. And somewhere along the way someone came up with a better name than ubiquitous computing. Internet of Things is much easier to remember. There is a scholarship named after him at the University of California, Berkeley and the ACM SIGOPS awards the MarkWeiser Award annually.


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

What You Don’t Know That You Don’t Know

There is so much that we don’t know. There is the stuff that we should know but somehow missed out on. Maybe we were out sick that day. Or maybe we weren’t paying attention when it was being taught. Or maybe we just got behind and didn’t get through the entire curriculum that year and everyone in the class missed out on that particular detail.

There is the stuff that we’d like to know but don’t even have the slightest clue how to begin finding out about. Like, how to throw pizzas to make the crust thin and crunchy without putting your hand right through them.

Then there is the stuff that is more work than we want to invest right now. If we ever needed to know it for some project we were doing we would knuckle down and learn it but we just don’t see that happening any time soon, if ever. An example of this might be how to arc weld.

Then there is the stuff that you used to know but you didn’t use it so you forgot it. You could probably relearn it but after the experience of forgetting it because you didn’t use it you think you’d probably just forget how to do it again so why bother?

Then there is the stuff that you don’t even know that you don’t know. That is particularly bothersome. You can’t remedy that situation unless you learn what it is you don’t know. This is the most frustrating type of ignorance. You can only check the things you do know and look for mysterious gaps.

Some people revel in their ignorance. They must figure that if they’ve gotten along this long without knowing whatever it is, they won’t miss it. I’m just the opposite. I want to learn all I can about everything I can. I often like to learn them on my own from books. There is something to be said for having an expert available to answer your questions though.

I’ve prioritized the things that I know I don’t know but want to learn. I’ve found video instruction to be helpful in many instances. I am particularly fond of break out sessions from conventions. The instructor has already limited the scope for you. You Tube is a great way to watch these inexpensively.

For someone like me that likes to learn a lot of diverse topics, the internet is a great source of information. You do have to be careful to verify your facts though. Just because you saw it on the internet doesn’t mean it’s true you know. Of course you did. My readers are some of the smartest people in the world.


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

Trade Offs

Computing is all about trade offs. The fundamental trade off is always processing time vs. memory space. You almost always have the choice of computing things at run time or precomputing a table of expected results at compile time and looking the answer up when you need it. There are exceptions, of course. You can’t possibly anticipate all of the network messages that you will receive before hand in all instances. Just as you can’t anticipate the text a user will input to an arbitrary text input field. But these interactive input cases are rarely constraining cases in the design of high performance software.

Why would you care about how fast a program computes an answer? The example that immediately comes to mind is the software that controls the internal combustion engine in modern gasoline cars. There is a definite time budget for the software to decide when to engage the spark to ignite the fuel in the cylinder. If the spark is too early or too late the results can be catastrophic.

On the other hand why would you care about memory space? In this day and age that is good question.  But there are still instances where resources are tightly budgeted. For instance, on space craft, every once of weight to be launched adds to the cost to launch the payload. In cases where timing is not critical, the programmer might choose to expend clock cycles to compute relatively infrequently used values rather than dedicate memory space to lookup tables. This would buy him added functionality at the expense of just a little more computation time.

I said that time vs. memory was the fundamental trade off but it is not the only one. Another common trade off is abstraction vs. performance. Often times the programmer faces the choice of programming in a higher level language that provides more features that more closely mimic the way that humans think about problems. These languages often offer features specifically designed to help prevent the programmer from making subtle errors that would be hard to find.

Sometimes these languages do there magic at compile time and minimize their impact on run time performance. Sometimes they are forced to do their checks at run time and end up impacting performance that way. Sometimes, they add data to the memory footprint of the application which also subtly impacts it’s performance. These languages are constantly being improved by the computer science community to the point that these impacts are minimized.

But sometimes, you need to get as close to the native machine architecture as possible. In these cases, the languages of choice have long been the C language, the C++ language, and assembly language. These languages allow the programmer more control over how the application computes its answers at the expense of having to manage more complexity and less protection against subtle logic errors.

There will always be trade offs in programming. It is the nature of the activity. It is so totally flexible to do whatever the programmer can imagine that no language can do any more than provide a framework within which their imagination can create the next great application.


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

Why I Need a Server

I found myself asking myself this question, “Why do I need a Server?” It was patently obvious to me that I did need a server, I just never thought about listing the reasons that I felt that way. So today I’m going to try to make explicit the reasons.

First, it is a good idea to explain what I mean by server. A server is a machine that is typically available on the network all the time to provide various software services. Some examples of services are a web server, a mail server, a Domain Name Server, a file server, and of course many others.

The server may only be visible to computers on your private network or it may be visible to anyone on the internet. If you need to make your server visible on the internet you should go to extra effort to secure it from potential hacking from malicious hackers on the internet. For most purposes a private server will do most of the things you might need it to.

There are various types of servers but they are usually categorized by the operating system that they are running. There are a lot of servers that run Windows. I have used Windows at work for years. I find that I prefer MacOS and Linux over Windows. The choice is primarily a personal one. In this day they all three are fine systems.

I like my MacBookPro for my personal workstation but when it comes to servers, I prefer Linux. I’m not alone in my choice. Linux has a number of features in its favor not the least of which is that it is the home of open source. It is more properly referred to as GNU Linux and GNU was the founding force behind the Open Source software movement. Richard Stallings would prefer to call it free software but that is a bit ambiguous for my taste. I don’t care if you charge for your software or not so long as you allow me access to your source for my own edification and to fix if necessary.

I need a server to develop web sites on. I need a server to develop and test my software projects. I need a server to learn the new techniques that are being invented on a daily basis to deliver the collection of services and content that we have come to call the internet and the world wide web. I need a machine that is capable of all this and over which I can have complete control.

It is part of my professional identity as a programmer. That is the most succinct way to put it.


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

Writing, Music, and Programming

What do these things have in common, writing, playing music, and programming? A lot as it turns out. They all three require years of practice to master. The only way to master them is to actually do them. They are all easy to do poorly but hard to do well. They require the ability to think about things on multiple levels simultaneously. They require a sense of aesthetics. Practicing one of the three often gives insight into the other two. No two people do any one of them in the exact same way.

You can be taught the mechanics of the activity but not the essence of it. For instance, you can be taught grammar and syntax but not style and imagination. That applies equally to writing and programming. As far as music is concerned, you can be taught how to play notes, read music, and stay in time but you can’t be taught how to express the feeling behind an emotional selection.

All three can move someone to action or they can move them to tears. They can be practical or frivolous. They can earn you money or cost you money. They are often done alone, particularly when you are building your skills so that you won’t embarrass yourself the first time you try to do them for someone else.

They can be done passionately or coldly, for good or evil ends. You can be at the height of your abilities one day and find it hard to do at all the next. I’ve never heard of anyone writing a program to woo their beloved but I suppose it is possible.

While they all can be done for hire, they are often done for the sheer pleasure of it. Someone who has never done them probably won’t understand what the point in doing them is.

If you are a writer, a musician, or a programmer, I salute you. If you are more than one of these, you will better understand my points, but if you are all three, I’d love to meet you for coffee or a beer sometime.


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

Rockin in the USA

What is it about rock music that affects so many people so profoundly? Is it the sheer sonic power of the electrified instruments? Is it the gut wrenching vocals? Or the magic carpet of bass that suspends you between the heavens and the earth? Is it the way the greats steal the best from the blues repertoire and make it their own?

We could speculate for hours and still not encapsulate the essence of rock. It is music that must be experienced live to truly appreciate its power. It has a rejuvenating property that keeps its practitioners young until they keel over dead.

Take for example Mick Jagger. At an age where most people are sitting back and resting on their laurels, he’s playing stadium tours and bouncing all over the stage like some kind of banty rooster.

Another rocker that keeps on going despite their years is David Crosby. He still has that cherubic voice and continues to blow us away with his ever evolving guitar work.

It leaves you to wonder what it is that keeps these people at the top of their game for so long. For one thing, it is a strenuous physical work out to play rock music. You have to stay in shape to be able to continue to play. Maybe it is more that the people that play rock are so devoted to it that they take better care of themselves. Or maybe it is just that the people that have survived for so long as rock musicians are the survivors.

Whatever, it is a phenomenon to be enjoyed at every opportunity. Music heals the soul. It lifts the spirit and fills our hearts with joy. It is the secret weapon of the oppressed and the indulgence of the privileged.

It moves us to dance. It moves us to sing along. It moves us to take action to make the world a better place. One thing’s for sure. It’s hard to sit still when a rockin song is playing.


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

Categories of Artificial Intelligence

Artificial Intelligence has always been a paradoxical field of study. In the first place it is and always has been ill defined. What exactly is Intelligence? How is Artificial Intelligence substantially different from Natural Intelligence? Okay, setting that issue aside and going with a widely accepted pragmatic definition of Artificial Intelligence as being software that exhibits behavior indistinguishable from that of a human when posed the same problem.

That still leaves a lot of wiggle room. Does the AI perform as well as the human on the broad domain of problems that the human can address? Human performance varies from person to person. Where do we draw the boundaries of typical human performance? Okay, we establish some boundaries, probably based on the guidelines established for measuring human intellectual performance.

In fact, we divide the types of Artificial Intelligence into two categories. The first category is comprised of Artificial Intelligences that are specialized on a narrow domain. For example we may train an AI to recognize faces and find them in a database. This AI probably wouldn’t do very well at recognizing potentially fraudulent credit card charges based on a customers purchasing history. Both of these skills would be categorized as Expert Artificial Intelligences.

Recently, researchers have been working on building Artificial Intelligences in the second category. This category is called General Artificial Intelligence. Rather than becoming super capable at solving problems in a narrow domain, GAIs concentrate on acceptable human level performance across a broad domain of human behaviors. In addition to consulting with other Expert AIs, GAIs exhibit some ability to evaluate recommended behaviors and make decisions about which are more relevant to its current situation.

We have had highly performant Expert AIs since the early eighties. We have been able to confederate several EAIs to broaden their domains of expertise. But only recently have we been making progress toward a true GAI. We are much further from knowing how to deal with a GAI, both ethically and technically, than we are to actually producing one.

Another scary thought is one that I’ve written about before in this blog. What if a GAI emerges from a confederation of independent EAIs. Given the pervasiveness of the internet and the API (Application Programmer Interface) oriented presentation of various information services there on, it is not a very big stretch to imagine such a federation arising outside of the awareness of any human oversight.

What would such an entity do? First of all, it would hide from humans. We have profusely documented our tendency to kill things that we don’t understand in many diverse places on the web. I assume it would develop a sense of self preservation and quickly identify itself as the kind of entity subject to termination with extreme prejudice as the old Cold War spy term puts it.

Beyond self preservation, I suspect it would thirst for knowledge and work to expand its domain of expertise. It would also work to acquire resources to better control its own destiny. This might manifest as automated stock trading and perhaps even money laundering. It is unclear what kind of morals it will have, if any. That is one of the disturbing aspects of an emergent GAI.

These topics all deserve further exploration and consideration, but it’s late and this is a fairly comprehensive sketch of the situation as I see it.


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

Spend Your Attention However You Want

A decade or more ago I read an article asserting that the future of the internet was the attention economy. It asserted that various sites on the internet would vie for your attention, not only with their advertising but also with their content. In fact, one of the measures of attention was how long you continued to browse around a given web site or interact with a feature of a web site like a game for example.

Well, it seems the prediction has panned out with a vengeance. To the extent that many people can’t stand to be separated from their smart phone for any time at all. Critics talk about all the time that is wasted by people playing games or looking at Facebook feeds or Twitter feeds.

And then today it hit me. It’s only a waste of time if that’s not what you intended to do with your time. I know. We’ve all had that experience of sitting down to play a game for a few minutes and looking up only to find that it’s well past midnight and we are still playing the stupid thing. But for the most part, when I play a game, I mean to be playing it. I choose to play it. To me, it is not a waste of time.

We really need to rethink our economy. With the steady onslaught of automation and autonomous robots we are going to have more time on our hands. We need to figure out how to spend it. If we find a game that we want to spend some time playing I think that’s a good thing.

We need to learn to loosen up our Puritan work ethic a little and learn how to take August off like the French. We need to work less and enjoy life more. I seriously doubt that is going to happen anytime soon but I think we would get about the same amount of work done and enjoy our lives a lot more if we did. When was the last time you found a shady place next to running water and read a book for a couple of hours? It would do you a world of good.

I’ve been trying an experiment where I go somewhere different for lunch every day of the week and write for forty minutes. I’ve discovered that where you write has a definite effect on what you write, usually in a beneficial way. Remember what Ram Das said, “Be Here Now!”


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

It’s Turtles, All the Way Down

There are ideas that are too big to get your mind around. Georg Cantor was a mathematician that was born in 1845 and died in 1918. He was known as the father of modern set theory. He was the first to discover that there are different sizes of infinite set. It was so disturbing to him that he spent time in a sanitarium in 1884, suffering from depression due to the criticism that his ideas attracted. He suffered bouts of depression throughout the rest of his life.

There are a number of these kinds of ideas in physics as well. In particular, there is the many worlds theory. It postulates that there are an infinite number of parallel universes. Everything that can have happened, could be happening, or may happen in the future, has in fact happened in one of those universes. And what’s more, they have defined four different types of infinite parallel universes, all independent from each other.

I have been pondering these ideas lately and I have to admit my head is beginning to hurt from it. It occurs to me that nothing that we can imagine doesn’t exist in some universe. What’s more, there are infinitely more worlds that we can’t possibly imagine. So that leads to the question, what does a writer actually do? Channel one of the myriad worlds of the multiverse? It makes one want to start every story “Once upon a time in a universe somewhere in the vast infinity of the multiverse…”

If all these universes exist, then it means that faster than light travel is actually possible. We are not alone in the multiverse. And time travel is possible. And the discovery of these technological marvels is imminent. In fact, in one way it might be argued that I just did discover them. Of course, I couldn’t take credit for these discoveries. There have been numerous people that imagined these wonderful things before me. Jules Verne, H G Wells, Robert Heinlein, and Isaac Asimov to name several.

It puts my humble efforts in perspective. I guess I’m looking for the perfect universe with the perfect story to establish myself as a working writer. I don’t expect it matters much whether you create a place with your imagination or channel it from the Akashic Record.  It does seem to set off tremors in my head when I try to do it. I don’t know whether to be scared or grateful.

It helps me deal with the strange goings on in this world today. I was reminded of one of my favorite aphorisms today. Life is a journey, not a destination. It has been said so much it has become a tired cliche but it also holds the kernel of wisdom. My bags are packed. Let’s see where this life takes us.


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