Short Ruby Newsletter

Share this post

Short Ruby News - Edition #65

newsletter.shortruby.com

Discover more from Short Ruby Newsletter

A Monday summary of the articles, discussions, and news from the Ruby community
Over 4,000 subscribers
Continue reading
Sign in

Short Ruby News - Edition #65

Discover the world of Ruby in this comprehensive newsletter covering week 43 of 2023. Find code samples, community updates, gems, resources, and thought-provoking discussions.

Lucian Ghinda (from ShortRuby)
Oct 30, 2023
Share this post

Short Ruby News - Edition #65

newsletter.shortruby.com
Share
Consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody

Support the newsletter for 1.8$/week

You can jump directly to a section:

๐Ÿš€ New Products & ๐Ÿ“… Events

๐Ÿ‘‰ย All about Code and Ruby

๐Ÿงฐย Gems, Libraries, and Updates

๐Ÿค Related (but not Ruby-specific)

More content: ๐Ÿ“š ๐Ÿ—ž ๐ŸŽง ๐ŸŽฅ โœ๐Ÿพ (articles, podcasts, videos, newsletters)


๐Ÿš€ New Products

๐Ÿš€ย David Heinemeier Hanssonย announced Skiff. See the video on twitterย or onย nitter:

Source:ย @dhhย (read onย nitter)

๐Ÿš€ Jared Whiteย launched his new courseย ย Building Courseware I Can Understand: The Launch of CSS Nouveau

Source:ย @jaredwhite@ruby.social

๐Ÿ“… Events

๐Ÿ“… Andrew Atkinsonย sharedย that 2024 Southeast Ruby in Memphis, TN is back:

Source:ย @andatkiย (read onย nitter)

๐Ÿ“… Robb Shecter announced they are starting the Denver meetup again and asked us to fill in the survey about day and time and join the meetup

Source: http://i.reddit.com/17iqgee

๐Ÿ‘‰ All about Code and Ruby

๐Ÿ‘‰ย Maxime Chevalierย sharedย their paper about YJIT: a basic block versioning JIT compiler for CRuby is published

Source: https://dl.acm.org/doi/10.1145/3486606.3486781

๐Ÿ‘‰ Kerri Miller (Parody)ย asked about the difference between let and subject in RSpec:

Source:ย @kerrizor@ruby.social

Here are some of the answers

Source:ย @gd@ruby.social
Source:ย @esparta@ruby.social
Source:ย @esparta@ruby.social
Source:ย @djspinmonkey@ruby.social
Source:ย @davetron5000@ruby.social

๐Ÿ‘‰ย Deepak Mahakaleย sharedย about using find_each over all when expecting a large dataset:

Source:ย @deepakmahakaleย (read onย nitter)

๐Ÿ‘‰ Jan Dudulskiย asked about strategies to handle JSON payloads:

Source:ย @jandudulski@ruby.social

Here are some of the possible ways to achieve the same:

Source:ย @joeldrapper@ruby.social
Source:ย @joeldrapper@ruby.social
Source:ย @jandudulski@ruby.social

๐Ÿ‘‰ย Janko Marohniฤ‡ย askedย about how to differentiate between default value from DB and user input:

Source:ย @jankomarohnicย (read onย nitter)

Ariel Juodziukynasย proposed the solution:

Source:ย @arieljuodย (read onย nitter)

๐Ÿ‘‰ย Bhumiย sharedย about Ruby keywords:

Source:ย @bhumi1102ย (read onย nitter)

๐Ÿ‘‰ย Naofumi Kagami sharedย about why not have fat controllers:

Source:ย @naofumiย (read onย nitter)

๐Ÿ‘‰ย Dr Nic Williamsย sharedย about RBS boolish:

Source:ย @drnicย (read onย nitter)

See the section here:

Source: https://github.com/ruby/rbs/blob/master/docs/rbs_by_example.md

๐Ÿ‘‰ย Simon Chiuย sharedย about their gem geetfun/deployed

Source:ย @geetfunย (read onย nitter)

๐Ÿ‘‰ย Robby Russellย sharedย about Rails being the Radiohead of software ย read it full atย Rails In 2024: Still Relevant Or Living In the Past

Source:ย @robbyrussellย (read onย nitter)

