<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: GenericCanadian</title><link>https://news.ycombinator.com/user?id=GenericCanadian</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 11 Apr 2026 15:46:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=GenericCanadian" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Bevy game development tutorials and in-depth resources]]></title><description><![CDATA[
<p>Article URL: <a href="https://taintedcoders.com/">https://taintedcoders.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47698111">https://news.ycombinator.com/item?id=47698111</a></p>
<p>Points: 117</p>
<p># Comments: 28</p>
]]></description><pubDate>Thu, 09 Apr 2026 00:58:47 +0000</pubDate><link>https://taintedcoders.com/</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=47698111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47698111</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Bevy 0.18"]]></title><description><![CDATA[
<p>Good learning resources for those curious:<p>- <a href="https://taintedcoders.com/" rel="nofollow">https://taintedcoders.com/</a> (I'm the author)<p>- <a href="https://bevy.org/learn/book/intro/" rel="nofollow">https://bevy.org/learn/book/intro/</a><p>- <a href="https://www.youtube.com/@chrisbiscardi" rel="nofollow">https://www.youtube.com/@chrisbiscardi</a><p>- <a href="https://www.youtube.com/@PhaestusFox" rel="nofollow">https://www.youtube.com/@PhaestusFox</a><p>Lots of good stuff on the official Bevy discord too</p>
]]></description><pubDate>Tue, 13 Jan 2026 22:04:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46608937</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=46608937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46608937</guid></item><item><title><![CDATA[Bevy TLDR – Game development with Bevy summarized]]></title><description><![CDATA[
<p>Article URL: <a href="https://taintedcoders.com/bevy/tldr">https://taintedcoders.com/bevy/tldr</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45631212">https://news.ycombinator.com/item?id=45631212</a></p>
<p>Points: 59</p>
<p># Comments: 18</p>
]]></description><pubDate>Sat, 18 Oct 2025 23:59:40 +0000</pubDate><link>https://taintedcoders.com/bevy/tldr</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=45631212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45631212</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Bevy 0.17: ECS-driven game engine built in Rust"]]></title><description><![CDATA[
<p>All guides on <a href="https://taintedcoders.com/" rel="nofollow">https://taintedcoders.com/</a> have been updated to 0.17. Congrats to everyone on the release</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:11:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45430619</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=45430619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430619</guid></item><item><title><![CDATA[Bevy 0.17: ECS-driven game engine built in Rust]]></title><description><![CDATA[
<p>Article URL: <a href="https://bevy.org/news/bevy-0-17/">https://bevy.org/news/bevy-0-17/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45430585">https://news.ycombinator.com/item?id=45430585</a></p>
<p>Points: 40</p>
<p># Comments: 6</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:08:25 +0000</pubDate><link>https://bevy.org/news/bevy-0-17/</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=45430585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430585</guid></item><item><title><![CDATA[Guides for learning game development with Bevy]]></title><description><![CDATA[
<p>Article URL: <a href="https://taintedcoders.com/">https://taintedcoders.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44465893">https://news.ycombinator.com/item?id=44465893</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 04 Jul 2025 16:32:27 +0000</pubDate><link>https://taintedcoders.com/</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=44465893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44465893</guid></item><item><title><![CDATA[New comment by GenericCanadian in "RubyUI (Former PhlexUI): Ruby Gem for RubyUI Components"]]></title><description><![CDATA[
<p>I found using partials between projects to be a headache. I wanted a way to standardize my UI for accessibility across all projects and not have to re-implement the same standards over and over. It's nice to be able to package the UI up into a gem and keep it maintained everywhere.<p>It's got a nice path for incremental adoption, so there is no need to go all-in unless you want to. Personally my Rails projects are all 95%+ ruby now.<p>Another nice knock off effect is that the LSP and integration with my IDE (neovim) is much nicer with Phlex components than it is with ERB.<p>I also think personally I don't like "magic" spaces like ERB where its hard for me to follow the code path. How does ERB manage multiline blocks with html in them? Hard to understand, harder to explain. To me it feels like there is less to worry about in Phlex where I'm thinking more in Ruby, less in the specifics of the view context.</p>
]]></description><pubDate>Tue, 01 Apr 2025 22:52:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43552112</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=43552112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43552112</guid></item><item><title><![CDATA[New comment by GenericCanadian in "RubyUI (Former PhlexUI): Ruby Gem for RubyUI Components"]]></title><description><![CDATA[
<p>Slots are pretty easy in Phlex. Have a look at the README in the repo I linked for an idea. I just create `with_column` or `with_header` methods that take a block and store it.<p>To create them declaratively (not needing to call them in a set order) you just create a module that defines `before_template` and calls `vanish`: <a href="https://www.phlex.fun/miscellaneous/v2-upgrade.html#removed-deferredrender" rel="nofollow">https://www.phlex.fun/miscellaneous/v2-upgrade.html#removed-...</a></p>
]]></description><pubDate>Tue, 01 Apr 2025 22:43:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=43552047</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=43552047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43552047</guid></item><item><title><![CDATA[New comment by GenericCanadian in "RubyUI (Former PhlexUI): Ruby Gem for RubyUI Components"]]></title><description><![CDATA[
<p>Phlex is an amazing project. Makes frontend fun again. I've built my own UI library using DaisyUI and Tailwindcss that we use in all our Rails projects: <a href="https://github.com/inhouse-work/protos" rel="nofollow">https://github.com/inhouse-work/protos</a><p>It cannot be overstated how nice it is to move away from erb and into pure ruby. Private methods as partials is a game changer for refactoring your UI.</p>
]]></description><pubDate>Tue, 01 Apr 2025 20:01:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43550757</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=43550757</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43550757</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Ruby “Thread Contention” Is Simply GVL Queuing"]]></title><description><![CDATA[
<p>As someone who's worked with Ruby for 12 years here are some insights:<p>Ruby makes message passing first class. That just changes how you think about programs. In exchange you give up passing functions so our anonymous functions are our blocks (actually just another object that can receive messages). So you don't `list(something)` you `something.list` and that lets you change what `.list` does depending on who `something` is very easily.<p>Ruby's defining feature is that the line between language author and program author is razer thin. You can completely change the language yourself by extending core classes. This is why we have `1.day` in Rails even though its not supported in the main language. DHH (author of Rails) could add that without consulting Matz (author of Ruby). So lots of stuff gets prioritized to make developers happy because its easy to add.<p>In Ruby the messages you receive are passed up the chain of ancestors. Your ancestors are a linked list of classes going back to a root class like `Object`. You can modify this linked list at will with mixins and inheritance with complete control (should I go before or after this other receiver).<p>Ruby's REPL and debugging experience is amazing. I often keep one tab with an `irb` or `rails console` open to sketch things while developing the code for it elsewhere. I'm also always inside a debugger to figure things out. When I'm in Rust or Python I'm met with a very different environment.</p>
]]></description><pubDate>Mon, 03 Feb 2025 20:36:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=42922713</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=42922713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42922713</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Ruby 3.4.0"]]></title><description><![CDATA[
<p>I would suggest taking a look at Phlex (<a href="https://www.phlex.fun/" rel="nofollow">https://www.phlex.fun/</a>). This kind of ruby maximalism is very pleasing to the dev process. For the interaction I'm using hotwire and stimulus. Been using pure Phlex views in production for 2 years now. I wrote Protos (<a href="https://github.com/inhouse-work/protos">https://github.com/inhouse-work/protos</a>) which is built on top of Phlex and adds a bunch of quality of life features I wanted.</p>
]]></description><pubDate>Fri, 27 Dec 2024 07:56:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=42520618</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=42520618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42520618</guid></item><item><title><![CDATA[Bevy 0.15 released]]></title><description><![CDATA[
<p>Article URL: <a href="https://bevyengine.org/news/bevy-0-15/">https://bevyengine.org/news/bevy-0-15/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42277344">https://news.ycombinator.com/item?id=42277344</a></p>
<p>Points: 66</p>
<p># Comments: 19</p>
]]></description><pubDate>Fri, 29 Nov 2024 21:39:40 +0000</pubDate><link>https://bevyengine.org/news/bevy-0-15/</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=42277344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42277344</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Tiny Glade 'built' its way to >600k sold in a month"]]></title><description><![CDATA[
<p>I wrote <a href="https://taintedcoders.com/" rel="nofollow">https://taintedcoders.com/</a> for anyone looking for an introduction to Rust game development with Bevy.<p>Bevy is still early, but the sweet spot right now is simulations. It's particularly weak in its UI, but that's the coming focus for getting the editor built.<p>If anyone needs ideas, making [boids](<a href="https://slsdo.github.io/steering-behaviors/" rel="nofollow">https://slsdo.github.io/steering-behaviors/</a>) in Bevy is a great weekend project.</p>
]]></description><pubDate>Wed, 20 Nov 2024 02:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42190317</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=42190317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42190317</guid></item><item><title><![CDATA[Bevy Tutorial: Pong]]></title><description><![CDATA[
<p>Article URL: <a href="https://taintedcoders.com/bevy/tutorials/pong-tutorial">https://taintedcoders.com/bevy/tutorials/pong-tutorial</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41964657">https://news.ycombinator.com/item?id=41964657</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 27 Oct 2024 18:44:23 +0000</pubDate><link>https://taintedcoders.com/bevy/tutorials/pong-tutorial</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=41964657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41964657</guid></item><item><title><![CDATA[New comment by GenericCanadian in "What is theoretical computer science?"]]></title><description><![CDATA[
<p>Sounds a lot like what Wolfram is working on with categorizing cellular automota. Strikes me that a lot of his work is very biological in its search for axioms from experimentation</p>
]]></description><pubDate>Fri, 18 Oct 2024 10:47:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41878144</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=41878144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41878144</guid></item><item><title><![CDATA[New comment by GenericCanadian in "The LMAX Architecture (2011)"]]></title><description><![CDATA[
<p>I wrote this in Crystal lang to learn more about it and the language: <a href="https://github.com/nolantait/disruptor.cr">https://github.com/nolantait/disruptor.cr</a><p>There is a Ruby version that is also very readable: <a href="https://github.com/ileitch/disruptor">https://github.com/ileitch/disruptor</a></p>
]]></description><pubDate>Fri, 16 Aug 2024 19:59:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=41269827</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=41269827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41269827</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Bevy Isn't Ready for Large-Scale Game Projects Yet – A Novice's Experience"]]></title><description><![CDATA[
<p>Author of <a href="https://taintedcoders.com/" rel="nofollow">https://taintedcoders.com/</a> here. Thanks for the mention. I hope to one day be a "consistently up to date" resource :p.<p>Bevy is the first game engine that made me feel the way Rails did about web development but for game dev. Most game development is focused on the art and the editor which makes sense. But Bevy is really centered around the coder which I found refreshing.<p>Love to see writeups like these, especially the gore. Great read.</p>
]]></description><pubDate>Thu, 28 Mar 2024 18:41:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=39855733</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=39855733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39855733</guid></item><item><title><![CDATA[Tainted Coders guides updated to Bevy 0.13]]></title><description><![CDATA[
<p>Article URL: <a href="https://taintedcoders.com/">https://taintedcoders.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39582064">https://news.ycombinator.com/item?id=39582064</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 03 Mar 2024 16:57:55 +0000</pubDate><link>https://taintedcoders.com/</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=39582064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39582064</guid></item><item><title><![CDATA[New comment by GenericCanadian in "A lock-free ring-buffer with contiguous reservations (2019)"]]></title><description><![CDATA[
<p>I also wrote an LMAX Disruptor in Crystal: <a href="https://github.com/nolantait/disruptor.cr">https://github.com/nolantait/disruptor.cr</a><p>Here is one in Ruby: <a href="https://github.com/ileitch/disruptor">https://github.com/ileitch/disruptor</a><p>Both languages are quite readable and I've used these to teach the concepts to beginners.</p>
]]></description><pubDate>Thu, 29 Feb 2024 15:56:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=39551045</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=39551045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39551045</guid></item><item><title><![CDATA[New comment by GenericCanadian in "Rapier is a set of 2D and 3D physics engines written in Rust"]]></title><description><![CDATA[
<p>I wrote a guide on the Bevy plugin for Rust which you can read here: <a href="https://taintedcoders.com/bevy/rapier/" rel="nofollow">https://taintedcoders.com/bevy/rapier/</a><p>An interesting alternative in the Bevy space is Bevy XPBD which I also wrote about: <a href="https://taintedcoders.com/bevy/xpbd/" rel="nofollow">https://taintedcoders.com/bevy/xpbd/</a></p>
]]></description><pubDate>Tue, 27 Feb 2024 04:31:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=39520155</link><dc:creator>GenericCanadian</dc:creator><comments>https://news.ycombinator.com/item?id=39520155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39520155</guid></item></channel></rss>