Amsterdam, Netherlands
Feb 1, 2023   |  By Daniel Lempesis
Views in Rails don't do much besides showcasing what we want. Sure, they might render slightly different results depending on who's watching (an admin or a logged-in user has a different experience than a guest user, for example), but they don't do much processing on what they're given. Or at least they shouldn't. Often though, Rails projects wind up with a lot of logic in their views. In this post, we'll explore how to use Rails helpers to keep our views clean and readable.
Feb 1, 2023   |  By Camilo Reyes
The Node ecosystem comes with a wide variety of tools that have continued to evolve over the years. These tools are delivered via NPM packages and run in the command line, making them accessible to any developer (you do not need a fancy IDE to get the job done). In this take, we will explore 5 Node tools to learn this year: TypeScript, ES modules, ESLint, the ESLint SpellCheck plugin, and Mocha. These all run via the command line and can help boost your productivity when working on Node projects.
Jan 25, 2023   |  By Ulysse Buonomo
Memory leaks are a pain for gem users. They are hard to track and can lead to expensive infrastructure costs. Memory leaks within a C extension are even worse. You'll see a lot of tools and articles about finding leaks in Ruby. However, you don't have the same access to internals in C. A naive usage of rb_funcall can cause memory leaks: it's much better to use rb_protect instead. So, if you are a C extension writer, please read on for the sake of developers who will use your gem. Let's get started!
Jan 24, 2023   |  By Allan MacGregor
Instrumentation is an essential part of monitoring and operating an application, especially for apps heavily used in production. Even in today's everchanging technology landscape, visibility and observability still challenge developers and system administrators. Metrics and logging are essential for monitoring and operating an application. Metrics measure an application's performance and system health, while logging records system health and application state.
Jan 18, 2023   |  By Camilo Reyes
In the previous part of this series, we optimized our Lambda function. However, our API is open to the public — anyone with the URL can use it and get a response. In this take, we are going to secure our API using a tool called Amazon Cognito. This will only allow authenticated users access to our endpoints. Ready? Let’s go!
Jan 18, 2023   |  By Ulysse Buonomo
Ruby is a wonderful language, made for humans first and machines second. It is easy to read and write. There are plenty of ways to write anything, and you can often guess its standard library by typing the name of the method you would have chosen yourself. Because of this, Ruby's arguments are very flexible, which lets us express our APIs very clearly. But this comes with a drawback: Ruby is quite hard to parse for C extension developers!
Jan 11, 2023   |  By Paweł Świątkowski
As web developers, we tend to approach problems with traditional low-risk solutions. When all you have is a hammer, everything looks like a nail. When you need complex input from the user, you use a form and JSON representation (even if, in retrospect, it is not the most efficient solution). In this post, we'll take a different approach. We'll leverage some tooling to create a business language that extends the functionality of a Rails application. Let's get started!
Jan 10, 2023   |  By Marcos Ramos
In part one of this series, the debugging tools we used — Elixir's IO.inspect/2, IEx.pry, and dbg/2 — required us to insert changes into code directly. Outside the development environment, you probably won't (and shouldn't) have access to your code. Erlang has a few tools to debug code at runtime: :debugger, :dbg.tracer, and :observer. First, let's look at the:debugger, a graphical debugging tool. Let's get going!
Dec 20, 2022   |  By Abiodun Olowode
Memoization is a caching technique to make your Ruby application run more efficiently and faster. In this post, we'll look at the benefits of memoization and when to use it in your Ruby application. We'll also look at some memoization mistakes to avoid. Let's first start by looking at code optimization — what it is and some of the different optimization techniques available.
Dec 13, 2022   |  By Tracey Onim
In an Elixir application, you might need to access certain data frequently, which can be costly. The access time involved in retrieving data at every step can cause high latency, or even make the application crash (due to an increased workload on the database). Caching is the best technique to store the most frequently accessed data and minimize database data retrieval, improving the overall performance of the application.

Made for teams that want to build high quality Ruby and Elixir applications, AppSignal offers amazing insights into errors and performance issues, plus host monitoring and an easy to use custom metrics platform.

AppSignal supports the Elixir language with an Elixir package. The package supports pure Elixir applications and frameworks including Phoenix, Plug & Erlang.

AppSignal supports the Ruby language with a Ruby gem. The gem supports many frameworks and gems including Capistrano, DataMapper, Delayed Job, Grape, MongoDB, Padrino, Rack, Rake, Resque, Ruby on Rails, Sequel, Shoryuken, Sidekiq, Sinatra & Webmachine.

AppSignal now supports Node.js! The package supports pure JavaScript applications and TypeScript applications, and can auto-instrument various frameworks and packages with optional plugins.

AppSignal also has amazing support for catching errors from Front-end JavaScript applications and sending them to AppSignal, including the React, Vue, Angular, Ember, Preact & Stimulus frameworks.

Packed with features:

  • Alerts in your tools: AppSignal integrates with Slack, Flowdock, HipChat, OpsGenie and more.
  • Control your notifications: AppSignal notifies you exactly when you want to. Get the first exceptions per deploy, all of them of never. Set thresholds for performance notifications.
  • Amazing support: We don't do "first line" and "second line" support: you get to speak with a developer, immediately.
  • Send to issue trackers: A single click creates an issue with all the necessary details in your issue tracker of choice.
  • Manage teams and users: Add users to teams and give them access to specific or all, existing and/or new applications you monitor.
  • Focus on design: Developer tools do not need to be complicated and ugly. Our interface is kept clean and easy to use.

Catch errors, track performance, monitor hosts, detect anomalies — all in one tool.