JP Camara @jpcamara.com · 21/09/2026Giving Jev a try by integrating it into yrby collaborative agents Each agent is connected to the document and receiving updates. It then decides using Jev which topic it wants to be involved in 020
JP Camara @jpcamara.com · 05/09/2026Plus, aiming to have first-class Lexxy support. yrby has support for tiptap/prosemirror/rhino ootb as well, but lexxy-realtime makes it just a drop-in and a couple lines of code 130
JP Camara @jpcamara.com · 05/09/2026yrby is getting to a really strong place. I’m running it in production, and I’ve expanded quite a bit beyond my meager early ambitions I want it to be the first-class answer for realtime collaboration in Ruby/rails, without having to reach for node or any other tool 2102
JP Camara @jpcamara.com · 26/08/2026Working on MissionControl batches support - any suggestions? One thing I noticed so far is I didn't add the ability to delete a finished/failed batch 031
JP Camara @jpcamara.com · 31/12/2025“It’s 10pm, do you know where your children are?” I added this to my “when good threads go bad” post Does anyone else remember these ads?! May have only been a USA thing 170
JP Camara @jpcamara.com · 19/12/2025TIL if you want to return the duration in seconds, returning it as an Integer is a _hard_ requirement There is a _specific_ check that the class is Integer. If you accidentally return a float, Sidekiq ignores it and reverts to its built-in delay policy. Be careful! 130
JP Camara @jpcamara.com · 19/12/2025In Sidekiq, you can add a special method to your job class called `sidekiq_retry_in`. This method allows you to dynamically adjust retry behavior. For instance, based on the exception raised you can return a different duration in seconds. /1 2120
JP Camara @jpcamara.com · 22/11/2025Had an incredible time at @sfruby.com Fantastic talks, amazing people, and great vibes across the board So much to dig into and unpack around tooling, AI, development patterns and our collective ownership in the future of Rails Community day was such a great finish 0192
JP Camara @jpcamara.com · 12/11/2025I'm not sure @ankane.bsky.social is human - maybe some kind of open source being from the future 😂 I said to a colleague - "we'll see, but it's ankane, so it's entirely possible it'll get done soon". Less than an hour later, it was updated 🤯 0171
JP Camara @jpcamara.com · 02/11/20254) "When good threads go bad" coming soon! Dan shows how jobs are executed in the `process` method, which has this hefty section utilizing `handle_interrupt`. He does a great job describing how it works, and my next article will dig deeper into if you're interested! 11/11 🧵 021
JP Camara @jpcamara.com · 02/11/2025If you read my article on ruby thread interrupts and bitmasks, this will be very familiar! jpcamara.com/2025/10/22/b... I asked koichi if signals were the inspiration, and he confirmed it. It was fun to see the connection and what can be an inspiration for central language apis! 10/11 🧵 110
JP Camara @jpcamara.com · 02/11/2025You can change the default return value of a hash by using `default=` on the hash. docs.ruby-lang.org/en/3.4/Hash..... Now instead of nil, you'll return whatever `default` you provided! Very handy. 7/11 🧵 100
JP Camara @jpcamara.com · 02/11/20251) @mike.contribsys.com you clever devil, that Signal.trap approach is ingenious! In my post on thread interrupts, I mentioned that you cannot use rails.logger inside of a signal.trap: bit.ly/43c23Ym. Similarly, you cannot use the Sidekiq logger in trap, which is inconvenient. 3/11 🧵 220
JP Camara @jpcamara.com · 24/10/2025This is all I can think of now whenever my hands absorb the flavors or heat of a vegetable 000
JP Camara @jpcamara.com · 23/10/2025Time to tighten up my talk, the conference is coming quick! Also just noticed the AI whoopsies on the text 🤭 080
JP Camara @jpcamara.com · 10/10/2025Incredible validation for Falcon as a Ruby web server, and for Async in Ruby. I spoke about concurrency at last years RubyConf and had to call out Falcon - it's the server i've been most excited about in the past few years. 1160
JP Camara @jpcamara.com · 08/10/2025We never needed while loops. The power was always within us. 5258
JP Camara @jpcamara.com · 03/10/2025Github, you will never convince me that this emoji represents laughter 020
JP Camara @jpcamara.com · 22/09/2025Working on my real-time talk for #SFRuby conf, I think it'll be a good one! Real-time collaboration in Lexxy anyone? 2194
JP Camara @jpcamara.com · 05/09/2025Did an early draft run of my real-time collaboration talk at the #bostonrb meetup. Getting amped for #SFRuby conf! See you there? sfruby.com 060
JP Camara @jpcamara.com · 22/08/2025Still one of my favorites, definitely need to give it a rewatch I saw this license plate yesterday so it made me think there could be a new series about the: 110
JP Camara @jpcamara.com · 07/08/2025Looks like you even got mentioned in the bytes.dev newsletter 😂 110
JP Camara @jpcamara.com · 07/08/2025I've been reading Ruby Weekly since - let me check my inbox - *SPITS OUT WATER* - 2013?!? And that was already the 126th edition 😱 @cooperx86.bsky.social you are a machine!! It's always been one of my top Ruby resources, so it's extra fun to be included in it! rubyweekly.com/issues/762 1182
JP Camara @jpcamara.com · 02/08/2025It turns out the tiny /o modifier has an outside influence on how your program runs. It creates a permanent, immutable version of your regex after the _first_ time it runs. My personal policy from now on is to never use this modifier. Ever. I dig alot deeper in the article, give it a read! 040
JP Camara @jpcamara.com · 02/08/2025If you run these lines - is it what you expected? It definitely was _not_ what I expected! 130
JP Camara @jpcamara.com · 02/08/2025When you look at this class - does anything stick out to you? Any red flags? 120
JP Camara @jpcamara.com · 11/07/2025My brain is full of open source, blogging and growth ideas, thanks to #rubyfriends! Thanks @rubycentral.org @rosa.codes @codynorman.com @jeremysmith.co @manu-j.com @andyatkinson.com @adrianthedev.com @inazarova.bsky.social @jesper.dev @kaspth.com and so many others! Hope to see everyone again soon! 5254
JP Camara @jpcamara.com · 20/04/2025If you read @byroot.bsky.social 's "What's the deal with Ractors?", and were bummed at how poorly they handled JSON parsing, then @jhawthorn.com has brightened your day! Frozen interned strings are now stored in a lock-free hash, making the Ractor example 2x faster than the single-threaded example! 13010
JP Camara @jpcamara.com · 03/04/2025I’m a little bummed, but I think my RailsConf talk getting declined is for the best! I can focus on getting back to blogging and also just enjoy the conference without revising my talk endlessly. Should I still submit it as a talk elsewhere down the line? Would you go to it? 2110
JP Camara @jpcamara.com · 18/01/2025How have I never heard of __send__? docs.ruby-lang.org/en/3.4/Basic... I saw it when I was looking at the Literal source code @joel.drapper.me 090
JP Camara @jpcamara.com · 14/01/2025But the inline caches only improve the performance of explicit method calls. Direct method calls are related to "calldata". This "calldata" maps directly to a struct in CRuby called "rb_call_data", which contains information about the call, and a "call cache". /5 120
JP Camara @jpcamara.com · 14/01/2025TIL: In Ruby, there is a significant performance difference between calling `obj.my_method` vs calling `obj.send(:my_method)`. To be clear, "Significant" in this instance is more the realm of microbenchmarks, or very hot code path optimizations (hundreds of thousands/millions of calls). /🧵 2202
JP Camara @jpcamara.com · 12/01/2025The hacker news Ruby appearances continue! Nice one @rossta.net ! 130
JP Camara @jpcamara.com · 07/01/2025@chastell.net you got a shoutout in this one for your love of the flip-flop operator 😂 031
JP Camara @jpcamara.com · 05/01/2025Saw this comment in your HN reply and it’s too real @byroot.bsky.social 😅 I’ve written around 100k words over the past year and a half - writing about code is so so much slower than working on code. It is not your writing skill 🙂↔️ news.ycombinator.com/item?id=4258... 260
JP Camara @jpcamara.com · 04/01/20252024 ended up a pretty solid writing year for me. Here are the top 10 posts by views. Of them, 8 were written in 2024 (tanstack and pgbouncer have had alot of staying power, they're from 2023). I'll link to each after this, in case you'd like to check them out! 2194
JP Camara @jpcamara.com · 26/12/2024@drbragg.dev I found it! I found the code that compiles the AST for the flip flop operator! We can destroy it! Quick, while everyone is on vacation! 140
JP Camara @jpcamara.com · 23/12/2024What this makes me realize, is that `DATA` is literally just a file reference to the entire current file! The only special work it does for you is `seek`ing to right after the `__END__. So be careful doing a `rewind` on it, or you'll just process all of your ruby code 🤪 020
JP Camara @jpcamara.com · 23/12/2024I've been using this a bunch since @drbragg.dev mentioned it a few weeks ago, super handy. In investigating a new Ruby bytecode instruction for `respond_to?`, I found the code that powers it! Kind of fun to bump into. 110
JP Camara @jpcamara.com · 18/12/2024Nice to get that hacker news love as well. @rossta.net Ruby Hacker News .dev! 160
JP Camara @jpcamara.com · 18/12/2024A friendly PSA on git etiquette: Descriptive commits and clear PR descriptions are a gift. When I am investigating an issue or trying to understand some code - it makes me so happy when I see a relevant message and I can understand the _reason_ behind the code. It's a favor to future maintainers! 7100
JP Camara @jpcamara.com · 17/12/2024Jack is so mean 😆 In terms of Youtube, this is a pretty teensy amount of views. But I would have been happy getting a total of one or two hundred views, so it feels like alot to me 😄 Thanks, sleepy sunday Hacker news 050