#​618 — September 1, 2022

Read on the Web 🇺🇦

Ruby Weekly

Trilogy: A New Database Adapter for MySQL from GitHub — GitHub uses Trilogy for connecting its Rails apps to ‘MySQL-compatible’ (e.g. MariaDB) database servers. Why use it over mysql2? It has no dependency on libmysqlclient or similar, so it can be easier to install and deploy, and it boasts improved performance under heavy loads. Compatibility varies, so take care and be sure to test if it will work for you.

Matthew Draper (GitHub)

Heroku’s Next Chapter, Says Bye to Its Free Plans — Heroku has played a huge role in the Ruby and Rails space over the years, but there’s recently been a lot of conjecture around its future. Salesforce (its owner) has responded with a public roadmap.. which sadly includes the discontinuation of its wildly popular free plans by the end of the year, so if you have apps on Heroku, it’s worth checking in on how they’ll fare.

Bob Wise (Heroku)

GV (Google Ventures) Invests $35m into Ruby Notification Infrastructure — A need for notification management systems has grown rapidly as software companies realize this critical user experience. Customizable channel preferences, and cross-channel audit logging are a necessity in the privacy era.

Courier sponsor

Ditching Active Record Callbacks — As useful as they can be, Active Record callbacks are a frequent pain point for Rails developers because they can be easily overlooked when debugging. After ending up in a tangle of callbacks, Jeremy’s team came up with a different approach (that I’m not that keen on myself, but you might!)

Jeremy Williams

Quick Bits:

📖 Articles, Stories & Videos

The What, the Why, and the How of Bloom FiltersBloom filters are a very interesting type of data structure that allow you to efficiently determine whether something is definitely not a member of a set or, to a certain level of probability, is a member of a set. They’re not difficult to implement either, as we see here.

Rishi Jain

Automate GitHub API Calls with Ruby, Keyboard Maestro, and 1Password CLI — An interesting combination of tools come together here, with Ruby automating things at the heart. There are better but more complex ways to solve Moncef’s problem but it’s a neat bit of ‘flintstoning’ that he’s done here.

Moncef Belyamani

Migrating a Rails App from Webpack to esbuild — Jakub explains how he’s migrated a project with over 300k lines of JavaScript code(!) from Webpack 4 to esbuild and, perhaps unsurprisingly, got far faster builds in the process.

Jakub Kosinski

Join the Collaboration Community: Network and Do More of What You Love — Collaborate with other professionals on side projects, podcasting, beta-testing, co-founding, and more.

Polywork sponsor

Stateless Forms with the Rails Attributes API — If you’ve ever used a non-ActiveModel-based form in Rails before, you’ll appreciate this dive into the Attributes API, its use cases, and several examples of how to use it with real-world forms.

Justin Searls (Test Double)

▶  Discussing Postgres with Andrew Atkinson — Ruby-flavored Postgres database discussion covering areas like constraints, catching unsafe migrations, and analyzing query plans.

Code with Jason Podcast podcast

💡 If you're a Postgres user, be sure to check out our Postgres newsletter.

Integrating Sidekiq with Hanami Apps — Sidekiq and Rails live together like bread and butter, but what about Hanami? It’s pretty straightforward too.

Hanami Mastery

▶  The One About Layoffs — Brittany Martin and Brian Mariani tackle a difficult topic, but one that’s increasingly affecting developers in turbulent times. They share their own personal tales and try to offer some silver linings too.

The Ruby on Rails Podcast podcast

Managing Rails App Business Logic with ActiveInteractionActiveInteraction is a service object implementation for Rails apps.
Alkesh Ghorpade

The Mysterious Life of public, private, and protected
Paweł Dąbrowski

🛠 Code & Tools

BabySqueel 2.0: An Expressive Query DSL for Active RecordSqueel was a project many years ago that monkeypatched Arel to enable the writing of more expressive queries. BabySqueel brings similar ideas to Active Record but with less monkeypatching. So if you’d rather write Post.where.has { created_at >= 2.weeks.ago } than the longer Arel-based equivalent.. give it a look.

Ray Zane

Ruby Units: A Unit Handling Library — Designed to simplify (and provide a structure around) the handling of units for scientific calculations.

Kevin Olbrich

Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut

Shortcut (formerly Clubhouse.io) sponsor

Shale 0.8: Object Mapper and Serializer for XML, JSON, TOML and YAML — This latest release reintroduces Ruby 2.6 support (mostly for JRuby’s benefit) and you can now group mappings via a group block.

Kamil Giszczak

⚡️ QUICK RELEASES:

parallel_tests 3.12 – More cores == faster testing.
Que 2.2 – Ruby job queue that uses Postgres's advisory locks.
Strong Migrations 1.3 – Catch unsafe migrations in dev.
SyntaxTree 3.5 – Fast Ruby parser and formatter.
Octokit.rb 5.4 – Ruby toolkit for the GitHub API.
Tomo 1.13 – A CLI for deploying Rails apps.
AcidicJob 0.8.5 – Idempotent operations for ActiveJob or Sidekiq.

Jobs

TravelJoy | Engineer #9 | Full-Stack | Remote in USA | Full-Time — TravelJoy is the market network for leisure travel. Thousands of travel agents love and depend on our product every day.
TravelJoy - Bring the joy back into travel planning

Find Ruby Jobs Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired