Wednesday, July 23, 2008

Meta Blogging Madness or Mania

I've been really good over the last year. Despite some temptations, I've pretty much stayed away from the usual meta-blogging topics. Sure, I've tilted occasionally, or even had to delete an unpublished post or two, but I figure with a record like that it's OK to take a quick break from my usual work and spew out a few of my feelings.

It's my one year anniversary for this blog, and my two and two-thirds anniversary for my whole blogging career. Barely nothing at all, but an incredibly long time for me.

My first blog musings, called "Building Blocks" are collected together at:

I started blogging in an attempt to improve my writing style. Doing everything backwards, I started first by writing a book on programming:

I'd heavily promote the book -- it is full of great ideas and understanding -- but the writing is a little stiff, repetitive and messy. I'd spent most of my life avoiding writing, only to find myself accidentally drawn in to it. I just wanted to express my understanding of software construction.

I wrote it based on my raw experiences gained from releasing a complex product with virtually no resources. When you have barely nothing to work with, you learn to use it well. For all its weaknesses, the book does get right down into finding ways to manage the complexity of development.

I'm considering redoing the book for a second edition, but I don't want to put in a lot of effort if there isn't any real demand. The writing needs to stop getting in the way of the content.

That is ultimately why I started blogging; to learn how to become a better writer, so I could share the things I've learned.

Surprisingly I found that blogging was a lot harder than I had imagined. My grammar, and style are terrible, but working on that is the easy part. The biggest problems come from trying to find ways to express real knowledge, but in a way that is entertaining enough to attract readers. I'm always finding myself balancing between what I want to really say, and what people really want to hear.

You can't just spit out any old idea or concept. People don't want to slog through your inner deep thoughts if there isn't some incentive. Sadly, learning seems to rarely be the driving force. Most blogs, tend towards lighter topics or platitudes, because most of the readers prefer it that way. Blogging is a conversational form of entertainment.

Still, you don't have to spend long in software development to be embarrassed by the state of the industry. That, I think is one of the driving forces behind software developers combing through tonnes of blogs, hoping for that one significant revelation that will vault their abilities into super-stardom.

We know things aren't working, but we're clueless as to how to make things work better. At least those of us who still care, are; many have just tuned-out and gone back to flailing at their keyboards; aware, as always of that silently ticking count-down clock that will drive them from the industry for good.

Readers don't give you much credit for trying; falling short is always greeted with a great wall of silence. In many ways that can be the hardest part about blogging; even the rude insults are a offbeat form of complement. Silence is deafening.

At least they're taking you somewhat seriously. Seriously enough to be mad at you.

A friend of mine talked about how writing is such a lonely job. I guess because you are putting words on a sheet of paper, you're only communicating with your audience indirectly. There is a natural disconnect between you and the readers; you have no idea if they respect what you are saying or are just silently laughing at your foolishness.

It is getting past that fear -- of being the fool -- that I think is the hardest aspect of blogging. Not, that I don't internally dwell on my short comings, but few people really want to expose all of their weaknesses to the public. I want you to see me with the good looks of Brad Pitt, and the intelligence of Albert Einstein. After all, that is how I choose to see myself (staying away from mirrors really helps). My sense is that the more people that respect me, the more my ideas will get fair play. Each flaw just makes it harder for me to communicate.

Rambling is another great problem. I very much want to say everything, but time is always limited. It is far easier to write something long and boring then it is to distill all of one's thoughts down into some distinct set. Those technical writers that employ big ugly huge words on a mass scale throughout their work, mistakenly believe that it lends weight to what they are saying. Instead it often sinks it.

But sometimes even when you instinctively know something, finding a way to verbalize that, in a short, simple and straight-forward manner is exceptionally tough. I fail often.

There are times when I just want to stop. I start to wonder if there is really a point to this. Computer Science, I am quite aware, is a huge mess, but why should I be so egotistical as to think that even the smallest of things I've learned are of any use to world at large?