If you want to read other people reactions here are some places where this was posted: r/ruby (22 comments), r/programming (339 comments)

๐Ÿ‘‰ย Yaroslav Shmarovย sharedย a code sample showing the email regexp validator from Ruby:

Source:ย @yarotheslavย (read onย nitter)

๐Ÿ‘‰ย Alessandro Rodiย showed that when retrying it is important to be aware of caching:

Source:ย @coorasseย (read onย nitter)

๐Ÿ‘‰ย Josh Pigfordย asked about the simplest way to render a boolean toggle:

Source:ย @Shpigfordย (read onย nitter)

Matt Swansonย replied:

Source:ย @_swansonย (read onย nitter)

๐Ÿ‘‰ย Panosย sharedย an IRB easter egg:

Source:ย @panos_codesย (read onย nitter)


Support ShortRuby by subscribing for only $7.5/month ($1.8/week). 
Get an ad-free experience and help us maintain our quality for everyone.

Support the newsletter for 1.8$/week


๐Ÿ‘‰ Kevin Glowaczย sharedย how they managed to run Ruby 3.2 on Elastic Beanstalk:

Source:ย @kjg@ruby.social

๐Ÿ‘‰ย Julian Rubischย shared a newย Challenge 14: Stimulus - KeyboardEvent 101 | The Hotwire Club

Source:ย @julian_rubischย (read onย nitter)

๐Ÿ‘‰ย Emmanuel Hayfordย sharedย a tip about changing the DB in Rails:

Source:ย @siaw23ย (read onย nitter)

๐Ÿ‘‰ย Andrea Roccaย shared they usedย turbo_boost-commands: Commands to help you build robust reactive applications with Rails & Hotwire

Source:ย @ilrock__ย (read onย nitter)

๐Ÿ‘‰ย Chris Oliverย sharedย a Ruby tip about choosing to define methods instead of method_missing:

Source:ย @excid3ย (read onย nitter)

๐Ÿ‘‰ย Maxim Gurinย sharedย a security tip about doing symbol to string coercion:

Source:ย @maximgurin_comย (read onย nitter)

๐Ÿ‘‰ย Joel Mossย sharedย about how using Stimulus and Turbo cut the JS lines of code:

Source:ย @joelmossย (read onย nitter)

๐Ÿ‘‰ย Vladimir Dementyevย sharedย a slide they work on about advantages of profiling tests:

Source:ย @palkan_tulaย (read onย nitter)

Here are some answers:

Source:ย @srbakerย (read onย nitter)
Source:ย @fxnย (read onย nitter)
Source: @rorvswild (read on nitter)

๐Ÿ‘‰ย Nate Hopkinsย sharedย a trick for debugging deep app internals:

Source:ย @hopsoftย (read onย nitter)

๐Ÿ‘‰ย Joe Masilottiย sharedย a code sample of handling authentication when working with Turbo Native:

Source:ย @joemasilottiย (read onย nitter)

๐Ÿ‘‰ย Kevin Newtonย shared that Prism supportsย JavaScript

Source:ย @kddnewtonย (read onย nitter)

๐Ÿ‘‰ย Dhaval Singhย asked about the order of the after_commit hooks are run:

Source:ย @Dhavalsingh7ย (read onย nitter)

Petrik De Heusย answered and provided a link to a PR about after_commitย callbacks run in the wrong orderย 

Source:ย @four54ย (read onย nitter)

๐Ÿ‘‰ย Matt Swansonย sharedย about adding extra checks in development to catch bugs:

Source:ย @_swansonย (read onย nitter)

๐Ÿ‘‰ย Bhumiย sharedย about & in Ruby:

Source:ย @bhumi1102ย (read onย nitter)

๐Ÿ‘‰ย Yaroslav Shmarovย shared about using Postgres for Action Cableย (see Action Cable Guides) and he also shared there are some limitations - read this

Source:ย @yarotheslavย (read onย nitter)

๐Ÿ‘‰ย John Nunemakerย sharedย about using net_http_timeout_errors: Provides a list of Net::HTTP timeout errors

Source:ย @jnunemakerย (read onย nitter)

๐Ÿ‘‰ย Matt Swansonย sharedย a code sample about writing a test instead of a TODO to remember what to remove when upgrading:

Source:ย @_swansonย (read onย nitter)

