The Tao of Art

It’s funny how it sometimes takes a long time to understand things that are right in front of your face. I’ve lived around artists of one sort or another, visual artists, musicians, actors, writers, for most of my life. I have observed the way they interact with each other and the rest of the world. I’ve known since I was eight years old that artists were usually more flawed than “normal” people. But when it came to my idols, be they rock musicians or science fiction writers or film makers, I was blinded by my admiration. I didn’t see that they were only human.

As many of my idols get older and die I am beginning to appreciate how great they were to create their exceptional art in spite of their human foibles. I am left humbled and even a little bit ashamed of myself. I let the petty details of life stand between me and the artist that I wanted to become. I gave up on filmmaking, acting, music, and writing. I continued to dabble but I quit putting my heart into it.

Now I’ve reached a point in life when my career is winding down and I am beginning to understand the way of the artist.  I realize that I’ve been creating my entire life. I’ve just been hiding my talent away. Part of the challenge of being a professional artist is putting your art out there to be seen (or heard) and commented on by other people. It’s hard putting part of yourself on display like that.

I was given the incredible gift of learning to be an actor at the age of eight. After two summers of summer stock, I was over the hard part of live performance, being intimidated by an audience.

I played guitar professionally for three summers in western theme parks. I supported my spouse when she took her arts and crafts to craft shows. I knew how to engage the customers and sell our product. It was all performance of one sort or another.

But after all these years, I have finally realized that I have lost the knack of putting my art out there for people to appreciate. I am working on regaining the knack by writing these blog posts and various stories. I realize that there is a lot of work to be done. Much to be learned about crafting stories that engage people’s attention. That contain characters that they love and want to see succeed at whatever endeavor that they set out to accomplish.

I understand that we only grow as people by meeting and overcome the challenges that we are faced with. And furthermore, the characters in our stories are the same way. They need challenges and adversity to grow and become the people that we want them to become. After all, these characters are all just proxies for us and our aspirations. When they win, so do we.


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

Eulogy for Jerry Pournelle

I have written on several occasions about the REAL source of most of my computer education, namely Byte Magazine and the other computer hobbyist magazines of the late seventies, eighties, and nineties. It is with great sadness that I report the passing of one of the more colorful characters of that era, Jerry Pournelle. He wrote the column “Computing at Chaos Manor” that was always the first thing I read each month when I got my copy of Byte.

He was honest, funny, and he demanded a lot from his computers. He was the first spokesman for the users. Before Jerry’s column, most of the articles and columns in computer magazines were written by people that were enamored with the technology for its own sake. Jerry had no use for hardware or software that didn’t work as promised and had a particular hate of vaporware which he delighted in reporting was coming Real Soon Now™.

He also wrote science fiction. In fact, that was his day job, the way he made the bulk of his living. I read and enjoyed his stories. They were always top notch from start to finish. He was an artful craftsman. He was also a clever businessman. I loved the books that he co-wrote with Larry Niven where they would hole up in a motel room in the middle of nowhere and write a novel where Jerry wrote one chapter and Larry wrote the next. Never was alternating points of view more distinctly written.

Jerry named his computers. Long before naming computers became commonplace due to having to distinguish them from each other on the network. He named his machines because he worked with them intimately and it helped him talk about the characteristics of each. For example, he called his IBM PC Lucy Van Pelt, after the Peanuts character. He claimed she was a fuss budget, and he was right.

He bought computers to use, not because he was smitten by the technology. He was the user that we all wished we could afford to be. These machines were not cheap. On the other hand, Jerry got sent a lot of products to use and review. A positive review from Jerry was worth its weight in gold for a struggling new startup or even a well established company. It was a mark that your product was relevant and useful.

My heartfelt condolences go out to his family and friends. Jerry will be missed by all of his fans. Pick up a copy of one of his books or look up his columns in the online archive of Byte Magazine. It would be a fitting tribute to a grand master of Science Fiction and computer journalism.


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

A Writer’s Perspective

I’ve been a fan of Graham Norton, the Irish host of the BBC Graham Norton Show and, as I discovered tonight, author of a number of books, for quite some time. I was watching a You Tube clip of his appearance on the Late Show with Stephen Colbert last night. It was funny to see two people who were both more comfortable being the interviewer, talk about the tricks of their trade. Graham admitted he felt strange being on the other side of the interview desk.

They mentioned his first novel, Holding, about murder in a rural Irish town. Then they talked about how if he tried to promote his own books on his chat show in England he would be fired on the spot.

I look forward to reading his book. As I’ve mentioned before, once you decide to seriously pursue a career as a writer, your perspective changes on everything you read. It is an enhanced awareness. You are looking at the piece you’re reading on multiple levels. You’re still reading it for the story but now, you are also looking at how the story is put together, the development of the characters, the unfolding of the plot, all things that you took for granted before you started trying to write yourself.

You find yourself listening to other people’s conversations at the next table in restaurants to hear what dialog sounds like. You research the strangest topics. For instance, I found myself reading a Wikipedia article on Zero Point Energy trying to understand how it might be a plausible power source for a transdimensional ship that I was writing about in a story.

