#​641 — February 16, 2023

Read on the Web

Together with  Cloud66 logo

Ruby Weekly

Magnus 0.5: A Way to Build Gems with Rust — Magnus enables the creation of Ruby extensions using Rust by providing an interface to Ruby’s usual C API. You can also embed Ruby in a Rust program. Numerous gems are now implemented with Magnus, including RuCaptcha, Selma, and polars-ruby.

Mat Sadler

Ruby Adds WebAssembly Support: What Does It Mean? — Ruby 3.2 introduced the ability to target WebAssembly, so now you can write apps for any modern browser (and more) using Ruby. The future possibilities for WASM are exciting.

Tomas Fernandez

Heroku Alternative - But On Any Cloud — The convenience of Heroku, but on any cloud & in any region, with persistent storage, custom traffic rules, zero downtime deployments, blue/green & canary releases, WAF, & more. Try it today for free, plus $100 in credits with the code: RubyWeekly100

Cloud 66 sponsor

Exploring the Sorbet Ruby Compiler — Stripe first teased its Sorbet Ruby type checker almost five years ago (we mentioned it in issue 402!) but they’re also working on developing a performance focused ahead-of-time compiler for Ruby around it..

Jeffery Morhous

Escaping/Encoding URI Components in Ruby 3.2 — In Ruby 3.2, the standard library’s CGI gem gained two handy new methods: CGI.escapeURIComponent and CGI.unescapeURIComponent. CGI has long had a (heavily used) escape method, but these new methods tackle nuances in escaping strings to be included in path components or query strings.

Jonathan Rochkind

What's New in Rails 7.1 — There are a lot of small to medium additions and fixes, but the most exciting might be CTE support and much better Docker support.

Emmanuel Hayford (AppSignal)


📕 Tutorials and Articles

Ruby's private Keyword is Weirdprivate in Ruby acts a little differently to private in most other object oriented languages. Jake also draws an interesting parallel between private methods and instance variables.

Jake Zimmerman

My First Hanami App — It’s great to see folks beginning to blog about picking up Hanami for building modern Ruby webapps. “Hanami is a breath of fresh air” says Karol.

Karol Bąk

External Garbage Collection — “External” means connections and objects from third-party services or tools requiring disposal. Bradley goes through several approaches, combining a couple for the “Cadillac” of external GC cleanup jobs.

Bradley Buda (Census Engineering)

Want to Drastically Reduce the Risks in Hiring? Evaluate First! — Work with well-trained engineers before committing to hiring. If they work out, keep them. If not, just let us know.

Codeminer42 - Your Software Development Boutique sponsor

A Method's Gravity — The author claims “The bigger the method the more new lines of code will be added to it.” Hence gravity. Here Lucian tries to sell the idea of keeping methods short (or low gravity, if you will).

Lucian Ghinda

Why Does 0.1 + 0.2 = 0.30000000000000004? — Julia uses Python here but it applies to Ruby too.

Julia Evans

Rails Initializers You Don't Know About: Inflections“Inflections are rules that specify how words should be pluralized or singularized in a given context.”
Keshav Biswa

🛠 Code & Tools

▶  Puma 6.1: An Overview of What's New — A quick (~7 min) video on what’s new in the popular Ruby HTTP server, namely WebSocket support, better systemd support, and other small changes and fixes. Puma docs and the v6.1.0 release notes.

Nate Berkopec

Rouge 4: Pure-Ruby, Pygments-Compatible Code Highlighter — This week’s release introduces a new lexer (for Cisco IOS) and includes lots of fixes and improvements to lexers for C#, C++, JavaScript, and other languages.


APM Built for Developers, By Developers

Scout APM sponsor

Bashly 1.0: Bash CLI Script Generator — Declare the basic user-facing elements of a CLI tool (arguments, environment variables, command groups, default values, and more) and Bashly generates the bash code to make it a reality. There are examples in the GitHub repo.

Danny Ben Shitrit

Selma: Selects and Match HTML Nodes using CSS Rules — Also has the ability to sanitize HTML. Uses the Rust powered LOL HTML parser.

Garen Torikian

InvoicePrinter 2.3 (Now Supporting Prawn 2.4 and Ruby 3.1)InvoicePrinter is a library for generating PDF invoices.

Josef Strzibny


Curious How Great Products Get Made? — Come help us craft the operating system for modern manufacturing.

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.