Devise – Test user timeout in feature/integration specs using Warden

Devise is an excellent framework for strapping authentication features onto your Rails app. One of the very handy modules that provides session timeout features is :timeoutable. Being a responsible test-driven developer, you start writing tests to ensure your application behaves correctly when the User tries to perform an action that is not allowed after their […]

Jenkins + Docker = nimble and cost-friendly Continuous Integration

By now you’ve heard all of the hype around Docker. No doubt you have begun forming your own opinion on whether that hype is deserved. (If you’re lacking in opinions, no doubt Reddit can help you find one.) Conversely, I hope one thing all Engineering teams can agree on is the need for Continuous Integration […]

Redis cache – avoid timeout using ping

Are you getting those mysterious Airbrakes telling you a Timeout has occurred trying to talk to Redis and its kept you awake at night worrying what your poor users see while your (hopefully) slave instance takes over for your master in your redis-cluster? Worry no more! Because we’re going to proactively ping our current Redis […]

customize Nginx global directives with Capistrano

If you’re using Capistrano to maintain an Nginx-based deployment, you’ve probably searched around for a helpful gem or two.  Personally, I like this gem so far: It offers the easiest configuration if you’re used to rvm as your Ruby package manager.  I think it handles rbenv well judging by some comments, not so sure […]

RightScale “Restore a Database” is missing a step

Especially if you are interested in restoring a database server from a primary backup: The instructions for “Restore a Database from a Primary Backup” in this runbook for PostgreSQL  –  Database Manager for PostgreSQL 9.1 (v13.5 LTS) – Runbook  –  resulted in continual failure no matter what I tried. After coming across this post  –  […]

careful using git cherry-pick to grab a commit from a “newer” branch

I just discovered some pretty surprising git behavior: We had two release branches, lets call them v100 (current production) and v101 (next release candidate).  A bug came up and I squashed it on v101. Someone then brought up that we should squash that same bug on v100 and release a patch v100.1 to production.  Fine. […]

updating to ActiveAdmin 0.6.0 and Devise 2.2.3

I decided to upgrade from ActiveAdmin 0.5.1 to 0.6.0 because the configuration syntax for panels, columns, etc. seemed to have been streamlined quite a bit.  Looked cool, right? Well, this turned to take way longer than it should.  Here’s what you need to do: After running ‘bundle update’ to get the latest activeadmin gem 0.6.0, […]

sending HTML formatted email from a Unix command line should not be this much of a pain

but it is…. thanks to Ygor from a 2004 post here: you can send HTML-formatted email like so via ‘sendmail’ (rather than ramming your head against a wall with ‘mailx’): View the code on Gist.