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.
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 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.
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.
You don’t need an
sleep() is fickle. Make Espresso wait for your observables running on background schedulers with this one cool trick!
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.