Hashrocket.com / blog

Recent Articles

Small websocket shootout

Websocket Shootout: Clojure, C++, Elixir, Go, NodeJS, and Ruby

Posted by

When a web application has a requirement for real time bidirectional communication, websockets are the natural choice. But what tools should be used to build a websocket server? Performance is important, but so is the development process. A performance benchmark alone is not enough. We also need to consider the ease of development. This shootout compares a simple websocket server implemented idiomatically in Clojure, C++, Elixir, Go, NodeJS,...

Small a nursery for unruly young stars

Tips and Tricks from Integrating React Native with Existing Mobile Apps

Posted by

A lot of clients come to Hashrocket with an existing mobile app and they expect us to deliver new features as soon as possible. With an easy integration, native performance, support for the main platforms and great development experience, React Native has proved to be the right choice for maintaining existing mobile apps.

This blog post describes some of the tips and tricks that we face when we integrate React Native with existing apps. The...

Small filters

Debugging Action Callbacks (aka Filters) in Rails

Posted by

Rails provides before and after actions in controllers as an easy way to call methods before or after executing controller actions as response to route requests. Action Callbacks can be particularly helpful when implementing authentication/authorization for example, and are heavily used by gems such as Devise.

Unfortunately this feature can be awfully painful to debug. With many callbacks affecting your controllers this can be a rather arduous...

Small elixir requests

Mocking Requests in Elixir Tests

Posted by

When writing code that relies heavily on the results of external API calls, we need to be thinking about how we're going to test how our program reacts to different responses. Making an actual request would make our test suite extremely slow, so this is a good time to mock our responses.