Don’t Read This Post

They have done studies recently that concluded that sleep deprivation is as bad as, if not worse than, alcohol when it comes to impairment. Given that I got up at four thirty this morning and it is ten forty five as I write this post I guess I’m guilty of impaired blogging. I have been racking my brain trying to think of something to write about. I kept coming up with nothing. I felt the pressure of the midnight hour approaching. I started thinking about how tired I was.

That was when it hit me. I needed an Uber or a Lift for writers. We can’t very well have people writing blog posts when they are impaired now, can we? That’s my story and I’m sticking to it. So I’ll post this pitiful excuse for a blog post and call it a night. Tomorrow’s Saturday and I’ll get plenty of sleep and write a better post. Remember, friends don’t let friends blog when their sleep deprived. Oh, and don’t read this post.


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

The World is Just One Big Simulation

I have this pet theory. It is feasible, if not likely. It’s that the universe is just a very high fidelity simulation. If that is, in fact, the case, as several credible philosophers have asserted, it would be easy to explain luck. Whoever writes the code for the simulation determines how luck works. It might be totally random, or it might be that the programmer picks out individuals that he or she wants to be lucky and stacks the deck in their favor.

I sometimes feel like I am one of those people that have been chosen by the programmer, or God, or whatever other mechanism it is that is behind luck. I have had so many great opportunities. Things have come fairly easily to me. I was always good at taking tests so I didn’t have to study hard in school to make good grades. Whenever I needed a job, there was an interesting one waiting for me, and it involved doing things that I wanted to do anyway. I didn’t have to pound the pavement job hunting. I had friends that knew about jobs that were available.

But after a lifetime of things being relatively easy, I have discovered something that I want to do that I have to struggle to accomplish. And what is more important, I find that it means more to me when I do manage to pull it off than all the other things that came so easily.

I’m talking of course about writing. And even though it is one of the hardest things that I’ve ever done, when I stop and think about it, it is so much easier to write now than it ever has been before. There are computers that make typesetting so easy that even a caveman can do it. No wait, that’s another essay entirely.

We have spelling checkers and grammar checkers. You still are on your own when it comes to picking which homonym is appropriate to say what you mean to say but even in that case we have dictionary.com, thesaurus.com, and a bunch of other sites available to us via that great information appliance that we call the internet.

The one thing that is still hard is deciding what to write about. I have learned that it is important that I write about something that I find interesting. That doesn’t make it much easier. I am interested in so many different things.

I struggle with distractions. The TV is the biggest distraction, followed closely by the internet. I take the latter to include email, instant messaging, and the greatest time suck of all, the world wide web. The days of struggling all afternoon trying to remember the name of the actor that played that character that you loved so much in that obscure moving that only you seem to remember are over. These days we have IMDB to settle arguments about who played what in which film or tv show. And what research librarian can compete with the instant gratification of Google?

And I haven’t even mentioned cell phones or self driving cars yet. When I am honest, all I really have to do to think of something interesting to write about is to relax and think about how lucky I am to live in such a miraculous time in history. Or maybe it’s just the imagination of that programmer that makes all of the luck.


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

Leaders, Followers, and …

Some people lead, some people follow, some people blend in. Those that lead stand out, if to no one else than to those that they lead. Those that follow rarely seek notice and if so they principally seek recognition from their leaders.

Those that blend in though are not so easily characterized. Perhaps they fear persecution because they are different. Perhaps they suffer from social anxiety disorders of one form or another. Or perhaps they just enjoy what they are doing and don’t want to be bothered with being responsible for the care and maintenance of followers.

Often, they are remarkably skilled at a skill that I think of as leading from the rear. They are able to influence nominal leaders such that they do what the person who blends in wants them to. Those influenced in this way are often wary of the person doing the blending in and yet they are influenced all the same.

I have, no doubt, oversimplified here. And yet, I think I’ve identified some stereotypes that are actually typical of any population large enough to have a normal distribution.

And so, to bed. I am too tired to take this idea any further. Let me know what you think. Which type are you?


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

Because It’s Difficult

I read an article today. It was one of those articles organized around a list of some sort. This one was a list of ways that Isaac Asimov succeeded as a writer. They were all good. Some of them were inspiring. But in the final analysis he admitted that he worked hard at it. He asserted that nothing that was worth while was ever easy.

One of his techniques for dealing with being stuck was to set the project that had him stymied aside and work on something else. That is a good technique. I have used it myself on occasion. I would use it more if I wrote full time for a living. But I have set myself up in an artificially difficult situation. I have chosen to impose a daily deadline on my blog post.

