---
title: "Ruby 3.3 makes its first appearance"
publication: "Ruby Weekly"
issue: 654
published_at: "2023-05-18"
canonical_url: "https://rubyweekly.com/issues/654"
---

Plus getting GPT to parse your error messages, Crystal reflections, and a field report from RubyKaigi. |        

#​654 — May 18, 2023 

[Read on the Web](https://rubyweekly.com/issues/654)  

Together with [![pgAnalyze\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/lhwcvgc1asd4fzaahty4.png)](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary05122023)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/w1dcbrat3negguch8r0w.jpg)](https://www.ruby-lang.org/en/news/2023/05/12/ruby-3-3-0-preview1-released/)  

[Ruby 3.3 Preview 1 Released](https://www.ruby-lang.org/en/news/2023/05/12/ruby-3-3-0-preview1-released/) — Christmas Day, and the eventual release of Ruby 3.3, might be seven months away, but there’s already a preview release to sink your teeth into. It _is_ early days though and the range of new features is limited. Updates include: 

- A new pure Ruby JIT called [RJIT](https://k0kubun.medium.com/rjit-a-pure-ruby-jit-for-ruby-f4084f0765) (x86-64 & Unix only for now).
- Big YJIT performance improvements.
- `ext/readline` retired in favor of [Reline](https://github.com/ruby/reline). More additions are anticipated as we approach the eventual release. 

Yui Naruse   [![\](https://copm.s3.amazonaws.com/421e5496.png)](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary05122023) 

[Free eBook: Advanced Database Programming with Rails and Postgres](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary05122023) — 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   

[A Field Report from RubyKaigi](https://blog.testdouble.com/field-reports/ruby-kaigi/) — If you weren’t able to make it to RubyKaigi 2023 in Japan, never fear. Justin Searls acts as your eyes and ears on the ground in this thorough report summarizing a variety of talks on topics from ReDoS attacks to the future of the Ruby parser. 

Justin Searls   

[Polyphony 1.0: Fine-Grained Concurrency for Ruby](https://github.com/digital-fabric/polyphony) — Uses fibers and io_uring (or libev) under the hood to provide a cooperative, sequential coroutine-based concurrency model. Thankfully there are [lots of usage examples](https://github.com/digital-fabric/polyphony/tree/master/examples). 

Digital Fabric   

**QUICK BITS** 

- JetBrains has opened the first early access program (EAP) for its forthcoming [RubyMine 2023.2](https://blog.jetbrains.com/ruby/2023/05/rubymine-2023-2-eap-is-open/) release.
- GitHub has shared some insights [into its recent availability issues](https://github.blog/2023-05-16-addressing-githubs-recent-availability-issues/).  

📕 Tutorials, Articles, and Videos  

[From Ruby to Crystal? Writing and Distributing a CLI Tool](https://evilmartians.com/chronicles/from-ruby-to-crystal-writing-and-distributing-a-cli-tool) — The saga of building a cross-platform CLI using Crystal, a compiled language with static types that’s _very_ Ruby like. But how Ruby-esque is Crystal, really? And is it the best choice for building statically linked binaries in a friendly language? 

Valentin Kiselev and Travis Turner (Evil Martians)   

[Refactoring a Rails App to Use Action Mailer for Transactional Email](https://monn.app/blog/refactoring-a-ruby-on-rails-app-to-use-actionmailer-for-transactional-email) — A handy step-by-step tutorial born from recent experience. 

Harrison Broadbent   

[A Better Postgres Support Experience](https://www.crunchydata.com/case-studies/carerev?utm_source=crb-lnk-0512) — "We’re able to do so much more working with a partner who cares as much about data as we do." –CareRev case study 

Crunchy Bridge sponsor   

[Flog-Driven Development](https://kevinjmurphy.com/posts/flog-driven-development/) — This fifth installment in an ongoing series explores [Flog](https://github.com/seattlerb/flog), a tool that measures the complexity of your code, and how it can drive your development toward a simpler implementation. 

Kevin Murphy   

[Running Ruby 3.2's YJIT in Production at Discourse](https://blog.discourse.org/2023/05/running-ruby-3-2s-yjit-in-production-at-discourse/) — Discourse (the forum folks) ran a test on two sets of clusters to evaluate the now production-ready YJIT in Ruby 3.2. The results were encouraging, resulting in all hosted servers now running YJIT. If you’re self-hosting Discourse, it’s worthwhile to opt-in to YJIT once you understand the effects. 

Tan Guo Xiang (Discourse)   

['Inline' Routes in Rails](https://www.akshaykhot.com/rails-inline-routes/) — Thanks to Rack, you can rig up a simple route without getting a typical Rails controller or view involved. 

Akshay Khot   

[Handling Environment Variables in Ruby](https://www.ombulabs.com/blog/handling-env-variables-in-ruby.html) — And a few tools to make it easier. 

Ariel Juodziukynas   

[How to Create Custom Flash Types in Rails](https://www.akshaykhot.com/create-custom-flash-types-rails/) 
Akshay Khot  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uechievmguaqi2olsdlw.jpg)](https://github.com/Schwad/chat_gpt_error_handler)  

[ChatGPTErrorHandler: For More Helpful Error Messages](https://github.com/Schwad/chat_gpt_error_handler) — This is a cute use for ChatGPT by having it attempt to explain your app’s errors along with a potential remedy. (You’ll need an OpenAI API token.) 

Nick Schwaderer   

[Docker Rails Example 0.8](https://github.com/nickjj/docker-rails-example) — A production-ready example Rails 7 app using Docker and Docker Compose. 

Nick Janetakis   

[Is Your Monitoring Provider’s Complexity Slowing… You… Down?🐌](https://www.honeybadger.io/for/rails/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Honeybadger’s dead simple UI makes it easy to find and fix problems quickly so you can get on with your day. [Try it now](https://www.honeybadger.io/for/rails/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby). 

Honeybadger sponsor   

[chroma-rb: Chroma Vector Database Client](https://mariochavez.io/desarrollo/2023/05/15/chroma-vector-database-ruby-client/) — Chroma is an “AI-native” open-source embedding database and this client opens it up to Rubyists who want to store and search embeddings. 

Mario Alberto Chávez Cárdenas   

[Mayu: A Live-Streaming Server-Side Component-Based Framework](https://github.com/mayu-live/framework) — This is typically more of a _JavaScript kind of idea_ but this is an interesting experiment with enough to play with if you’re interested in reactive and Next.js-like ideas in Ruby. 

Andreas Alin   

[Vessel: Fast High-Level Web Crawling Framework](https://github.com/rubycdp/vessel) — Vessel uses Ferrum, the Ruby API based on the Chrome DevTools Protocol (CDP), to crawl and parse pages as “fast as Chrome.” 

RubyCDP    

Jobs  

[Full Stack Engineer, Ruby & React (’s-Hertogenbosch, Netherlands)](https://jobs.floryn.com/o/fullstack-software-engineer-shertogenbosch) — We help companies with fast & simple business loans. Own projects, work closely with stakeholders. No suits, just impactful code. 
Floryn   

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

- [Nokogiri 1.15.0](https://github.com/sparklemotion/nokogiri/releases/tag/v1.15.0)
 ↳ A bigger update than it sounds.
- [sqlite3-ruby 1.6.3](https://github.com/sparklemotion/sqlite3-ruby)
 ↳ Adds [SQLite 3.42.0 support.](https://sqlite.org/releaselog/3_42_0.html)
- [Tracking Number 1.4](https://github.com/jkeen/tracking_number)
 ↳ Identifies delivery tracking numbers.
- [test-queue 0.9](https://github.com/tmm1/test-queue)
 ↳ Parallel test runner for CI environments.
- [Rubocop 1.51](https://github.com/rubocop/rubocop)         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
