New Features: Source Map Upload and More

Honeybadger now supports uploaded source maps via a new API. We've also added a UI to view source maps for each project, released a new version of honeybadger.js, and improved error grouping for JavaScript projects.


New monitoring feature: Check-Ins

Check-Ins allow you to monitor jobs and services by pinging a Honeybadger URL periodically. If you ever stop "checking in", Honeybadger will alert you.


Just Launched: Search Improvements!

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.


Replacing a Complex Regular Expression with a Simple Parser

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.


The Rubyist's Guide to Memoization

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.




Unicode Normalization in Ruby

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.



My 2017 Arch Linux desktop setup

I recently rebuilt my multi-purpose desktop system with Arch Linux; in this post I talk about my computing goals, my solutions, and the results.


Objects as Ruby Hash Keys

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.


Testing Ruby's Unicode Support

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.




Our Postgres Infrastructure

We love Postgres at Honeybadger, but it does require some care and feeding. Here's what we've done to scale Postgres along with the growing needs of our business.


JQuery-Free Rails and Legacy Browsers

Rails 5.1 will no longer depend on JQuery. I ran the UJS test suite on several versions of IE to see how nicely the new system plays with legacy browsers.


Rescue's Elegant Trick for Knowing Which Exceptions to Catch

You probably know how to ask Ruby to rescue specific exceptions. But how does Ruby know if a particular exception meets your criteria? In this article, we'll walk through Ruby's simple exception matching mechanism and see how we can use it to our advantage.



A Beginner's Guide to Exceptions in Ruby

The other day I was searching for an introduction to Ruby exceptions written for beginners - people who know basic Ruby syntax but aren't really sure what an exception is or why it's useful. I couldn't find one, so I decided to have a go at it myself. I hope you find it useful.