Systems | Development | Analytics | API | Testing

Code coverage vs. test coverage in Python

If you have been writing tests for a while, you have probably encountered code coverage and test coverage. These concepts can be difficult to differentiate because they are somewhat intertwined. In this article, you will learn what code coverage vs test coverage means, and the basis of these concepts. You will also learn the key differences between code coverage and test coverage in Python. You would discover tools, techniques, and best practices to improve your testing strategy.

How to build a Copilot agent

A customer recently shared their debugging workflow with me. When an error shows up in Honeybadger, they import it to Linear, manually add context about where to look in the codebase, then assign GitHub Copilot to investigate. It works, but they asked a good question: could Copilot just access Honeybadger directly? The answer is yes—and it's easier than I expected.

Everything you need to know about Ruby 4.0

Ruby 4.0 is a major release, launched on Ruby’s 30th anniversary (December 25, 2025) to celebrate three decades of the community, not due to major breaking changes. I was surprised to learn that Ruby doesn’t actually follow semantic versioning! Instead, Matz (Ruby’s creator) increases the major version when changes impress him. This version marks 30 years of Ruby and introduces features to extend the language.

Exploring Rails Action Cable with Solid Cable

Real-time features are becoming increasingly important in web applications, but not every Rails developer is familiar with Action Cable, the framework's built-in WebSocket library. Rails Action Cable has long supported web sockets, but comes with some additional complexity. Rails 8 introduces Solid Cable, a new database-backed adapter for Action Cable that eliminates the need for Redis. In this guide, I'll walk you through Action Cable by way of Solid Cable and show you how to build a real-time feature.