🇺🇦 #​603 — May 12, 2022

Read on the Web

Ruby Weekly

Shopify's Experience Porting the YJIT Ruby Compiler to Rust — A project to port YJIT to Rust (rather than using C, as most of CRuby is written in) has been underway for a while and progress is going really well. The Shopify-based team’s leader tells the full story here covering both the high and low points

Maxime Chevalier-Boisvert (Shopify)

Have You Investigated Honeybadger Lately?🕵🏽‍♀️ — Honeybadger is so much more than error monitoring! All new plans include cron monitoring, uptime monitoring, customizable public status pages, and more - all rolled into a single, easy to use platform. Sign up now and feel the power of the badger!🦡

Honeybadger sponsor

Report of a Now-Fixed RubyGems Vulnerability — A bug in the gem yanking (unpublishing, basically) process meant that under certain conditions gems could be taken over by the owners of similarly named gems. It’s now been fixed and while the author says you might want to audit your Gemfile.lock files… you might want to see the following item first ;-)

Samuel Giddins

Impact Analysis of the CVE-2022-29176 Unauthorized Package Takeover Vulnerability — This directly relates to the item above and goes into more depth analyzing the extent of the problem, why it occurred, and how WhiteSource analyzed the gems ecosystem and concludes no gems were compromised.

Maciej Mensfeld

Quick Bits:

Jobs

Rails Developer – Sports Industry (Remote – Europe) — Our mission is to help 20M people play sports by 2024. Join a small team, have a real impact on a live product, learn every day, and help us expand globally.
SPORTSKEY

Experienced Full-Stack Rails and React Developer — All you can eat, flexible full-time or contract dev work and amazing products to work on, as well as the flexibility and freedom to continue working on your own goals.
Tanooki Labs

Principal Platform Software Engineer (Remote; EST +/- 3hrs) — Investor fintech. No Zoom fatigue, Shape Up, profitable, growing, small team. Operator of Dividend.com, Mutualfunds.com and more.
Mitre Media

Find Ruby Jobs Through Hired — 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

How to Make Ruby Run a Program Written in a 'Natural Language' — A start-from-scratch effort creating a new DSL with its own “virtual machine” so this is the kind of post you spend some time with as a thought experiment and you become a better Rubyist.

Dmitry Tsepelev

Ruby Memoization — Memoization is an optimization technique where the results of operations are cached based upon their arguments. It’s easy to pull off in Ruby but there are some points to keep in mind.

Jason Swett

A Hybrid Development Docker Compose Setup for Rails — Josef looks at getting 80% of the benefits for 20% of the effort by not Dockerizing everything but focusing on where it makes most sense.

Josef Strzibny

Keep Up with the Latest in Startups, Tech, & Programming in Just 5 Min — TLDR is a daily newsletter with links and TLDRs of the most interesting stories in startups 🚀, tech 📱, and coding 💻

TLDR Newsletter sponsor

How to Use Import Maps without Rails — DHH has talked about a ‘bundler-less’ reality for Rails by way of import maps numerous times, but if you appreciate a bare bones example to understand what’s happening, Tomas is here for you.

Tomas Valent

How to Sell a One-Time Purchase in Rails with Stripe — We’re Stripe customers ourselves and it really is easy to use them for taking payments as Jeffrey demonstrates here.

Jeffrey Morhous

▶  Discussing GraphQL with David Sanchez — GraphQL is a flexible, strongly-typed query language and this episode digs into its use in and from Rails apps. (47 minutes.)

Ruby Rogues Podcast podcast

🛠 Code & Tools

Searchjoy 1.0: Search Analytics Made Easy — Slips into your Rails app and plugs into things like Elasticsearch, Sphinx and Solr and lets you track searches, mark conversions, then keep an eye on what users are doing.

Andrew Kane

hash_deep_diff: Get the Differences Between Two Hashes — Basically diff for hashes. Hashdiff is another option in this space.

Bohdan Pohorilets

Simplified API for Designing and Sending Notifications Via Slack

Courier sponsor

rbenv for Windows: Manage Your App's Ruby Environment on Windows — The topic of Ruby’s support for Windows has been discussed for many years and while Windows and Ruby aren’t the best of friends, the tooling exists if you need it.

ccmywish

Sniffer 0.5: Log and Analyze Outgoing HTTP Requests — Hooks into numerous Ruby HTTP libraries and logs outgoing requests in JSON format which can be sent elsewhere.

Andrey Deryabin

PDF::Reader 2.10.0: A Spec Compliant PDF Document Parser
James Healy

Loofah 2.18.0: Nokogiri-Powered HTML/XML Manipulation and Sanitization
Mike Dalessio

jekyll-asset-post-processor: Process Then Suffix Your Jekyll Assets with Cache Busting Version Hashes
Darcy Supply Ltd.