๐Ÿ‘‰ย Santanu Bhattacharyaย sharedย about using yard stats to show undocumented objects:

Source:ย @santattechย (read onย nitter)

๐Ÿ‘‰ย Iย asked about email service with generous free tier:

Source:ย @lucianghindaย (read onย nitter)

Here are some of the replies: Postmark, Brevo, AWS SES, SendGrid, Qui, MailPace, Resend, MailerSend, MailGun, MailJet,

๐Ÿ‘‰ย Yusuke Endohย sharedย a slide about TracePointใ‚’ๆดป็”จใ—ใฆใƒขใƒ‡ใƒซๅๅค‰ๆ›ดใฎ่ฒ ๅ‚ต่งฃๆถˆใ‚’ใ—ใŸ่ฉฑ

Source:ย @mametterย (read onย nitter)

๐Ÿ‘‰ย Georgie Boyย sharedย some performance stats for using Phlex Components:

Source:ย @george_kettleย (read onย nitter)

๐Ÿ‘‰ /u/okizeme asked about salaries for Rails developers and received almost 100 responses:

Source: https://i.reddit.com/17i5dtg

๐Ÿ‘‰ u/just-for-throwaway asked about the idiomatic way to handle validations (click to read their entire post as it includes more information that what I added here):

Source: https://i.reddit.com/17gu9ev

Please consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody

Support the newsletter for 1.8$/week


๐Ÿงฐ Gems, Libraries, Tools and Updates

๐Ÿ†• ๐Ÿงฐ Dr Nic Williams announced a new gem searchcraft - Instant Search for Rails and ActiveRecord using SQL materialized views

Source: https://github.com/drnic/searchcraft

๐Ÿ†• ๐Ÿงฐย Joel Mossย announced a new gemย inspectacular: Custom inspection for your Ruby objects

Source: https://github.com/joelmoss/inspectacular

๐Ÿ†• ๐Ÿงฐย  Vladimir Dementyevย announced a new gem imgproxy/imgproxy-rails

Source: https://github.com/imgproxy/imgproxy-rails

๐Ÿ†• ๐Ÿงฐย Chad Wilkenย announced a new gemย chadwilken/tiptap-ruby: A library that allows you to generate, parse, and render TipTap documents in Ruby

Source: https://github.com/chadwilken/tiptap-ruby

๐Ÿ†• ๐Ÿงฐย Juliรกn Pinzรณnย announced a new gem called actionview_attribute_builders

Source: https://github.com/pinzonjulian/actionview_attribute_builders

๐Ÿงฐ Jake Zimmermanย announced a new version of Sorbet that now supportsย ย Methods with Overloaded Signatures ยท Sorbet

Source:ย @jez_io@ruby.social

๐Ÿงฐ Alexander Adamย sharedย a gemcrimson-knight/fruit_juice: A simple gem for triggering background jobs in Ruby into Crystal for the Mosquito background processor

๐Ÿงฐย Avoย sharedย an update for Avo 2 and Avo 3

Source:ย @avo_hqย (read onย nitter)

๐Ÿงฐ Glauco Custรณdio announced a new release for tanakai - Tanakai is a modern web scraping framework written in Ruby. A fork of Kimurai

Source: https://github.com/glaucocustodio/tanakai

๐Ÿงฐย Jeremy Evansย sharedย Rodauth 2.32.0 Released ยท jeremyevans rodauth ยท Discussion #371

Source: https://github.com/jeremyevans/rodauth/discussions/371

๐Ÿงฐย Gert Jan Peetersย announced they made stimulus-lsp work on neovimย feat: add stimulus-language-server support by Gert-JanPeeters ยท Pull Request #2870 ยท neovim/nvim-lspconfig

Source: https://github.com/neovim/nvim-lspconfig/pull/2870

๐Ÿ†• ๐Ÿงฐย Faraaz Ahmadย announced a new gemย tainted: Taint checking for Ruby using data-flow analysis

Source: https://github.com/faraazahmad/tainted

๐Ÿงฐย Nate Hopkinsย announced a draft PR for UniversalID gem - Update serialization to use MessagePack

Source:ย @hopsoftย (read onย nitter)

ย ๐Ÿงฐย Dr Nic Williamsย sharedย an announcement from Heroku that pgvector now generally available for Heroku Postgres | Heroku Dev Center

