Starr Horne is a Rubyist and Chief JavaScripter at Honeybadger.io. When she's not neck-deep in other people's bugs, she enjoys making furniture with traditional hand-tools, reading history and brewing beer in her garage in Seattle.
In this article, I'm going to tell you about our migration from PJAX to Turbolinks. The good news is that Turbolinks works surprisingly well out-of-the-box. The only tricky thing about it is making it work with your JavaScript. By the end of this article I hope you'll have a good idea of how to do that.
Most people consider timeouts to be a kind of error, so it'd be nice to have them reported by Honeybadger like any other errors. This article will show you how to set that up.
We recently released a new search key autocomplete feature here at Honeybadger. It was such a fun project that I just had to write it up for you all. Not only does it showcase an exciting use of DynamoDB, but it also shows the challenges of using DynamoDB cost-effectively with large amounts of frequently-updated data.
A chance conversation let me to the realization that the world of unique identifiers is larger and more wondrous than I ever could have imagined. In this post we discuss five types of UUIDs and their upstart cousin, the ULID. We explore what makes each of them special and when they may be particularly useful.
Because Ruby is an object-oriented language, we tend to model the world as a set of objects. We say that two integers (x and y) are a Point, and a Line has two of them. While this approach is often useful, it has one big problem...
While brushing up on Elixir for our company hackathon, I discovered that it's way of resolving modules is a little strange. In this post I dive into the strangeness to reveal the underlying mechanisms.
Stop the presses! We've just added a small but really cool new feature to your Honeybadger account: search key autocomplete.
As fall arrives, our thoughts turn to cozy sweaters, pumpkin-spice lattes, and wicked new Honeybadger features. We're particularly proud of our new GitLab integration.
Ad-hoc nil usage causes a lot of problems in Ruby. In this post we explore a more explicit way to handle nil conditions, inspired by Rust.
Here at Honeybadger we want to give you a complete picture of your application's health. That's why we include uptime & latency monitoring with all our plans. We've been hard at work making our uptime system even better; making it suitable not only to check web pages, but also APIs.
If you're a regular Honeybadger user, you may have noticed that search looks a little different. We recently launched a new query builder that not only looks better, but also makes it a snap to construct advanced search queries.
Big improvements are coming to search at Honeybadger! To kick things off, we're proud to announce (drumroll please) a date picker! This is only the first in a series of planned search UI improvements, which you can read about inside.
When we have to work with text, we often reach for regular expressions. But they're not the easiest solution to every problem. Recently I was struggling with a large regexp, when I realized it'd be less work to write a parser. This article explains the process.
This article covers one of my favorite techniques for improving performance: memoization. It's a source of easy little performance wins that eventually add up and only occasionally reduce your application to a heap of smoldering rubble. Only very occasionally.
In this post I discuss how to "modernize" a Docco workflow by adding a development server with live-reload.
Version 3.x of the Honeybadger gem sports a lovely new CLI interface that can take the STDERR of any cron job or command-line program and report it to Honeybadger as if it were an error in your Rails app.
If you want Ruby's string methods to play nicely with Unicode, it's a good idea to normalize them. This article is a brief introduction to Unicode normalization for Rubyists.
One often-overlooked feature of Ruby's hashes is that you can use any object as a hash key, not just strings and symbols. In this post we examine how Optcarrot, the Ruby NES emulator, uses this feature to optimize its mapped memory implementation.
To see how far Ruby's Unicode support has come, I tested every string method to see which ones violate the principle of least surprise. The results are presented as a handy table that you can reference to see which string manipulation methods are Unicode-unfriendly.
In this post we'll discuss a few easy wins - things you can do when a Rails project is young to make it much easier to scale its data layer as the project grows.