Sign in

Manu

@manu-j.com
768 followers 143 following 30 posts

Creator: zestui.com - UI Kit for Ruby on Rails using Tailwind & Phlex Engineering Lead @ Lodgistics

PostsRepliesMedia
Reposted by Manu
Aaron Patterson @tenderlove.dev · 03/06/2026
Bundler supports cooldowns now! Really great work from the RubyGems and RubyGems.org teams!!
14213
Reposted by Manu
Ash Higgins @ashhiggins.bsky.social · 04/10/2025
This. Is. Why. I. Paint.
"They're trying to convince people they can't do the things they've been doing easily for years - to write emails, to write a presentation. Your daughter wants you to make up a bedtime story about puppies - to write that for you." We will get to the point, she says with a grim laugh, "that you will essentially become just a skin bag of organs and bones, nothing else. You won't know anything and you will be told repeatedly that you can't do it, which is the opposite of what life has to offer. Capitulating all kinds of decisions like where to go on vacation, what to wear today, who to date, what to eat.
People are already doing this. You won't have to process grief, because you'll have uploaded photos and voice messages from your mother who just died, and then she can talk to you via Al video call every day. One of the ways it's going to destroy humans, long before there's a nuclear disaster, is going to be the emotional hollowing-out of people."
131382578
Reposted by Manu
Andrew Atkinson @andyatkinson.com · 29/09/2025
Had a great time presenting Multitenancy Patterns at PGConf NYC 2025 @pgconfnyc.bsky.social Slides: speakerdeck.com/andyatkinson... SQL demos/GitHub Repo: github.com/andyatkinson...
1121
Reposted by Manu
Andrew Atkinson @andyatkinson.com · 30/09/2025
Andres Freund sharing some very exciting performance gains being worked on with Async IO infrastructure now in place in 18. Future Postgres versions will benefit from this for index scans, backwards scans, bgwriter, checkpointer, copy, vacuum and much more. @pgconfnyc.bsky.social
031
Reposted by Manu
Marco Roth @marcoroth.dev · 10/08/2025
Thanks to @excid3.com and @andrewm.codes for having me! Listen here: www.remoteruby.com/2260490/epis...
remoteruby.com
Herb with Marco Roth - Remote Ruby
In this episode of Remote Ruby, Andrew and Chris chat with guest, Marco Roth, to discuss the challenges of working with ERB templates in Ruby on Rails, and Marco's ongoing project, Herb. They dive int...
052
Reposted by Manu
Jean Boussier @byroot.bsky.social · 02/08/2025
Beyond performance work, I deprecated a bunch of APis in the JSON gem, and added others, so I figured it would be a good occasion to talk about API design: byroot.github.io/ruby/json/20...
byroot.github.io
What’s wrong with the JSON gem API?
As I mentioned at the start of my Optimizing Ruby’s JSON series of posts, performance isn’t why I candidated to be the new gem’s maintainer.
2258
Reposted by Manu
Andrew Atkinson @andyatkinson.com · 26/07/2025
Honored to be presenting at PGConf NYC in a couple of months! Hope to see you there. #postgresql bsky.app/profile/pgco...
2102
Reposted by Manu
Andrew Atkinson @andyatkinson.com · 25/07/2025
RailsConf talks are live. Would love your feedback! Presentation page with more info and all the links: andyatkinson.com/10-mistakes RailsConf 2025 10 Costly Database Performance Mistakes (and How to Fix Them) by Andrew Atkinson www.youtube.com/watch?v=MJ8R...
youtube.com
RailsConf 2025 10 Costly Database Performance Mistakes (and How to Fix Them) by Andrew Atkinson
YouTube video by Ruby Central
193
Reposted by Manu
Brock @brocktibert.com · 27/05/2025
Ducklake, simplified lakehouses by @duckdb.org Holy moly, it's amazing when things "just make sense." duckdb.org/2025/05/27/d...
duckdb.org
DuckLake: SQL as a Lakehouse Format
DuckLake simplifies lakehouses by using a standard SQL database for all metadata, instead of complex file-based systems, while still storing data in open formats like Parquet. This makes it more relia...
053
Reposted by Manu
Gergely Orosz @gergely.pragmaticengineer.com · 25/05/2025
This blog is SO good at pointing out what should have been obvious about AI for coding (Copilot and others) These tools are good for re-creating whatever they’ve been trained on. They are not what will create the next, better generation of frameworks, libraries, technologies.
1533264
Reposted by Manu
Andrew Atkinson @andyatkinson.com · 23/04/2025
If your team needs expert help improving performance, scalability, and reliability for your Ruby on Rails and PostgreSQL application, Refined Pages, LLC can help. We'll systematically refactor Active Record ORM queries to optimize PostgreSQL performance. Let’s chat: refinedpages.com
refinedpages.com
Home
High Performance Postgres and Web App Consulting
1144
Reposted by Manu
Vitaly Slobodin @vitallium.bsky.social · 12/04/2025
Improving the initial UX of the Ruby extension for @zed.dev by using the newly introduced `Process` API. Isolated and automatic installation of LSP gems but we check the project gemset first. 🎉 github.com/zed-extensio...
131
Reposted by Manu
Marco Roth @marcoroth.dev · 03/04/2025
As revealed at @tropicalonrails.bsky.social today, we are introducing an iOS app for @rubyevents.org to push and support the recent uptick in Ruby Events around the world. #tropicalonrails #tropicalonrails2025
1268
Reposted by Manu
Chris Oliver @excid3.com · 31/03/2025
If you've ever wondered how @rubycentral.org conference talks are decided, Noel wrote up a great thread about the process.
082
Reposted by Manu
Joel Drapper 🇬🇧❤️🇺🇦 @joel.drapper.me · 07/03/2025
I’m still unemployed and looking for a new full time position doing Ruby, Rails, TypeScript, CSS. If you know people who are hiring, I’d really appreciate an introduction. 🙏
34540
Reposted by Manu
Jean Boussier @byroot.bsky.social · 04/03/2025
Here we go. That one I really needed to get of my chest for the better part of a year, so I feel relieved now. It's really long but hopefully not too hard to follow. byroot.github.io/ruby/perform...
byroot.github.io
The Pitchfork Story
A bit more than two years ago, as part of my work in Shopify’s Ruby and Rails Infrastructure team, I released a new Ruby HTTP server called Pitchfork.
44410
Reposted by Manu
Gergely Orosz @gergely.pragmaticengineer.com · 27/02/2025
Is there any company that publishes more self-critical and as-transparent-as-can-be postmortems than Cloudflare... within 24 hours of major incidents, should I say? They've been doing it forever. I personally trust them more for it. Eg from a few weeks ago:
51472
Reposted by Manu
Jean Boussier @byroot.bsky.social · 24/02/2025
Continuing my series to give context on Pitchfork design, why I think HTTP2 support isn't important (for a Ruby application server). byroot.github.io/ruby/perform...
byroot.github.io
There Isn’t Much Point to HTTP/2 Past The Load Balancer
I want to write a post about Pitchfork, explaining where it comes from, why it is like it is, and how I see its future. But before I can get to that, I think I need to share my mental model on a few t...
2193
Reposted by Manu
Janko Marohnić @janko.io · 18/02/2025
I really value that Tailwind CSS documentation uses real-world examples to introduce features 🫶 Those are much harder to produce than contrived examples, and the benefit is that they not only teach me library API, but also various strategies I can apply to my project 💯
091
Reposted by Manu
Aaron Patterson @tenderlove.dev · 12/02/2025
I wrote a blog post about how we can make FFI faster in CRuby railsatscale.com/2025-02-12-t...
railsatscale.com
Tiny JITs for a Faster FFI
Can we have a faster FFI for CRuby? Yes.
57724
Reposted by Manu
Kasper Timm Hansen @kaspth.com · 13/02/2025
Shipped a huge update to ActiveRecord::AssociatedObject that I'm proud of. You can now pass these POROs to forms, `render`, route helpers and fragment caching. github.com/kaspth/activ...
github.com
Release v0.9.0 · kaspth/active_record-associated_object
What's Changed Expose record on the Associated Object class level. by @kaspth in #34 BREAKING: Replace record_klass with record & remove record_klass by @kaspth in #35 Integrate with Active Model ...
1221
Reposted by Manu
Kasper Timm Hansen @kaspth.com · 26/01/2025
When I scheduled the Rails guided tour I had no idea how popular it'd be, so thank you everybody for helping it sell out! I'm adding another on February 6th that's more friendly to EU time zones + group registration too so bring your squad! lu.ma/8a8clh9b
lu.ma
Guiding You through the Rails Source · Zoom · Luma
Rails is your app's biggest dependency and you probably don't know what's going on in there. tl;dr: I'm a former Rails core member guiding you through complex…
054
Reposted by Manu
Aaron Francis @aaronfrancis.com · 22/01/2025
I'm incredibly excited to announce that we've partnered with @fractaledmind.bsky.social to produce our first course on Ruby on Rails. Sponsored by @hatchbox.io and @honeybadger.io, High Leverage Rails is an in-depth video course on Rails + SQLite for beginners. Coming in February!
1714319
Reposted by Manu
Wes Bos @wesbos.com · 21/01/2025
You should be using JavaScript sets more often Now in all browsers and Node - these 7 new set methods are key for when trying to compare two arrays or sets of data.
New JavaScript Set Methods
const set1 = new Set(['wes', 'kait']);
const set2 = new Set(['wes', 'scott']);
Difference
Elements in set2 but not in set1
set2.difference(set1)
> ['scott']
Intersection
Elements that exist in both sets
set1.intersection(set2)
> ['wes']
Symmetric Difference
Elements in either set, but not both
set1.symmetricDifference(set2)
> ['kait', 'scott']
Union
All elements from both sets
set1.union(set2)
> ['wes', 'kait', 'scott']
Is Disjoint From
True if sets share no elements
set1.isDisjointFrom(set2)
> false
Is Subset Of
True if all elements are in other set
set1.isSubsetOf(set2)
> false
Is Superset Of
True if it contains all other's elements
set1.isSupersetOf(set2)
> false
511601148
Reposted by Manu
Stephen Margheim @fractaledmind.bsky.social · 22/01/2025
Awesome new Ruby gem(s) alert! 🚨🚨 This week @joel.drapper.me and I wrapped up the awesome Difftastic tool into a gem with precompiled binaries. Difftastic gives you AST-driven diffs instead of simple text-driven diffs by leveraging the power of Tree Sitter.
1305
Reposted by Manu
John Nunemaker @johnnunemaker.com · 17/01/2025
I forget the original source but this is so good. I need a little pocket version that goes in my wallet like a credit card.
49920
Reposted by Manu
Jean Boussier @byroot.bsky.social · 14/01/2025
It is done, I finally concluded the ruby/json optimization series. I hope you enjoyed it: byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 7
In the previous post, we started covering some parser optimizations. There’s just a handful more to cover until we reached what’s the state of the currently released version of ruby/json.
57614
Reposted by Manu
Josh from Honeybadger @joshuawood.honeybadger.io · 15/01/2025
This is an awesome event from @kaspth.bsky.social. Reading the Rails source is how I leveled up (and made my first PR to Rails!) too. It's a rare opportunity to get a guided tour from a former Rails core team member.
032
Reposted by Manu
Thorsten Ball @thorstenball.com · 11/01/2025
It's here, it's here! New Joy & Curiosity! Starts with a hot take and, if I might say so, in the parlance of our times, doesn't really cool down, you know. If your email pipe's clogged and it's not in your inbox, read it here: registerspill.thorstenball.com/p/joy-and-cu...
1142
Reposted by Manu
Vic 🌮 @vicvijayakumar.com · 11/01/2025
It feels like I’m in the future right now at this exact moment. - 3d printing a white picket fence for my wife’s bird feeder - one handed typing into my IDE’s chat and it’s going and doing things for me - baby is asleep on my shoulder
1221
Reposted by Manu
Josh W. Comeau @joshwcomeau.com · 11/01/2025
As usual, Danny hits the nail on the head. 🔨 I’ve had to fight this temptation myself. Cursor changes 50 lines and the lazy part of my brain says "I’m sure it’s fine, just accept the changes". Seems like a great way to plateau in your growth as a developer. 😬
915020
Reposted by Manu
Gergely Orosz @gergely.pragmaticengineer.com · 04/01/2025
This is so spot on. Two things: 1. Being focused on producing output the fastest way possible means that you will never prioritize "going deep" 2. Going deep (and down the rabbit hole) is how you learn more: but you need to balance it. Figure out how to do both: it's tricky!
928242
Reposted by Manu
Jean Boussier @byroot.bsky.social · 04/01/2025
Part 5 is out, I'm finally done with the encoding side, so next time I can start talking about parsing: byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 5
In the previous post, we showed how we eliminated two malloc/free pairs of calls when generating small JSON documents, and how that put us ahead of Oj when reusing the JSON::State object.
24112
Reposted by Manu
Stan Lo @st0012.dev · 28/12/2024
This week I also spent a few hours reworking IRB's documentation, which was previously scattered across its GitHub Pages and README. Now, everything is merged into one place: ruby.github.io/irb
ruby.github.io
IRB Documentation
IRB Documentation: Overview \IRB stands for "Interactive Ruby" and is a tool to interactively execute Ruby expressions read from the standard input. The `irb` command f
2215
Reposted by Manu
Benoit Tigeot @benoittgt.bsky.social · 27/12/2024
Very detailed release note about #Ruby 3.4 by Koichi and Mame dev.to/ko1/reading-...
dev.to
Reading the Ruby 3.4 NEWS with professionals (English translation)
This article is Japanese->English translation of プロと読み解くRuby 3.4 NEWS - STORES Product Blog,...
172
Reposted by Manu
Jean Boussier @byroot.bsky.social · 27/12/2024
I found a bit of time there and there to write part 3 over the last week, hopefully it isn't too disjointed. byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 3
In the previous post, I covered how I reimplemented JSON::Generator::State#configure in Ruby and some other changes. Unfortunately, it didn’t go as well as I initially thought.
6426
Reposted by Manu
Peter Zhu @peterzhu.ca · 25/12/2024
Merry Christmas everyone! Ruby 3.4 ships with Modular GC, an experimental feature we're actively working on. Modular GC provides an API for GC implementations and allows you to switch garbage collectors at boot time. For more details, see github.com/ruby/ruby/bl...
github.com
052
Reposted by Manu
nateberkopec.bsky.social @nateberkopec.bsky.social · 26/12/2024
Noah Gibbs (codefolio, YJIT team, Rebuilding Rails author) has passed away. His big dream in life was to help build the Ruby community up. He wanted to be like the folks who worked to create the railroads during the industrial revolution.
110335
Reposted by Manu
hsbt @hsbt.org · 25/12/2024
Ruby 3.4.0 and 3.4.1 (that change is only version number) has been released. www.ruby-lang.org/en/news/2024... www.ruby-lang.org/en/news/2024... And I also released new version of ruby-build github.com/rbenv/ruby-b...
ruby-lang.org
Ruby 3.4.0 Released
04620
Reposted by Manu
Tim Riley @timriley.info · 25/12/2024
My favourite Ruby 3.4 improvements: timriley.info/posts/my-…
0125
Reposted by Manu
ioquatix.bsky.social @ioquatix.bsky.social · 22/12/2024
🎙️ Earlier this year, I joined Ruby Rogues to talk about Async, Falcon, and advancing Rails with concurrency & streaming. 🚀 We explored challenges, simplifying deployments, and even gave Futurama a shoutout. 📺💡 www.youtube.com/watch?v=fpXB...
youtube.com
Revolutionizing Ruby Deployment with Falcon Web Server and Async Concurrency Framework - RUBY 627
YouTube video by Top End Devs
054
Reposted by Manu
Multitudes @multitudes.co · 18/12/2024
How hard should you work to retain employees who hint at leaving? In @mipsytipsy.bsky.social's latest blog, she shares her perspective on the employer-employee relationship, with some honest truths along the way. Check it out below 👇 charity.wtf/2024/10/11/h...
charity.wtf
How Hard Should Your Employer Work To Retain You?
Recently we learned that Google spent $2.7 billion to re-hire a single AI researcher who had left to start his own company. As Charlie Brown would say: “Good grief.” 🙄 This is an (incredibly!) extr…
3186
Reposted by Manu
Kasper Timm Hansen @kaspth.com · 16/12/2024
I've been polishing up the github.com/kaspth/activ... README. You can now see all the benefits and more praise quotes now that people are seeing this in practice — I'm really proud of where this is going! 🚀
ActiveJob::Performs
ActiveJob::Performs adds a performs class method to make the model + job loop vastly more conventional. You use it like this:

class Post < ApplicationRecord
  performs :publish
  # Or `performs def publish`!

  def publish
    # Some logic to publish a post
  end
end
Then we build a job for the instance method and define a post.publish_later instance method, and more:

class Post < ApplicationRecord
  class Job < ApplicationJob; end # We build a general Job class to share configuration between method jobs.

  # Individual method jobs inherit from the `Post::Job` defined above.
  class PublishJob < Job
    # We generate the required `perform` method passing in the `post` and calling `publish` on it.
    def perform(post, *, **) = post.publish(*, **)
  end

  # On Rails 7.1, where `ActiveJob.perform_all_later` exists, we also generate
  # a bulk method to enqueue many jobs at once. So you can do this:
  #
  #   Post.unpublished.in_batches.each(&:publish_later_bulk)
  def self.publish_later_bulk
    ActiveJob.perform_all_later all.map { PublishJob.new(_1) }
  end

  # We generate `publish_later` to wrap the job execution forwarding arguments and options.
  def publish_later(*, **) = PublishJob.perform_later(self, *, **)

  def publish
    # Some logic to publish a post.
  end
endBenefits

Conventional Jobs: they'll now mostly call instance methods like publish_later -> publish.
Follows Rails' internal conventions: this borrows from ActionMailbox::InboundEmail#process_later calling process and ActionMailer::Base#deliver_later calling deliver.
Clarity & less guess work: the _later methods standardize how you call jobs throughout your app, so you can instantly tell what's happening.
Less tedium: getting an instance method run in the background is just now a performs call with some potential configuration.
Fewer files to manage: you don't have to dig up something in app/jobs just to learn almost nothing from the boilerplate in there.
Remaining jobs stand out: app/jobs is way lighter, so any jobs in there that don't fit the performs pattern now stand out way more.
More consolidated logic: sometimes Job classes house model-level logic, but now it's all the way out in app/jobs instead of app/models, huh?
Tip