Source:ย @drnicย (read onย nitter)

๐Ÿงฐย Benjamรญn Silva H.ย talked aboutย chaskiq/plain - Plain is a Rails engine that serves as an Artificial Intelligence (AI) assistant for your Rails project

Source: https://github.com/chaskiq/plain

๐Ÿงฐย Koichi Itoย announced a new release of Rubocop Rails โ†’ย Release RuboCop Rails 2.22.0 ยท rubocop/rubocop-rails

Source: https://github.com/rubocop/rubocop-rails/releases/tag/v2.22.0

๐Ÿงฐย Hiroshi Shibataย announced a newย Release v13.1.0 ยท ruby/rake. The release changelog is big but here is just a part of it:

Source: https://github.com/ruby/rake/releases/tag/v13.1.0

๐Ÿงฐย Alex Rudallย sharedย an update for alexrudall/superagi: OpenAI API + Ruby

Source: https://github.com/alexrudall/superagi/releases/tag/v0.2.0

๐Ÿค Related (but not Ruby-specific)

๐Ÿคย Jonathan H. Wageย sharedย performance improvements after using pgbouncer:

Source:ย @jwageย (read onย nitter)

๐Ÿคย ย Una Kravetsย shared that adding a simple <hr> in between options willย make an horizontal rule โ†’ Select element: now with horizontal rules

Source:ย @Unaย (read onย nitter)

๐Ÿคย Jeffrey Wayย sharedย that MacOS Safari added a new feature to see a website in iOS Simulator:

Source:ย @jeffrey_wayย (read onย nitter)

๐Ÿคย Robby Russellย asked a question that I think we should ask ourselves everyweek:

Source:ย @robbyrussellย (read onย nitter)

ย ๐Ÿคย Jason Swettย sharedย that code is also a tool for thinking and exploration:"

Source:ย @JasonSwettย (read onย nitter)

๐Ÿคย Nate Hopkinsย sharedย that taking time to identify the right primitives and good names will pay in the long run:

Source:ย @hopsoftย (read onย nitter)

๐Ÿคย Matt Johansenย sharedย a thread about Okta being hacked:

Source:ย @mattjayย (read onย nitter)

More content: ๐Ÿ“š ๐Ÿ—ž ๐ŸŽง ๐ŸŽฅ โœ๐Ÿพ

๐Ÿ—ž Newsletters

๐Ÿ—ž Vipul A Mย published a new edition of This Week in Rails aboutย Reduce Memory Used By Active Support/Callbacks, Non Column Backed Attributes For Enum And More!

๐Ÿ—ž Ruby Weeklyย published a new edition about How memoization can bend Ruby out of shape

๐Ÿ—ž Awesome Ruby Newsletterย published a new edition Awesome Ruby Newsletter Issue 388 - Performance impact of the memoization idiom on modern Ruby

๐Ÿ—ž Sara Jacksonย published a new edition aboutย This Week In Open Source (October 13, 2023)

๐Ÿ—ž Greg Molnarย published a new edition of Rails Tricks aboutย Ruby On Rails Password Validation

๐Ÿ—žย Harrison Broadbentย published a new edition ofย The RailsNotes Newsletter ISSUE #16

๐Ÿ—ž Ruby Radar published a new edition about Ruby AST In The Browser

๐Ÿ—ž Hotwire Weekly published a new edition about Week 43 Stimulus LSP Goes Beyond VSCode And Ruby

๐ŸŽง Podcasts

๐ŸŽงย Remote Ruby published a new episode aboutย Dhh On Rails World 2023 Rails 7.1

๐ŸŽง The Ruby on Rails Podcastย published an article aboutย The Ruby On Rails Podcast Episode 493: Rails World Live! Pt.1 With Nick Schwaderer And Andrew Mason

๐ŸŽง Rooftop Ruby Podcast published a new episode about p29: Ruby Centralโ€™s Adarsh Pandit And Allison Mc Millan

๐ŸŽง Life on Mars published an article aboutย 73 From Rails To Revenue, With Khash Sajadi (Ceo & Co Founder @ Cloud 66)

๐ŸŽงย Jason Swettย published a new podcast aboutย 200 - Saron Yitbarek, Founder of CodeNewbie and RubyConf Keynote Speaker