I'm driven forward again and again by continual examples of just how crude most people are going at it. I've not managed to find even a fraction of the answers, but what little I know so often seems miles ahead of what I see out there. So many people go at software with a reckless abandon that not unsurprisingly leads to serious complications. The biggest and best things I've learned are that it really isn't that hard after all, if you moderate your behavior and ideas. Extreme problems come from extreme behavior.

My biggest problem seems to be the middle-class gravity well. I am continually caught by those forces that pull me back into trying to support my lifestyle. You accept the house, the car, and the 'things', and suddenly you find that you have to maintain a well paying position in order to keep what you have.

At first it is fine, but it gradually becomes an incentive to not push one's limits. The safe jobs, often pay the best. Once you've maximized your programming salary, the next levels only come from moving higher up into management. Pretty soon, the bigger house, bigger car and more 'things' becomes the reason why you're not out risking everything at a startup, or holed up in your basement for a year writing something radical. You can't easily risk all of the things you've gained. Each year you have farther to fall.

But, I have pushed the envelop, and I've pushed my luck a few too many times already. Ages ago I thought up some really radical ideas -- things that would fundamentally alter everything we know about computers -- but I wanted to control how I approached them. Initially I felt that if I could break out of the middle class with some novel new startup, I could earn my freedom, allowing me to pursue my dreams.

I went at it for five years, but I lacked the horsepower to make it work. After crashing back to the planet, painfully, I tried again, this time looking for financing, but I'm not nearly charismatic enough to inspire confidence.

I often figured that the ultimate joke is that my ideas either won't work, or I'll just never get my chance. The universe is littered with lost, but great advancements. I've pretty much settled on dumping mine out onto the world one day once I've finally given up. Still, no one wants to be the guy who sold DOS to Bill Gates for an obscenely low price. Although I'd rather be that, then see Computer Science struggle on in it's current fashion for hundreds of years before someone finally gets it.

You don't have to be a genius to see the next step, you just need to have been standing in the right place at the right time. Eventually someone will find the same spot, they always do. Progression, at some speed is a natural by-product of our coming together, but that doesn't mean that someone like Albert Einstein didn't save us hundreds of years by making such a fundamental leap across the void.

Realistically I'm probably nowhere near smart enough to be able to actualize my concepts. Just having a good idea doesn't mean it will work. Just having an idea doesn't mean it is good. But it's not easy to convince oneself of their own short comings, after the idea -- good or bad, smart or foolish -- has taken root. Thus for all my self-doubt, I am still driven forward because it is too late to go back.

The side-effect of thinking you have a radical idea is that it changes your perspective on the rest of the industry. Knowing that there is some entirely different way for software to exist, drives the heart of my inquisitiveness. I don't think we've reached the state of the art, and because of this I am willing to look at everything with a critical eye. There is, even if I am barely correct, a huge distance for us to travel with our understandings. We've only started the journey, yet so many of us are digging in.

That frustration fuels my blog writings. I am seriously looking for something new. Something radical. Something that will lead us beyond our current threshold, and allow us to build the types of systems that utilize the fantastical potential we've created in computers.

In the craziest sense, it doesn't actually matter if any of my ideas are workable or not, it only matters that there is enough space left in software development for there to still be 'radical' ideas.

All of that brings me back to laboring away at my blog. I feel that I am balancing significantly deep content with trying to be entertaining. Well, at least that is what I am trying to do. It doesn't always work, and I can't always live up to my expectations. Still, sometimes we have to keep at it, even if we know that its not as strong as we would like. Blogging seems to come easily for some, while others are destined to wince with every forced paragraph.

With so many possibilities for software, it's hard not to overflow with ideas. Blogging might be casual entertainment, but it is also the right forum for us to explore the next round. We just need to make sure that today's blogging content really effects tomorrow's technologies. That way, it will be constructive, as well as entertainment.