---
title: "A new Ruby HTTP server option"
publication: "Ruby Weekly"
issue: 623
published_at: "2022-10-06"
canonical_url: "https://rubyweekly.com/issues/623"
---

Plus esoteric, obfuscated Ruby programming, and running Ruby on the Sega Genesis? Oh yes. |        

#​623 — October 6, 2022 

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

Together with [![Cloud66 logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_250,h_250/e_make_transparent/co_white,e_outline:7/ofjgwnua55tonrserpbl.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-22-q4-1)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/d82d5bdczmq7u9ya7ele.jpg)](https://speakerdeck.com/k0kubun/rubykaigi-2022)  

📊 [Towards Ruby 4 JIT](https://speakerdeck.com/k0kubun/rubykaigi-2022) — Essentially 'the state of the JIT union' with a look to Ruby's future from a member of the YJIT team at Shopify. Note that it’s just a slidedeck (for now) so lacks a little context, but the slides are quite illustrative and it's good to see the thinking here. 

Takashi Kokubun   

[Pitchfork: New Ruby HTTP Server Optimized for Latency and Memory](https://github.com/Shopify/pitchfork) — A pre-forking HTTP server for Rack apps designed to minimize memory usage by focusing on Copy-on-Write performance. Don’t rip out Puma from your apps just yet, though, as it’s still considered _experimental._ There’s more about the creator’s motivation [in this thread](https://nitter.net/_byroot/status/1577647475686514689). Pitchfork is fresh, but not _entirely_ new, though, as it began life as a fork of Unicorn so some of that lives on under the hood: _“In short it’s basically Unicorn, but with a MUCH lower memory usage.”_ 

Jean Boussier (Shopify)   [![\](https://copm.s3.amazonaws.com/2653a9b2.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-22-q4-1) 

[Heroku Alternative - But On Any Cloud](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-22-q4-1) — The convenience of PaaS, but on any cloud & in any region, with persistent storage, custom traffic rules, zero downtime deployments, blue/green & canary releases, WAF, & more. Try it today for free, plus $100 in credits with the code:`RubyWeekly!` 

Cloud 66 sponsor   

[Some Security Best Practices for Rails Apps](https://blog.appsignal.com/2022/10/05/security-best-practices-for-your-rails-application.html) — While Rails has a lot of good security-oriented defaults, there’s a lot more you can do to ensure you “sleep well at night”, as Paweł puts it, like forcing SSL, handling CORS, and using scopes to avoid data leaks. 

Paweł Dąbrowski   

[How to Run Multiple Rails Apps with Puma-dev](https://world.hey.com/lewis/run-multiple-rails-apps-with-puma-dev-67b1c10f) — [Puma-dev](https://github.com/puma/puma-dev) is a zero-config dev server (for macOS and Linux) letting you use less artificial URLs in local development, such as `http​://web.​test` instead of `http://​locahost:​3001`, say. This is especially useful if you need to run multiple Rails apps locally. 

Lewis Buckley (37signals)   

**QUICK BITS:** 

- After 163 episodes, the popular [Code with Jason podcast](https://www.codewithjason.com/podcast/) is going on hiatus. There's a fantastic back catalog of interviews with (mostly) Ruby folks to enjoy.
- 🐦 Tip from Twitter: [You probably want `compact_blank` most places you are using `compact`](https://twitter.com/_swanson/status/1574500221459087381).
- [A trip report](https://evilmartians.com/chronicles/rubykaigi-a-report-from-an-evil-martian-in-japan) from the recent _RubyKaigi 2022_ event.
- **SE-GA!** At _RubyKaigi_, developer Yuji Yokoo gave a presentation built using `mruby` and running on a Sega Genesis (Mega Drive) – you can [download the ROM here](https://rubykaigi.org/2022/presentations/yujiyokoo.html). Yuji also has a neat [▶️ talk about running mruby on the Sega Dreamcast](https://www.youtube.com/watch?v=oqBTlYUkGXk) too.  

📖 Articles, Stories & Videos  

['So You Moved Off Heroku, Where Did You Go?'](https://news.ycombinator.com/item?id=33077118) — This _Hacker News_ post spawned some great discussion. There are a [few](%E2%80%9D<a) [responses](https://news.ycombinator.com/item?id=33079196) focused on Rails. [Render](https://render.com/), [fly.io](https://fly.io/), [Railway](https://railway.app/), and Google [Cloud Run](https://cloud.google.com/run) all fare well, but Heroku’s own [new plans](https://blog.heroku.com/new-low-cost-plans) keep them in the game too. 

Hacker News   

[Shopify's Engineering Story Behind 'Flex Comp'](https://shopify.engineering/building-flex-comp) — Hearing about Shopify’s employee compensation plan sounds dull, but this post is _really_ about how they approached building the employee facing app to manage it, the related privacy aspects, and their frontend vs backend approaches. It’s interesting to see how much structure a company like Shopify places around building its systems. 

Eric Poirier (Shopify)   

[Migrating Postgres from Heroku: A Customer Study on Crunchy Bridge](https://www.crunchydata.com/case-studies/calibre?utm_source=cprb-brief-1006) 

Crunchy Data sponsor   

[Simple Presenter Pattern in Rails _Without_ Gems](https://pawelurbanek.com/rails-presenter-pattern) — The Presenter Pattern can help keep models small and makes things more testable. _(As an aside, we wondered what the image on this post was about and it relates to [European carnivals like this.](https://en.wikipedia.org/wiki/Swabian-Alemannic_Fastnacht)_) 

Paweł Urbanek   

[How to `bundle install` in Deployment Mode, using Bundler in Docker](https://honeyryderchuck.gitlab.io/httpx/2022/10/03/how-to-bundle-production-mode-in-docker.html) — While the fix is easy, this is the kind of thing that can burn hours/days of a developer’s time with trial and error. Oh, and this is not just a Rails issue. 

HoneyRyderChuck   

[The Tao of Writing a Ruby Gem Specification](https://piotrmurach.com/articles/the-tao-of-writing-a-ruby-gem-specification/) — This is, indeed, a “whirlwind tour” of the gem spec, including how it shapes how the gem is represented on rubygems.​org. Stow this away as a reference. 

Piotr Murach   

[Time Extensions Are Unsung Heroes of Active Support](https://andycroll.com/ruby/date-and-time-extensions-are-an-unsung-hero-of-active-support/) — Is the end of the quarter on Tuesday, a week from now, a Sunday? There’s a method for that. Maybe there’s potential for bringing some of this into Ruby proper? 

Andy Croll   

[The Hundred-Year Programming Language](https://codefol.io/posts/the-hundred-year-programming-language/) — How could a programming language live for 100 years? Is it all down to performance or expressiveness? Or a community that comes together and stays together by evolving the language? Noah, well known for his Ruby benchmarks, thinks it over. 

Noah Gibbs  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/njghldegce0nax4yi49w.jpg)](https://github.com/mame/quine-relay/blob/master/QR.rb)  

[A Ruby 'Quine Relay' That Generates 128 Programs in a Loop](https://github.com/mame/quine-relay/blob/master/QR.rb) — We linked this years ago but it remains a fantastic bit of work and has seen [some fresh interest](https://news.ycombinator.com/item?id=33105706) this week. It’s a Ruby program that generates a Rust program that generates a Scala program.. rinse and repeat through 128 different languages. 

Yusuke Endoh   

If this sort of thing tickles you, Yusuke has [a slidedeck](https://www.slideshare.net/mametter/ruby-esoteric-obfuscated-ruby-programming-5088683) (or [▶️ a conference talk](https://www.youtube.com/watch?v=6K7EmeptEHo)) showing off more 'esoteric, obfusctated Ruby programming.'  

[Active Storage Validations 1.0: Simple Validations for Active Storage](https://github.com/igorkasyanchuk/active_storage_validations) — Imagine having a validation that could validate a `photos` attribute that has an attached PNG or JPEG file within a certain file size range and certain pixel dimensions.. 

Igor Kasyanchuk   

[Observability for Your Ruby Test Suites](http://buildkite.com/test-analytics?utm_campaign=CPress&utm_source=ppc&utm_medium=Q4-Ruby-Weekly&utm_term=Test-Analytics) — Get instant, real-time visibility into the performance of your Minitest and RSpec tests with Buildkite Test Analytics. 

Buildkite sponsor   

[Ruby SMTP Mock 1.2.2: Mimic SMTP Server Behavior in a Test Environment](https://github.com/mocktools/ruby-smtp-mock) — Framework agnostic and provides a lot of settings for testing your app’s interactions against an SMTP email server including error states. 

Vladislav Trotsenko   

[Fusuma 2.5: Multitouch Gesture Recognizer for Linux](https://github.com/iberianpig/fusuma) — You define gestures and actions in YAML and it hooks into `libinput` to add custom gesture support on Linux. An unusual use case for Ruby. 

Kohei Yamada   

[AssetRam: Memoize Your Rails Asset Links](https://github.com/dogweather/asset_ram) — _“Saves my Rails app 17–95% allocations per request,”_ says the author. See [‘Reasons to use memoization’](https://dogweather.dev/2022/10/02/reasons-to-use-memoization/) for more on this. 

Robb Shecter   

[New Ruby API from a Google Ventures-Backed Notifications Infrastructure Service](https://www.courier.com/docs/guides/getting-started/ruby?utm_campaign=demand-gen&utm_source=email&utm_medium=ruby-weekly-10-6&utm_content=guide-ruby-getting-started) 

Courier.com sponsor   

- [Sinatra 3.0.2](https://github.com/sinatra/sinatra)
 ↳ The popular HTTP app library/DSL.
- [Faraday 2.6](https://github.com/lostisland/faraday)
 ↳ Simple, flexible HTTP client library.
- [Units 3.0](https://github.com/olbrich/ruby-units)
 ↳ A unit handling library/abstraction.
- [Sidekiq-Cron 1.8](https://github.com/ondrejbartas/sidekiq-cron)
 ↳ Scheduler / Cron for Sidekiq jobs.
- [html2haml 2.3](https://github.com/haml/html2haml)
 ↳ Convert HTML and ERB to Haml.
- [sqlite3-ruby 1.5.2](https://github.com/sparklemotion/sqlite3-ruby)
 ↳ Fixes packaging. Says hello to SQLite 3.39.4.
- [RubyGems 3.3.23](https://blog.rubygems.org/2022/10/05/3.3.23-released.html)
 ↳ Better error handling for permanent redirects.     

Jobs  

[Ruby on Rails Developer](https://boards.greenhouse.io/synura/jobs/4535673004) — We're looking for a dev to help us build a collaborative video planning and AI-powered editing app. Compensation is 5.5-7k USD/mo. 
Synura   

[Ruby on Rails Backend Developer (Remote)](https://verycreatives.com/careers/backend-developer?utm_source=rubyweekly&utm_medium=rubyweekly_nl) — Join our friendly product team as a Backend Developer (remote) and help us build UK's No.1 Cashback & Rewards platform. 
VeryCreatives   

[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           

Curated by Peter Cooper 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/).
