Reinventing the Wheel
and the Inception of a Blog

15 MAY 2013 | @ahsan_s | Software | Software | 1100 | 1608

There are numerous feature-rich Blog Engines and Content Management Systems (CMS) available online, and like the best things in life, many of these are completely free. But I still decided to build my own!

My Software Development Tools - compilation of logos by @ahsan_s
My Tool Box

Rolling my own, while there are so many good ones freely available may seem like a waste of time, but I thought as a developer who’s just entering the wonderful world of Ruby and Open Source software, this would be a great learning exercise. What better way to learn something than going out in the wild and tackling the beast yourself? Besides, since this is only for personal blogging, it doesn’t really need to have all the bells and whistles that many of those readily available systems come with. It just has to be neat and follow a consistent style. How hard can that be?

I set out to reinvent the wheel, not boil the ocean!

Turns out, its not exactly as easy as I thought it’d be. Primarily because there are a lot of choices I had to make that I didn't see in the beginning (does this scenario seem familiar, or is it just me?) --- more on this on my next post. There's also a lot of learning I had to do along the way. Many developers I know have the amazing ability of learning by doing. But I must admit that I have a serious handicap --- I just can’t dive in to something without first reading a lot about it, and I’m not a fast reader either!

The other motivation for doing this on my own is my newfound interest in design and typography. I needed a project simple enough that I could finish in a reasonable amount of time (outside of my day job!), and yet interesting enough to provide me with a fair amount of learning opportunity in the areas that I'm interested in.

So I started by looking in to my toolbox to see what I can use, and what else, if anything, I may need to add. I already mentioned Ruby --- which I think is absolutely intoxicating! Then I had to choose between Rails and Sinatra. Sinatra’s minimalist approach always fascinated me. It is also known for being less opinionated compared to Rails. It just lets you do your thing and stays out of the way! I also decided to go with Haml, again because of its simplicity compared to ERB as a templating framework. In numerous conferences I attended over the last couple of years, I’ve notices many of the Ruby developers (and even some .net developers) prefer to use Sass (Syntactically awsome stylesheets) over CSS, and for good reasons. I prefer the SCSS (Sassy CSS) variation of Sass because of its direct resemblance to raw CSS. Compass just makes Sass so much more fun to use. CoffeeScript, which is really a neat (and minimalist) way of writing JavaScript, was also a natural choice for me. Finally I needed to use a JavaScript library to easily add behavior to my site. I am certain that jQuery is the most popular for this purpose, as of this writing. Foundation 4, however, uses a jQuery alternative called Zepto, which is considered practically a drop-in for jQuery at about one fifth of the footprint (at least as of this writing). It was also easy for me to adopt because of my existing working knowledge of jQuery.

Last year (2012) I’ve read Etahn Marcotte's seminal book ‘Responsive Web Design’ which started the whole RWD revolution for web development. I’ve also read a number of other books, including several dozen articles on the subject. The proliferation of web enabled devices pretty much mandates that most, if not all, new websites need to be responsive --- that automatically adjusts to a device's size or orientation to ensure best possible experience for the user. (Whether there's still a need for device-specific design, is by the way also a topic of raging discussions these days). So I built the first iteration of my blog engine following Etahn’s book. However, later I rewrote it using Zurb Foundation grid system. This was primarily because of the numerous other features besides responsiveness Foundation offers that make life a lot easier. Hey, I set out to reinvent the wheel, not boil the ocean!

By the way, there's no shortage of CSS front end frameworks --- there are literally dozens of them. You can see a sample list here. I seriously considered using Twitter Bootstrap. But eventually decided to go with Foundation, which is used by sites that include Pixar, Los Alamos, National Geographic, etc. Bootstrap is a little too twitteresque, if you will --- it is mostly easy to tell if a site uses Bootstrap. But the major factor for me was the fact that Twitter uses LESS, whereas Foundation uses SASS (which I prefer). You'll find a good discussion/comparison of these two popular frameworks here.

It is a journal of my journey in to my passion.

The tool I ended up adding to my toolbox was Adobe Creative Suite 6 (CS6), which has a steep learning curve. But its a lot of fun too! Of the nine awesome tools the Design and Web Premium flavor of CS6 includes, Photoshop and Illustrator are of primary interest to me. Dreamweaver is also quite popular, but I chose not to use it as it lacked support for Haml and Sass. At least that was the case when I purchased the software. By the time you read this Adobe will have replaced CS6 with Adobe Creative Cloud (CC).

Having come from the .net desktop development environment (C#, WPF etc.), this was a whole lot of learning for me!

The toolset I chose to use, hopefully will allow me to create not only websites, but also complex web applications in the future, when needed.

Even though the blog is intended to be primarily on software design & development (and science too), I may occasionally write on different topics of interest to me. It remains to be seen where this blog eventually takes me. I'm hoping It'll remain a journal of my journey in to my passion --- science & software development.

I will appreciate it very much, if you give me some feedback on what you think of the site. If there are aspects you don't like, please let me know why, so I can make it better in future. Feel free to be honest. I won't be offended. Promise.

Thanks for visiting.

Of Interest:

Rolling Your Own Blog Engine
Written in 2006. But still interesting.