So You Want to Write a Blog?

How to blog.

I’ve been blogging every day for six months now. I have learned a few things about what works. I’ve learned lots of things that don’t work. I decided that it might be worth while to capture some of these ideas, both for my own reference and for any of my readers that might be considering taking the plunge and starting a blog. I highly recommend it.

Know why you are blogging.

It is a lot easier to succeed at something if you understand what you are trying to accomplish. I wrote about why I blog in a previous post so I won’t go into any further detail here. I’ll just say that it does help to get you started in the first place and to decide when your finished.

Understand your audience.

This is an aspect of blogging that I’m still struggling with. It is critical though. You obviously can’t please everyone. The better that you know exactly who you are writing for, the easier it will be to please them.

I’ve often said that I write for someone who is interested in the same things that I’m interested in. I’m interested in too many things for that to narrow it down enough. Also, a lot of things that I am interested in are so personal that I doubt anyone else would be interested in them.

Definitely give it some thought and spend some time trying to write a succinct statement describing who you are writing for. Revise it periodically as you find your voice. The clearer you are about this the better your blog will target them.

Have an opinion.

If you are motivated enough to write a blog about something, you probably have an opinion on the topic. You should state your opinion firmly. There is no need to preface your statements with “I think”. It is your blog. By definition, this is what you think. That is what people are looking for, an informed, rational position on the topic. Either that or a controversial rant. No one likes to read wishy washy prose written by someone who can’t make up their mind one way or the other.

Do your homework.

Before you go out on a limb, check your facts. See what other people have written about the topic. You don’t have to agree with them. In fact, it will probably be more interesting if you don’t. If your post is just going to be a rehash of something someone else has already written, you either need to think of how to say it better than they did, not an easy job, or, think of a way to spin your topic so that you discuss an aspect of it not covered by other authors. Of course you always have the option of picking a new topic altogether.

Organize your thoughts.

This is a step that I’ve only recently mastered. Up until then I would start writing without thinking things through and I’d write until I had written everything I could think of pertinent to the topic. I would often contradict myself and sometimes totally leave out critical points of my argument.

Then I started writing a simple, single level, bullet-point style outline of what I wanted to say. This has had two effects. First, it has helped me focus the post on a single topic instead of wandering around it hit or miss.

Second, after I’ve written down my points, I find it much easier to actually write about them. I actually understand what each section is trying to say. It is also easier to decide when I’ve said enough in a section and can move on to the next one.

Write.

You know who you’re addressing and why. You know what you’re going to say and the order you’re going to say it in. Now comes the fun part. You sit down and fill in the blanks. You write your heart out. You tell it like you’re talking to a friend. The words will fly off your finger tips.

Be sure you cover each of the points that you’ve laid out in your outline. While your at it, you can check to see if you forgot something in your outline. Maybe it came to you while you were writing. It is perfectly okay to adjust as you write.

Read what you’ve written.

Now comes the hard part. I can’t emphasize how important this step is. Once you’ve written your blog post, be sure to read it carefully. Look for words that, while spelled correctly, may not be the word you intended, after all who writes with an editor that doesn’t have a spelling checker these days.

I often find that I leave words out entirely or, in the process of editing a sentence, I will mangle it up so that it no longer makes any sense at all. It is better to catch these errors before you hit the publish button than discover them the next day after everyone has had a chance to see how careless you are with your proofreading.

Every time I publish a post without proofreading it first I have found that I have published mistakes. That’s not to say that I don’t miss mistakes when I do proofread, only that there are always mistakes of one sort or another to be corrected when I don’t.

Give it a catchy title.

When you’ve put the time into writing a post, you want people to read it. Remember that first impressions are important. The title is how your reader forms their first impression of your post. It has got to be attention grabbing while at the same time capturing the essence of the piece.

A good rule of thumb for organizing your post is to put the most interesting things first and then add less interesting details as it progresses. This is not always possible, especially if you are describing a process, like this post for example.

Promote it.

You’ve written your post. You’ve given it a good title. Now you need to take a moment to promote it. There are two things that you need to do at this point. First, take advantage of the category and tag features of your blogging software. They make it easier for people to find your post with search engines.