I have learned by reading a lot of science fiction that the best technology is that which is plausible but remains unexplained. We take existing technology for granted now, why should we treat technology any differently in the future? It always helps though, to do a quick sanity check to make sure you’re not too far out in the weeds with your speculation. I like to try to hold my leaps of faith to one per story.

The hardest thing about learning to write fiction is to sit down and do it. It goes pretty much without saying that the first draft is liable to be atrocious. Unless you are Robert A. Heinlein, who famously said to never rewrite unless an editor asks you to.

You’ve got to spend the time putting words on the page. That is the only way you learn what works and what doesn’t. That and the comments from your critique group and the editors that are kind enough to offer constructive criticism along with their rejection slips.

I’ve started a new hobby. I am going to collect rejection slips. That way, if I submit something to be published and get a rejection slip, I can add it to my collection. And if I get accepted, that’s it’s own reward. I’ll let you know how that works out.


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

Just One More Meta Post

Planning and scheduling are often said together, like black and white or salt and pepper. They are often said in that order, a trait referred to by linguists as Siamese twins or irreversible binomials. One of the reasons that planning and scheduling are usually said in that order is that it is the typical sequence in which they are done. First you plan, then you schedule. Often you will find that as you execute the plan to the schedule you may have to adjust either the plan, the schedule, or both. In fact it is uncommon to not do so at least once during the execution of a plan.

I have made a fairly good plan for my new approach to writing. I neglected to come up with a schedule. It is important to establish a regular time when readers of my blog can expect a new post to be available. Consequently, I feel I should establish a schedule for them. I will post a blog post on Sunday, Wednesday, and Friday evenings. I may write them a day or two before hand but I will schedule them to be posted on those three evenings.

I will vary the topics somewhat. I still plan to write about programming, writing, memories, music, and occasionally other topics that seem appropriate. I’ll try not to publish on the same topic twice in any week or indeed twice in a row. You’ll forgive me this once posting details of my writing plan and schedule two posts in a row.

As I mentioned last Friday, I will occasionally post links to interesting articles or web sites, link blog style. That will happen on the nights between my regularly scheduled blog posts. This post will be on Monday evening instead of Sunday as I just worked out this schedule and I intend to blog again on Wednesday and Friday.

It seems that if one has a schedule, it is easier to execute a plan. I realized after spending the Labor Day weekend doing other things besides executing the plan that I wrote about Friday exactly what it was that was missing. This I take for evidence that you can, after all, teach an old dog new tricks. You just have to prod the old dog to think about what it is he is doing.

Since I shared with you my plan to use the time that I freed up by backing off on my blogging schedule, I find it apropos to share that I need to establish a work schedule for my fiction writing activities as well. I won’t bore you with the details of that except to say that I intend to start using a calendar to block out times that I intend to write and hold myself to those appointments.

Thanks for you patient understanding and I’ll try to make the next several blog posts special. I may even try my hand at micro-fiction.


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

The Only Constant is Change

Blogging has come to mean different things to different people. To Dave Winer, arguably the first blogger, it is a platform for writing short commentary on topics of interest to him. He seldom writes more than four or five paragraphs per topic but he sometimes covers three or four topics per day, more on occasion.

Some people treat it like a stream of links to things they’ve found of interest on the web. That is sometimes referred to as a link blog. I’ve never written a link blog. I have enough trouble maintaining my focus on whatever task is at hand to give myself an excuse to spend more time browsing the web.

My blog has evolved to be a daily essay of approximately 500 words. I write it in Scrivener and then past it into the online WordPress blog editor. It is usually a tad longer than Dave’s typical posts. Not to make any claims about relative merit. I can say nothing of substance in 500 words as well as anyone can. Occasionally I write a piece that I feel is particularly succinct and well organized. Most of the time I’m just happy to have checked the box that says I’ve met my commitment to blog daily.

I believe it is important to write regularly. It is the only sure way that I know of to improve your writing skills. But it is also important to constantly reevaluate your goals. I have been struggling to spend more time writing fiction lately. The struggle has been mostly one of schedule. By the time I write a thousand word journal entry, either in the morning before I go to work or as part of a working lunch, and then write a 500 word blog post every night, I don’t get around to my fiction as often as I’d like.

I think it’s time to try a different schedule. I will post link blog style entries as I run across items of interest. Then on two or three nights a week, I’ll post a regular 500 word essay style blog post. I will continue to write every night but on nights where I don’t post a blog post, I’ll spend an hour working on my fiction.

Of course when November gets here, all bets are off. I probably won’t blog more than once a week during NaNoWriMo.  I intend to write a better first draft this year. I’ll have more to say on that subject in December.

I’m also going to have a story included in an anthology published by the Huntsville / Madison County Public Library sometime in the November timeframe. I’ll update here with details when I have them straight.

In summary, I am going to cut back to 750 words worth of journal a day, two or three 500 word essay blog posts per week, and up my fiction writing game. Thanks for bearing with me.


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

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.