I don’t often use a debugger with Ruby, but when I do, I use…ruby-debug19? The ruby-debug19 gem has been the most common debugger for ruby 1.9.x for some time. Sadly, it is no longer maintained. What to do? We’re moving to the aptly named debugger gem and we recommend you do, too. As it happens, […]

Here at Solano Labs we believe in the importance of measurement. This philosophy applies equally to the realms of performance and quality. The fact is, even skilled programmers are often wrong when they rely on their intuition to tell them where the slow path in their code is or where the technical risk is. New […]

File systems are a ubiquitous abstraction in computing: they provide a natural way to manage raw storage and provide a mapping from file names to stored objects. Frequently we can leave the messy details of semantics to the poor soul implementing the file system. The basic interface is very simple: a file system consists of […]

It is a new year and we’re excited about a number of new features we’ll be announcing over the course of the next few weeks. In the meantime, those of you using ActiveRecord 3.1.0 through 3.1.2 together with the Postgres database adapter may want to consider updating to ActiveRecord 3.1.3. We’ve seen a number of […]

Most web sites end up needing some sort of background job queue to process requests that don’t belong on the critical path. In the Ruby on Rails world the two most common are Delayed Job and Resque. Writing tests for either is pretty straightforward with cucumber if you have your relational database (delayed job) or redis […]

Ruby 1.9.2 introduced a new YAML parser called psych, which in theory is better than syck, the existing parser. Syck is the parser in 1.8.7 and REE and still the default in 1.9.2 but it is unmaintained. Ideally, we’d be able to just switch over to psych with 1.9.2, but there are number of outstanding issues […]

Here at Solano Labs we package much of the code we deploy as gems. This includes the tddium command line interface as well as internal tools. As you would expect, we use a combination of RSpec and Cucumber to test these tools. We’ve found Cucumber and Aruba to be particularly useful tools for testing the […]

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. -John Von Neumann Good sources of random bits are hard to come by, particularly in the cloud. Pseudo-random generators (PRG), particularly cryptographically secure ones are something of a dark art. All of them depend upon the quality (or […]

We’ve been busy adding features to Tddium in the last few days, including MySQL 5.1, Sqlite3, and Spork. Redis and MongoDB are implemented and about to be released. More importantly, we’re now using Tddium internally on a regular basis and I have to say it is a big step forward. Why? Well it certainly is […]

Back at the end of March we talked about the importance of having good backups in the cloud. Today, I’ll describe the system we use here at Solano Labs in a little more detail. For applications hosted in Amazon’s cloud, we use EBS volume snapshots stored in S3. The general approach is force the system […]