Working with JavaScript Objects

By Joshua Kovach

TIL that when you have a plain object and store instance variables on it, you’re actually setting a class variable across all instances. Here’s how to fix that.

Guard is Your Friend

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

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

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

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.