Less is Often More

I recently watched a comedy special featuring Jeff Foxworthy. He talked about the fact that we have so much that in many cases what we need is less. His examples were, as usual, side-splittingly funny. But afterwards I found myself thinking of some other things that we could use less of.

In particular, I’d like it if I had a control panel where I could go in and turn off all the battery hungry options that the vendors insist on adding to the operating systems of my computer and various other devices. I’d love it if they would boot instantly, do the things that I actually want them to do, and still have a substantial charge left in the evening when I go to bed.

I know this is possible. With every new generation of hardware they keep beefing up the battery life and then they turn around and add features that suck the battery dry so that we don’t see any obvious difference over the previous generation of hardware.

I’m not against innovation. I’m just for individual choice. There are a lot of cool features that have been added with each successive generation of hardware and software. I just want a say in which ones are turned on at any given time. If you want to spend time and effort on nifty intelligent features, create an application that will help me turn off the things I don’t actually need. Oh, and have it turn itself off when it’s through.

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

Thinking About Thinking

The funny thing about thinking is that you have to let go in order to have creative thoughts. Often, you can’t look right at the subject that you want to think about, you have to approach it indirectly. You have to be open to try new things. You have to sit down and start writing down ideas as they come to you. You have to stifle the censor that tries to stop you before you begin.

It sometimes helps to enter ideas into a writer’s almanac and try to break them down into smaller pieces. Sometimes it helps to keep a long list or outline of them. The hierarchical nature of an outline helps impose structure on the project. The important thing is to just start writing without censoring yourself.  You’re going to edit this idea before you publish it.

The maddening thing is that inspiration will often happen at the most inconvenient times. This encourages the project to be viewed in many varied ways. The key here is to take notes when it happens. If you have to leave something out while you are working, make a note to yourself. use square brackets to set the idea off from the rest of the piece [see if you can find someone else that uses this technique]. This makes it easier to search for when you revise the idea later.

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

Of Stationary, Ebooks, and Writing Tools

Stationary has always been a weakness of mine. I love having notebooks of various sizes and weights of paper. I love the smell of printer’s ink. I love loose leaf binders and rulers, pens and pencils, and stencils like the flow chart template that used to be popular in college book stores. Do colleges even have book stores any more? I know they do but with so much of our information being delivered online, the advent of the electronic book, and the relentless competitiveness of online commerce, it is hard to believe that the campus book store will survive per se much longer.

My fetish for writing tools extends to computer programs as well. I have a huge collection of different text editors, word processors, outliners, mind mappers, and other programs for capturing ideas on a computer. Just this weekend, I installed a program called Instiki that allows me to easily create my own private Wikipedia-like hyper-linked collection of notes.

I still like the feel of physical books but I have to admit that I can store a whole lot more books on my iPad than I can in all the bookshelves in my two bedroom apartment. And so the trade-off has begun. I only buy my favorite author’s books in paper editions. The rest I buy ebook editions of. I sometimes buy the ebook edition of books that I also own the print editions of. That way I can carry it with me where ever I go without hauling around all that extra mass.

Physical books don’t take batteries. They survive power outages. That may be solved in the near future as we keep producing batteries with longer and longer lives. We may eventually build an ebook that can derive power from the environment without having to be explicitly charged.

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

Putting the Horse Before the Cart

Periodically I revisit aspects of programming that excite me. Lately, I have been reading articles by Bret Victor and remembering things that have gotten me excited about programming over time. I have been thinking about how I can incorporate these ideas into my daily work. It is a formidable challenge.

Back during the Elizabethan period there was a revolution in productivity in agriculture. It arose when someone figured out that the ox could pull a plow much easier than it could push a plow. Up until that time they had assumed that an ox would push the plow like a person does.

We have been making similar assumptions about computer programming. In particular, we have structured our computer languages to be easy for computers to translate rather than easy for people to program. This has resulted in programming getting a reputation for being difficult and boring.

Writing a program should be more like creating a painting or writing a song. When I pick up my guitar to write a song, I don’t usually have anything more than a fragment of an idea. Sometimes I may just start playing around with chords and melodies until something strikes my fancy. I write the song by taking these ideas and playing around with them, varying the melody, the harmony, and the rhythm until I discover something interesting.

The very best experiences that I’ve had while programming have been in a similar environment. I have taken an interesting idea and implemented some small aspect of it. Then I try modifying what I’ve written to see what happens when I change different parts of it. It is interesting to observe that in most cases I have been using an interactive programming language. That is, a language that accepts an expression and responds immediately with the result of evaluating that expression.

We learn to build things by trial and error. If we will just change our approach to programming so that it more closely resembles creative play, we will realize an immediate and astronomical increase in productivity. As long as we continue to develop programs like we build bridges producing good software will be an expensive and risky business at best.