• Tour
    Features Error tracking Uptime monitoring Status pages Cron & heartbeat monitoring
    Frameworks
    Ruby on Rails Laravel Django Phoenix
    Languages
    Ruby PHP Python JavaScript
    Elixir Crystal Node Go
  • Pricing
  • Blog
  • Docs
  • Status
  • Contact
  • Meet the 'Badgers
  • Log In
Get started for FREE
  • Blog Home
  • Honeybadger
  • Ruby
  • PHP
  • Python
  • Elixir
  • JavaScript
  • Posts by Topic
    Ruby (187) Honeybadger (81) Rails (61) JavaScript (60) PHP (51) Python (33) Laravel (33) Go (16) Briefing (13) Django (12) Node (12) DevOps (10) Elixir (8) Aws (8) Briefing 2021 Q3 (7) React (7) FounderQuest (6) Briefing 2021 Q2 (6) Error Handling (6) Conferences (5) Testing (5) Security (4) Developer Tools (4) Elastic Beanstalk (4) Heroku (3) Debugging (3) Docker (3) Markdown (3) Serverless (3) Websockets (3) Sql (3) Events (2) Jekyll (2) Startup Advice (2) Guest Post (2) Sidekiq (2) Git (2) Front End (2) Rspec (2) Oauth (2) Logging (2) GraphQL (2) Flask (2) Nextjs (2) DynamoDB (2) Case Studies (1) Performance (1) Allocation Stats (1) Integrations (1) Bitbucket (1) Mobile (1) Gophercon (1) Clients (1) Vue (1) Lambda (1) Turbolinks (1) Redis (1) CircleCI (1) GitHub (1) Crystal (1) Stripe (1) Saas (1) Elasticsearch (1) Import Maps (1) Build Systems (1) Minitest (1) Guzzle (1) Tdd (1) I18n (1) Github Actions (1) Postgresql (1) Xdebug (1) Zend Debugger (1) Phpdbg (1) Pdf (1) Multithreading (1) Concurrency (1) Web Workers (1) Fargate (1) Active Record (1) Django Q (1) Celery (1) Amazon S3 (1) Aws Lambda (1) Amazon Textract (1) Sucrase (1) Babel (1) Pdfs (1) Hanami (1) Discord (1) Active Support (1) Blazer (1) Ubuntu (1)
  • Write For Us
  • RSS Feed

The Honeybadger developer blog

Tutorials, product info and good advice from the Honeybadger crew.

A Gentle Introduction to Web Services With Go

When you're deciding on a technology to use for your project, it helps to have a broad understanding of your options. You may be tempted to build a web service in Go for performance reasons - but what would that code actually look like? How would it compare to languages like Ruby or JS? In this article, Ayooluwa Isaiah gives us a guided tour through the building blocks of go web services so you'll be well-informed.

  • author photo By Ayooluwa Isaiah
  • Sep 8, 2020

Mastering Low Level Caching in Rails

Sometimes when your app is slow, it's not your fault. Your code might be optimized to the teeth, but it won't matter if it has to perform intrinsically slow tasks, like fetching data from an external API. In these situations, Rails' low-level caching can be a life-saver. But caching is infamously tricky. It's dangerous to go alone. In this article, Jonathan Miles guides us through the landscape of low-level caching. He covers the basics, but more importantly, digs into essential details of cache invalidation and points out common pitfalls.

  • author photo By Jonathan Miles
  • Sep 1, 2020

Understanding Selection Sort with Ruby

If I asked you to sit down right now and sort a list of numbers, there's a good chance that you'd intuitively rediscover the selection sort algorithm. It's a simple approach that can have significant performance implications. That's why it shows up so frequently in technical interviews - even though most developers never implement sorting from scratch. In this article, Julie Kent walks us through the selection sort algorithm, builds a working implementation in Ruby, and discusses its performance characteristics.

  • author photo By Julie Kent
  • #ruby
  • Aug 25, 2020

Understanding Database Transactions in Rails

