#​643 — March 2, 2023

Read on the Web

Together with  pgAnalyze

Ruby Weekly

Ruby Turns 30 Years Old; Celebrate with a Quine! — Thirty years ago in a chat room far, far away, the name ‘Ruby’ came into being for Matz’s then-nascent language. This milestone has been celebrated by many including Matt Sears, DHH, Charles Nutter, in a (Japanese) ▶️ audio message by Matz himself, and many others, but I had to feature this amazing effort to create a quine, of sorts, that works on “all currently known CRubys” (right back to Ruby 0.49!). It’s worth hitting “Translate to English” on this page to learn a few things about Ruby’s history.

ku-ma-me

In his ▶️ audio message, Matz acknowledges there are multiple ways you could define Ruby's birthday, but he's happy to go with the date it was named in this case.

Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres and Rails. We walk through realistic real-life examples, translating first into SQL, and then into Rails code. Every example comes with source code so you can follow along.

pganalyze sponsor

Improving the Developer Experience with the Ruby LSP — Shopify continues to enhance the Ruby landscape, this time with a Ruby Language Server Protocol (LSP) server that takes advantage of recent performance improvements to Ruby (YJIT, etc.) and supports VS Code (or any editor that has LSP support.)

Vinicius Stock (Shopify)

Introducing MRSK: A Way to Deploy Web Apps Anywhere — The folks at 37Signals have developed a Capistrano replacement they're using for HEY․com as part of their move to leave the cloud. In true DHH style, there's ▶️ a screencast showing it off, but basically it's a way to deploy Docker containers, cloud or not.

David Heinemeier Hansson

There's more explanation on MRSK's very minimal homepage.

QUICK BITS

📕 Tutorials and Articles

▶  Building a Commercial Game Engine using mruby and SDLmruby is a lightweight, embeddable standardized Ruby implementation and the DragonRuby toolkit uses it at its heart. This talk digs into just how it works and why Ruby is a good fit for certain forms of game development.

Amir Rajan

A Beginner's Guide to Ractors — A quick, elementary introduction to ractors (once known as ‘guilds’) which, in Ruby 3 and up, provide an actor-like concurrency abstraction for executing code in parallel without the problems introduced by multi-threading.

Julie Kent

When Production Goes to 💩 You Can’t Waste Time Digging for Errors — Honeybadger helps you triage errors before your users can even report them. Get monitoring set up today in about 5 mins.

Honeybadger sponsor

Consider find_each for Looping Through Active Record Associations — If you have many associated records (and you don’t care about order), find_each could be your jam.

Andy Croll

What's Postgres Got to Do with AI? — A look at using Ruby and OpenAI’s API to get embeddings for your data (recipes in this case), feeding (ha!) them into Postgres and storing and querying the resulting vectors.

Christopher Winslett

What a Dev Firm Has Learnt Delivering Over 100 Ruby Projects — Quite high level/broad.
Tomasz Kania-Orzeł

My Journey From Frustration with the JS Stack to Finding Joy in Ruby — Nice to see folks heading this way.
Devanil Junior

▶  Using AWS Lambda with Rails with Ken Collins
Remote Ruby podcast

🛠 Code & Tools

mruby 3.2.0 Released — mruby is a Matz-created lightweight alternative implementation of Ruby targeting situations where you might want to embed Ruby into other apps. For example, ngx_mruby lets you use Ruby within NGINX, and DragonRuby is built upon it too (there's a talk about that above).

mruby team

Ruby OpenAI Library Adds ChatGPT Support — Yesterday, OpenAI added ChatGPT support to its API and this Ruby OpenAI client has rapidly added support for it too. Now you can integrate ChatGPT features into your Ruby apps and scripts with ease.

Alex X

Need to Upgrade Your Rails App but Don't Have the Time or Resources? We Can Help

reinteractive Pty Ltd sponsor

Rowdy: Route Web Requests to Classes — A new project taking a PORO approach to Ruby web routing using modern Ruby features.

Rocketship

librtree-ruby: R-Tree Spatial Index Library — A native (librtree-derived) extension for working with Guttman-Green R-tree spatial indexes – a data structure enabling the fast querying of intersections of huge collections of rectangles.

J.J. Green

Litestack: Embedded Services for Ruby Webapps — It uses SQLite to provide a database, job processing and cache ‘out of the box’ and integrates with Rack, Sequel, Rails, etc. where they are present. Interesting idea.

Mohammad A. Ali

Packwerk 3.0: Enforce Boundaries for More Modular Rails Apps — A gem created at Shopify that can be used to enforce boundaries and modularize Rails applications. ▶️ 1-minute screencast demo.

Shopify

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

Shortcut (formerly Clubhouse.io) sponsor

PIDCache: Cache Calls to Process.pid — A backport of a proposed Ruby 3.3 feature.

Shopify

Jobs

Senior Backend Engineer (Backend) — 12M user devices sent us data daily last week, 6M of them opened the app. Apply your knowledge and help make our users healthier.
Sweatcoin

Software Engineer (Backend) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

Find Ruby Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired