Advanced SQL in Rails - Part 2

A photo of Alex Taylor Alex Taylor 12 Aug 2016

Welcome back, dear readers! In part 1 of this post, we did a quick overview of SQL’s window functions and views. Now, we’re going to see how we can use those features from right within Rails.

Advanced SQL in Rails - Part 1

A photo of Alex Taylor Alex Taylor 04 Aug 2016

The more I work with Rails apps, the more I love ActiveRecord. It’s a really elegant abstraction over your data layer, and lets you focus on business logic instead of crafting SQL statements. For the majority of use cases, this works great. But as apps grow in both database size and complexity, we can start to see some compelling reasons to get “closer to the metal” and work more directly with our database.

Documented JSON-API with image upload

A photo of Paulo Ancheta Paulo Ancheta 20 May 2016

We’ve been working on a Rails app that uploads images using carrierwave. We wanted to extend this functionality to enable our friends at Steamclock to build a mobile app that upload images as well. In order to make collaboration easy, we decided to follow the JSON API specification and to generate the API documentation.

Episode 20: The Big Dream

One of the easiest mistakes to make as a company is to lose sight of where you’re headed. When your team has their heads down, hammering away at their keyboards, it’s important to have a destination to look towards to keep everything else in perspective. This week, Kalv and Pat talk about the process Brewhouse is taking to establishing a Big Dream for the next 3–5 years, and what we hope that Big Dream will do for us as we work day to day crafting products people love.

Episode 19: Pricing service work

Brewhouse bills clients based on weekly iterations. However, there is an ongoing discussion about whether pricing your work based on time is the most effective approach. This week, Kalv and Pat chat about pricing design and development for client services.

Episode 18: A chat about chatbots

Conversational UIs are all the rage these days. With the rise in access to mobile devices in developing countries, chat services and bots are quickly becoming critical for economic development. How do we take advantage of this changing paradigm here in North America? Kalv and Pat talk about their experience with conversational UIs and discuss the problems still to be solved in this emerging space.

CarrierWave, Cloudinary and the path to Image Manipulation Enlightenment

A photo of Alex Taylor Alex Taylor 12 Apr 2016

Images on the web are tricky business these days. With the rise of high-density screen resolutions, there’s an increasing need to serve up a multitude of sizes and formats. Manipulation is also key: users want the ability to crop and edit their photos, even perform more advanced manipulations like colour correction and compositing.

For some time now, ImageMagick has been the mainstay for programmatic image manipulation. However, there’s a new neighbour on the block, and they live in the cloud.

Cloudinary is a SaaS product that offers storage and manipulation of images and video. Like Amazon S3 or Rackspace Cloud Files, it provides object storage for media assets. But the real magic of Cloudinary is its ability to dynamically generate and manipulate images on-the-fly.

We’ve been playing with Cloudinary recently on a client project, and I wanted to share a couple of tips on integrating Cloudinary into a standard Rails/CarrierWave workflow, as well as some general Cloudinary tips on image manipulation.

Accelerate your React testing with Enzyme

A photo of Alex Taylor Alex Taylor 18 Mar 2016

When it comes to integration testing, Javascript frontends are notoriously hard to test — there’s lots of setup required, and you often need to rely on clunky simulations of user interactions like clicks and keyboard events.

React’s virtual DOM offers some interesting opportunities for simplifying the process of testing, and Airbnb’s Enzyme framework makes testing your components an absolute pleasure. We recently tried out Enzyme on a React project at Brewhouse. We were blown away by how much simpler it was to write tests, and we’re never looking back.