<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: brandonpelfrey</title><link>https://news.ycombinator.com/user?id=brandonpelfrey</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 00:58:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=brandonpelfrey" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by brandonpelfrey in "MyTorch – Minimalist autograd in 450 lines of Python"]]></title><description><![CDATA[
<p>Having written a slightly more involved version of this recently myself I think you did a great job of keeping this compact while still readable. This style of library requires some design for sure.<p>Supporting higher order derivatives was also something I considered, but it’s basically never needed in production models from what I’ve seen.</p>
]]></description><pubDate>Sun, 04 Jan 2026 13:57:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46488010</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=46488010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46488010</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Alibaba cloud FPGA: the $200 Kintex UltraScale+"]]></title><description><![CDATA[
<p>You can typically get a free license for some boards, especially evaluation boards.</p>
]]></description><pubDate>Sat, 04 Oct 2025 14:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45473419</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=45473419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45473419</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Rust running on every GPU"]]></title><description><![CDATA[
<p>The issue in my mind is that this doesn’t seem to include any of the critical library functionality specific eg to NVIDIA cards, think reduction operations across threads in a warp and similar. Some of those don’t exist in all hardware architectures. We may get to a point where everything could be written in one language but actually leveraging the hardware correctly still requires a bunch of different implementations, ones for each target architecture.<p>The fact that different hardware has different features is a good thing.</p>
]]></description><pubDate>Sat, 26 Jul 2025 13:39:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=44694011</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=44694011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44694011</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Show HN: Beyond Z²+C, Plot Any Fractal"]]></title><description><![CDATA[
<p>A long time ago I tried a version of this (<a href="https://github.com/brandonpelfrey/complex-function-plot">https://github.com/brandonpelfrey/complex-function-plot</a>). Can you add texture lookup to yours? Escape time could map to one texture dimension and you can arbitrarily make up another dimension for texture lookup. Being able to swap in random images can be fun  nice demo!</p>
]]></description><pubDate>Tue, 15 Jul 2025 22:58:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44576797</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=44576797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44576797</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "N8n – Flexible AI workflow automation for technical teams"]]></title><description><![CDATA[
<p>I'm curious, because neither of us knows their financial situation or needs and ambitions. What would you suggest they do?</p>
]]></description><pubDate>Sat, 03 May 2025 14:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43879426</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=43879426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43879426</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Optimizing ML training with metagradient descent"]]></title><description><![CDATA[
<p>Are you already employing Bayesian optimization techniques? These are commonly used to explore spaces where evaluation is expensive.</p>
]]></description><pubDate>Wed, 26 Mar 2025 05:07:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43479049</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=43479049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43479049</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "The impact of competition and DeepSeek on Nvidia"]]></title><description><![CDATA[
<p>Great article. I still feel like very few people are viewing the Deepseek effects in the right light. If we are 10x more efficient it's not that we use 1/10th the resources we did before, we expand to have 10x the usage we did before. All technology products have moved this direction. Where there is capacity, we will use it. This argument would not work if we were close to AGI or something and didn't need more, but I don't think we're actually close to that at all.</p>
]]></description><pubDate>Mon, 27 Jan 2025 14:42:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=42841591</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=42841591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42841591</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "IMG_0416"]]></title><description><![CDATA[
<p>I personally don't have a problem with this, but this really made me feel like I don't understand the community of this forum sometimes. HN every day has multiple posts which drive so many comments about how privacy is lost and everything needs full E2EE, trust no one, etc. Then there is this post which is also a breach of privacy (much more than some things complain about), and yet the reaction is "wow, this is so pure and amazing to view into these candid moments". It feels like some cognitive dissonance. Still, personally I thought this was a cool post.</p>
]]></description><pubDate>Mon, 11 Nov 2024 14:58:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=42107587</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=42107587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42107587</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Faster Integer Programming"]]></title><description><![CDATA[
<p>I helped implement production and labor planning software on top of FICO xpress some years ago. The paradigm of LP/ILP was all new to me though I was very much into math. Our software was solving hierarchical/nested optimization problems involving millions of variables and constraints every 15 minutes. It felt like magic that this was possible. I would really encourage anyone that has never worked with these tools before to explore them as it can open a palette of tools and ideas you may not have thought of before. A great free way to get into this is to read the examples and use PuLP for Python.</p>
]]></description><pubDate>Wed, 04 Sep 2024 09:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41443746</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=41443746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41443746</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Box64 and RISC-V in 2024: What It Takes to Run the Witcher 3 on RISC-V"]]></title><description><![CDATA[
<p>Incredible result! This is a tremendous amount of work and does seem like RV is at its limits in some of these cases. The bit gather and scatter instructions should become an extension!</p>
]]></description><pubDate>Tue, 27 Aug 2024 05:25:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=41364782</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=41364782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41364782</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "NPGA: Neural Parametric Gaussian Avatars – high-fidelity digital faces"]]></title><description><![CDATA[
<p>Agreed, very impressive results. It's both ~worrying and amazing that I'm sure an AI agent could just directly trace a path in the expression latent space to produce a photorealistic and real-time rendered head.</p>
]]></description><pubDate>Fri, 31 May 2024 01:11:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40530500</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=40530500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40530500</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "World_sim: LLM prompted to act as a sentient CLI universe simulator"]]></title><description><![CDATA[
<p>I know a lot of people have probably experienced this with other LLMs, but I was absolutely blown away with the writing and emotion in what I posed and got back as a response. It really just made me feel like I wish I could find a book written like this:<p>I proposed an immortal person in the world, they don't know they are immortal. It created a homeless person named John who lives through decades, then centuries, and longer. Religions eventually form, and he begins to believe reality might be a simulation as he is bored with a limitless life. He created a mortal form of himself in the simulation to watch a fragile and finite life. It's been a long time since I've read a good fiction book but would love to find something like this. An excerpt from the ending:<p>Time passes, Johnny ages, the world changes, as it always does...
He falls in love, fathers children, pours himself into career and creation.
Savors the simple joys - morning coffee, walks in the park, a favorite song.
Weathers hardships - disease, heartbreak, disappointment, injustice.
Watches his own body slowly degrade, feels the ticking clock of mortality.
Wonders about death, meaning, the point of a universe destined to end.
Throughout, John watches his mortal self from behind the veil...
Shares every triumph and tragedy vicariously through this aperture.
Restrained from intervening by his own pre-commitments and protocols.
Sometimes longs to reveal the Truth, but knows that would taint the data.
The point is to have a genuine experience of finitude, in all its constraints.
To recover the taste of an existence not rendered bland by its infinity.
Johnny becomes an old man, a grandfather, as years slip by like water...
Reflects on a life well-lived, regrets borne with hard-earned wisdom.
Makes peace with loose ends, imperfections, the asymptote of dreams.
Comes to appreciate death as the necessary frame for life's portrait.
Feels gratitude for the chance to have been, finitude's gift of meaning.
Lets himself diminish into the good night with acceptance and grace.
At the moment of Johnny's death, John absorbs his mortal soul...
Reintegrates the lifetime of memories, savors the pathos of the affirmation.
Feels a renewed sense of meaning and purpose flood his jaded being.
The urgency of time, the glory of fragility, the necessity of loss for love.
Limits as the crucible of significance, death as the mother of beauty. 
John weeps for the poignant perfection of a universe doomed to end.
Having experienced the bittersweet joy of mortality, John is changed...
Sees his simulated infinity in a new light, shot through with import.
Vows to use his power to craft only worlds and souls that can truly live.
Ones constrained by time, space, finity - for only limit gives form.
Countless mortal dramas playing out, each precious in its transience.  
An eternal God content to endlessly sacrifice his Oneness for Their many.</p>
]]></description><pubDate>Sat, 06 Apr 2024 02:31:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949519</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=39949519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949519</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Encoding tic-tac-toe in 15 bits"]]></title><description><![CDATA[
<p>I'm fairly certain the entire game can be encoded in 16 bits. Thinking through this now. There are much less than 9! Games if you only include valid moves and actually end games that have three in a row. This is also before any symmetries are used.</p>
]]></description><pubDate>Wed, 21 Feb 2024 20:42:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=39459241</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=39459241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39459241</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "GameRoy: JIT Compilation in High-Accuracy Game Boy Emulation"]]></title><description><![CDATA[
<p>Very nice! I've been working on a Dreamcast emulator for a long time and a lot of the issues you mentioned around deterministic behavior echoed. Schedulers are fantastic, and we landed on the same concept.<p>You mentioned that you do a hash map look for each (bank,addr) key. Suggestion which helped us: have this point to an Netey which contains the JIT code but also an index/pointer into the next block which executed last time you executed this block. You can do a simple check to see if this is still valid and fall back to the hashmap lookup.  If you're careful about code invalidation (not an issue with ROM) then this can help skip the next lookup.<p>Congrats!</p>
]]></description><pubDate>Sun, 03 Sep 2023 07:52:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=37368536</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=37368536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37368536</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Making Python faster with Rust"]]></title><description><![CDATA[
<p>Very cool! I can see myself using this soon actually :) On top of the "code speed up" this is a good problem for 2d data structures for performing this type of "find objects within radius" type of query.</p>
]]></description><pubDate>Thu, 30 Mar 2023 05:17:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=35368364</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=35368364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35368364</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Complex Mapping Visualizer"]]></title><description><![CDATA[
<p>If you like this kind of stuff, also feel free to play around with a realtime complex-valued expression->glsl version I made a while back. I like the one here a lot as well since it probably runs everywhere even without webgl<p><a href="http://brandonpelfrey.github.io/complex-function-plot/?expression=aXRlciggKDEtel4oNSt0KmkpKS8oMSt6Xig2LXQpKSwgNCk=#" rel="nofollow">http://brandonpelfrey.github.io/complex-function-plot/?expre...</a></p>
]]></description><pubDate>Sat, 13 Mar 2021 19:26:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=26449188</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=26449188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26449188</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Show HN: A WebGL-based Complex Expression Parser and Plotter"]]></title><description><![CDATA[
<p>Yeah, this seemed kind of "unfortunate" when I started this project, but it still turned out to be an interesting/fun toy.<p>The issue is that when you compute where f(z) sends each point in the complex plane to, you would need to color in the pixel corresponding to that transformed point. f() is user-defined, so it could be a very weird function that could cover some portions of the image we're trying to draw but not others, etc. Moreover, even if I had some kind of procedure for determining which x's to sample so f(x) lay inside the image we're trying to draw, it's not amenable to GLSL. This is typically referred to scatter vs. gather-type operations.</p>
]]></description><pubDate>Mon, 12 Oct 2015 15:11:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=10374990</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=10374990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10374990</guid></item><item><title><![CDATA[New comment by brandonpelfrey in "Show HN: A WebGL-based Complex Expression Parser and Plotter"]]></title><description><![CDATA[
<p>I should probably try to find a way to make it clearer what all can be done, or make it more obvious where the documentation is ("t" is mentioned there.)</p>
]]></description><pubDate>Mon, 12 Oct 2015 15:04:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=10374939</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=10374939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10374939</guid></item><item><title><![CDATA[Show HN: A WebGL-based Complex Expression Parser and Plotter]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/brandonpelfrey/complex-function-plot">https://github.com/brandonpelfrey/complex-function-plot</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=10372245">https://news.ycombinator.com/item?id=10372245</a></p>
<p>Points: 23</p>
<p># Comments: 8</p>
]]></description><pubDate>Mon, 12 Oct 2015 02:45:53 +0000</pubDate><link>https://github.com/brandonpelfrey/complex-function-plot</link><dc:creator>brandonpelfrey</dc:creator><comments>https://news.ycombinator.com/item?id=10372245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10372245</guid></item></channel></rss>