Systems | Development | Analytics | API | Testing

Honeybadger

Parsing CSV files in Ruby

Handling data in various formats is a common task in software, and CSV (Comma-Separated Values) files are among the most prevalent data formats you'll encounter. Whether for data migration, reporting, or simply importing and exporting data, processing CSV files efficiently is a necessary skill for any Ruby developer. In this article, we'll learn the practical aspects of parsing and handling CSV data using Ruby.

Debugging a slow Rails controller with Honeybadger Insights

Join Honeybadger cofounder Ben Curtis as he uses Honeybadger Insights to debug a slow controller action in Rails. Honeybadger Insights is a new full-stack logging, observability, and performance monitoring tool from Honeybadger.io. Gain insights into your errors, application logs, and other event streams with a powerful query language and ready-made dashboards.

API versioning in Ruby on Rails

Versioning APIs is a critical part of building web applications, as it allows you to make changes that may otherwise break existing API users. Changing the contract between the API and the clients that depend on it is dangerous, and versioning endpoints adds flexibility and safety. Versioning is implemented in many ways - You can version with subdomains, query parameters, URL schemas, headers, and more!

A guide to PHP attributes

When building web applications in PHP, there may be times when you want to add metadata to annotate your code that can be read by other parts of your application. For example, if you've ever used PHPUnit to write tests for your PHP code, you'll have likely used the @test annotation to mark a method as a test in a DocBlock. Traditionally, annotations like this have been added to code using DocBlocks. However, as of PHP 8.0, you can use attributes instead to annotate your code in a more structured way.

How to build a Rails API with rate limiting

APIs are the bread and butter of the internet. The ability to interact with our applications programmatically enables interoperability and makes our lives as developers easier. Unfortunately, web applications are vulnerable to malicious actors that seek to misuse them or degrade their performance, which is why rate limiting is an important part of any API.

Clean code with PHP namespaces

A widespread issue developers run into when building applications is grouping and organizing code correctly so that it is easier for other developers to understand and collaborate. Conflicting class names, functions, and other code blocks is an issue for developers, and PHP offers a way to tackle this problem by adding namespaces to the language in PHP 5.3. In this article, you will learn everything you need to know to start using namespaces to organize your code efficiently in PHP.

Adding views to an API-only Rails app

Ruby on Rails has long been celebrated for its ‘convention over configuration’ philosophy, simplifying web development for countless programmers. However, what if you’ve started with a lean Rails API-only application and now find yourself needing a front-end? This isn’t uncommon, especially with the rise of JavaScript frameworks and SPAs.

Sending email in Laravel with Mailgun

As a web developer, you will often need to send emails from your application. In fact, if you've been a developer for more than a few months, you've probably already had to do this. You might want to send emails for a variety of reasons, such as sending a welcome email to new users, sending a password reset email, or sending a notification to a user. Laravel makes it easy to send these types of emails to single recipients, thanks to some handy features such as mailables and notifications.

Running Solid Queue in production Rails apps

Background jobs are essential to many Ruby on Rails apps. Since the introduction of ActiveJob, Rails developers have been able to manage their background jobs as natively as they do their database records. Still, ActiveJob requires you to select (and support) a backend adapter that will implement ActiveJob's backend. Many use Redis, a memory cache, to queue and process background jobs. Redis comes with incredible speed but is yet another dependency to maintain.