Is indexing a form of caching?

A good amount of software engineering goes into an activity that people describe as “make code run fast“. What people usually mean by that statement actually is “make code run inexpensively“. The reason why I say this is performance improvements are usually attempts at better overall resource utilization. There are a few situations wherein the objective is to actually make the code run faster even at a higher cost but.. Read More

What the hell is dependency injection?

Hazard warning: this post is not about Java though it might appear to be so if you go through the first few paragraphs. If anything, it is about how we call the same thing by seemingly different names. One of the worst hellish concept that any programmer has to learn when moving over to the world of Java is the notion of dependency injection. The beast itself goes by many.. Read More

In search of a job queue

Job queues are an essential element in internet application design to execute long running tasks. This stems from the fact that web servers and consequently web applications are best suited for interactive applications. If a particular operation that needs to be carried out fits the description below, then it makes a good case for the usage of job queues For the most part, these tasks need to be carried out.. Read More

Why you can’t always just throw more hardware at it

A long time ago, people used to worry about the efficiencies of software they used to write. Then came a time when processors just kept getting faster every month the pace wouldn’t slow down even after crossing the 500MHz mark. Somewhere around this time, people started writing exceptionally bloated software and the bloat started to grow at a phenomenal pace. Then came the new catch phase hardware is cheap, we.. Read More