Ruby is a beautiful language. What makes it so elegant is the presence of an insane amount of facilities that reduce the amount of code you have to write. There’s a lot of these little pieces and dealing with all of them…
Continue Reading… “Favor composition over inheritance”, commonly attributed to a 1994 Book, Design Patterns, by a bunch of very smart people known as “the Gang of Four”, is often given as a solid piece of software development advice. In this article I’m going to…
Continue Reading… You have deployed your Rails application to your VPS, or to Heroku. Traffic starts to arrive as interest in your application builds. Next, it goes viral. Then your application crashes… Much has been discussed about the scalability or otherwise of Rails. Conventional…
Continue Reading… Deploying a PHP web application involves either uploading files to a server via FTP, or committing and pushing to a master branch of a Git repository. There is nothing complex about it. Deploying a Rails app is easy according to the official…
Continue Reading… It is more than likely you write tests for your Ruby code. There are many forms of testing we can employ from isolated unit level to full stack integration. A common workflow for this is to pull the latest “clean” commit of…
Continue Reading… If you’ve got the sort of application which benefits from full page caching then chances are you’ve already had a look at rails style page caching. For the unfamiliar, page caching is useful when you’ve got an action in your app which…
Continue Reading… 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… We make use of BDD and object oriented programming techniques to obtain clear and elegant code, right? Actually, these are outcomes of the main goal: to create code with low maintenance cost, code that doesn’t demands a lot of time and people…
Continue Reading…