Systems | Development | Analytics | API | Testing

Latest Posts

Effective Testing in JavaScript

Kernighan & Pike, The Practice of Programming, 1999 Despite constantly changing technologies and the needs of customers, some wisdom seems eternal. Programmers need to test their code. But thorough testing takes time. When we do it well, everything works, and a massive testing effort feels like a waste. However, when we do it badly, our code is often broken, and we wish that we had done better testing. I have some good news for you.

Debugging in Ruby with pry-byebug

For a software engineer, even the basic use of a debugger can save a lot of pain: adding breakpoints (places in the code the program will stop at and expose the current context) is very easy, and navigating from one breakpoint to another isn't difficult either. And with just that, you can say goodbye to a program's many puts and runs. Just add one or more breakpoints and run your program.

What's New in Node.js 22

Node.js 22 has been released, offering a compelling upgrade for developers. It takes over the 'Current' release line, while v21 transitions into maintenance mode until its end-of-life in June. This release delivers advances like a stabilized Watch mode, pattern matching support in the fs module, a default-enabled WebSocket client, and a new--run flag for script execution. It also offers some performance improvements and the usual V8 engine upgrade.

When to Use Bun Instead of Node.js

Bun and Node.js are two JavaScript runtime technologies to run JavaScript on the server. Node.js is the undisputed king of server-side development with JavaScript, but Bun has gained popularity thanks to its unbelievable performance capabilities. The real question is, though: does it really make sense to use Bun instead of Node.js? Let's learn about Bun and Node.js, dig into their characteristics, and explore some scenarios where Bun can be a better alternative to Node.js.

AnyCable for Ruby on Rails: How Does it Improve over Action Cable?

In modern web applications, real-time communication has become more than a feature: it's gradually evolved into a necessity. Users expect instant updates, live interactions, and dynamic content. In Rails applications, Action Cable has long been the go-to solution, harnessing WebSockets to fulfill these demands. In this article, we introduce: Let's get started!

Should You Use Ruby on Rails or Hanami?

Ruby on Rails is the most popular web framework in the Ruby ecosystem and has a large user base, ranging from freelancers to large established companies. With an active user community and wide-ranging documentation, it can be used to build everything from simple applications to complex web platforms. That said, a new contestant is taking on Rails’ dominance for the full-stack Ruby framework title: Hanami.

Deep Diving Into the Erlang Scheduler

Erlang is renowned for its remarkable fault tolerance and high concurrency. Erlang's scheduler efficiently handles many lightweight processes. The scheduler plays a crucial role in managing processes, concurrency, and system resources, efficiently coordinating these elements to help Erlang maintain fault tolerance and support high levels of concurrency in its applications. This post will dissect some of the scheduler's key components and shed light on how it works internally. Let's get started!

Handling Exceptions in Grape for Ruby

Grape is a popular Ruby framework for building RESTful APIs. Exception handling plays a crucial role in ensuring the stability and reliability of any application, including those made with Grape. This article will explore the basics of Grape exception handling, including customizing exceptions. We'll also touch on some best practices, and how to integrate your app with AppSignal for enhanced error monitoring and management. Let's get started!

How to Implement Rate Limiting in Express for Node.js

Rate limiting is a fundamental mechanism for controlling the number of requests a client can make to a server in a given time frame. In a world where more than 30% of web traffic comes from malicious bots, that proactive strategy is critical to protect servers from abuse. In this tutorial, you'll delve into the concept of rate limiting and understand why you need it in your Node.js backend. Then, you'll learn how to implement it in Express to block or slow down incoming excess requests.

How to Use Flume in your Elixir Application

As your Elixir app grows, you might need advanced control over how and where to perform background tasks or pull them off queues to manage back pressure. In this post, you will learn how to handle background jobs with Flume, a job processing system that uses GenStage and Redis. It provides durability, back pressure, job scheduling, rate limiting, and batch processing, among other things. We will expand on each of these features in detail.