See that light at the end of the tunnel? Yes, we are there now. Believe it or not, the concept of this blog first came to mind way back in 2003! Yes, that long ago! You never knew, did you? In its early form, this site never got off the drawing board.
Why would you blog but keep it private for over 10 years? Sounds useless. In a word: life! It takes effort to build a website and put it out there if you want to make it your own and not end up with a cookie cutter look and feel. For a number of years, could not devote enough time and energy to this. You may say that's understandable. You may even agree when a software developer says they don't want to spend precious downtime on yet more work.
The time factor is not trivial. As a developer, coding is enjoyable and a time investment beyond the professional work. But, life is not just about software. Other things often get priority, as they should. So why not use an existing platform to customize things and roll the blog out quickly & easily?
Oh, you mean something like Blogger, Tumblr or Medium? Been there, done that! First, set things up on Blogger and began to write but quickly got frustrated with its poor customization support. That led to migrations to Tumblr and then Medium. Those two platforms also don't support much customization and even worse put limitations on how they can be used. Not unreasonable with free services. But as a developer that is bad news since it's harder to get the blog to look and function the way you want.
Enter WordPress, very customizable but prone to potential web security issues especially with its plugins. Web security expert Troy Hunt's New Blog post goes into detail on the trouble with WordPress. WordPress supports a massive range of features that make it an amazingly easy, powerful and flexible platform to work with. But, WordPress is bloated with features that one doesn't always need. The result is that it becomes difficult to sort out wanted and unwanted functions when all you want to is blog. Really prefer a lighter, cleaner approach. Another concern: the code generated by WordPress is Chef Boyardee spaghetti and the platform defines the spaghetti with little say from us. As a pure blogger that doesn't matter but from a developer's perspective it is not very impressive.
Besides the well known blogging platforms, also took a look at the Microsoft technology stack. Figured anything built on those technologies ought to be easy to customize after 15+ years of professional experience with MS technologies. The problem is that none of the .NET-powered CMS/blog engines match up to expectations. Take the Orchard CMS platform. It is powered by the ASP.NET MVC framework and was an obvious, easy extension of my professional knowledge. Though Orchard is built for re-use and is very well designed, it is very complex. You have to look at most everything in terms of a server-side language with terminology like modules, features, content types, content parts, content items, content fields, zones, layers, and shapes. Totally fine for business applications built on the .NET framework but feels a little heavy for a blog engine.
Other .NET Framework-driven CMS/blog engines include DNN Platform, NBlog, MiniBlog, BlogEngine.NET, and Umbraco among others. But with each one there are trade-offs and concerns: the customizability was again not up to par with expectations, some are powered with older ASP.NET Web Forms technologies instead of the MVC flavor, costs are prohibitive, etc. After a great deal of struggle and thought, concluded that the .NET powered products don't gel well with what one envisions for a blog.
As a blogger, you need to focus your thoughts and produce good content. It's no different than writing a journal, a personal diary, an academic paper or a short story. People write at least one of those at some point in their lives. If you look back at your writing after some years, you should feel that the writing remains compelling. The truth is that, for a long time, never could manage to organize thoughts enough. Also struggled with what to write about. Writing about familiar things is easier, but trickier if there is no personal connection to a topic. In the end, decided to stick to topics of personal interest and explore unfamiliar ground very carefully with plenty of research to back up ideas and document facts.
A New Approach
jQuery? Isn't that bloat and why not use AngularJS or Angular without the jQuery dependency? jQuery isn't a necessity, it really depends on whether or not it serves a purpose for you. In its compressed, minified form, jQuery is only 85KB in file size, so most likely you can get away with using it if you need to. You Might Not Need jQuery details how jQuery can be avoided. Also, you have to consider whether or not you want to support pre-IE8 browsers. If you do, the need for jQuery increases. For this blog, aside from the utility functions, it's the jQuery plugins that provide some extra features that are very useful. And oh, gave up on the older IE browsers ! AngularJS/Angular are great for building Single-Page Applications (SPAs), but they don't work well with Ghost which is already powered by Ember with its integrated Handlebars templating support.
What about this Tachyons business? Sounds like something out of Star Trek! The name does match, but no this has nothing to do with Star Trek, rather this is a CSS framework. Then why not Bootstrap? Here again, it's a judgment call/preference. Bootstrap is no doubt awesome and the defacto standard for web page design. But like the problem of jQuery bloat, here again, Bootstrap is potentially bloat, depending on which of its components and features are used. Tachyons takes the functional approach of using as little CSS as possible, defined by atomic classes, to design interfaces. The nice thing is that you can still use Tachyons with Bootstrap, Pure or any other CSS framework.
This blog makes use of the Unsplash photo collections. By default, Ghost integrates Unsplash to provide images for its blog posts. This is an amazing feature which makes it extremely easy to find high-resolution photos that add a visual highlight to your posts. It is not required, but you can give credit for any photos you use. Here is an example of using a badge to credit the photo used for this post.
That's it! The point of this page was to look back at the history of this blog; detail the thought process that went into it's design, development, and content; and give credit where it's due. As the blog starts to flesh out, the tools used and their purpose will become clearer.