Building Better Test Suites

Ensure your test suite stays maintainable, usable and a joy to work in over the long term
By Jason Roelofs

Test suites are important tools to help ensure the correctness of your application, but the suites need to be architected, designed, and maintained to ensure the test suite itself doesn’t rot and become a burden. This post covers some high level concepts and architecture decisions that keep test suites maintainable.

Containers, Docker, and Kubernetes Part 3

How to get started with a Kubernetes configuration
By Jason Roelofs

You want to try out this Kubernetes thing but aren’t sure how to start? Great! In this post I go over how I structure my Kubernetes configs, how I apply them to clusters, how to deploy changes, and how to manage secret values.

Containers, Docker, and Kubernetes Part 2

What is Kubernetes and how does it make containerized infrastructure easy?
By Jason Roelofs

You want to take the next step and move to containers, but still have some questions that Docker doesn’t answer? Take a look at Kubernetes, the container orchestration tool from Google!

Containers, Docker, and Kubernetes Part 1

Looking at containerized infrastructure
By Jason Roelofs

You’ve heard of Docker and containers but are still not sure if they’re a good fit for your requirements. We take a look at the benefits and concerns of switching to containerized infrastructure.

Solutions to Potential Upgrade Problems in Rails 5

Don't be surprised by some of the newest changes in Rails' latest upgrade
By Jason Roelofs

The Rails 5 upgrade has a few changes that may cause confusion. We look at how to get around the disabling of autoloading and look at the new deprecation warnings.

Modern Javascript and Rails

Cleanly integrating modern Javascript into a Rails app
By Jason Roelofs

Want to write ES6 and/or use JSX or any of a vast array of modern Javascript tools in your Rails app? What about also writing your Javascript tests with the same tools? It’s easy with Browserify-rails and Teaspoon!

Bootstrap Your App

Get your app up and running on a new machine
By Jason Roelofs

Insert your app’s bootstrapping into CI to ensure that setting up a new developer is one script invocation.

Encrypting Secrets with Chef Vault

By Jason Roelofs

Tools like Chef and Puppet make configuring servers repeatable and reliable. However, handling the private data, like server passwords and API access keys is still a difficult problem. Today we take a look at one solution available to the Chef community: Chef Vault.

Time to Bring Back Fixtures

Why I decided to give them a try again
By Jason Roelofs

Fixtures are great tools that have been sadly overlooked for a long time in the Rails world. Lets start using them again.

Recommended Security Setup for AWS

Keep your data safe
By Jason Roelofs

Amazon Web Services runs an every growing percentage of the Internet, which means AWS accounts are more so a target of those-we-will-not-name. This post outlines the recommended minimal setup we at Collective Idea now apply to every Amazon account to ensure sufficient security.

Selective Restore in MongoDB

Avoid the slow and painful process of a full restore
By Jason Roelofs

MongoDB makes it really easy to selectively restore deleted or lost data from a backup dump without doing a full restore.

False positives on Travis CI with CodeClimate / SimpleCov

By Jason Roelofs

The latest version of SimpleCov has a bug that ignores test exit statuses.

Ruby 2 SSL Verification Failed?

By Jason Roelofs

Many users are having OpenSSL validation issues with Ruby 2.0 across various platforms. Turns out there are multiple issues at hand, each requiring different fixes.

Debugging Firefox Failures on Travis

By Jason Roelofs

When strange failures are plaguing Firefox during Travis CI test runs, get a hold of Travis Support, they’ll help you out!

Rack::Cache, tmp/cache, and running out of inodes

By Jason Roelofs

Rack::Cache + custom user content + multiple releases + time == dead servers.

Running HAProxy behind Amazon's ELB

By Jason Roelofs

You can run HAProxy behind Amazon’s ELB for increased control over traffic to your web servers. The following tweaks will help with stable, sustainable performance in such a setup.

Playing with Go: Embarrassingly Parallel Scripts

By Jason Roelofs

We can write parallel execution scripts in any language, but some work much better than others. Google’s Go makes embarrassingly parallel tasks almost trivial to write.

Tests Still Slow? Might be bcrypt!

By Jason Roelofs

How Google’s perftools led me to add a single line of code that cut test suite run times in half.

Keep your AWS environments separate with IAM users and groups.

By Jason Roelofs

Amazon’s IAM service lets you restrict and secure access to your AWS data and services to individual users or groups allowing you to have multiple environments (staging, production, etc) under the same AWS account without worry.

Where's Your Business Logic?

By Jason Roelofs

Can you point to a single place in your application and say “here is where we implement our business rules and use cases”, or are your use cases spread out across controllers, models, libs and elsewhere? Do you have fat models, fat controllers, and/or a massive lib directory? Is adding new features quick and easy or painful and time consuming? I have a solution to your pain.