Second, you need to post pointers to it on social media like Facebook, Twitter, Tumblr, etc. Some blogging platforms have features that help you automate that process. I have found that most of my new readers find out about my blog on Facebook or Twitter.

So that is what I’ve learned about how to blog. I hope it helps you if you decide to write a blog of your own. There are plenty of free blogging sites out there that make it easy to set up a blog. You’ve got no excuse. Set up a blog and start posting today.


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

For Katee Miller

Why did I decide to blog every day?

I wrote a minimum of seven hundred and fifty words in my journal every day for four years or so. It taught me to write better. It helped me learn how to overcome the fearsome blank page that strikes fear and writers block into the hearts of writers everywhere. But after a while I found myself wanting to write in a more public forum for several reasons. Let me tell you about them.

Writing to be read by other people.

No one reads my journal but me. That is by design. It frees me to talk about things too personal to share with strangers. But, while therapeutic, it doesn’t scratch the itch that every writer has, to write something that someone else enjoys reading.

It is both thrilling and scary. Thrilling to think that you may give someone else an experience like the ones that lead you to want to write in the first place. Scary to think that you won’t measure up to the standards of the writers that inspired you. But if you don’t try you’ll never know if you measure up and even if you fall short to begin with, if you keep at it, you’ll get better. You may not be Shakespeare or Hemingway but you have a unique perspective that deserves to be shared with the world.

Writing to publicly commit to a position.

When you write in a public forum it forces you to think about what you are saying. Do you want to stand by this position? Once you press the button and post, you have gone on record. You can delete the post on your own site but totally eradicating it is difficult.

I have stashed several blog posts because they were either too personal or took a stand that I was unsure about. It is important to learn that once you’ve said something, it can’t be unsaid. But you can’t let that rob you of your voice.

Writing enforces daily contemplation.

Socrates supposedly said “The unexamined life is not worth living.” I don’t know if I’ll go that far but I do value the exercise of stopping to think about things critically. I learn a lot when I do that. I learn how much I don’t know. I learn how much I knew that I didn’t even know that I knew.

And putting it into prose allows me to examine my own reasoning. I often discover that something that I thought I believed doesn’t hold up to disciplined rational scrutiny. I have also found that when I read something again after I have written it and then let it sit for a while, I have different insights about the topic than when I originally wrote it.

Writing on a deadline.

Writing on a deadline teaches the art of compromise. You aren’t always going to produce your best writing. Sometimes you just have to do what you can and accept what you have done. You could probably improve on what you have written if you had time to think about it for a while but by definition, you don’t have time to think about it.

Perhaps you do think about it some more. Then you can write a new blog post about your further thoughts. Or, you can collect your blogs together and edit them into a longer piece and spend time then reworking the ones that didn’t meet your standards the first time around.

Communication is never perfect. We refine our communications skills every time we speak or write. The more we communicate, the better we get at it. That is the best reason that I can think of to write on a deadline. It forces you to publish a lot.

Because I want to.

The last reason is the most important to me. I write because I want to. I enjoy the process of putting words on a page. I like the way my fingers feel when I type. I like the way the pen glides across the page when I write on paper. I love the smell of new stationary.

It reminds me of my mother. She was a writer. She always joked that she had given up on writing the great American novel and had set her sights on writing the great American paragraph.

She was an English teacher. She taught Journalism and was the sponsor of the school newspaper. She taught me how to write headlines so that they would fit in the space at the top of the article. This was before word processors made this a trivial matter.

I write for all of these reasons but I hope that my mother would be proud of my accomplishments as a writer. I wish she had lived long enough to write a blog. I would have loved to read it.


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

What Ever Was I Thinking?

I learned something about blogging last night. Those of you who read yesterday’s blog probably have an idea what it is that I learned. I learned that if you are going to write something technical when you are sleepy, you should be sure that you read it carefully before you post it.

I won’t say that I said anything that was strictly speaking untrue but I will readily admit that even I am not sure what I was trying to say in the last paragraph. And I just stopped abruptly. I had a point that I intended to make when I started writing but I am pretty sure that I never got around to making it.

I will give the topic another go sometime when I am wide awake and have thought the topic through completely. I like to write off the cuff but I do think one should proof read one’s post before posting it. Otherwise one is liable to end up embarrassed like I am about that post I wrote yesterday.


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

Computers Are Simple

