#579 — November 18, 2021 |
Ruby Weekly |
Where is Ruby Headed As of 2021? — A look at where Ruby is going based on the talks at RubyConf 2021 where the dominating topics were static typing, performance, and concurrency, followed by what this future could mean for Ruby. Some of the points remind me of a piece I read earlier this week called ‘Selecting a programming language can be a form of premature optimization’ which was about Python but covers the idea of sticking to a single, familiar language (like Ruby, in our case) until you really need to switch. Big Nerd Ranch |
▶ How to Make a Gem of a Gem — From RubyConf 2021, a co-founder of Test Double and author of 39 gems (and counting) goes through the steps to create a gem (in just eight minutes) as well as the lessons he’s picked up over the years to make it good (the rest of the talk ;-)). Justin Searls |
Free eBook: Effective Indexing in Postgres — Learn how to create the best Postgres index for your queries. We provide a deep dive into index types, operators, data types and more. Creating the right indexes can often improve your query performance by 10x or even 100x. pganalyze sponsor |
Live Ruby Type Checking with TypeProf-IDE — An introduction to a VS Code extension providing real-time type analysis and feedback of Ruby 3.1 code, and how it can help you write more robust code in the long run. Josh Justice (Big Nerd Ranch) |
The Future of Ruby and Its AST Tooling — In a more technical vein of the feature item (top of issue), this is an exploration of a potential future for Ruby around how tooling around the manipulation of code (and ASTs) can become more useful, more precise, and open up more potential for things like transpiling, codemods and macros. Brandon Weaver |
Real-World Concurrency with Ruby and Polyphony: A Telnet Chat App — Polyphony has a concurrency model that is semantic and adds simple communication between fibers so your asynchronous apps look just like regular Ruby. Sharon Rosner |
|
📕 Articles & Tutorials |
Keeping Time with TimescaleDB: Understanding and Integrating Time-Series Data from Rails — A nice tutorial that sets up TimescaleDB (a Postgres extension that improves its time-series support – we cover it frequently in Postgres Weekly) alongside a Rails 7 app and shows you how to track a couple of different metrics. Misha Merkushin and Travis Turner |
Meet Fiber, Thread's Cooperative Cousin — Fibers, a lightweight concurrency primitive, were introduced way back in Ruby 1.9 but aren’t particularly heavily used in code I see in the wild. Thom Carter |
The Ruby Compiler Survey — The creator of TruffleRuby is cataloging many of the compilers (like TruffleRuby) to preserve their designs and output, but not to benchmark or compare performance. The writeup on Rubinius is particularly technical and interesting. Chris Seaton |
Complete Peace of Mind Rails Hosting — If you need hands-off, rock solid hosting for your Rails app, OpsCare is for you. We keep your app running, 24 hours a day, 7 days a week with a worldwide team. OpsCare by reinteractive sponsor |
Practical Garbage Collection Tuning in Ruby — This is principally about how the GC’s configuration settings can be tweaked and what they’re for. Given the ‘interesting’ opening to this piece, we should link to Nate Berkopec’s Understanding Ruby GC Through AppSignal |
Compiling Ruby to Native Code with Sorbet and LLVM — A slide deck from RubyConf 2021 shows how Stripe experiments with compiled Ruby on some of their servers to improve performance. Stripe |
What Should I NOT Write Tests For?
|
Setter Method Return Values in Ruby
|
🛠 Code & Tools |
PDF::Reader: A Spec Compliant PDF Document Parser — If you want to read PDFs from Ruby, this library aims to give you access to what you need, although you might need to take care given how flexible the format is. James Healy |
Pipeable Ruby ( Michael Grosser |
Put the “Flow” in Your Workflows with Shortcut Shortcut (formerly Clubhouse.io) sponsor |
Teams Connector: Publish Cards to Microsoft Teams Channels — We’re not Teams users ourselves but know it has become particularly popular during the past couple of years so this may be useful if you’re a user. Qurasoft |
Avo: An Admin Panel/Dashboard System for Rails Apps — Powered by Hotwire. It’s commercial but the source available version can be used for noncommercial purposes for free. Avo |
Rails Multisite 4.0: Multi Tenancy for Rails Apps — Want each (customer/user) hostname used with an app to have its own database? Sam Saffron |