Rails::API vs. Sinatra vs. Grape: which Ruby microframework is right for you?

By Derek Bullet_white Comments Comments

Rails dominates Ruby web frameworks: the next most popular framework, Sinatra, has 5% of the popularity of Rails. However, that doesn't mean non-Rails frameworks like Sinatra and Grape don't have their place.

When does it make sense to step away from ActionController and use another framework? What are the sweet spots and gray areas for these frameworks?

I'll explore these questions below.

Read More →

 

Unicorn vs. Puma vs. Passenger: which app server is right for you?

By Derek Bullet_white Comments Comments

The Ruby app server ecosystem has consolidated around three app servers in 2017: Unicorn, Puma, and Passenger 5. What specific problems must an app server solve for Ruby? How do you pick the right app server? Is there a need for each of these app servers in 2017?

In this post I'll cover all of the above, as well as compare and contrast the three leading Ruby app servers.

Read More →

 

Honeybadger's Ben Curtis on bootstrapping, competing aganst VC-funded companies, and life managing a large Rails app

By Derek Bullet_white Comments Comments

Exceptions happen. To everyone. For half a decade, Honeybadger has given sanity to the art of bug hunting, monitoring exceptions for Heroku, eBay, DigitalOcean, and many more. I was able to steal some time from Ben Curtis, one of the Honeybadger co-founders, to talk about their origin story, life as a self-funded company, his favorite web framework in 2017, the infrastructure behind Honeybadger, and more.

Read More →

 

Making sense of ActiveRecord joins, includes, preload, and eager_load

By Derek Bullet_white Posted in HowTo Bullet_white Comments Comments

Like a pair of jumper cables, ActiveRecord's joins, includes, preload, and eager_load methods are incredibly useful, but also very dangerous when used incorrectly. Knowing when and where to use each approach - and even when to combine them - can save you considerable trouble as your app grows.

I'll explore the when and where of each method below.

Read More →

 

State of the 2017 Rails Stack

By Derek Bullet_white Posted in Development Bullet_white Comments Comments

Are folks upgrading to Rails 5? Where is the Postgres vs. MySQL battle heading? Are devs embracing Puma and concurrency?

If you're curious about the above, you've come to the right place. We collect gems used on the apps we monitor at Scout to assist with debugging issues and to prioritize libraries we want to instrument. This data set, which is across thousands of apps, should be enough to grab general usage trends.

Without delay, lets dig in.

Read More →

 

Elixir foundations for Ruby Devs: Recursion

By Derek Bullet_white Posted in HowTo Bullet_white Comments Comments

I can't recall writing a recursive method in Ruby. I think that's because I find recursion more confusing than iteration (ie Array#map). Additionally, recursion isn't efficient in an imperative language like Ruby.

While I find recursive functions a bit difficult to grok in any language, writing a recursive function in Elixir is a good exercise for 3 reasons:

  1. Unlike Ruby, there isn't a performance hit when you use recursion in Elixir.
  2. Exposure to the inner workings of the List type.
  3. Exposure to pattern matching in multiple ways.

I'll start with some background on List and pattern matching, then write a function to sum the contents of a List. Finally, we'll write a recursive map function.

Read More →

 

Older posts: 1 2 3 ... 60