Browsers load static images from your website again and again if your web server does not send an expires header with a date far in the future. To avoid that unnecessary traffic on your servers and unnecessary load times for your users, it's a good idea to let your nginx send those expires headers. But, … Continue reading Far Future Expires Headers For Ruby On Rails With Nginx
Category: Tools & Technology
Getting Started With The Opscode Chef Platform – Configuration Management In The Cloud
In "The Moving Parts of Opscode Chef" there was an interesting discussion about the need of a highly available chef server if you want to use opscode chef as your configuration management tool of choice. Especially for small to medium sized enviroments running your own chef server is overkill. If you don't want to use … Continue reading Getting Started With The Opscode Chef Platform – Configuration Management In The Cloud
Automated Configuration Management With Opscode Chef: The Basic Moving Parts
The Moving Parts Managing your infrastructure with Opscode Chef involves a few moving parts you need to be aware of. As I found it quite hard to differentiate, I want to share the basics with you: Chef server There you manage all your nodes and roles. The chef server distributes cookbooks to the nodes. Chef … Continue reading Automated Configuration Management With Opscode Chef: The Basic Moving Parts
Xen: Debian Lenny Dom0 with Ubuntu Lucid Guest
It sounds like a simple thing to do: As Ubuntu does not have support for Xen by default, I wanted to run a Debian Lenny Server as Xen host (Dom0) with Ubuntu Lucid (10.04) LTS as guest (DomU). But there were some obstacles: debootstrap does not support Ubuntu Lucid by default Ubuntu Lucid cannot boot … Continue reading Xen: Debian Lenny Dom0 with Ubuntu Lucid Guest
Simple Database Updates with Ruby
As our PHP development team grows we've begun running into the familiar problem of database migrations. And not only between local dev environments, but deployments too. It's nice that Susie told Joe Developer about her latest db changes so he can continue work on his feature, but if I need to do a release early … Continue reading Simple Database Updates with Ruby
A/B Testing with Webrat
It all began a year ago. We wanted to introduce a new navigation bar, but gradually, gaining feedback (and confidence) that it was the right upgrade for our users. My idea at that time was a random cookie which would show 20% of our users the new navigation while giving them a separate google analytics … Continue reading A/B Testing with Webrat
Why your boss will love Capistrano
Scaleability is a term near and dear to a CTO's heart. It's also the most important factor in growing a website. If you want to avoid the "fail whale" at right, you have to be able to scale your application to run on hundreds (and, if you're really lucky, thousands) of servers. Let's take a … Continue reading Why your boss will love Capistrano
Continuous Integration with Hudson
Wow - a big, fancy phrase that may seem intimidating at first. Let's break it down: "Continuous" meaning constantly, all the time; and "Integration" - building smaller parts into a larger whole. "Constantly Building" ? Well, that's pretty darn close. So, what are we constantly building here? Sure, we're churning out new features regularly, but … Continue reading Continuous Integration with Hudson
Rethinking code reuse with Modularity for Ruby
This is a guest post by our friends over at makandra, a cool Ruby on Rails development shop. Today they announce a great new Ruby gem for dealing with separating concerns in your ActiveRecord models. Reusing code is hard. But although we knew that high-level components don't work, we found ourselves rewriting similar code again … Continue reading Rethinking code reuse with Modularity for Ruby
RSpec Tips & Tricks
Throughout the last couple of days, I did a bigger refactoring of our Ruby on Rails application. As I changed quite a few moving parts, I covered everything I did with RSpec. It's really an incredible feeling to have all your bases covered with automated tests when you finally start the manual regression test. Along … Continue reading RSpec Tips & Tricks