๐ŸŽงย Ruby For Allย published a new podcast aboutย Microservices, Mayhem, and Main Branches | Episode 49

๐Ÿ“ฝ๏ธ ๐ŸŽฅ Videos

๐ŸŽ™๏ธ Conference Talks

๐ŸŽ™๏ธย Confreaks, Llcย published the videos fromย Rocky Mountain Ruby 2023

Screencasts

๐ŸŽฅย The Rubber Duck Dev Showย published a new video aboutย Stack Overflow vs ChatGPT

๐ŸŽฅย Jason Swettย published a new podcast aboutย Building a Search Engine Part 1 (Adding a Layer of Abstraction)

๐ŸŽฅย Yaroslav Shmarovย published a new video aboutย Rails #147 DataTables - search, sort, pagination with Ransack and Pagy

๐ŸŽฅย Cezar Halmageanย published a new video aboutย Build a SaaS with Ruby on Rails 7 - UTM URL Builder

๐ŸŽฅย Dean DeHart published a series of videos:

  • If Conditionals In Ruby For Beginners 6

  • While Loops In Ruby For Beginners 7

  • Your First Project Temperature Converter In Ruby For Beginners 10

๐ŸŽฅ Dave Kimuraย published a new episode aboutย ย Episode 425 - Kamal in GitHub Actions and aboutย Using Ansible to Update Kamal Servers

๐ŸŽฅย Steven R. Bakerย published a new video aboutย The Shitshow 3 (with special guest!): Build a Multiplayer Game in Ruby on Rails 7.1

๐ŸŽฅย Thoughtbotย published a new video aboutย Rails Development LIVE

โœ๐Ÿพ Articles

Whatโ€™s new ๐Ÿ†•

Jean Boussier published an article aboutย Performance Impact Of The Memoization Idiom On Modern Rubyย โ†’ โ€œOne major internal change in Ruby 3.2 was the introduction of object shapes. In this post, weโ€™ll try to cover why they were introduced, how they work, and what their limitations areโ€ and he also published an article aboutย Effects Of Pitchfork Reforking On Shopifyโ€™s Monolith

Jorge Manrubia published an article aboutย Exploring Server Side Diffing In Turboย โ†’ โ€œWe did a lot of exploratory work before coming up with the Turbo improvement we presented in Rails World. One of those experiments included diffing in the server instead of in the clientโ€

Akshay Khotย published an article aboutย Akshayโ€™s Blog Is Now Write Software, Wellย โ†’ โ€œAfter two years and hundreds of thousands of readers, the blog has outgrown my personal domain and needs a new home. Welcome to ยซWrite Software, Wellยปโ€

Patrick Helm published an article aboutย My Love Letter To Rails (And Ruby)ย โ†’ โ€œHere's why Ruby on Rails is far from being dead... Honeypot developers are even writing love letters to Railsโ€

Greg Molnarย published an article aboutย Rails Authentication For Complianceย โ†’ โ€œSuppose you are working on a Rails application that needs to meet specific security compliance requirements like PCI, ISO 27001, or SOC2. In that case, one of the objectives is to have proper authentication and access controlโ€

Alkesh Ghorpadeย published an article aboutย Rails 7.1 Raises An Error On Generating Model Attributes With Dangerous Nameย โ†’ โ€œRails 7.1 raises error on generating model attributes with dangerous name. The feature will raise an error if you specify any dangerous attribute when generating a migrationโ€ and another article about Rails 7.1 Adds Validation To Enums

Apoorv Tiwari published an article aboutย Limiting Maximum Index Name Length In Ruby On Rails 7.1ย โ†’ โ€œWith the introduction of Rails 7.1, a new 62 byte limit has been specified. If the index name exceeds this limit, it will fallback to a short format, along with a hash that ensures uniquenessโ€

Vladimir Dementyev published an article aboutย The Future Of Full Stack Rails Ii: Turbo View Transitionsย โ†’ โ€œIn the previous post, we introduced the Turbo Music Drive application and enhanced it with DOM morphing techniques to provide a smoother UX. Now, weโ€™ll take it to the next level and add slick animationsโ€

