<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: bthornbury</title><link>https://news.ycombinator.com/user?id=bthornbury</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 14 Jun 2026 22:23:34 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bthornbury" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bthornbury in "AI coding at home without going broke"]]></title><description><![CDATA[
<p>promote yourself to PM only and use agents for authoring, verification, tests, checking the tests<p>orchestrator -> parallel subagents with investigation, authoring, verification, benchmarking subagents and integration / final verification handled by parent has improved my productivity too.<p>I feel like from here its agent swarms against a whole spec but haven't got there yet.<p>Still getting plenty of bugs in the more complex scenarios, but mostly (in some projects) i never have to look at the code and treat it like a black box</p>
]]></description><pubDate>Sat, 13 Jun 2026 23:10:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48522398</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=48522398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48522398</guid></item><item><title><![CDATA[Show HN: Sampler Step Explorer – for understanding diffusion sampler updates]]></title><description><![CDATA[
<p>I built a small standalone interactive to help make diffusion sampler steps more intuitive. It’s focused on the inference-time update: how the sampler moves from the current noised state toward a less-noisy state, one step at a time.<p>This grew out of a larger post where I try to explain diffusion models in less-dense terms, especially the parts that felt non-intuitive to me when first reading the papers. That post emphasizes that diffusion models incrementally “step” toward a solution rather than generating it all at once, and this interactive zooms in on that sampler-step idea specifically.<p>Would love feedback on:<p>- whether the interaction makes the sampler update easier to reason about<p>- what other diffusion concepts would be useful to turn into small interactives<p>Link:
<a href="https://www.bryanthornbury.com/interactives/sampler-step-explorer/" rel="nofollow">https://www.bryanthornbury.com/interactives/sampler-step-exp...</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47200769">https://news.ycombinator.com/item?id=47200769</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 28 Feb 2026 22:02:46 +0000</pubDate><link>https://www.bryanthornbury.com/interactives/sampler-step-explorer/</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47200769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47200769</guid></item><item><title><![CDATA[New comment by bthornbury in "An Intuitive Understanding of AI Diffusion Models"]]></title><description><![CDATA[
<p>The classic papers describing diffusion are full of dense mathematical terms and equations.<p>For many (including myself) who haven’t stretched those particular math muscles since diff eq class a decade or so ago, the paper is just an opaque wall of literal Greek.<p>In this post I describe my personal understanding of diffusion models in less-dense terms, focusing on intuitive understanding and personal mental models I use to understand diffusion.</p>
]]></description><pubDate>Sat, 28 Feb 2026 21:07:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47200241</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47200241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47200241</guid></item><item><title><![CDATA[An Intuitive Understanding of AI Diffusion Models]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.bryanthornbury.com/posts/intuitive-understanding-ai-diffusion-models/">https://www.bryanthornbury.com/posts/intuitive-understanding-ai-diffusion-models/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47200240">https://news.ycombinator.com/item?id=47200240</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 28 Feb 2026 21:07:47 +0000</pubDate><link>https://www.bryanthornbury.com/posts/intuitive-understanding-ai-diffusion-models/</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47200240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47200240</guid></item><item><title><![CDATA[New comment by bthornbury in "How an inference provider can prove they're not serving a quantized model"]]></title><description><![CDATA[
<p>Something like a perplexity/log-likelihood measurement across a large enough number of prompts/tokens might get you the same in a statistical sense though. I expect those comparison percentages at the top are something like that.</p>
]]></description><pubDate>Sat, 21 Feb 2026 21:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47105004</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47105004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47105004</guid></item><item><title><![CDATA[New comment by bthornbury in "How an inference provider can prove they're not serving a quantized model"]]></title><description><![CDATA[
<p>AFAIK seed determinism can't really be relied upon between two machines, maybe not even between two different gpus.</p>
]]></description><pubDate>Sat, 21 Feb 2026 21:27:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47104962</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47104962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47104962</guid></item><item><title><![CDATA[New comment by bthornbury in "How an inference provider can prove they're not serving a quantized model"]]></title><description><![CDATA[
<p>Is modelwrap running on arbitrary clients? I'm not following the whole post, but how are you able to maintain confidence in client-owned hardware/disks following the secure model the method seems to depdend on?</p>
]]></description><pubDate>Sat, 21 Feb 2026 21:23:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47104931</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=47104931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47104931</guid></item><item><title><![CDATA[New comment by bthornbury in "Coding agents have replaced every framework I used"]]></title><description><![CDATA[
<p>Why does there seem to be such a divide in opinions on AI in coding? Meanwhile those who "get it" have been improving their productivity for literally years now.</p>
]]></description><pubDate>Sat, 07 Feb 2026 17:48:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46925832</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=46925832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46925832</guid></item><item><title><![CDATA[New comment by bthornbury in "My AI Adoption Journey"]]></title><description><![CDATA[
<p>> got a load of ticking time bomb bugs<p>Lots and lots of tests!</p>
]]></description><pubDate>Fri, 06 Feb 2026 21:02:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46918086</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=46918086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46918086</guid></item><item><title><![CDATA[New comment by bthornbury in "My AI Adoption Journey"]]></title><description><![CDATA[
<p>Either really comprehensive tests (that you read) or read it. Usually i find you can skim most of it, but like in core sections like billing or something you gotta really review it. The models still make mistakes.</p>
]]></description><pubDate>Fri, 06 Feb 2026 02:33:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46908304</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=46908304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46908304</guid></item><item><title><![CDATA[New comment by bthornbury in "My AI Adoption Journey"]]></title><description><![CDATA[
<p>AI is getting to the game-changing point. We need more hand-written reflections on how individuals are managing to get productivity gains for real (not a vibe coded app) software engineering.</p>
]]></description><pubDate>Fri, 06 Feb 2026 01:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46907978</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=46907978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46907978</guid></item><item><title><![CDATA[New comment by bthornbury in "IKEA for Software"]]></title><description><![CDATA[
<p>I'm not too sure about this take. The larger code rewrite issue is constantly trying to be solved, which is somehow making the problem worse.<p>In another view, standard libraries do a pretty good job.</p>
]]></description><pubDate>Sat, 17 Jan 2026 05:33:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46655588</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=46655588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46655588</guid></item><item><title><![CDATA[New comment by bthornbury in "We reverse-engineered Flash Attention 4"]]></title><description><![CDATA[
<p>I'm pretty sure it's called "reading the code". That said, it is difficult enough in its own right.</p>
]]></description><pubDate>Sat, 27 Sep 2025 23:57:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45400420</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=45400420</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45400420</guid></item><item><title><![CDATA[New comment by bthornbury in "There are no new ideas in AI only new datasets"]]></title><description><![CDATA[
<p>This generalization issue in RL in specific was detailed by OpenAI in 2018<p><a href="https://arxiv.org/pdf/1804.03720" rel="nofollow">https://arxiv.org/pdf/1804.03720</a></p>
]]></description><pubDate>Mon, 30 Jun 2025 23:26:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44429005</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=44429005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44429005</guid></item><item><title><![CDATA[New comment by bthornbury in "[dead]"]]></title><description><![CDATA[
<p>Recently, I've been using a local docker container to house the interpreter for all of my new python projects.<p>For day-to-day work it is far superior than endless virtualenvs clogging up my harddrive and hunting for brew package dependencies.<p>I open sourced a template in case other may find it useful.</p>
]]></description><pubDate>Fri, 05 Apr 2024 21:47:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=39947648</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=39947648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39947648</guid></item><item><title><![CDATA[New comment by bthornbury in "I have been using Mixtral everyday for coding and I think it has saved me days"]]></title><description><![CDATA[
<p>Note that I had to remove two of the test cases to fit in the HN character limit:<p><pre><code>                      {
   name:         "Large Input Slice",
   input:        []any{"A", "B", "C", "D", "E", "F"},
   chunkSize:    3,
   expectedChks: [][]any{{"A", "B", "C"}, {"D", "E", "F"}},
  },
  {
   name:         "Remaindered Large Input Slice",
   input:        []any{"W", "X", "Y", "Z", "1", "2"},
   chunkSize:    4,
   expectedChks: [][]any{{"W", "X", "Y", "Z"}, {"1", "2"}},
  },</code></pre></p>
]]></description><pubDate>Tue, 19 Mar 2024 00:24:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39751676</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=39751676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39751676</guid></item><item><title><![CDATA[I have been using Mixtral everyday for coding and I think it has saved me days]]></title><description><![CDATA[
<p>Recently, I've been working on a new project in golang, which I haven't worked with in a couple years.<p>I have almost completely replaced the time I usually spend searching stackoverflow for the simple, routine stuff (like how to easily filter a list in golang like I can in python), and then adapting whatever answer I find with a simple query to Mixtral.<p>Usually, Mixtral gives me a direct answer to my question that requires no actual adaptation.<p>However, I found, frequently the code is not quite correct and seems to be a blend of programming languages.<p>To get around this, I started asking Mixtral for a test for whatever code it generates, and this was a game changer. To state it simply, the tests are pretty good, and require very little tweaking to get running. With the tests I have confidence in the code it generates.<p>Once, I even asked it to write a test for one of my own functions and it said it could do that but first I needed to know about a bug in the code, AND IT WAS RIGHT.<p>All of these little ventures to stackoverflow add up and I am convinced that using Mixtral has saved me one or two days just for this project that took about a week. For a project where I was more familiar with the programming language, I'm not sure the time saving would be so dramatic, but I'm impressed nonetheless.<p>Now, this post wouldn't be complete without mentioning that it hasn't all been roses. A couple times it needlessly complicated the code, and once it was even wrong (trying to parse scientific notation), but it still saved me a ton of time.<p>Here's one of the tests it generated:<p><pre><code>    func TestChunkSlice(t *testing.T) {
        testCases := []struct {
            name         string
            input        []any
            chunkSize    int
            expectedChks [][]any
        }{
            {
                name:         "Empty Input Slice",
                input:        []any{},
                chunkSize:    3,
                expectedChks: nil,
            },
            {
                name:         "Input Slice With Zero Chunk Size",
                input:        []any{1, 2, 3},
                chunkSize:    0,
                expectedChks: nil,
            },
            {
                name:         "Single Element Input Slice",
                input:        []any{1},
                chunkSize:    1,
                expectedChks: [][]any{{1}},
            },
            {
                name:         "Small Input Slice",
                input:        []any{1, 2, 3, 4, 5},
                chunkSize:    2,
                expectedChks: [][]any{{1, 2}, {3, 4}, {5}},
            },
        }
    
        for _, tc := range testCases {
            t.Run(tc.name, func(t *testing.T) {
                actualChks := ChunkSlice(tc.input, tc.chunkSize)
    
                if len(actualChks) != len(tc.expectedChks) {
                    t.Fatalf("Expected %d chunks but got %d chunks.", len(tc.expectedChks), len(actualChks))
                }
    
                for idx, exp := range tc.expectedChks {
                    if len(exp) != len(actualChks[idx]) {
                        t.Errorf("Expected chunk #%d to have %d items but found %d items.", idx, len(exp), len(actualChks[idx]))
                    } else {
                        for jdx, val := range exp {
                            if !reflect.DeepEqual(val, actualChks[idx][jdx]) {
                                t.Errorf("Mismatch between expected (%v) and actual (%v)", val, actualChks[idx][jdx])
                            }
                        }
                    }
                }
            })
        }
 }</code></pre></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39751674">https://news.ycombinator.com/item?id=39751674</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Tue, 19 Mar 2024 00:24:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=39751674</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=39751674</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39751674</guid></item><item><title><![CDATA[OpenAI cuts prices for GPT-3 by two thirds amidst growing competition]]></title><description><![CDATA[
<p>Article URL: <a href="https://mixed-news.com/en/openai-cuts-prices-for-gpt-3-by-two-thirds/">https://mixed-news.com/en/openai-cuts-prices-for-gpt-3-by-two-thirds/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=32613816">https://news.ycombinator.com/item?id=32613816</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 26 Aug 2022 23:12:57 +0000</pubDate><link>https://mixed-news.com/en/openai-cuts-prices-for-gpt-3-by-two-thirds/</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=32613816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32613816</guid></item><item><title><![CDATA[Coding Deep Q-Learning in PyTorch]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=NP8pXZdU-5U">https://www.youtube.com/watch?v=NP8pXZdU-5U</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25853230">https://news.ycombinator.com/item?id=25853230</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 20 Jan 2021 23:20:46 +0000</pubDate><link>https://www.youtube.com/watch?v=NP8pXZdU-5U</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=25853230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25853230</guid></item><item><title><![CDATA[Fixing nohup over SSH on CoreOS with systemd]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.aegisblade.com/blog/how-to-run-background-processes-via-ssh-on-coreos/">https://www.aegisblade.com/blog/how-to-run-background-processes-via-ssh-on-coreos/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=21287679">https://news.ycombinator.com/item?id=21287679</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 18 Oct 2019 00:42:50 +0000</pubDate><link>https://www.aegisblade.com/blog/how-to-run-background-processes-via-ssh-on-coreos/</link><dc:creator>bthornbury</dc:creator><comments>https://news.ycombinator.com/item?id=21287679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21287679</guid></item></channel></rss>