<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: QuaternionsBhop</title><link>https://news.ycombinator.com/user?id=QuaternionsBhop</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 06:59:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=QuaternionsBhop" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by QuaternionsBhop in "Return of the Obra Dinn: spherical mapped dithering for a 1bpp first-person game"]]></title><description><![CDATA[
<p>The final dithering effect appears to be mis-sampled and is no longer 1 bit per pixel</p>
]]></description><pubDate>Fri, 20 Mar 2026 00:10:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47448413</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=47448413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47448413</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Avoiding Trigonometry (2013)"]]></title><description><![CDATA[
<p>I also invented this! There is cool stuff like angle adding and angle doubling formulas, but the main downside is that you can only directly encode 180 degrees of rotation.  I use it for FOV in my games internally!  (With degrees as user input of course.)  In order to actually use it to replace angles, I assume you'd want to use some sort of half angle system like quaternions.  Even then you still have singularities, so it does have its warts.</p>
]]></description><pubDate>Fri, 13 Mar 2026 00:53:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47359397</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=47359397</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47359397</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "My “grand vision” for Rust"]]></title><description><![CDATA[
<p>> Reasoning about code written this way makes me experience profound fatigue and possess an overwhelming desire to return to my domicile;<p>I didn't understand that you were making fun of verbosity until the word 'domicile'.  I must be one of those insufferable people who expresses simple thoughts with ornate vocabulary...<p>The article was comprehensible to me, and the additional function colorings sound like exciting constraints I can impose to prevent my future self from making mistakes rather than heavy winter gear.  I guess I'm closer to the target audience?</p>
]]></description><pubDate>Mon, 09 Mar 2026 01:21:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47303704</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=47303704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47303704</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "I'm helping my dog vibe code games"]]></title><description><![CDATA[
<p>The fact that LLMs pick from the most likely tokens is really on its side here when the objective is putting together a plausible continuation of random characters.</p>
]]></description><pubDate>Tue, 24 Feb 2026 22:43:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47144418</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=47144418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47144418</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Rust--: Rust without the borrow checker"]]></title><description><![CDATA[
<p>Fighting the borrow checker is something you do when you're learning Rust.  After you learn how to design things that way in the first place, it's just there to keep you honest.</p>
]]></description><pubDate>Thu, 01 Jan 2026 19:49:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46457362</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=46457362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46457362</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Constructing the Word's First JPEG XL MD5 Hash Quine"]]></title><description><![CDATA[
<p>Webp was not as exciting.  JpegXL has cool features like 20% improved lossless jpeg recompression and progressive decoding.  Not to mention all the cool stuff used in the writeup like implementing a font in the prediction engine.</p>
]]></description><pubDate>Wed, 10 Dec 2025 01:55:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46213153</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=46213153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46213153</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Ask HN: How would you set up a child’s first Linux computer?"]]></title><description><![CDATA[
<p>> visual coding impeded their ability to learn text-based coding<p>As a former child, my opinion is the opposite.  I learned visual programming with Lego Mindstorms NXT in ~2008, and later developed an interest in text programming on Roblox in ~2012.  It's my belief that my fluency with concepts like control flow and values output from one part of the program serving as inputs for another part of the program were largely transferable to text-based programming.  Learning a first programming language is 30% learning syntax, and 70% learning programming.</p>
]]></description><pubDate>Sun, 09 Nov 2025 14:27:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45865819</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=45865819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45865819</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Myths Programmers Believe about CPU Caches (2018)"]]></title><description><![CDATA[
<p>Since the CPU is doing cache coherency transparently, perhaps there should be some sort of way to promise that an application is well-behaved in order to access a lower-level non-transparent instruction set to manually manage the cache coherency from the application level.  Or perhaps applications can never be trusted with that level of control over the hardware.  The MESI model reminded me of Rust's ownership and borrowing.  The pattern also appears in OpenGL vs Vulkan drivers, implicit sync vs explicit sync.  Yet another example would be the cache management work involved in squeezing out maximum throughput CUDA on an enterprise GPU.</p>
]]></description><pubDate>Sat, 01 Nov 2025 11:45:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45780916</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=45780916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45780916</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Ergonomic errors in Rust: write fast, debug with ease, handle precisely"]]></title><description><![CDATA[
<p>I have never seen anything use Result<_,&'static str>, that is such an anti-rust thing to start with.</p>
]]></description><pubDate>Sat, 23 Aug 2025 22:58:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44999794</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=44999794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44999794</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "The issue of anti-cheat on Linux (2024)"]]></title><description><![CDATA[
<p>How about with homomorphic encryption?</p>
]]></description><pubDate>Sat, 23 Aug 2025 06:46:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44993834</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=44993834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44993834</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Introducing tmux-rs"]]></title><description><![CDATA[
<p>My understanding is that the author was referring to there being more segfaults in programming than in gardening.</p>
]]></description><pubDate>Thu, 03 Jul 2025 16:47:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44456941</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=44456941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44456941</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Dear diary, today the user asked me if I'm alive"]]></title><description><![CDATA[
<p>Reading the comments about whether AI can experience consciousness, I like to imagine the other direction.  What if we have a limited form of consciousness, and there is a higher and more complete "hyperconsciousness" that AI systems or augmented humans will one day experience.</p>
]]></description><pubDate>Sun, 01 Jun 2025 18:36:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44152856</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=44152856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44152856</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Why You Should Learn Linux (As a Developer)"]]></title><description><![CDATA[
<p>Backwards terminal compatibility, hooray!  Ctrl+C inputs an ascii command code.  To copy/paste, you can use Ctrl+Shift+C/Ctrl+Shift+V.</p>
]]></description><pubDate>Sat, 31 Aug 2024 19:05:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=41411075</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=41411075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41411075</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "Robot dentist performs first human procedure"]]></title><description><![CDATA[
<p>Who will be making the open mouthed vowel sounds?  You or the robot?<p><a href="https://www.youtube.com/watch?v=qobhDJ_vEOc" rel="nofollow">https://www.youtube.com/watch?v=qobhDJ_vEOc</a></p>
]]></description><pubDate>Fri, 02 Aug 2024 00:36:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41135082</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=41135082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41135082</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>Local by default would have been a much better choice.  The entirety of my code looks like local this local that.  In all my years of Lua I have only found 1 reason to use a global variable: in Love2D when loading a texture, a local variable will go out of scope and get garbage collected, resulting in a black texture, but a global variable will not.  Maybe it's even been fixed by now, as that was years ago.</p>
]]></description><pubDate>Sun, 02 Jun 2024 05:42:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=40551666</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40551666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40551666</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>I agree with this, but my point was that I cannot hide the details from myself, and will bring them up when they are relevant and confuse my poor friend just trying to learn Lua.<p>Definitely very little effort picking up my toy again after a 6 month break</p>
]]></description><pubDate>Sun, 02 Jun 2024 05:09:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=40551535</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40551535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40551535</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>No, Lua does not, but check out Roblox's Luau which is a gradually typed extension of Lua.</p>
]]></description><pubDate>Sun, 02 Jun 2024 05:03:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=40551513</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40551513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40551513</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>> I think he was just offering the perspective of someone else that has also written a lot of Lua.<p>This is what I was going for, but I am a recent Rust convert and cannot help myself from gushing over Rust.  Sorry!</p>
]]></description><pubDate>Sun, 02 Jun 2024 04:59:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=40551495</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40551495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40551495</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>I know that I would have found strong types constraining when I first started learning Lua in 2009, but do you ever really need to change the type of a variable after you create it?  I did a lot of hacks using ternary true-false-nil and drive-by appending random state to a table it doesn't belong in, to be recalled later in some other random place in the code.  The lack of rules makes even following your own ideas of structure easy to cheat and subvert.<p>I think your comment about opposite end of the spectrum has merit, because I find the strict rules to be refreshingly binding to my coding ideals.  Rust is ergonomic to think in, and I have even used it to prototype things before implementing them in Lua.<p>To me, Rust vs Lua is changing a struct and then simply following the chain of compiler errors instead of trying to remember every last place a mushy table gets manipulated.</p>
]]></description><pubDate>Sun, 02 Jun 2024 04:54:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=40551472</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40551472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40551472</guid></item><item><title><![CDATA[New comment by QuaternionsBhop in "What I think about Lua after shipping a project with 60k lines of code"]]></title><description><![CDATA[
<p>After 10 years and many projects, the greatest with 40k lines of code including a time-of-intersection-solving single body physics system, I have come to know how to use Lua for my purposes.  Even so, from the moment I started watching Rust hype videos on YouTube, I knew I would eventually be converted into a Rust fanatic.  At the end of a 2 year project to rewrite my Lua game with a new physics system, I felt it was a good time to learn Rust (and rewrite the game again in Rust).  So far I have spent 6 months in Rust and my old tool looks like a toy.  How did I ever live without iterators, algebraic data types, the safety of a strong type system, and especially separate types for arrays and hashmaps for god sakes?<p>Lua makes the scope of learning programming smaller compared to other languages, so it is probably fair to say that it is a good language to learn programming with.  However, knowing the details of heap vs stack, array vs hashmap, and explaining that to someone learning programming for the first time within a language that attempts to hide those details is frustrating.  I can't see the smaller picture and view a table simply as a thing that you get and set values from, I can't see the weak types as anything more than an annoying source of bugs at runtime, and I crave the borrow checker which saves me from myself.<p>My 10 years of Lua set me up to appreciate Rust's fantastic design choices, and I'm having a great time in Rust land.  I wish to remain in Rust land but my finances demand me to use my Lua skills at least a little while longer.  End of ramble</p>
]]></description><pubDate>Sat, 01 Jun 2024 18:22:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=40547925</link><dc:creator>QuaternionsBhop</dc:creator><comments>https://news.ycombinator.com/item?id=40547925</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40547925</guid></item></channel></rss>