<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: maxime_cb</title><link>https://news.ycombinator.com/user?id=maxime_cb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 14:05:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=maxime_cb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by maxime_cb in "GPT 5.6 Sol is the best "vision" model OpenAI ever released"]]></title><description><![CDATA[
<p>I'm assuming you mean that this tech became available in OpenCV 25 years ago, but as it turns out, the underlying tech can be traced back much further, at least as far as 1977! :)<p><a href="https://ieeexplore.ieee.org/document/1674847" rel="nofollow">https://ieeexplore.ieee.org/document/1674847</a>
G. J. Vanderbrug and A. Rosenfeld, “Two-Stage Template Matching,” IEEE Transactions on Computers, Vol. C-26, No. 4, pp. 384–393, April 1977.
DOI: 10.1109/TC.1977.1674847</p>
]]></description><pubDate>Mon, 17 Aug 2026 13:46:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49330780</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=49330780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49330780</guid></item><item><title><![CDATA[Speeding Up the Plush Garbage Collector]]></title><description><![CDATA[
<p>Article URL: <a href="https://pointersgonewild.com/2026-08-17-speeding-up-the-plush-garbage-collector/">https://pointersgonewild.com/2026-08-17-speeding-up-the-plush-garbage-collector/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49330246">https://news.ycombinator.com/item?id=49330246</a></p>
<p>Points: 11</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 17 Aug 2026 13:09:06 +0000</pubDate><link>https://pointersgonewild.com/2026-08-17-speeding-up-the-plush-garbage-collector/</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=49330246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49330246</guid></item><item><title><![CDATA[Building Groovie, an Advanced Web-Based Drum Machine / Beat Sequencer]]></title><description><![CDATA[
<p>Article URL: <a href="https://pointersgonewild.com/2026-08-06-building-groovie-an-advanced-web-based-drum-beat-sequencer/">https://pointersgonewild.com/2026-08-06-building-groovie-an-advanced-web-based-drum-beat-sequencer/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49221454">https://news.ycombinator.com/item?id=49221454</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 08 Aug 2026 12:56:41 +0000</pubDate><link>https://pointersgonewild.com/2026-08-06-building-groovie-an-advanced-web-based-drum-beat-sequencer/</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=49221454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49221454</guid></item><item><title><![CDATA[New comment by maxime_cb in "Show HN: I built one of the most advanced web-based drum/beat sequencers"]]></title><description><![CDATA[
<p>Thanks :)<p>I've made a couple of music apps over the years, including one of the oldest JS music apps on the web, that also does URL encoding: <a href="https://pointersgonewild.com/2012/04/23/musictoy-music-made-simple/" rel="nofollow">https://pointersgonewild.com/2012/04/23/musictoy-music-made-...</a><p>But also generally, I was looking at other web-based drum machines, and most of them are either super basic, full of ads, or they have bad cryptic UIs. I also wanted to design a more advanced sequencer with a timeline that would have an intuitive UI to work with.<p>I built a sequencer in NoiseCraft, a browser-based music programming language I built a few years ago (e.g. <a href="https://noisecraft.app/101" rel="nofollow">https://noisecraft.app/101</a>), but you can't chain pattern in this sequencer, which makes it harder to create longer piece (though people have found workarounds).</p>
]]></description><pubDate>Wed, 05 Aug 2026 14:07:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49183132</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=49183132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49183132</guid></item><item><title><![CDATA[Show HN: I built one of the most advanced web-based drum/beat sequencers]]></title><description><![CDATA[
<p>Hi there! Just wanted to share an open source music project I've been working on. There are already a number of web-based drum machines, but I think most of them are pretty basic (small fixed drum kit, single pattern, no effects, etc), so I built something more advanced.<p>The app is live here: <a href="https://maximecb.github.io/groovie" rel="nofollow">https://maximecb.github.io/groovie</a><p>The GitHub repo: <a href="https://github.com/maximecb/groovie" rel="nofollow">https://github.com/maximecb/groovie</a><p>I'm calling it Groovie, and notably, it has a timeline view so you can arrange up to 32 patterns into a song. It has 150+ samples you can select from. You can adjust the panning and volume of each row individually. It has delay as well as an LPF/HPF filter and swing. It has the ability to send a MIDI clock signal so you can sync it with your hardware (Chrome only), and lastly, it works on mobile phones and tablets too. I designed the interface to be intuitive and to use fairly standard design language (I hate cryptic UIs).<p>The app is fully static with no backend, but you can share beats/tracks with others as they can be encoded into the hash part of a link, in a compressed format. It uses multiple tricks to try to shrink the data since many patterns are repetitive, sparse, or reuse data from previous patterns.<p>Since it's open source and fully static, it's free forever. You don't need any kind of account to use it. You can't upload new samples in the app, but I am very much open to accepting contributions (pull requests) for new samples, but they have to be public domain / CC0 / out of copyright. I would love to get more vocal one shots and more metallic sounds. One idea I had was to maybe sample old movies that are out of copyright.<p>For those who like to play with Claude Code, I added a "make a beat" Claude skill to the repo that will generate an arrangement based on your description and give you a shareable link. It might also work with other AI assistants if you point them to the skill (untested, let me know).<p>Let me know what you think. If anybody wants to share some patterns they create, I would love to add them as new examples in the readme.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49182903">https://news.ycombinator.com/item?id=49182903</a></p>
<p>Points: 4</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 05 Aug 2026 13:50:46 +0000</pubDate><link>https://maximecb.github.io/groovie/#a_96_bar_berlin_techno_arrangement/FdAnck8QxEjUoejHv1EvwfEK6CeBmwopEcII9JpEroPEWkq1BNYCSCCGuJfjJXg-IlIsCRaIxHSJy3kypqJbIWInFCJnoAKRACYV6k66nWHiLAkKcUOiNHoJYx8spdj6AiiApQ4MYQYiORhGkyyR7YlJspwJJsWUzW0gmxi1h5BQCgiABSWcUtGvoirKXQx6x8gkTVroJyQDVpJIPpIGD0lvoyQHMeHgCKIFK8SfJ5dlnnng</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=49182903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49182903</guid></item><item><title><![CDATA[New comment by maxime_cb in "ZJIT removes redundant object loads and stores"]]></title><description><![CDATA[
<p>I gave a talk about ZJIT and the motivation for the change at RubyKaigi 2025 if people are curious. It's on YouTube.</p>
]]></description><pubDate>Sun, 22 Mar 2026 02:52:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47473999</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=47473999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47473999</guid></item><item><title><![CDATA[New comment by maxime_cb in "ZJIT removes redundant object loads and stores"]]></title><description><![CDATA[
<p>Max Bernstein is now leading the team. He's also an excellent compiler engineer.</p>
]]></description><pubDate>Sat, 21 Mar 2026 20:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47470920</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=47470920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47470920</guid></item><item><title><![CDATA[New comment by maxime_cb in "Reflections on 2 years of CPython's JIT Compiler"]]></title><description><![CDATA[
<p>Thanks Ken. Apologies if I misunderstood the situation. I wish you all the best.</p>
]]></description><pubDate>Wed, 09 Jul 2025 03:51:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44506186</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=44506186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44506186</guid></item><item><title><![CDATA[New comment by maxime_cb in "Reflections on 2 years of CPython's JIT Compiler"]]></title><description><![CDATA[
<p>Ruby has the same unfortunate problem.</p>
]]></description><pubDate>Tue, 08 Jul 2025 16:53:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44501787</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=44501787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44501787</guid></item><item><title><![CDATA[New comment by maxime_cb in "Reflections on 2 years of CPython's JIT Compiler"]]></title><description><![CDATA[
<p>Instigator of YJIT, the CRuby JIT here.<p>It's easy to dismiss our efforts, but Ruby is just as dynamic if not more than Python. It's also a very difficult language to optimize. I think we could have done the same for Python. In fact the Python JIT people reached out to me when they were starting this project. They probably felt encouraged seeing our success. However they decided to ignore my advice and go with their own unproven approach.<p>This is probably going to be an unpopular take but building a good JIT compiler is hard and leadership matters. I started the YJIT project with 10+ years of JIT compiler experience and a team of skilled engineers, whereas AFAIK the Python JIT project was lead by a student. It was an uphill battle getting YJIT to work well at first. We needed grit and I pushed for a very data-driven approach so we could learn from our early failures and make informed decisions. Make of that what you will.<p>Yes Python is hard to optimize. I Still believe that a good JIT for CPython is very possible but it needs to be done right. Hire me if you want that done :)<p>Several talks about YJIT on YouTube for those who want to know more:
<a href="https://youtu.be/X0JRhh8w_4I" rel="nofollow">https://youtu.be/X0JRhh8w_4I</a></p>
]]></description><pubDate>Tue, 08 Jul 2025 16:36:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44501651</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=44501651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44501651</guid></item><item><title><![CDATA[New comment by maxime_cb in "The Ruby on Rails Podcast Episode 508: YJIT with Maxime Chevalier-Boisvert"]]></title><description><![CDATA[
<p>YJIT is optimized primarily for web workloads. We look at rails performance a lot, but also at various other libraries that are used in that context. If you look at the headline benchmarks at <a href="https://speed.yjit.org" rel="nofollow">https://speed.yjit.org</a>, it will give you an idea of what we're mostly focused on. This is in contrast with academic compiler project, which often focus on microbenchmarks and code that is very different from the code users actually run in practice.<p>YJIT or TruffleRuby: I'm biased being that I work on YJIT. The nice thing about YJIT is that it's likely to work out of the box, and just be a matter of calling `ruby --yjit` to turn it on. It will probably use a lot less memory than TR, and it's probably more likely to deliver the result you're looking for at this time (speed boost, no hassle).<p>That being said, for some small or specialized applications, TruffleRuby could deliver much higher peak performance. If you don't restart your server often and you have a lot of memory available, then maybe you don't care about warm-up time or memory usage, and TruffleRuby could be the right tool for you. Feel free to run your own benchmarks and also to blog about the results (though if you do, please share as much details about your setup as possible).</p>
]]></description><pubDate>Wed, 21 Feb 2024 19:32:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=39458383</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=39458383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39458383</guid></item><item><title><![CDATA[New comment by maxime_cb in "The Ruby on Rails Podcast Episode 508: YJIT with Maxime Chevalier-Boisvert"]]></title><description><![CDATA[
<p>Yes, Marc Feeley was my PhD advisor. We came up with the original idea together. I also see it as a development of the work I did in my M.Sc. thesis on type-driven versioning of functions. Basic block versioning is lazy, type-driven tail splitting of code.</p>
]]></description><pubDate>Wed, 21 Feb 2024 19:27:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=39458314</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=39458314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39458314</guid></item><item><title><![CDATA[New comment by maxime_cb in "Ruby 3.3's YJIT: Faster While Using Less Memory"]]></title><description><![CDATA[
<p>Hope you try again with 3.3. The improvements we've made to YJIT since Ruby 3.1 are massive.</p>
]]></description><pubDate>Mon, 18 Dec 2023 19:50:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=38687279</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=38687279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38687279</guid></item><item><title><![CDATA[New comment by maxime_cb in "YJIT is the most memory-efficient Ruby JIT"]]></title><description><![CDATA[
<p>It is enough iterations for these VMs to warm up on the benchmarks we've looked at, but the warm-up time is still on the order of minutes on some benchmarks, which is impractical for many applications.</p>
]]></description><pubDate>Tue, 14 Nov 2023 22:54:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=38270997</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=38270997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38270997</guid></item><item><title><![CDATA[New comment by maxime_cb in "YJIT enabled by default, Active Model improvements and much more"]]></title><description><![CDATA[
<p>The article doesn't go into super deep details but we do touch on it in the paper we've recently published: <a href="https://dl.acm.org/doi/10.1145/3617651.3622982" rel="nofollow noreferrer">https://dl.acm.org/doi/10.1145/3617651.3622982</a><p>And I went into some more details the talk I gave at RubyKaigi 2023:
<a href="https://www.youtube.com/watch?v=X0JRhh8w_4I&t=2404s">https://www.youtube.com/watch?v=X0JRhh8w_4I&t=2404s</a></p>
]]></description><pubDate>Sun, 12 Nov 2023 03:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=38236945</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=38236945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38236945</guid></item><item><title><![CDATA[New comment by maxime_cb in "YJIT enabled by default, Active Model improvements and much more"]]></title><description><![CDATA[
<p>Ruby 3.3 (coming this Christmas) will have a much faster and more memory efficient YJIT than 3.2. We've made major improvements this year.</p>
]]></description><pubDate>Fri, 10 Nov 2023 15:34:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=38220113</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=38220113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38220113</guid></item><item><title><![CDATA[New comment by maxime_cb in "YJIT enabled by default, Active Model improvements and much more"]]></title><description><![CDATA[
<p>YJIT tech lead here.<p>On the flip side, YJIT is probably one of the most memory-efficient JIT compilers out there (for any language). I say this having spoken to other JIT implementers.<p>We've worked really hard to reduce the memory overhead and at Shopify it's now down to less than 10% in our flagship production deployment.<p>Regardless, if memory usage is a legitimate concern for you, you can very easily remove the Rails initializer that turns on YJIT. You can choose between memory usage and response time. The choice is yours.</p>
]]></description><pubDate>Fri, 10 Nov 2023 15:22:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=38219954</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=38219954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38219954</guid></item><item><title><![CDATA[New comment by maxime_cb in "Is frying food possible in space?"]]></title><description><![CDATA[
<p>And very crispy.</p>
]]></description><pubDate>Wed, 07 Jun 2023 13:43:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=36226707</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=36226707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36226707</guid></item><item><title><![CDATA[New comment by maxime_cb in "Software bugs that cause real-world harm"]]></title><description><![CDATA[
<p>Looks pretty cool :)</p>
]]></description><pubDate>Tue, 30 May 2023 12:56:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=36124309</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=36124309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36124309</guid></item><item><title><![CDATA[New comment by maxime_cb in "Software bugs that cause real-world harm"]]></title><description><![CDATA[
<p>Author here. If you've grown up in a "normal", functional family, with two loving parents, and you enjoy talking to them on the phone, you should consider yourself very lucky.<p>I only take calls from my mother when I feel up to it. The reason for that is that she has no concept of boundaries. Her mental illness prevents her from grasping that concept. Her default behavior tends towards what a normal person would call harassment. If you can't relate or understand a situation like that, it might just be because you've had a relatively safe, coddled, privileged life.</p>
]]></description><pubDate>Tue, 30 May 2023 00:04:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=36119616</link><dc:creator>maxime_cb</dc:creator><comments>https://news.ycombinator.com/item?id=36119616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36119616</guid></item></channel></rss>