Few things are scarier than a database slowly losing integrity over weeks or years. For a while, nobody notices anything. Then users start reporting bugs, yet you can't find any code that's broken. By the time you realize the problem, it may be happening for so long that your backups are unusable. We can avoid problems like these with skillful use of transactions. In this article, Kingsley Silas introduces us to transactions at the database level, discusses when they should be considered, and shows us how to use them in Rails.

  • author photo By Kingsley Silas
  • Aug 17, 2020

Understanding and Implementing OAuth2 in Ruby

Let me know if this feels familiar. Your users want to "login with GitHub," so you install a gem, follow the setup instructions, then pray it never needs maintenance because you have no real idea how OAuth2 works. Let's fix that. In this article, Diogo Souza shows us the fundamental concepts behind OAuth2 and how to implement them using Devise and Doorkeeper.

  • author photo By Diogo Souza
  • Aug 12, 2020

How to Test Ruby Code That Depends on External APIs

Few things are more frustrating than slow, flaky test suites. You're ready to deploy, wait 20 minutes for CI to run, only to find that a test failure in code you've never touched is blocking you. You dig into the source and find the problem: an external API call. It works (slowly) most of the time. But sometimes the network glitches and it fails. What do you do? In this article, José Manuel shows us several techniques for removing external API dependencies from our tests.

  • author photo By José M. Gilgado
  • Aug 4, 2020

Protecting Your Apps From Link-based Vulnerabilities: Reverse Tabnabbing, Broken-Link Hijacking, and Open Redirects

Links are so fundamental to web development that they're almost invisible. When we link to a third-party page, we hardly ever consider how it could become an opportunity to exploit our users. In this article, Julien Cretel introduces us to three techniques that bad actors can use to target our users and discusses how to avoid them.

  • author photo By Julien Cretel
  • Jul 28, 2020

Building a Toy Lexer in Ruby

Lexers are magical. They take your messy, hand-typed, human text, and convert it into a clean data structure that the computer can process. Every time you run a ruby program, use structured search or type in a date by hand, you'll find a lexer hard at work. In this article, Alex Braha Stoll pulls back the curtain to show us how lexers work and how to implement one for a simple programming language.

  • author photo By Alex Braha Stoll
  • Jul 15, 2020

Understanding and Implementing Bubble Sort in Ruby

You'll probably never need to implement bubble sort from scratch. Just call Array#sort! But sorting algorithms are a popular interview topic for a reason. They ask a bigger question: "Sure, you know what your code does, but do you know how it works? Do you understand the subtle ways that choices you make can impact performance?" In this article, Julie Kent will walk us through the famous Bubble Sort algorithm, demonstrating how it works, how to implement it in Ruby, and how to predict its performance.

  • author photo By Julie Kent
  • Jul 1, 2020

Honeybadger Actions

Have you ever wanted to update all your errors at once, or set defaults for incoming errors? Well, we are releasing some helpful tools for error management that we call Honeybadger Actions.

  • author photo By Kevin Webster
  • #honeybadger
  • Jun 29, 2020
  • ← Previous
  • Next →

Level up your software development career

Join our community of kick-ass developers as we learn engineering, DevOps, cloud architecture, and bootstrapping remote software companies. Tell me more →

    We're Honeybadger. We'll never send you spam; we will send you cool stuff like exclusive content, memes, and special swag.

    Product
    • Error tracking
    • Uptime monitoring
    • Status pages
    • Cron & heartbeat monitoring
    • Integrations
    • Plans & pricing
    • HB vs. Error Trackers
    • GDPR
    • Security
    Stacks
    • Rails
    • Laravel
    • Django
    • Phoenix
    • JavaScript
    • Ruby
    • Node
    • Python
    • PHP
    • Elixir
    • Crystal
    • Go
    • Cocoa
    Company
    • Meet the 'Badgers
    • Job openings
    • Brand assets
    • Terms of use
    • Privacy statement
    • Contact us
    Resources
    • Developer docs
    • Developer blog
    • Newsletter
    • Exceptional Creatures
    • FounderQuest
    • Twitter