Systems | Development | Analytics | API | Testing

AppSignal

Real-Time Form Validation with Phoenix LiveView

LiveView is a compelling choice for building modern web apps. Built on top of Elixir’s OTP tooling and leveraging WebSockets, it offers super-fast real-time, interactive features alongside impressive developer productivity. LiveView keeps the developer’s mind firmly rooted on the server-side, even when testing and debugging. This can empower you to deliver interactive features in single-page apps faster than ever before.

Improve Your Life with Long Error Messages

It is incredibly helpful to quickly detect when a customer encounters an error and where the error originated from in your source code. Thankfully, this is where many interpreted languages shine. They always include a complete backtrace — the path where the call was made, which caused the error to be raised (or thrown). In AppSignal, any error alert will bring you to an incident detail page that shows you that backtrace.

How to Reduce Memory Bloat in Ruby

The issue of memory bloat in Ruby applications is a topic of frequent discussion. In this post, we will look at how Ruby memory management can go wrong, and what you can do to prevent your Ruby application from blowing up. First, we need to understand what bloat means in the context of an application’s memory. Let’s dive in!

An Introduction to Metaprogramming in Elixir

In this world, there are many mysteries — but few are as elusive as metaprogramming in Elixir. In this four-part series, we’ll start by looking at core concepts and then explore how metaprogramming operates in Elixir specifically. Let’s develop an understanding of metaprogramming and uncover some Elixir metaprogramming secrets!

Best Practices for Logging in Node.js

Good logging practices are crucial for monitoring and troubleshooting your Node.js servers. They help you track errors in the application, discover performance optimization opportunities, and carry out different kinds of analysis on the system (such as in the case of outages or security issues) to make critical product decisions. Even though logging is an essential aspect of building robust web applications, it’s often ignored or glossed over in discussions about development best practices.

LiveView Integration Tests in Elixir

In the second part of this two-part series on testing LiveView in Elixir, we’ll write an integration test that validates interactions within a single live view, and an integration test that validates the interactions between two separate live views. You will focus on testing the behavior of the survey results chart filter from the previous post. We’ll use the LiveViewTest module’s functions to simulate LiveView connections without a browser.

Responsible Monkeypatching in Ruby

When I first started writing Ruby code professionally back in 2011, one of the things that impressed me the most about the language was its flexibility. It felt as though with Ruby, everything was possible. Compared to the rigidity of languages like C# and Java, Ruby programs almost seemed like they were alive. Consider how many incredible things you can do in a Ruby program. You can define and delete methods at will. You can call methods that don’t exist.