A computer is a very simple thing. When you first turn it on, it goes through some sort of initialization procedure. The exact specifics of how the initialization procedure works varies somewhat depending on what kind of computer. I am going to talk about a very simple computer for the sake of explaining how simple they are.

This simple computer has a few pieces. There is the memory and the Central Processing Unit (CPU). The memory is a large array of digital memory. It holds the program and the data with which we will compute. The CPU is largely a collection of registers each of which amounts to individual, named memory locations. For instance the program counter is a register that holds the address of the next instruction that we will execute. The instruction register holds the instruction that the computer is getting ready to execute.

The initialization procedure of our hypothetical computer fetches two bytes from address FFFE hexadecimal. It loads those bytes into the program counter, which is the way that the computer keeps track of its place in a program. The next thing that the program does is load the instruction that is indicated by the program counter.

As it loads the instruction from memory into the instruction register, it increments the program counter to point to the next byte of memory. It decodes the instruction in the instruction register and decides how much more information it needs to load into the CPU and into which registers it should load the information into.

The computer then executes the operation indicated by the instruction register. It then adjusts the program counter to point to the next instruction and waits for the current instruction to complete executing so that it can repeat the process.

The instructions are extremely simple. They facilitate loading values into the various registers for later use.  They allow the programmer to be much more adaptive to the way that the host has arranged for the instructions to be displayed. The operations that they implement include loading and saving a value to memory, doing math on values, comparing two values together, among other things.


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

One GUI to Rule Them All

I remember the day that Mark Andreessen announced the Mosaic web browser. In the fashion of the internet, Andreessen and his team released Mosaic as free for non-commercial use. I was immediately struck by the implications that it had for use interface standardization. At the time there was a big competition between Microsoft Windows and the Apple Macintosh for the desktops of the world. Unix was bringing up a close third place. A web based user interface would render the underlying desktop GUI insignificant.

The evolution of the web platform has been gradual. It started out with very clunky user interfaces and very kludgy mechanisms for processing the data and displaying the results. But by keeping a focus on implementing the simplest thing that might work, the platform has become a formidable standard.

One of the most important components in this universal platform was a stroke of luck. Brendan Eich was asked to write a scripting language to embed in the Netscape Navigator Web browser. He originally intended to implement a lisp like language like scheme. This was vetoed by the marketing team as being too foreign looking to programmers more familiar with more conventional imperative languages like C. He was given two weeks to deliver the modified language.

Javascript retained a progressive object system built around the concept of cloning prototypes instead of the more common class based object systems popular at the time. It was plagued by flaws that were primarily the result of being rushed to production without an adequate shake down. Since Javascript was the one common scripting language available in all browsers, it became the lingua franca of the web.

It took the better part of twenty years for that potential to be realized but with the release of HTML5 and CSS3 along with the development of a huge catalog of Javascript libraries running both in the browser and in the server, the dream of a platform independent application framework has finally been fully realized.

Web based applications are now a popular means of implementing software and there is a special category of web application known as a Single Page Application which runs directly on the desktop instead of in a web browser.


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

Agile is Dead! Long Live Agile!

I keep seeing headlines on various programming news sites saying something like “Agile is Dead”. When I do, I know immediately that the author has missed the point. Agile is not a methodology to be slavishly followed. It is a philosophy of software development. It is a collection of best practices that may help the developer solve his customer’s problem. It is a starting point from which to open a dialog between the customer and the developer.

As such, it makes statements about tradeoffs that can be made in order to achieve goals. For instance, agile doesn’t prescribe that you should have sprints of two week duration. Rather, it suggests that bounding the time between milestones where you have demonstrable working code will help keep your customer’s confidence in the team high.

Observing that users rarely know exactly what they want at the beginning of a project, even when they think they do, agile suggests focusing on some small number of features at a time that can be demonstrated to the user at the end of each sprint. This has the added advantage of constraining the amount of time that you spend developing a given feature so that if the customer ends up not liking it as well as they thought when they actually see it implemented you have not wasted anything more than the minimum amount of time discovering that fact.

In short, agile is a tool bag of techniques for improving communication between the developer and the customer and insuring that the developer spends the maximum amount of time possible working on the things that the customer values most.

