Systems | Development | Analytics | API | Testing

AppSignal

Handle Incoming Webhooks with LiteJob for Ruby on Rails

In parts one and two of this series, we only dealt with the pure CRUD aspects of using SQLite as a production database. In this post, we will explore the world of queue mechanisms, using SQLite as the pub/sub adapter for ActiveJob. Let's make use of LiteJob to handle incoming webhooks in our Rails application.

How to Use Timeouts in Node.js

Because of the asynchronous nature of Node.js, it's crucial you set timeouts to ensure the responsiveness of your application. Node.js timeouts help prevent indefinite waiting and let your backend handle situations where tasks take longer than expected. Thanks to timeouts, you can control the maximum duration allowed for incoming and outgoing requests. In this article, we'll look at the different types of timeouts and how to set them in vanilla Node.js and Express.

Validating Data in Elixir: Using Ecto and NimbleOptions

In the previous part of this series about validating data at the boundary of an Elixir application, we covered a few general programming tactics to try and reject invalid and unexpected data in our software. Continuing with that subject, we'll now explore how two libraries, namely Ecto and NimbleOptions, can further assist us. Let's get started!

What Do Deno and Bun Bring to the Table?

Deno and Bun are two JavaScript runtime newcomers that aim to undermine Node.js. These alternatives have gained popularity for their innovative approach to server-side development with JavaScript. But the real question is: what do they bring to the table compared to Node.js? In this post, you'll learn what Deno and Bun are, what they offer, and how they address some long-standing drawbacks in Node.js. We'll shed light on specific use cases where Deno and Bun excel.

A Deep Dive Into LiteDB for Ruby on Rails

In the second post of our series covering LiteStack (an alternative way to build Rails applications entirely based on SQLite), we'll explore the database's concepts of flexible typing and type affinity. We'll not only discover how SQLite's data handling differs from other SQL databases, but also how we efficiently process and store binary data, like images, directly in a database column. Note: LiteDB is essentially SQLite, but fine-tuned for usage in Rails.

What's New in Node.js 21

Node.js v21, the latest Node update, is now available as a stable release. It supersedes v20 in the'Current' release line, which has been promoted to the long-term support (LTS) channel as of 24 October. This new version stabilizes the fetch and WebStreams API, adds a built-in WebSocket client, improves support for ES modules, and brings some notable performance improvements (as well as a customary update of Node.js dependencies such as V8).

How To Use Zig for Elixir NIFs

Elixir excels at building scalable and maintainable applications. However, sometimes Elixir is not the best language to tackle specific tasks, and it can fall short in some areas, like direct system interaction. Fortunately, Elixir offers NIFs (Native Implemented Functions): a path for integrating with other languages to improve these gaps.

Expressive Ruby and Rails: Communicate Effectively With Your Code

Ruby is an expressive language. This is no accident; Matz very consciously designed Ruby as an intuitive language to more or less read like English. It's safe to say that he succeeded. Methods are named very carefully, and do what they say they do; they also tend to have inverse methods which do the opposite. In this post, we'll look at why expressive code is important and its impact on your productivity as a developer. Then, we'll explore how to best use some of Ruby's methods. Let's get started!