---
title: "A profiler and a fuzz tester"
publication: "Ruby Weekly"
issue: 697
published_at: "2024-04-04"
canonical_url: "https://rubyweekly.com/issues/697"
---

Plus RubyGems safe from xz backdoor, Hanami gets new leadership, and making a Rails app 'fart'.. |        

#​697 — April 4, 2024 

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

Together with [![FastRuby.io\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_467,h_106/e_make_transparent/co_white,e_outline:14/y65nyff19ylf5udphsq4.png)](https://rb.gy/g6i8k4)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/soflypgftk0ths4ojsfy.jpg)](https://github.com/jhawthorn/vernier)  

[Vernier: A Next Generation CRuby (3.2+) Profiler](https://github.com/jhawthorn/vernier) — A sampling profiler that can track multiple threads, GVL activity, GC pauses, idle time, and more. If you’ve been enjoying Tenderlove’s recent livestreams, you may have [▶️ seen it on there.](https://www.youtube.com/watch?v=9nvX3OHykGQ#t=27m43) Once you’ve captured a profile, you can view it in a few ways (including [on the web](https://vernier.prof/)), but [here’s some example output](https://vernier.prof/from-url/https%3A%2F%2Fraw.githubusercontent.com%2Fjhawthorn%2Fvernier-examples%2Fmain%2Fsimple_rails_request.json/calltree/?globalTrackOrder=0&thread=0&timelineType=category&v=10). 

John Hawthorn   [![\](https://copm.s3.amazonaws.com/8d948364.png)](https://rb.gy/g6i8k4) 

[Need to Upgrade Rails with Zero Downtime?](https://rb.gy/g6i8k4) — Ready for Rails 7.2? Top-notch engineering teams (from startups to Fortune 500 companies) trust the FastRuby.io team in [mission-critical upgrades](https://www.fastruby.io/blog/case-study/doxo-upgrades-ruby-on-rails-increases-application-performance.html). Leverage our 30,000+ dev hours of experience: Get to Ruby 3.3 and Rails 7.2 with zero downtime🔥 

UPGRADE RAILS WITH FASTRUBY.IO sponsor   

[Kamal: Hot Deployment Tool to Watch — or a Game Changer?](https://evilmartians.com/chronicles/mrsk-hot-deployment-tool-or-total-game-changer) — First published about what was then called _MRSK_, the _Evil Martians_ have updated their take on DHH’s container-based deployment tool from a 2024 perspective. If you’re not yet using [Kamal](https://kamal-deploy.org/) or want to understand when/why you should/shouldn’t use it, this is for you. 

Evil Martians   

📗 In related news, Josef Strzibny has released [the _Kamal Handbook_](https://kamalmanual.com/handbook/), a 'missing manual' for Kamal, complete with a foreword by 37signals' Donal McBreen.  

[RubyGems Not Vulnerable to the xz/liblzma Backdoor](https://blog.rubygems.org/2024/03/31/rubygems-and-xz.html) — If you follow tech news more broadly, you’ll have seen news about [a backdoor in the xz/liblzma project](https://xeiaso.net/notes/2024/xz-vuln/). While the vulnerability has far reaching implications, the RubyGems team has done an audit of its effect on RubyGems (including every gem) and found no issues. 

Samuel Giddins   

- 💼 [The Hanami project has new leadership](https://hanamirb.org/blog/2024/04/04/new-leadership-for-hanami/) after Luca Guidi has stepped down.
- 📈 Jim Remsik wrote [a quick piece on the 'Rails resurgence'](https://devops.com/the-ruby-on-rails-resurgence/) for DevOps.c‍om.
- 🤖 JetBrains has released [RubyMine 2024.1](https://blog.jetbrains.com/ruby/2024/04/rubymine-2024-1-is-out/), the latest version of its commercial Ruby IDE, complete with LLM-powered '[full line code completion](https://blog.jetbrains.com/blog/2024/04/04/full-line-code-completion-in-jetbrains-ides-all-you-need-to-know/)' and an overhauled terminal.
- 🎂 Popular Ruby-based site generator [Bridgetown](https://www.bridgetownrb.com/) is [celebrating its 4th birthday](https://www.bridgetownrb.com/news/happy-birthday-bridgetown/).  

📄 Articles, Tutorials & Videos  

[Ruby Benchmark: Data.define, Struct, OpenStruct](https://allaboutcoding.ghinda.com/micro-benchmarking-value-objects-in-ruby-datadefine-vs-struct-vs-openstruct) — A comparison of `Data.define`, `Struct`, `OpenStruct` – all ways to conveniently define data objects. 

Lucian Ghinda   

▶[Frontend Ruby with Glimmer DSL for Web](https://www.youtube.com/watch?v=rIZ-ILUv9ME&list=PLRAf4zt5oEjc2mqmEN9m_O0JovQCXxvxt&index=12) — A talk from last month’s Montreal.rb meetup by Andy Maleh, best known for his work on [Glimmer](https://github.com/AndyObtiva/glimmer), about taking Ruby into the browser to create frontend apps. 

Andy Maleh   

▶🤡 [How to Make Your Rails App 'Fart'](https://www.driftingruby.com/episodes/fart) — Clearly intended as an April Fools’ joke, but with a nonetheless practical angle that you could hopefully use for something more edifying than fart noises.. 😅 

Drifting Ruby   

[Rails 8 Adding Rate Limiting to Action Controller via Kredis Limiter Type](https://blog.saeloun.com/2024/04/01/rails-8-adds-rate-limiting-to-action-controller_via-kredis-limiter-type/) — Rails 8 will provide a `rate_limit` method to define rate limiting rules within controllers. 

Siddharth Shringi   

[Why and How to Replace aasm (acts_as_state_machine) with Rails Enum today](https://blog.arkency.com/replace-aasm-with-rails-enum-today/) 
Szymon Fiedler   

[Rails Cronjobs: Moving from Whenever to sidekiq-cron (with Active Job)](https://www.stefanwienert.de/blog/2024/04/01/rails-cronjobs-moving-from-whenever-to-sidekiq-cron-with-activejob/) 
Stefan Wienert  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hcdd7ac3iyhef3ccpgjb.jpg)](https://blog.trailofbits.com/2024/03/29/introducing-ruzzy-a-coverage-guided-ruby-fuzzer/)  

[Introducing Ruzzy: A Coverage-Guided Ruby _Fuzzer_](https://blog.trailofbits.com/2024/03/29/introducing-ruzzy-a-coverage-guided-ruby-fuzzer/) — Fuzzing is a form of dynamic testing that feeds random inputs to a test subject and Ruzzy is the latest gem to offer fuzzing Ruby code. After a quick usage example, there’s a lot of information here about implementation details. 

Matt Schwager   

[Gemsmith 21.5: CLI Tool for Smithing New Ruby Gems](https://alchemists.io/projects/gemsmith) — An ideal tool if you want to go a step beyond Bundler’s gem skeletons. The homepage does a good job showing off the main features, but there’s also its [GitHub repo](https://github.com/bkuhlmann/gemsmith). 

Brooke Kuhlmann   

[Hookdeck: The Amazon EventBridge Alternative](https://hookdeck.com?ref=rubyweekly-697) — Receive, transform, filter, route, and send messages across your EDA with an event gateway for engineering teams. 

Hookdeck sponsor   

📋 [Clipboard: Cross-Platform Access to the Clipboard](https://github.com/janlelis/clipboard) — A library of over 10 years’ vintage, but still maintained, supporting modern versions of Ruby (including JRuby), and clipboard access on Linux, macOS, Windows, WSL, and more. 

Jan Lelis   

[PermanentRecords: Soft-Delete for Your ActiveRecord Records](https://github.com/JackDanger/permanent_records) — A way to prevent Active Record objects being destroyed, as long as their model has a `deleted_at` column available. An alternative to [ActsAsParanoid](https://github.com/ActsAsParanoid/acts_as_paranoid). 

Jack Danger   

[React on Rails 14: Bringing React, Webpack, and Rails Together](https://github.com/shakacode/react_on_rails) — A major release because Ruby 2.7 support is dropped, but otherwise broadly stays the same and still worth a look if you want to integrate more closely with React in a Rails app – [here’s how it works](https://www.shakacode.com/react-on-rails/docs/guides/how-react-on-rails-works/). 

ShakaCode   

[ActiveRecordCursorPaginate: Cursor-Based Pagination for Active Record](https://github.com/fatkodima/activerecord_cursor_paginate) — Paginate through an AR relation using _cursor_ pagination. It also supports ordering by any column on the relation. 

fatkodima    

Jobs  

[Build Mission Control for a Global Weather Balloon Constellation](https://windbornesystems.com/careers/fullstack-web-developer) — WindBorne is supercharging forecasts with smart weather balloons launched from three continents; we're hiring a fullstack web dev. 
WindBorne Systems   

[Principal Full-Stack Rails Engineer (Remote)](https://www.linkedin.com/jobs/view/3868476988/) — Ruby FinTech w +10yr Track Record. NVDA, Bitcoin ETFs, Retirement Income, you name it. Helping investors research their options. 
Mitre Media      

- [Humanize 3.0](https://github.com/radar/humanize) – Converts your numbers to text in 13 languages.
- [Sequel 5.79](https://github.com/jeremyevans/sequel) – Popular database toolkit.
- [Elasticsearch.rb 8.13](https://github.com/elastic/elasticsearch-ruby/releases/tag/v8.13.0) – Ruby integrations for Elasticsearch.
- [Falcon 0.45](https://github.com/socketry/falcon) – Multiprocess, multi-fiber Rack-compatible HTTP server.
- [Stripe Ruby 10.14](https://github.com/stripe/stripe-ruby) – Ruby library for the Stripe API.
- [Rake 13.2](https://github.com/ruby/rake) – Ruby's `make`-like build utility.
- [Ruby OpenAI 6.5](https://github.com/alexrudall/ruby-openai) – Use OpenAI's APIs from Ruby
- [AnyCable 1.5](https://github.com/anycable/anycable) and [anycable-rails 1.5](https://github.com/anycable/anycable-rails)         

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/).
