---
title: "Ruby in VR? It's now possible."
publication: "Ruby Weekly"
issue: 580
published_at: "2021-11-25"
canonical_url: "https://rubyweekly.com/issues/580"
---

Plus Ruby's new core member, and a Ruby powered REPL for x86 from Aaron Patterson. |        

#​580 — November 25, 2021 

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

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/akfcldvi7xh2lpe0dhy3.jpg)](https://www.ruby-lang.org/en/news/2021/11/24/ruby-3-0-3-released/)  

[Ruby 3.0.3 Released](https://www.ruby-lang.org/en/news/2021/11/24/ruby-3-0-3-released/) — A point release but it fixes three important security issues around [regex-based date parsing](https://www.ruby-lang.org/en/news/2021/11/15/date-parsing-method-regexp-dos-cve-2021-41817/) (as with `Date.parse`), a [`CGI.escape_html` buffer overrun](https://www.ruby-lang.org/en/news/2021/11/24/buffer-overrun-in-cgi-escape_html-cve-2021-41816/), and [cookie prefix spoofing.](https://www.ruby-lang.org/en/news/2021/11/24/cookie-prefix-spoofing-in-cgi-cookie-parse-cve-2021-41819/) Perhaps even more importantly to many, though, is the fix for [a memory leak issue](https://bugs.ruby-lang.org/issues/18065) plaguing 3.0.2 when `Hash#transform_keys!` is used, so if you're on 3.0 you'll def want to upgrade. 

Tomoyuki Chikanaga   

[ASMREPL: A REPL for x86 Assembly Language](https://github.com/tenderlove/asmrepl) — A Ruby powered REPL for x86 assembly from Ruby and Rails’ own _tenderlove_! As a big fan of [Compiler Explorer](https://godbolt.org/), I can see myself getting into trouble with this.. :-) 

Aaron Patterson   [![\](https://copm.s3.amazonaws.com/59387f01.png)](https://www.appsignal.com/ruby/sidekiq-monitoring?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2021-25-11) 

[Easy and Powerful Sidekiq Monitoring](https://www.appsignal.com/ruby/sidekiq-monitoring?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2021-25-11) — Track and debug Sidekiq performance metrics with ease. Get insights and alerts for Sidekiq queue lengths, Sidekiq throughput/performance per worker, Sidekiq process/connection counts, and memory used in Redis. 

AppSignal sponsor   

**IN BRIEF:** 

- 🧊 **Can Ruby be used in VR? It can now!** Here's [▶️ a video example of DragonRuby's VR capabilities](https://www.youtube.com/watch?v=I_s_kyOUgzM) offered in [DragonRuby's latest (paid) version.](https://dragonruby.itch.io/dragonruby-gtk/devlog/317218/30-rtm-oculus-vr-indie-tier-and-black-friday-discounts) Want to see how the code looks? [Here's another example](https://gist.github.com/amirrajan/508f1a6aaf5352cab579104e614374e9).
- Ruby has [a new core team member](https://bugs.ruby-lang.org/issues/18361) – John Hawthorn ([@jhawthorn](https://twitter.com/jhawthorn)). He's done a lot of work on YJIT in particular.   

[Writing AWS Lambda Functions in Ruby](https://www.honeybadger.io/blog/aws-lambda-functions-ruby/) — A brief tutorial that creates a serverless Lambda function via the AWS console and touches on where you might go next (i.e. the Serverless Framework and local development.) 

Jeffrey Morhous (Honeybadger Developer Blog)   

▶[Ruby Podcasters Get Together at RubyConf 2021](https://remoteruby.transistor.fm/156) — RubyConf took place a couple of weeks ago and several popular Ruby podcasters got together to talk about the event, what they’re up to there, their ‘Ruby Heroes’ and the Ruby podcasting game in general. A nice way to pick up a bit of the vibe from the event. 

Remote Ruby podcast     

Jobs  

[Rails Engineering Manager @ Nebulab (Remote)](https://nebulab.com/careers?gh_src=359acc02teu) — Join our distributed team and build high-volume eCommerce applications in a workplace made by developers for developers. 
Nebulab   

[Senior Software Engineer (Remote in the US)](https://grnh.se/bf97c4df4us) — Snapdocs is now a [Unicorn](https://snapdocs.com/resources/announcing-our-series-d/) with a $1.5B+ valuation. We’re a SaaS product disrupting the mortgage and real-estate industry. Join our growing distributed team. ROR, Go, Postgres, React, TypeScript, AWS. 
Snapdocs   

[Find Ruby Jobs Through 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=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired    

📕 Articles & Tutorials  

[Audit Logging in Rails](https://hybrd.co/posts/audit-logging-in-rails) — If you need to track who is making changes to an app’s data, this comparison of five popular gems can make sure you pick the right one (or build your own). 

Jeremy Smith   

[Queuing Sidekiq Workers Safely with Help from Isolator](https://www.antonivanopoulos.com/til-queuing-sidekiq-workers-safely-with-the-help-of-isolator/) — Isolator is a gem from Evil Martians that will throw an error if a background job is enqueued in the middle of a database transaction as it can lead to inconsistencies if the transaction fails. 

Anton Ivanopoulos   

[The Hidden Features of `caller`](https://alextaylor.ca/read/caller-tricks/) — Focus your stack traces when you’re debugging. 

Alex Taylor   

[Complete Peace of Mind Rails Hosting](https://www2.reinteractive.com/opscare-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   

[Signal Handling in Concurrent Apps with Ruby and Polyphony](https://noteflakes.com/articles/2021-11-23-signal-handling) — [Polyphony](https://github.com/digital-fabric/polyphony) is a library for writing fiber-based concurrent apps that Sharon has been writing a bit about recently. This post tackles how it handles signals (such as SIGTERM and SIGINT). 

Sharon Rosner   

[Calculating a GZIP's Decompressed Size Without Decompression](https://mensfeld.pl/2021/11/reading-the-uncompressed-gzip-file-size-in-ruby-without-decompression/) — If you’ve got a compressed gzip file, it’s possible to determine the size of its contents very quickly. A handy “how to pull some arbitrary bytes out of a file” tip here. 

Maciej Mensfeld   

[The Difference Between Using a Cache and Read Models](https://blog.arkency.com/difference-between-cache-and-read-model-an-example/) — One for those using event-driven models or [Rails Event Store](https://github.com/RailsEventStore/rails_event_store).. or maybe it could help sell you on the idea? 

TOMASZ WRÓBEL   

[Trying Elixir as a Rubyist](https://briankung.dev/2021/10/31/trying-elixir-as-a-rubyist/) — Elixir is syntactically similar to Ruby in many ways, but the differences can be unintuitive. 

Brian Kung  

🛠 Code & Tools  

[Kredis 1.0: Higher-level Data Structures Built on Redis](https://github.com/rails/kredis) — Kredis offers structures like list, counter, set, flag, cycle, enum, and more that can be set as attributes on ActiveRecord models. 

Ruby on Rails Core   

[cel-ruby: A Ruby Implementation of Google's Common Expression Language](https://gitlab.com/honeyryderchuck/cel-ruby) — [Common Expression Language (CEL)](https://opensource.google/projects/cel) is a non-Turing complete language built by Google for writing expressions that can be evaluated without sandboxing. 

HoneyryderChuck   

[Put the “Flow” in Your Workflows with Shortcut](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=flow) 

Shortcut sponsor   

[MemoWise 1.3: A Modern Choice for Ruby Memoization](https://github.com/panorama-ed/memo_wise) — Fast, good test coverage, full docs, lets you reset or preset values, and more. 

Panorama Education   

[lib-ruby-parser: A Ruby Parser Written in Rust](https://github.com/lib-ruby-parser/lib-ruby-parser) — Rust is an increasingly popular language being used to make tooling for all sorts of things, which includes this Ruby parser continuing to be actively developed after we first linked it a year ago. 

Ilya Bylich   

[imap-backup 4.0: A Tool to Backup Gmail (or Other IMAP) Accounts to Disk](https://github.com/joeyates/imap-backup) 
Joe Yates         

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

[Change your email address](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
