This article is a practical introduction to DCI (Data Context Interaction). I’m not going to explain all theory behind it. Instead, I’m going to show you what kind of problems DCI is trying to solve and how it can be implemented in…
Continue Reading… As Ruby developers, we often forget how good we have it. We’ve got a awesome library distribution system in Rubygems, we use a powerful and flexible language that just begs to be used for DSLs and a culture of open development and…
Continue Reading… After having used many different queueing systems, from the venerable BackgrounDRb, to DelayedJob, to roll-your-own solutions, I’ve settled on the excellent Resque. The now-famous blog post from GitHub’s Chris Wanstrath says it all, and the README has everything you could ever hope…
Continue Reading… Rule one to metaprogramming: Don’t Panic! Like many others, I have struggled with the term metaprogramming. For the purposes of this article I’ll be going broad with my working definition of metaprogramming to include: Any code that significantly raises the level of…
Continue Reading… When I first started with RoR, I used to wonder how developers deployed their application with such ease. Here’s a guide which should come in handy if you want to deploy a Rails app with Nginx, without making the whole process look…
Continue Reading… If you’re not familiar with this series, please consider reading the introduction. Arrays in Ruby are pretty important. I know…reading that sentence you might be thinking “Arrays are important in all languages” but that’s not really true. There are a lot of…
Continue Reading… In part one of this series, we looked looked at the basics of functional programming and visited in detail immutability and side-effect free code. Today, we’re going to look at higher-order functions and currying, two amazingly useful functional style features that Ruby…
Continue Reading… What is DDD There are many kinds of complexity that you have to deal with developing software and different kinds of applications will have very different sets of problems you need to solve. If you are building the next Twitter, scalability and…
Continue Reading… Just about every type of datastore has some form of indexing. A typical relational database, such as MySQL or PostreSQL, can index fields for efficient querying. Most document databases, like MongoDB, contain indexing as well. Indexing in a relational database is almost…
Continue Reading… A couple of years ago I was working on a legacy enterprise Java project where the customers were obsessed with the production environment. They didn’t allow my team to deploy new versions of the apps we were developing. The most interesting thing…
Continue Reading…