#521 — October 1, 2020

Read on the Web

Ruby Weekly

Ruby 3.0.0 Preview 1 Released — Fingers crossed for a final Ruby 3.0 release this Christmas, but in the meantime we have the first preview release to play with! So if you’ve wanted to get playing with Ractor, the RBS type profiling approach, or even cute syntactical features like rightward assignments, now is a great to try it out as tools like RVM and rbenv make it really easy to get going.

Yui Naruse

A Ruby One-Liners Cookbook — Ruby is a fantastic language for one-liners, whether in IRB or even from the command line, and two years ago we featured this epic list of them. The author has run with the concept and produced an entire book on the topic.

Sundeep Agarwal

Slow and Expensive CI Build? — Save more than 150% by switching to faster pipelines on Semaphore. Ship your updates 2x faster.

Semaphore sponsor

Currency Calculations in Ruby, The Right Way — If strange discrepancies begin to emerge in your monetary related calculations and the books don’t quite add up, this is the article for you. In short, never use floating point numbers for this sort of math, but maybe BigDecimal or the RubyMoney project could help provide some structure.

Julio Sampaio

Haml 5.2: The HTML Abstraction Markup Languagev5.2.0 is billed as ‘The Long Goodbye’ but only because it’s the final release “that’s got all the bells and whistles of Haml from the last 10 years.” Coming next is version 6 which will take some leaps forward (including a “StimulusJS-like development pattern”) and not be backwards compatible.

Hampton Catlin

⚡️ Quick bytes:

💻 Jobs

Fullstack Ruby on Rails Developer (Full Remote) — We're looking for smart devs to join our fast-growing, well-funded company that makes thousand of African fashion designers happy.

Afrikrea Platform

Senior Ruby on Rails Developer (Remote) — 90% of everything is carried in shipping containers. Join our team to modernize cargo ports around the world.

OCTOPI BY NAVIS

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

Vettery

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

📘 Articles & Tutorials

The Complexity of Active Record Transactions — Janko is working on a gem that extends Sequel to be able to reuse Active Record’s database connection and has learnt some useful stuff along the way. Here he shows off how AR and Sequel’s transaction API implementations differ.

Janko Marohnić

Solve A Race Condition Using Database Trigger Functions — Model validation works well… until you have multiple users creating multiple model objects at (almost) the same time.

Axel Kee

Best-Practices on How to Speed Up Your Postgres Queries. Free eBook. — We share our learnings from helping companies like Atlassian, Robinhood, and others speed up their queries.

Pganalyze sponsor

Building a Ractor Based Logger That Will Work with Non-Ractor Compatible Code — Mike Perham said “Ractor seems fundamentally incompatible with many heavily-used Rails APIs” which may be true but there are ways around it and this post explores one such pattern. One for Ruby 3.0 experimenters only.

Maciej Mensfeld

▶  Chipping Away at a Monolith — Tori Huang, software engineer at Gusto, and Brittany Martin of the Rails Podcast discuss Gusto’s ‘unbundling’ of part of their monolithic Rails app.

Ruby on Rails Podcast podcast

🛠 Code and Tools

Parsby: A Parser Combinator Library Inspired by Haskell's Parsec — Parser combinators provide a way to combine parsers into new parsers which provides an interesting alternative to PEG-style parsing systems like Parslet.

Jorge Luis Martinez Gomez

Query Diet: A Low-Key Rails Database Query Counter — Counts the number of database queries for the last request and subtly displays it in the corner of the page.

Makandra

Sinatra Subdomain: Separate Routes for Subdomains in Sinatra Apps

Nando Vieira

Scout APM: Pinpoint & Fix Performance Issues Fast. Start Now for Free

Scout APM sponsor

Rpush 5.1: A Push Notification Service for Ruby — A long standing project. Rpush supports numerous push notification services including those from Apple, Firebase, and Amazon.

Ian Leitch

OpenStruct 0.3.0: A Hash-Like Object Data Structure — OpenStruct (a.k.a. ostruct) has been part of the standard library for years, but as part of the process of ‘gemifying’ the standard library it’s now available on its own, as here. 0.3.0 is basically a release of tweaks and updates to modern Ruby standards with no significant functionality changes.

The Ruby Core Team