Why is Software Development So Hard?

01 NOVEMBER 2013 | Software | Software | 2100 | 1816 | 1

The recent fiasco over the launch of the healthcare.gov website (which is part of the US government’s effort to implement the Affordable Care Act) will almost certainly find its place in text books as a glaring example of yet another failure of a multi-million dollar software project to deliver on time and within budget.

As the industry and the associated technologies mature, will software development eventually become less of an uncertain endeavor, or will it continue to be complex forever? In the paragraphs that follow, I'll present some thoughts from different perspectives. You be the judge.   >>>

Removing Argument Order Dependency in Ruby

15 OCTOBER 2013 | Software | Software | 1500 | 1812 | 2

About fifteen or so years ago when I first read the bible on Refactoring (Refactoring: Improving the Design of Existing Code, by Martin Fowler, Kent Beck, et al.), the first chapter had a couple of pages of example code. It was pretty innocuous looking, something a reasonably experienced developer would write, I thought at that time. Nothing jumped at me that could be an obvious red flag. As I kept on reading, the authors revealed about 23 or so different items that could be improved to make the program better. I was floored! (Following few days were marathon reading of the rest of the book!)   >>>

Ruby Iteration Methods - Part 2

01 OCTOBER 2013 | Software | Software | 1400 | 1374 | 2

In our last post we talked about Ruby iteration methods. Through numerous examples we saw how they help us write less code. We also listed the more commonly used iteration methods, with examples, that most Ruby built-in collection classes support.

We've come a long way on the topic of iteration, and we have a bit more to go. What we didn't talk about in our last article, however, is how the Ruby collection classes uniformly support those iteration methods. We promised to talk about it in this post, along with how we can create our own collection classes that also support all those iteration methods. Without much ado, let's get started!   >>>

Ruby Iteration Methods

15 SEPTEMBER 2013 | Software | Software | 2300 | 1717 | 6

If you are writing in Ruby and still using for and while loops for iteration or accumulation over collections, you are almost certainly doing it the old-fashioned way without a good reason! Instead, you should really be using Ruby's built-in iteration methods, particularly if you really want to bring out Ruby's real expressive power. You'll also be hard-pressed to find experienced rubyists still using for and while loops.

Even if you don't care so much about looks (of your Ruby code, that is), you should still avoid for and while loops in favor of iteration methods. Your fingers will thank you!   >>>

Closures in Ruby: Blocks, Procs and Lambdas

01 SEPTEMBER 2013 | Software | Software | 2400 | 5946 | 15

Recently I've been spending some time trying to better understand Ruby Closures in general, and Blocks, Procs and Lambdas in particular. Fortunately, there are a large number of articles available on the internet on the subject. Some of them are really good and I'll be listing those that I particularly benefitted from at the end of this article.

So why another article on the topic? You can think of this like a "note to self". I extracted what I needed to remember as a reference for myself. If anyone else benefits from it too, that'll be a bonus!   >>>

Designing a Simple Blog Engine and the Lessons Learned

01 JUNE 2013 | Software | Software | 3500 | 2003 | 4

In my last post I talked about why I set out to write yet another blog engine. Basically the whole purpose is to learn a number of technologies and tools that I planned to use for this project. I also talked a little bit about why I chose this particular set of technologies.

Just to be clear, this post is not about a comprehensive design of a perfect blog engine. It is just a journal on my feeble attempt at creating a rudimentary system that I can use to start blogging, and what I learned from the whole exercise.   >>>

Reinventing the Wheel and the Inception of a Blog

15 MAY 2013 | Software | Software | 1100 | 1692 | 1

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!

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?   >>>