Writing under a deadline is different. You can’t always set the project aside and work on something else. You have to pick a topic and run with it. Occasionally, you have to start over. I make it a practice to save my abortive attempts. You never know when you might figure out a way to salvage them.

Working to a deadline is stressful. But the satisfaction of writing something worthwhile within the constraints of the deadline is even more satisfying than writing the same article unconstrained by time.

Oh and, you never get stuck when you’re writing under a deadline. You don’t have time to get stuck. You write things iteratively, first listing the main points that you intend to cover in the article. And then, you break the points down and as you catalogue each one, you add in the details.

And then you’re finished. But you’re not. You’ve made your points and you’ve written the story, beginning, middle, and end, but you’ve still got to read what you’ve written. And, there’s no time to let it sit and allow you to regain your composure. You’ve go to edit, rewrite whatever needs rewriting, and eventually, you’ll find yourself putting the last touches on it, correcting the errors that jumped out at you, and accepting the ones that didn’t.

You press publish and accept what you’ve done for what it is and start thinking about what you’re going to write for tomorrow. It’s hard to write a blog post daily. It wouldn’t be worth doing if it wasn’t.


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

The Sherlock Finale

I watched what may very well be the last Mark Gattis / Steven Moffat Sherlock tonight. It was riveting. I refuse to discuss the details of the plot as I think anyone with any interest in the show at all needs to see this one with no spoilers.

Instead, I want to explore an aspect of the show that both amazes and baffles me. How does one captures a strong visual passage in a screenplay? I think the montage at the end of this episode is an example of a visual passage that says so much more than words could ever say. How does one capture those images in a script? Or does one? Perhaps this is an area where the director and the cinematographer collaborate with the editor to create something that transcends words.

Was the idea there in the script? The episode would be unfinished if it wasn’t. I have to believe that the writer had the idea upon which the sequence was based. Did he sketch the images? Did he write pages of descriptions? Or was it all just a matter of shooting enough footage of the general topics that the screenwriter alluded to in the script and then trusting to luck and the brilliance of the editor to compose such a singularly beautiful statement?

Perhaps I’ll never know what happened in the creation of this episode. That only leaves it for me to appreciate it. If they ever produce another season of Sherlock, they have their jobs cut out for them. This season finale will be a hard act to follow.


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

More Anglophilia

My wife and I both enjoy British television shows. She recently bought an app for our AppleTV that allows us to watch live TV as it streams from broadcasters around the world. In particular, this means that we can watch BBC programs as soon as they come out instead of having to wait for them to shows up on one of the channels in the United States.

Not only can we see the popular new British shows as they premiere but we can also watch the ones that are not even made available anywhere else in the world. For example, we have developed a taste for British game shows and panel shows. Even their reruns of television shows from the fifties and sixties are interesting and new to us. We didn’t get to see them when they first ran and in some cases they have provided background that has helped us appreciate references that were made to them in later shows.

The major problem is the time difference between here and the UK. Their evening shows begin here around noon. Unless they rebroadcast a show in the middle of the night, we don’t get to see them except on weekends. I am considering purchasing a DVR to time shift them. Like all such loopholes, I suspect these too will be closed soon. But in the mean time, we are enjoying catching up on as much British Television as we can handle.


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

LightTable Makes Clojure Development Easier

There is a program called LightTable. It is an Integrated Development Environment or IDE. An IDE is a program that programmers use to write programs. The nifty feature of this IDE is that it will run your program as you write it and show you the results of every command in the program as you type new ones in.

It is named after the device that photographer use to sort slides and negatives. The photographic light table is a box with a lamp inside of it and a translucent glass top that the photographer sets the negatives on top of. The light shines through the negatives allowing the photographer to sort through them and find the one they are looking for.

The principle language that LightTable was initially written to support is called Clojure. It is an updated version of the language Lisp. Like most Lisp dialects, Clojure is a dynamic language. This means that you interact with it using a piece of code called a Read-Eval-Print-Loop usually shortened to REPL. The REPL reads an expression, evaluates it, then prints the result, over and over again in a loop.

If the typical way of interacting with Clojure is through a REPL, why would one need an IDE that shows you the values of all of the expressions in the program at once? The difference is that the REPL only evaluates each expression once as it reads it in. LightTable evaluates all of the expressions in the current buffer every time you enter one or edit an expression so that it is complete. This helps the programmer to avoid mistakes by catching them as soon as they are made.

LightTable supports plugin extensions so it can be modified to support other popular languages such as Ruby, PHP, Go, Perl, Python, Julia, and many others. It also integrates nicely with Leiningen, a build tool written for managing Clojure projects.