The practices of many agile teams have the benefit of having repeatedly demonstrated their effectiveness in actual practice  but they are not some kind of magic formula. If the customer refuses to communicate with the development team as they develop, agile is not going to work. Not because it is dead. But rather because it is not accomplishing the underlying goal of facilitating communication.

Communication is difficult in the best of situations. When one, or both parties fail to communicate, agile practices become less and less effective. There is no such thing as a silver bullet. Software development is hard. It is always going to be hard. And the hardest thing about it is for the customer to clearly communicate to the developer how he wants the software to work. This is made even harder by the fact that he often doesn’t know.

So the next time you see the headline, “Agile is Dead” remember, that agile is just a collection of suggestions that may (or may not) be helpful in communicating about the customer’s desires and expectations regarding the software that you want to build for them. Anyone that tells you any different is selling you a bill of goods.


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

Ted Nelson’s Dream of Xanadu

I often reminisce about my youth and the (relatively) early days of computing. When I was just starting my career, a man named Ted Nelson, son of a director named Ralph Nelson and a movie actress named Celeste Holm, wrote and self published a book. It was actually two books in one. On one side the book was called Computer Lib and on the other side, upside down, the book was called Dream Machines. It was published in an oversized format on newsprint.

Ted had a lot of revolutionary ideas. One of the most revolutionary was the idea of nonlinear text. He coined the term hypermedia to describe it. A hypertext consisted of prose that had certain key terms associated with different pages so that when you clicked on the original hyperlink, you were immediately shown the associated prose. This enabled the construction of text that could be  consumed at the whim of the reader instead of at the whim of the author.

We all know that when this concept was simplified and actually implemented by Tim Berners-Lee, it resulted in what we’ve come to call the world wide web. It is of note that the original hypermedia design, a project called Xanadu, consisted of bi-directional links and a micro payment system that allowed authors to collect micro payments for every one that clicked on and read any given hyperlink.  This system was never released in any practical implementation due to the lack of a feasible scheme to collect the micro payment.

If you ever find a copy of Computer Lib/Dream Machines in a used book store or yard sale, it is definitely worth a read. The ideas are for the most part still relevant and he assumes no knowledge of computers on the part of his readers. Many of his examples have inspired actual computer applications.


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

All This For a New Phone

I’m in the midst of an adventure. That is what my mom called it anyway. Any time we were out trying to get something accomplished and ended up facing challenges like for instance car trouble, my mom would say, cheer up, we’re having an adventure.

Today I went to the Apple Store to get our new iPhones. I had done my research, I thought. I wanted to buy them on the new every year plan that Apple offers. I went to the Apple web site and read up on the process. They require that you have a credit card, not a debit card, in order to be eligible.

So, I went out and applied for a credit card and waited a week while it got approved and they mailed me my card. Then, I showed up at the local Apple Store. To be fair, the folks at the Apple Store were great. The process was a bit lengthy though.

First, they explained to me that they were financing the purchase through a separate financial institution and I would have to apply for that loan. They entered the information and got back the news that I was declined. When I asked why, they explained that they didn’t know. I would have to call the lender and ask them. And they wouldn’t be able to answer any questions until an hour after the application had been declined.

I put the phones on reserve and went to Barnes & Noble for a cup of coffee. I have my new MacBook with me so I can use the time to write this blog post. So, a royal hassle turns into an adventure. I am posting my first blog post written in a cafe.

I will buy the phones today in any case. I just wanted to buy them on the Apple new every year plan. If I have to buy them out of pocket, so be it. The Apple Store Associate explained to me that I could buy them on the credit card and then come back any time between now and January 9th and change the plan so long as I could get the loan approved by the third party lender.

Hope everyone has a good weekend and adventures more of your own choosing instead of the random kind that has been my lot today.


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

My First Experience with Programming

During my second year of college I took an introductory course in psychology. It was a large class that met for lectures in a large auditorium. The labs were held in smaller groups and presided over by graduate assistants. They had recorded the lectures and made them available in the library so that if you missed the live lecture you could make it up at your convenience by listening to the recording.

They had also created computer based instructional material on a new system that was also available in the library. The system was called Plato. Plato was a mainframe based program that ran on a computer at the University of Illinois in Champaign-Urbana. The system supported numerous graphical terminals that could be connected remotely via modems and phone lines.