On that last point, performs does put more logic back within your Active Records, so if you need further encapsulation to prevent them growing too large, consider checking out active_record-associated_object.Praise from people

Here's what @claudiob had to say after using ActiveJob::Performs:

I’ve been using active_job-performs for the last month and I love it love it love it!!

Your thought process behind it is so thorough. I have a bunch of jobs now attached to models and my app/jobs folder… is empty!!

This saves me a lot of mental hoops, I don’t have to switch between files anymore, everything is self-contained. Thank you!!!
From @andycroll in a writeup about launching UsingRails:

I’ve also adopted a couple of gems—with exceptional Rails-level taste and author pedigree—that I hadn’t used in anger before, including active_job-performs from Kasper […]. Would recommend both.
And @nshki after trying it:

Spent some time playing with @kaspth's ActiveRecord::AssociatedObject and ActiveJob::Performs and wow! The conventions these gems put in place help simplify a codebase drastically. I particularly love ActiveJob::Performs—it helped me refactor out all ApplicationJob classes I had and keep important context in the right domain model.
194
Reposted by Manu
Jean Boussier @byroot.bsky.social · 17/12/2024
I have the pleasure to welcome fatkodima in the Rails committers team. Dima has been relentlessly fixing reported issues in record time for quite a while now, this is more than deserved! Congrats Dima! 👏
26310
Reposted by Manu
John Hawthorn @jhawthorn.com · 18/12/2024
Vernier 1.5.0 is out! This has some significant changes including rewriting the timer thread sleeping (should be lighter weight), recording Fiber activity (thanks @tenderlove.dev), and showing file listings on the command line. Please let me know if you hit any issues 🙇‍♂️ github.com/jhawthorn/ve...
github.com
Release v1.5.0 · jhawthorn/vernier
This is the most significant release in a while. The timer thread should be lighter weight (hopefully without sacrificing too much accuracy), we now record fiber activity, and memory is measured ov...
14011
Reposted by Manu
Jean Boussier @byroot.bsky.social · 18/12/2024
Since the first post was well received, that motivated me to continue, let's see how long it lasts byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 2
In the previous post, I covered my motivations for improving ruby/json’s performance, and detailed the first 4 notable optimizations applied to speed up JSON generation.
56012
Reposted by Manu
Jean Boussier @byroot.bsky.social · 17/12/2024
I got quite a lot of free time lately, so I figured I'd use it to blog a bit. Hopefully it's worth the effort? Here's the first one, about some of the optimizations I and others made to ruby/json recently: byroot.github.io/ruby/json/20...
byroot.github.io
Optimizing Ruby’s JSON, Part 1
I was recently made maintainer of the json gem, and aside from fixing some old bugs, I focused quite a bit on its performance, so that it is now the fastest JSON parser and generator for Ruby on most ...
148525
Reposted by Manu
JP Camara @jpcamara.com · 04/12/2024
I dug into CRuby and YJIT to better understand a recent, popular synthetic benchmark run against various languages. It was alot of fun to investigate how YJIT and CRuby work together! jpcamara.com/2024/12/01/s... @k0kubun.com @timtilberg.bsky.social
jpcamara.com
Speeding up Ruby by rewriting C… in Ruby
There is a recent language comparison repo which has been getting shared a lot. In it, CRuby was the third slowest option, only beating out R and Python. The repo author, @BenjDicken, created a fun vi...
63210
Reposted by Manu
Xavier Noria @fxn.bsky.social · 02/12/2024
1Password has joined the Rails Foundation. "1Password is joining the Rails Foundation for three reasons: Rails is where the future is, Rails is where the community is, and Rails is where the challenge is." blog.1password.com/1password-jo...
blog.1password.com
1Password joins the Rails Foundation: Strengthening the community, empowering developers | 1Password
1Password is joining the Rails Foundation as a core member. Learn more about the announcement and what it means for Kolide and other 1Password products.
15011
Reposted by Manu
Kasper Timm Hansen @kaspth.com · 29/11/2024
hat-tip to @marcoroth.dev for letting me know @adrienpoly.com is trying out my active_record-associated_object gem for rubyvideo.dev profile ENHANCE ( ͡° ͜ʖ ͡°) ( ͡⊙ ͜ʖ ͡⊙) ( ͡◉ ͜ʖ ͡◉) github.com/adrienpoly/r...
rubyvideo.com
2212