Guard of Buckingham Palace by MaryG90 is licensed under [CC BY-SA 3.0] (http://creativecommons.org/licenses/by-sa/3.0)

Guard is Your Friend

Get instant test feedback using Guard::RSpec and other Guard plugins.
By Joshua Kovach

Test-driven development can be a little slow going, jumping between your code and your console, and targeting tests by line is prone to error. Use these tools and techniques to streamline your TDD.

Cropping Animated GIFs with MiniMagick

Use this method to crop the actual canvas and not the frame
By Joshua Kovach

Cropping an animated GIF with crop will continue to use the original image’s canvas size. This cool trick will ensure the cropped image ends up the correct size.

How We Develop Mobile Applications - Pt 2 - Android

Getting our environment setup for Android
By Joshua Kovach and Victoria Gonda

Now that you know what your mobile application will do and look like, it’s time to get your various environments set up. Here’s our list of things we check off at Collective Idea for creating an Android app.

Retrofitting Espresso

How to get Espresso to wait for RxJava's background schedulers
By Joshua Kovach

You don’t need an IdlingResource, and sleep() is fickle. Make Espresso wait for your observables running on background schedulers with this one cool trick!

Bi-Directional and Self-Referential Associations in Rails

By Joshua Kovach

I’ve been working on an application that works to match users together based on a complex set of criteria (read: big slow database query and in-memory processing). The core usage of the application revolves around these user matches, so I want to make sure that either the algorithm will run very fast or can be cached so that it’s not run every time a user visits their matches page.

The most important requirement for our matches is reciprocation. To solve this problem and meet all of the requirements, we can create a bi-directional, self-referential, self-syncing, many-to-many association between users using a has_many :through association with a join model to keep track of a user’s matches.