.mark-christensen.com
Blog Reborn: The Basics

Blog Version... I Lost Count

I've had a blog since 2009. Sort of. Each incarnation of my blog has seen a few posts but I never managed to keep it going. Every time I stopped posting I felt bad but there was always a reason. Sometimes that reason was personal. Sometimes that reason was work. Always the reason was about not having enough time. Or at least that was what I always told myself. Too much to do; not enough time to post.

Yet I wrote in other forms. Long emails, notes in my journal, ideas in notebook after notebook. Hours and hours of writing including writing that I would have liked to share on my blog. Time wasn't the issue. But, after years of trying different things and studying my failures, I think I might have finally figured out the problem.

Control vs Friction

I've gotten the same question, in one form or another, from everyone over the years. "Why don't you just use one of the existing blog software stacks?" It's a good question with a long answer, and it'll get a post of its own, but the short version is that each of them is lacking for what I want. Each existing blog offering has its own advantages and trade-offs. They differ wildly in all kinds of different ways. Some are laser-focused on publishing articles while others are general purpose Content Management Systems (CMS) with a thin veneer of "blog" smeared on top. Some focus on sharing snippets of text barely long enough to contain a coherent sentence (I'm looking at you, Twitter) while others expect their users to post long, complex content. In a lot of important ways, there are probably more than enough options for having a blog to satisfy most people.

Unfortunately, in this case, I don't fit into that group. I think the reason I have had so many issues making the time to post was because of the friction I felt when trying to do so compared to the benefit I felt I was getting from that effort. Life is full of things to do and I think it's important to feel like I am spending my time in a valuable way. Blogging has always turned into a "high effort, low benefit" activity and I have a hard time spending any significant time doing something like that. This is my attempt to both reduce the effort of posting and also get more from the act of doing so.

I've been doing systems design and development for almost 10 years. Web development, off and on, for even longer. To me, a blog is a lot more than just a place to jot down my thoughts but in a way that goes beyond what the typical CMS offers. Rather, I want my blog to be a place to experiment, document, and learn. I'm interested in trying out solutions to some of the problems I have with other websites. Problems with the ephemeral nature of online content; problems with how conversations are handled; problems with walled gardens. Existing options either don't provide me the freedom to use them how I want or they provide the same freedom as any programming does but with a lot of additional kruft or effort. The ones that are high control are also high friction; the ones that are low friction are also low control. I haven't found a single off-the-shelf option for low friction and high control that doesn't involve rolling my own solution.

Try, Try Again

For this version of my blog, I started with basics but in a format that is open to easy extension as needed. At the heart of the stack is a rendering pipeline that generates static assets and publishes them to one or more HTTP server - no dynamic content. The current version of the pipeline is a Python script driven by configuration and Markdown files. Each rendered page is treated as either published or draft and is copied to public or private servers accordingly. The site has a general style through page templates and CSS but each page can be rendered with custom styles if I decide I want that. Every published asset is treated as immutable and is versioned using the standard semantic breakdown of major, minor, and revision revision.

So far, there is nothing else. There isn't even an ability to add images to posts (coming soon)! I'll be posting a more detailed description of all of these things later but hopefully this is enough to understand what to expect. This blog will change constantly and I will be posting descriptions of those changes it does.

Since all software needs a name, and I wasn't feeling so creative at the time, I am calling the little blog engine CleverBlogEngineNameHere. Any posts about changes to this site or any of the other sites that I have which run using that engine will be tagged with CleverBlogEngineNameHere. These posts will discuss changes made and provide, eventually, a place to provide feedback on those changes.

Migration

For the most part, I've just dumped (or lost) content from older versions of my blog. That isn't going to happen any more. I'll soon be moving over the few live posts I had on the previous version of this site and will also be publishing versious other posts that I had as drafts waiting to be published. The write dates for those posts will reflect their original write time but they may get published out of order. I'm hoping to get those up soon but don't have any sort of schedule planned out right now.