Meta: dissecting yet another coder’s blog

by Max Galkin

In this post I share my blogging experience for those who are considering to start their own programming-related blog or who are just curious about what it takes to maintain a blog. Note that I’m focusing on software development blogs here, for other kinds of blogs my advice could be completely irrelevant.

 

 

My blog is WordPress-based, but before discussing the specifics of this particular platform, let’s look at some alternatives, which might be viable, depending on your goals and software development experience:

  1. You might want to create your blog and your website from scratch, using only the basic building blocks provided with a particular language. The disadvantage of this approach is that you might have to reimplement some basic blog features that you’d otherwise get for free with a WordPress plugin, but on the other hand, you might sometimes find an open-source library that will also give you that feature with little or no effort. The advantage is that you’d have full control over the website, and you might learn a lot just from the exercise, especially if you decide to use a new language or library for that project. My friend Ivan had recently rewritten his website engine from Java to Haskell and published an interesting blog post about his experience.
  2. You might want to look into website and blogging engines “for hackers”, such as Octopress, Jekyll, Hakyll, etc. I have to say that I like these projects in principle, because I like the idea of keeping blog posts in a repository under source control. However, last time I tried Octopress it couldn’t match all the functionality I’m used to in WordPress, so I didn’t switch. But it is definitely something to keep an eye on.
  3. You might want to use LiveJournal, or Blogger, or a similar service, but then you’d get a sub-domain URL, and the least amount of control over your data and blog configuration. Also you won’t be able to host anything else on your domain. This wouldn’t work for me, because I might eventually add other services under my domain, and in fact I’m already using it to host the AnnotateMe web-service, which produces dynamic annotated images, like the one below.

 

 

Here is a few more tips for those who decided to go with WordPress and self-host their blog. By the way, it is quite a safe choice, did you know that over 18% of all the websites on Internet are based on WordPress?

First, you’d need to find a web host company. There are many choices, mostly similar in the services they offer. Personally I’ve been using GoDaddy for a few years already and I haven’t had any problems, so I can recommend them. You can both register a domain and buy hosting from them. Once you have the hosting, you can add the WordPress engine to your new website in a single click.

Second, selecting a WordPress theme — tastes differ, so I can’t recommend anything specific that would work for everyone. You could start with one of the default themes, like “Twenty Fifteen” or such, and configure it to your pleasure, or you could try to use a theme you like from one of the blogs you read.

Third, there’s a whole Universe of WordPress plugins and even a number of bloggers who are in business of only posting articles like “N best wordpress plugins to do X”. And seriously, you name it and there would be a WordPress plugin for that. I’ve seen a plugin offering “a footer that gives your site the credibility that it belongs to a real business”. Powerful stuff. Unfortunately, valuable and actively supported plugins can be hard to find. So I’ll try to save some of your time and list several plugins I use at the moment, which you might want to install too:

  • BackWPUp — a plugin to backup your blog.
  • Disqus — a commenting system, I liked it more than the default WordPress comments.
  • Email Subscribers — the newsletter management plugin behind my Subscribe page, it automatically emails my subscribers whenever I publish a new post.
  • Google Analyticator — it embeds Google Analytics JavaScript module into blog pages, collects information about all page visits to my blog, and displays a report in the blog admin dashboard showing the number of visitors on a given day, which link did they come from, or which query they used in the search engine to find my blog.
  • Jetpack by WordPress — this is actually a collection of plugins of which I only use a few at the moment, e.g. a plugin that adds the social sharing buttons under my posts.
  • MnCombine — combines and minimizes JavaScript and CSS files used by my blog pages, improves download time and browser client performance.
  • SyntaxHighlighter Evolved — helps me embed code snippets with syntax highlighting into my blog posts.
  • Use Google Libraries — modifies the blog pages to load JavaScript libraries such as jQuery from Google CDN as opposed to your web site.
  • WP Facebook Open Graph protocol — embeds meta-tags with Open Graph Protocol information to improve quality of shared posts.
  • WP Super Cache — improves server response time by caching blog pages.
 

 

My ultimate goal is to keep high signal-to-noise ratio (and data-to-ink ratio) in my blog, and this goal is behind the other decisions I’ve made:

  • I’ve picked a minimalistic theme called Manifest to get rid of the visual clutter typical for many WordPress blogs: sidebar menus, flash-y pictures, ads. I try to not distract my readers’ attention from the central body of text and code. As a nice bonus, this approach also makes my blog friendlier to smaller-screen portable devices.
  • I’ve tweaked the theme and configured the plugins to improve the page load time as measured by Google PageSpeed Insights and similar tools. This makes user experience better, and also may affect the ranking of the blog pages in the search results.
  • I am a dilettante at typography, but I’ve tried to adjust the font to be legible to the best of my knowledge across all the devices I’ve tried it on, and at the moment I am using Lora as the primary font.
  • I try to write only about practical matters, things that in my view could be helpful to somebody.
  • I try to write only about the things I know, or am learning at the moment. Usually this is something related to C++ or other system languages, low-level platform APIs, platform libraries, performance, code reviews, software development tools, and software development process.
 

 

In the end, I’d like to thank John Sonmez for his free blogging course that inspired me to revive this blog and start writing regularly again. This post is too short to cover everything, so to help you start your software blog I recommend you to check out John’s course and also his blog and YouTube channel have interesting materials on this and other topics.

‚Äč