I was so impressed with the system that I applied for a user account on it. When it was granted, I found a user who was a computer science major and had program space allotted on the system and befriended him. He gave me a portion of his programming space to use. I bought the book on Tutor, the language in which Plato was programmed and set about teaching myself to program.

Tutor was an interesting language. It was similar in some ways to Fortran and in others to Basic. It had features that were unique to it, at the time at least. One of the most interesting features was the ability to take a list of words and phrases and match them to an arbitrary block of text allowing authors of instructional material to automatically score answers to essay questions.

The terminal on the system had a resolution of 1024 pixels wide by 768 pixels high. It was a monochrome plasma display. The pixels were orange when they were lit and brownish black when they were dark. The display had a programmable character generator so you could create custom characters in addition to the standard alphabet. This allowed for text that was displayed in different alphabets as well as character based graphics. It was also capable of line graphics.

The screen was touch sensitive so you could point to items on the screen to select them. The keyboard had more keys on it than a standard typewriter keyboard. This included several special function keys as well as special shift keys that allowed for extensive keyboard command short cuts.

I enlisted the aid of my wife at the time to design a custom character set that allowed me to animate a simple drawing of a halloween cat walking across the screen. This thrilled me that I was able to use the computer to make a programmed animation.

Later the next term, the local administrator of the Plato user accounts conducted an audit of the programming space allocation. My computer scientist friend had accounts on other computers on campus and hadn’t spent much time on Plato. He had not done any curriculum related work with his portion of his account.

I, on the other hand, was a cinema and photography major. My animated cat was directly related to my curriculum and ended up saving my friend’s (and my) programming space.

The system was lots of fun. It had a user to user message system. It had discussion threads, and it had a bunch of multi-user games. For example, it had a multi-user implementation of Star Trek. It had a dog fighting game. It had a game called Empire where you tried to conquer the world. These games were often written by users.

A few years ago I was Googling around on the internet and discovered that someone had written a Plato emulator that ran on the internet and an emulator of the terminal that ran on Windows, Macs, and Linux machines. There were a bunch of videos about the system on You Tube. I downloaded the terminal emulator and requested an account on the system. It was interesting to revisit my first experience with computers. It reminded me of why I had become so passionate about them.


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

The Closest Thing to Writer’s Block that I Get Anymore

For a month I have written about two thousand words a day. Three quarters of those words comprised the draft of my novel. The rest were blog posts. After thirty days of writing, I find myself struggling to think of topics for my blog.

It’s been a long time since I’ve had writer’s block. That may be because I haven’t let the fact that I couldn’t think of anything interesting to write about stop me from writing about stuff that would bore a statue to tears. I’ve been focused on producing a quantity of words without considering the quality of words.

The rationale behind that strategy is that if you write enough you will eventually get better at it. While this is true it still doesn’t change the fact that at some point you have to start writing about things that you care about, things that mean something to you.

So, let’s make a short list. At the top of the list is my family, my pets, and my friends. I feel like that writing about my family or friends, at least without disguising them in the cloak of fiction, is too intimate. My pets are cute and often funny. But they don’t have much of a dynamic range of emotional complexity.

Next on my list are my geeky hobbies, writing, programming, building electronic gadgets, and ham radio. These actually are a pretty good source of ideas to blog about. They don’t offer much in the way of dramatic content or plot though. Maybe a blog doesn’t need those attributes. I do believe that all writing is story telling at its  heart though. That poses the challenge of writing about these seemingly factual topics in an entertaining way by telling a story or even adding an element of humor.

I have blogged about the experience of participating in the NaNoWriMo challenge. I seem to learn something new every time I participate. I expect that will continue with every writing project that I undertake, whether it is under the auspices of NaNoWriMo or not. It certainly makes sense for me to share some of those insights as they occur to me. It also serves to help me remember them when I have recorded them as blog posts.

I have blogged about computers and programming and the history of computers and software development as it unfolded during my career. I think this kind of blog post is an important way to contribute to the historical record. That is assuming it doesn’t just evaporate as soon as I die.

I guess my final thought on the matter is that I shouldn’t wait until I sit down to write a blog post to start trying to come up with an idea. Instead, I should make a list of ideas for blog posts and add to it as I think of more ideas.


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