Logo of AppSignal

Menu

AppSignal Academy

AppSignal is all about building better apps. In our Academy series, we'll explore application stability and performance, and explain core programming concepts.

Rails' built-in cache stores:
an overview

By Jeff Kreeftmeijer on

Rails' cache stores can store the data in memory, Memcached, Redis, or even straight to disk. But which of the different cache stores is best for which situation?

read more

Rescuing exceptions in Ruby

By Jeff Kreeftmeijer on

A raised exception can be rescued to prevent it from crashing your application once it reaches to top of the call stack. In this article, we'll examine different ways to rescue exceptions.

read more

Russian doll caching in Rails

By Jeff Kreeftmeijer on

By nesting cache fragments, views are almost never rendered completely. Even when the data changes, most of the rendered pages are served straight from the cache.

read more

Understanding system load
and load averages

By Jeff Kreeftmeijer on

The load average tells you the load your system has been under. In this article, we'll discuss how it's calculated, how to read the returned values, and when to be alarmed.

read more

Fragment caching in Rails

By Jeff Kreeftmeijer on

Rails' built-in fragment caching is used to store pre-rendered view fragments, so they don't need to be rendered again unless their contents need to change.

read more

Exceptions in Ruby

By Jeff Kreeftmeijer on

An exception is a signal that's sent when the program doesn't know how to deal with a specific situation. In this introduction, we'll explain what exceptions are, and how to raise one, and how to rescue your app from crashes caused by exceptions.

read more

Understanding CPU statistics

By Jeff Kreeftmeijer on

When using a tool like top or checking your app's CPU usage in AppSignal's host metrics, the metrics are divided into multiple categories. What's the difference between "system", "user", "nice", "iowait" and "idle" CPU time?

read more

Benchmarking Ruby code

By Jeff Kreeftmeijer on

When working on an important piece of code in your codebase, running benchmarks to compare different implementations can give more insight into their execution speeds.

read more

Inspecting data in Ruby

By Jeff Kreeftmeijer on

Most exceptions are caused by unexpected data being passed to methods that work fine otherwise, so it's often useful to trace a piece of data through your application to find the cause of an error.

read more

Debugging exceptions in Rails

By Jeff Kreeftmeijer on

Rails' logs provide a great way to debug issues. Although the raised exceptions don't always make a lot of sense on first glance, carefully retracting the steps the code took to get to the issue is a great way to find out the source of errors in your app.

read more

Reading and understanding Ruby stack traces

By Jeff Kreeftmeijer on

The stack trace gives you a dump of the current state of your call stack whenever an exception is raised, and is helpful in finding out where things went wrong.

read more
Go back

Subscribe to

Ruby Magic

Magicians never share their secrets. But we do. Sign up for our Ruby Magic email series and receive deep insights about garbage collection, memory allocation, concurrency and much more.