<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: byroot</title><link>https://news.ycombinator.com/user?id=byroot</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 29 Oct 2026 14:23:25 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=byroot" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by byroot in "Python's experimental JIT to be removed"]]></title><description><![CDATA[
<p>The difference is that Ruby follow the BDFL model, and Ruby's BDFL was willing to allow people to experiment with in-tree development of JITs.<p>If the Python steering committee isn't willing to do the same, they'll probably won't get a working JIT any time soon. Developing a JIT externally, or even from a branch, is just too hard.</p>
]]></description><pubDate>Tue, 27 Oct 2026 16:19:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=50261513</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=50261513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50261513</guid></item><item><title><![CDATA[New comment by byroot in "Fastpotify"]]></title><description><![CDATA[
<p>> Uses 1.5GB of RAM on my laptop atm.<p>That's crazy, I just checked on mine (macOS), it's only ~300MiB, about as much as Apple Mail which is native.<p>Still a bit much for what I need it for, but tolerable.</p>
]]></description><pubDate>Tue, 01 Sep 2026 13:28:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49521753</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49521753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49521753</guid></item><item><title><![CDATA[New comment by byroot in "Winding Down Artichoke Ruby"]]></title><description><![CDATA[
<p>Nope. It’s been the default MRI parser for a couple years now.</p>
]]></description><pubDate>Fri, 31 Jul 2026 18:33:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49126957</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49126957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49126957</guid></item><item><title><![CDATA[New comment by byroot in "Winding Down Artichoke Ruby"]]></title><description><![CDATA[
<p>TruffleRuby is pretty close too, if anything it’s even a bit more compatible because it’s able to run native extensions.<p>Also keeping compatible with MRI have been made significantly easier by Prism, the new parser that is shared by all implementations.</p>
]]></description><pubDate>Fri, 31 Jul 2026 17:19:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49126024</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49126024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49126024</guid></item><item><title><![CDATA[New comment by byroot in "Ruby Central's Destructive Legacy"]]></title><description><![CDATA[
<p>> lost 3 of 3 members of the Open Source Committee (Gabi, Mike, Ufuk)<p>This is rich given they left in big part because of how much abuse they have received by "supporters" of André & co...</p>
]]></description><pubDate>Fri, 31 Jul 2026 14:59:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49124037</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49124037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49124037</guid></item><item><title><![CDATA[New comment by byroot in "Future euro banknote design proposals"]]></title><description><![CDATA[
<p>There's a public survey: <a href="https://surveys.ecb.europa.eu/10b/neweuro/" rel="nofollow">https://surveys.ecb.europa.eu/10b/neweuro/</a></p>
]]></description><pubDate>Sat, 25 Jul 2026 00:02:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=49043071</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49043071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49043071</guid></item><item><title><![CDATA[New comment by byroot in "Why malloc always does more than I asked for?"]]></title><description><![CDATA[
<p>That's why C23 introduce free_sized [0].<p>[0] <a href="https://en.cppreference.com/c/memory/free_sized" rel="nofollow">https://en.cppreference.com/c/memory/free_sized</a></p>
]]></description><pubDate>Thu, 23 Jul 2026 07:02:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49017866</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=49017866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49017866</guid></item><item><title><![CDATA[New comment by byroot in "Ghostty is leaving GitHub"]]></title><description><![CDATA[
<p>Similarly, when writing Facebook apps with Rails, when you'd hit that same bug you'd see Mark Zuckerbeg: <a href="https://www.facebook.com/profile.php?id=4" rel="nofollow">https://www.facebook.com/profile.php?id=4</a></p>
]]></description><pubDate>Wed, 29 Apr 2026 01:00:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47942919</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47942919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47942919</guid></item><item><title><![CDATA[New comment by byroot in "Optimizing Ruby Path Methods"]]></title><description><![CDATA[
<p>It was just one of many.<p>Alone it wouldn't have been very noticeable, but I did many small optimizations like that, which ultimately shaved about 20 seconds of setup time.<p>Looking from another angle, the app boot time on CI (not eager loading) was a bit more than 10 seconds, this saved over half a second, so a ~5% gain for an afternoon of work.</p>
]]></description><pubDate>Mon, 20 Apr 2026 08:55:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47831773</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47831773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47831773</guid></item><item><title><![CDATA[New comment by byroot in "Optimizing Ruby Path Methods"]]></title><description><![CDATA[
<p><a href="https://github.com/ruby/ruby/blob/master/NEWS.md" rel="nofollow">https://github.com/ruby/ruby/blob/master/NEWS.md</a></p>
]]></description><pubDate>Sun, 19 Apr 2026 22:15:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47828127</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47828127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47828127</guid></item><item><title><![CDATA[New comment by byroot in "Optimizing Ruby Path Methods"]]></title><description><![CDATA[
<p>Nothing ground breaking we simply deploy Buildkite agents on EC2 nodes.<p>As mentioned in the post, the only thing really limiting CI parallelism is the ratio of "setup time" vs "test time". If your setup time is too long, you hit diminishing returns fast.</p>
]]></description><pubDate>Sun, 19 Apr 2026 06:27:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822218</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47822218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822218</guid></item><item><title><![CDATA[New comment by byroot in "Optimizing Ruby Path Methods"]]></title><description><![CDATA[
<p>Aside from the oddness of making this cache git aware, with the new implementation I suspect querying git to revalidate the cache would take longer than just rebuilding it.</p>
]]></description><pubDate>Sat, 18 Apr 2026 22:20:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47820015</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47820015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47820015</guid></item><item><title><![CDATA[New comment by byroot in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>> every method call is a string dict lookup<p>Doesn't the Python VM have inline caches? [0]<p><a href="https://en.wikipedia.org/wiki/Inline_caching" rel="nofollow">https://en.wikipedia.org/wiki/Inline_caching</a></p>
]]></description><pubDate>Tue, 14 Apr 2026 03:33:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47760936</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47760936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47760936</guid></item><item><title><![CDATA[New comment by byroot in "France pulls last gold held in US"]]></title><description><![CDATA[
<p>Nitpick, but France never left NATO proper, only the integrated command, and reintegrated it in 2008 under Sarkozy.</p>
]]></description><pubDate>Mon, 06 Apr 2026 11:43:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47659651</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=47659651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47659651</guid></item><item><title><![CDATA[New comment by byroot in "I’m leaving Redis for SolidQueue"]]></title><description><![CDATA[
<p>That's also something Rails helps abstract away by automatically deferring enqueues to after the transaction completed.<p>Even SolidQueue behave that way by default.<p><a href="https://github.com/rails/rails/pull/51426" rel="nofollow">https://github.com/rails/rails/pull/51426</a></p>
]]></description><pubDate>Wed, 14 Jan 2026 21:22:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46623694</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46623694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46623694</guid></item><item><title><![CDATA[New comment by byroot in "I’m leaving Redis for SolidQueue"]]></title><description><![CDATA[
<p>> The ideal situation with Rails would be if there is a simple way to switch back to Redis<p>That's largely the case.<p>Rails provide an abstracted API for jobs (Active Job). Of course some application do depend on queue implementation specific features, but for the general case, you just need to update your config to switch over (and of course handle draining the old queue).</p>
]]></description><pubDate>Wed, 14 Jan 2026 14:40:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46616552</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46616552</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46616552</guid></item><item><title><![CDATA[New comment by byroot in "Can Bundler be as fast as uv?"]]></title><description><![CDATA[
<p>You are describing bootsnap.<p>And yes I proposed to integrate bootsnap into bundler ages ago, but got told to go away.</p>
]]></description><pubDate>Fri, 02 Jan 2026 09:11:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46462932</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46462932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46462932</guid></item><item><title><![CDATA[New comment by byroot in "Can Bundler be as fast as uv?"]]></title><description><![CDATA[
<p>> none of the providers really do this out of the box<p>CircleCI does. And I'm sure many others.</p>
]]></description><pubDate>Fri, 02 Jan 2026 09:03:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46462877</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46462877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46462877</guid></item><item><title><![CDATA[New comment by byroot in "Can Bundler be as fast as uv?"]]></title><description><![CDATA[
<p>> My experience with GHA default caches is that it’s absolutely dog slow.<p>GHA is definitely far from the best, but it works:, e.g 1.4 seconds to restore 27 dependencies <a href="https://github.com/redis-rb/redis-client/actions/runs/20519158916/job/58951585454#step:3:123" rel="nofollow">https://github.com/redis-rb/redis-client/actions/runs/205191...</a><p>> The only way docker caching works is if you have a persistent host.<p>You can pull the cache when the build host spawns, but yes, if you want to build efficiently, you can't use ephemeral builders.<p>But overall that discussion isn't very interesting because Buildkite is more a kit to build a CI than a CI, so it's on you to figure out caching.<p>So I'll just reiterate my main point: a CI system must provide a workable caching mechanism if it want to be both snappy and reliable.<p>I've worked for over a decade on one of the biggest Rails application in existence, and restoring the 800ish gems from cache was a matter of a handful of seconds. And when rubygems.org had to yank a critical gem for copyright reasons [0], we continued building and shipping without disruption while other companies with bad CIs were all sitting ducks for multiple days.<p>[0] <a href="https://github.com/rails/marcel/issues/23" rel="nofollow">https://github.com/rails/marcel/issues/23</a></p>
]]></description><pubDate>Fri, 02 Jan 2026 00:04:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46459675</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46459675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46459675</guid></item><item><title><![CDATA[New comment by byroot in "Can Bundler be as fast as uv?"]]></title><description><![CDATA[
<p>GHA with the `setup-ruby` action will cache gems.<p>Buildkite can be used in tons of different ways, but it's common to use it with docker and build a docker image with a layer dedicated to the gems (e.g. COPY Gemfile Gemfile.lock; RUN bundle install), effectively caching dependencies.</p>
]]></description><pubDate>Thu, 01 Jan 2026 23:13:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46459253</link><dc:creator>byroot</dc:creator><comments>https://news.ycombinator.com/item?id=46459253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46459253</guid></item></channel></rss>