Brad Gesslerย published a new article aboutย Rails Background Jobs with Fly Machines โ†’ โ€œFly Machines can boot a VM in 500ms, run a Rails background job, then turn off when itโ€™s done. That means you donโ€™t have to pay for a server to sit idle if thereโ€™s no jobs to process and you can have a much more scalable pool of on-demand workers when your application starts to get busyโ€

Deep Dives ๐Ÿ”

Victor Shepelevย published an article aboutย โ€œUseless Ruby Sugarโ€: Pattern Matching (Pt. 2)ย โ†’ โ€œWith all the good things that Iโ€™ve said in the previous article about chosen pattern syntax looking natural, it still stands as a separate syntactic area of the code. This is mostly unusual for Ruby, which, once you get to know it closer, is characterized by a uniformity of semanticsโ€

Noel Rappinย published an article aboutย Better Know A Ruby Thing #2: Constants โ€“ Noel Rappin Writes Hereย โ†’ โ€œToday: constants. They arenโ€™t actually constant. They arenโ€™t only used for small strings or magic literals. They arenโ€™t even mostly used for that in most Ruby programs. Constants are one of the core pieces of Ruby and they arenโ€™t super-well documented in the official siteโ€

Paweล‚ Strzaล‚kowski published an article aboutย Tetris On Railsย โ†’ โ€œThe story behind Tetris on Railsโ€

How-Tos ๐Ÿ“

Harrison Broadbentย published an article aboutย Action Mailer Attachments In Ruby On Railsย โ†’ โ€œActionMailer makes it easy to attach files to your emails. In this article, I show you how to attach single or multiple files, set custom encodings and mime_types, and attach images as inline attachments to display in your email bodyโ€ and an article aboutย Action Mailer Cc And Bcc Multiple Recipients

Sam Rubyย published an article aboutย Accommodating Safari Usersย  โ†’ โ€œWhen you generate a new Rails app, you are given a choice whether or not you want JavaScript support or to include a CSS framework. The default is to use import maps. What isnโ€™t clear at this time is that there is no documented upgrade path should you change your mind later. In fact, upgrading is difficult as support for things like Turbo, Stimulus, Action Cable and Action Text further lock you into this choiceโ€

Stefan Wienertย published an article aboutย Rails 7.1 Migrate from secrets.yml to credentials.enc.ymlย โ†’ โ€œIf you have been using the Rails.application.secrets feature, you have been able to ignore the deprecation until Rails 7.1. But now, Secrets is gone! We had been using config/secrets.yml in the past because our deployment script would just replace the file during deploymentโ€

Jeffery Morhous published an article aboutย Factory Bot For Rails Testingย โ†’ โ€œDive into FactoryBot to ensure your testing data is reliable and consistentโ€

Akshay Khotย published an article aboutย Base64 Encoding, Explainedย โ†’ โ€œThis article covers the basics of Base64 encoding, including what it is, how it works and why it's important. It also shows how to encode and decode Base64 data in various programming languagesโ€

Gelsey Torres published an article aboutย How Action Dispatch/Response#Content Type Changed Between Rails 5.2 To 6.1ย โ†’ โ€œWhat happened with ActionDispatch::Response#content_type between Rails 5.2 to 6.1? In this article, we will go into some background to learn what this method does, look at the differences in ActionDispatch::Response#content_typeโ€™s return value between the several Rails versions, and how you can fix the problem if you come across it in your codebaseโ€

I published an article aboutย How To Skip All Callbacks For All Models In Railsย โ†’ โ€œDifferent approaches for avoiding all callbacks on a Rails Active Record modelโ€

James Garciaย published a new article aboutย Binged Watched (almost) a Rails Upgrade โ†’ โ€œI watched Chad Pytel and other developers from thoughtbot Upgrading a Rails 3.2 app to Rails 7. Be warned it 17 hours over several videos, but it was well worth the time invested. ๐Ÿ™‚ I wanted to share some things that I learnedโ€


Please consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody:

Support the newsletter for 1.8$/week

If you consider upgrading and want more information, please read Why to subscribe to paid.

Share this post

Short Ruby News - Edition #65

newsletter.shortruby.com
Share
Previous
Next
Comments
Top
New
Community

No posts

Ready for more?

ยฉ 2023 Lucian Ghinda
Privacy โˆ™ Terms โˆ™ Collection notice
Start WritingGet the app
Substack is the home for great writing