I intend to develop at least one project in Clojure using LightTable. If it goes well, I have several other projects in the wings. I also have some ideas for using Clojure for several work related projects. That would just be one more way that I can make my job into something that I enjoy more every day.


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

The Annual HARC/NARA Combined Meeting

It is the annual combined Huntsville Amateur Radio Club (HARC)/North Alabama Repeater Association (NARA) meeting. This meeting is generally the first meeting after New Years and the program is a state of the North Alabama Repeaters report along with a preview of some of the enhancements that are planned for the coming year. It is probably the largest meeting of hams in Huntsville except for the annual ham fest that is in August.

The membership numbers of HARC have been growing in the past couple of years. I don’t know for sure but I suspect the membership in NARA has grown as well. I’m not exactly sure why. I suspect it is a combination of several factors. For one thing, the license structure has gotten simpler in recent years. The morse code requirement has been dropped and there are only three levels of license instead of five. The tests questions and answers are published so that you can target your study to the specific topics that you will be tested upon.

Another factor is the proliferation of less expensive ham radio gear. Many of the new radios are based on high speed digital circuitry instead of analog circuits. This results in much more capable radios that are cheaper to build. It also makes home brew radios simpler to design and put together.

And yet another factor is a resurgence in interest in providing emergency communications and relief during disasters both natural and man made. There are also a number of hams that are still interested in the competitive nature of collecting contacts with other hams in other countries around the world. There is also an element of competition during contests to see how many contacts one can make in a given time period.

Whatever the reason, the hobby is growing faster than at any other time that I remember and I’ve been following it for well over forty years. I just thought of another reason that it may be growing so much lately. People have gotten a taste for global social interaction from the internet but they are getting a bit tired of the bad behavior that seems so prevalent in many venues on the internet. Radio is largely self policing and is a much friendlier community in general than the internet. Of course, your mileage may vary.


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

My Mother Would Be Proud

Writing for yourself is easy. If you want to, you can sit and type the same word over and over or you can describe the antics of your pets vying for your attention while you struggle to meet your quota of words for the day. A popular ploy is to discuss at length how many words you have written so far compared to your goal.

Writing for other people is hard. You have to concern yourself with such issues as choosing a topic that people might be interested in reading. You don’t want to appear to be an ignorant bumpkin so you want to check your spelling and grammar. You want to cover all the salient points without belaboring your point.

Take that already considerable challenge and repeat it daily. And if that weren’t difficult enough, try to do it with little to no feedback about how well you are doing.

If it were easy, it wouldn’t be as rewarding to finally accomplish. I’m not saying that I’ve done it yet. I’m just reminding myself why I keep trying. I do it to improve my writing skills. I do it to carry on a time honored practice. I do it to inspire others to put their thinking caps on and put words on the page and write something that I want to read.


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

More Rant

As my colleague Danny Cutts pointed out in a comment on my post yesterday, I criticized the status quo in software development without making any constructive suggestions for how language selection ought to be done.

The short answer to that question is that it is a topic that sorely needs research. There are, in fact people in academia all over the world that are investigating these issues. There are many interesting approaches. I have been impressed by the results obtained by using languages that enforce constraints against mutable data and encourage programmers to avoid side effects.

I am an admitted fan of Lisp and I think that Clojure has done the best job of all the modern Lisps of advancing the state of the art of Lisp like languages. Not only has it made data immutable by default, it has also unified the operations upon collections of all sorts. It has also baked in thread safety to the point that it’s hard to get concurrency wrong.

And the final aspect boosting Clojure over the top in the comparison of modern Lisp implementations is the fact that it is built on top of the JVM and provides direct access to all those incredible libraries available for the Java platform. It is truly the best of both worlds.

Another language that is oft maligned but is far better than it is widely thought to be is Javascript. It has long suffered from lack of respect due largely to being forced out the door prematurely for marketing reasons and then forced to live with its unfortunate choices due to its wide spread adoption as the universal web scripting language.

Modern implementations, Node.js on the server, and the evangelism of Douglas Crockford have all gone a long way toward improving Javascript’s reputation not to mention it’s attractiveness as a generic platform for application development.

Languages should be chosen to best address the needs of the problem domain. That is much easier said than done. We are suffering from too many options. People try to overcome that problem by artificially constraining the list of choices. Perhaps they would do better to use the prescription that the Unix community suggests (sometimes attributed to Kent Beck):

  1. Make it work.
  2. Make it right.
  3. Make it fast.

What that means is, first hack out a naive solution, sometimes referred to as the simplest thing that might work. Then, refine the solution to cover all the edge cases that you overlooked in the prototype. Finally, instrument the code to find out where it is spending most of its time and concentrate on optimizing that part of the code.


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