<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: stillsut</title><link>https://news.ycombinator.com/user?id=stillsut</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 05:58:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=stillsut" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by stillsut in "Microsoft Amplifier"]]></title><description><![CDATA[
<p>Exactly what I was looking for, thanks.<p>I've been doing something similiar: aider+gpt-5, claude-code+sonnet, gemini-cli+2.5-pro. I want to coder-cli next.<p>A main problem with this approach is summarizing the different approaches before drilling down into reviewing the best approach.<p>Looking at a `git diff --stat` across all the model outputs can give you a good measure of if there was an existing common pattern for your requested implementation. If only one of the models adds code to a module that the others do not, it's usually a good jumping off point to exploring the differing assumptions each of the agents built towards.</p>
]]></description><pubDate>Sat, 11 Oct 2025 22:35:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45553244</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45553244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45553244</guid></item><item><title><![CDATA[New comment by stillsut in "Microsoft Amplifier"]]></title><description><![CDATA[
<p>I've actually written my own a homebrew framework like this which is a.) cli-coder agnostic and b.) leans heavily on git worktrees [0].<p>The secret weapon to this approach is asking for 2-4 solutions to your prompt running in parallel. This helps avoid the most time consuming aspect of ai-coding: reviewing a large commit, and ultimately finding the approach to the ai took is hopeless or requires major revision.<p>By generating multiple solutions, you can cutdown investing fully into the first solution and use clever ways to select from all the 2-4 candidate solutions and usually apply a small tweak at the end. Anyone else doing something like this?<p>[0]: <a href="https://github.com/sutt/agro" rel="nofollow">https://github.com/sutt/agro</a></p>
]]></description><pubDate>Sat, 11 Oct 2025 20:06:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45552253</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45552253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45552253</guid></item><item><title><![CDATA[New comment by stillsut in "Sampling and structured outputs in LLMs"]]></title><description><![CDATA[
<p>I think the easiest explanation is to look at the table here: <a href="https://github.com/sutt/innocuous?tab=readme-ov-file#how-it-works" rel="nofollow">https://github.com/sutt/innocuous?tab=readme-ov-file#how-it-...</a><p>Watch how the "Cumulative encoding" row grows each iteration (that's where the BTC address will be encoded) and then look at the other rows for how the algorithm arrives at that.<p>Thanks for checking it out!</p>
]]></description><pubDate>Tue, 30 Sep 2025 14:30:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45425937</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45425937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45425937</guid></item><item><title><![CDATA[New comment by stillsut in "Claude Sonnet 4.5"]]></title><description><![CDATA[
<p>I've been building something like this, a markdown that tracks your prompts, and the code generated.<p><a href="https://github.com/sutt/innocuous/blob/master/docs/dev-summary.md" rel="nofollow">https://github.com/sutt/innocuous/blob/master/docs/dev-summa...</a><p>Check it out, I'd be curious of your feedback.</p>
]]></description><pubDate>Tue, 30 Sep 2025 14:20:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45425815</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45425815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45425815</guid></item><item><title><![CDATA[New comment by stillsut in "Ask HN: What are you working on? (September 2025)"]]></title><description><![CDATA[
<p>Encoding / decoding hidden messages in LLM output.<p><a href="https://github.com/sutt/innocuous" rel="nofollow">https://github.com/sutt/innocuous</a><p>The traditional use-case is <i>steganography</i> ("hidden writing"). But I see more potential applications than just for spy stuff.<p>I'm using this project as a case study for writing CS-oriented codebases and keeping track of every prompt and generated code line in a markdown file: <a href="https://github.com/sutt/innocuous/blob/master/docs/dev-summary.md" rel="nofollow">https://github.com/sutt/innocuous/blob/master/docs/dev-summa...</a><p>My favorite pattern I've found is to write <i>encode</i> implementations manually, and then AI pretty easily is able to follow that logic and translate it into a <i>decode</i> function.</p>
]]></description><pubDate>Tue, 30 Sep 2025 13:36:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45425269</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45425269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45425269</guid></item><item><title><![CDATA[New comment by stillsut in "Sampling and structured outputs in LLMs"]]></title><description><![CDATA[
<p>I'm also working on a library to steer the sampling step of LLM's but more for steganographic / arbitrary data encoding purposes.<p>Should work with any llama.cpp compatible model: <a href="https://github.com/sutt/innocuous" rel="nofollow">https://github.com/sutt/innocuous</a></p>
]]></description><pubDate>Tue, 23 Sep 2025 17:46:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45350442</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45350442</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45350442</guid></item><item><title><![CDATA[New comment by stillsut in "Nostr"]]></title><description><![CDATA[
<p>You can also earn zaps for pull requests working on Nostr clients.<p>We've been hosting some bounties like this one here: <a href="https://app.lightningbounties.com/issue/615dc5f7-ed91-4ecd-8459-0a14ea0e8b7e" rel="nofollow">https://app.lightningbounties.com/issue/615dc5f7-ed91-4ecd-8...</a></p>
]]></description><pubDate>Fri, 19 Sep 2025 13:15:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45301345</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45301345</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45301345</guid></item><item><title><![CDATA[New comment by stillsut in "Vibe coding has turned senior devs into 'AI babysitters'"]]></title><description><![CDATA[
<p>I've got some receipts for what I think is good vibe coding...<p>I save every prompt and associated ai-generated diff in a markdown file for a steganography package I'm working on.<p>Check out this document: <a href="https://github.com/sutt/innocuous/blob/master/docs/dev-summary.md#v010" rel="nofollow">https://github.com/sutt/innocuous/blob/master/docs/dev-summa...</a><p>In particular, under v0.1.0 see `decode-branch.md` prompt and it's associated generated diff which implements memoization for backtracking while performing decoding.<p>It's a tight PR that fits the existing codebase and works well, you just need a motivating example you can reproduce which can help me you quickly determine if the proposed solution is working. I usually generate 2-3 solutions initially and then filter them quickly based on a test case. And as you can see from the prompt, it's far from well formatted or comprehensive, just "slap dash" listing of potentially relevant information similar to what would be discussed at an informal whiteboard session.</p>
]]></description><pubDate>Mon, 15 Sep 2025 15:52:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45251190</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45251190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45251190</guid></item><item><title><![CDATA[New comment by stillsut in "Defeating Nondeterminism in LLM Inference"]]></title><description><![CDATA[
<p>I'm actually working on something similar to this where you can encode information into the outputs of LLM's via steganography: <a href="https://github.com/sutt/innocuous" rel="nofollow">https://github.com/sutt/innocuous</a><p>Since I'm really looking to sample the only the top ~10 tokens, and I mostly test on CPU-based inference of 8B models, there's probably not a lot of worries getting a different order of the top tokens based on hardware implementation, but I'm still going to take a look at it eventually, and build in guard conditions against any choice that would be changed by an epsilon of precision loss.</p>
]]></description><pubDate>Thu, 11 Sep 2025 14:50:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45212360</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45212360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45212360</guid></item><item><title><![CDATA[New comment by stillsut in "AI might yet follow the path of previous technological revolutions"]]></title><description><![CDATA[
<p>I think the "magic" that we've found a common toolset of methods - embeddings and layers of neural networks - that seem to reveal useful patterns and relationships from a vast array of corpus of unstructured analog sensors (pictures, video, point clouds) and symbolic (text, music) and that we can combine these across modalities like CLIP.<p>It turns out we didn't need a specialist technique for each domain,  there was a reliable method to architect a model that can learn itself, and we could already use the datasets we had, they didn't need to be generated in surveys or experiments. This might seem like magic to an AI researcher working in the 1990's.</p>
]]></description><pubDate>Mon, 08 Sep 2025 20:38:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45173656</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45173656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45173656</guid></item><item><title><![CDATA[New comment by stillsut in "AI might yet follow the path of previous technological revolutions"]]></title><description><![CDATA[
<p>"Unstructured data learners and generators" is probably the most salient distinction for how current system compare to previous "AI systems" examples (NLP, if-statements) that OP mentioned.</p>
]]></description><pubDate>Mon, 08 Sep 2025 20:20:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45173428</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45173428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45173428</guid></item><item><title><![CDATA[New comment by stillsut in "I am giving up on Intel and have bought an AMD Ryzen 9950X3D"]]></title><description><![CDATA[
<p>Makes sense: M-chips, Falcon-9, GPT's are product <i>subsets</i> or the incumbent's traditional product capabilities.</p>
]]></description><pubDate>Mon, 08 Sep 2025 16:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45169977</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45169977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45169977</guid></item><item><title><![CDATA[New comment by stillsut in "I am giving up on Intel and have bought an AMD Ryzen 9950X3D"]]></title><description><![CDATA[
<p>At a meta-level, I wonder if there's this un-talked about advantage of poaching ambitious talent out of an established incumbent to work a new product line in a new organization, in this case Apple Silicon disrupting Intel/AMD. And we've also seen SpaceX do this NASA/Boeing, and OpenAI do it to Google's ML departments.<p>It seems like large, unchallenged organizations like Intel (or NASA or Google) collect all the top talent out of school. But changing budgets, changing business objectives, frozen product strategies make it difficult for emerging talent to really work on next-generation technology (those projects have already been assigned to mid-career people who "paid their dues").<p>Then someone like Apple Silicon with M-chip or SpaceX with Falcon-9 comes along and poaches the people most likely to work "hardcore" (not optimizing for work/life balance) while also giving the new product a high degree of risk tolerance and autonomy. Within a few years, the smaller upstart organization has opened up in un-closeable performance gap with behemoth incumbent.<p>Has anyone written about this pattern (beyond Innovator's Dilemma)? Does anyone have other good examples of this?</p>
]]></description><pubDate>Mon, 08 Sep 2025 15:05:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45169244</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45169244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45169244</guid></item><item><title><![CDATA[New comment by stillsut in "Where's the shovelware? Why AI coding claims don't add up"]]></title><description><![CDATA[
<p>Got your shovelware right here...with receipts.<p>Background: I'm building a python package side project which allows you to encode/decode messages into LLM output.<p>Receipts: the tool I'm using creates a markdown that displays every prompt typed, and every solution generated, along with summaries of the code diffs. You can check it out here: <a href="https://github.com/sutt/innocuous/blob/master/docs/dev-summary.md" rel="nofollow">https://github.com/sutt/innocuous/blob/master/docs/dev-summa...</a><p>Specific example: Actually used a leet-code style algorithms implementation of memo-ization for branching. This would have taken a couple of days to implement by hand, but it took about 20 minutes to write the spec and 20 minutes to review solutions and merge the solution generated. If you're curious you can see this diff generated here: <a href="https://github.com/sutt/innocuous/commit/cdabc98" rel="nofollow">https://github.com/sutt/innocuous/commit/cdabc98</a></p>
]]></description><pubDate>Wed, 03 Sep 2025 23:39:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45121593</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45121593</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45121593</guid></item><item><title><![CDATA[New comment by stillsut in "Python has had async for 10 years – why isn't it more popular?"]]></title><description><![CDATA[
<p>Not an expert but my chats with ChatGPT led me to believe async + FastAPI can give you 40x throughput for request handling over non-async code.<p>The essential idea was I could be processing ~100 requests per vCPU in the async event loop while threading would max out 2-4 threads per CPU. Of course let us assume for either model we're waiting for 50-2000ms DB query or service call to finish before sending the response.<p>Is this not true? And if it is true, why isn't the juice is worth the squeeze: more than an order of magnitude more saturation/throughput for the same hardware and same language, just with a new engine at its heart?</p>
]]></description><pubDate>Wed, 03 Sep 2025 16:23:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45117607</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45117607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45117607</guid></item><item><title><![CDATA[New comment by stillsut in "SynthID – A tool to watermark and identify content generated through AI"]]></title><description><![CDATA[
<p>Hey I made an open source version of this last week (albeit for different purposes). Check it out at: <a href="https://github.com/sutt/innocuous" rel="nofollow">https://github.com/sutt/innocuous</a><p>There's lot of room for contributions here, and I think "fingerprinting layer" is an under-valued part of the LLM stack, not being explored by enough entrants.</p>
]]></description><pubDate>Sat, 30 Aug 2025 13:04:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45074289</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45074289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45074289</guid></item><item><title><![CDATA[New comment by stillsut in "Some thoughts on LLMs and software development"]]></title><description><![CDATA[
<p>> we should always consider asking the LLM the same question more than once, perhaps with some variation in the wording. Then we can compare answers,<p>Yup, this matches my recommended workflow exactly. Why waste time trying to turn an initially bad answer into a passable one, when you could simply re-generate (possibly with different context)<p>I wrote up an example of this workflow here: <a href="https://github.com/sutt/agro/blob/master/docs/case-studies/aba-vidstr-2.md#results" rel="nofollow">https://github.com/sutt/agro/blob/master/docs/case-studies/a...</a></p>
]]></description><pubDate>Thu, 28 Aug 2025 22:07:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45057609</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=45057609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45057609</guid></item><item><title><![CDATA[New comment by stillsut in "My experience creating software with LLM coding agents – Part 2 (Tips)"]]></title><description><![CDATA[
<p>Not OP but I know it can be difficult to really difficult to measure or communicate this to people who aren't familiar with the codebase or the problem being solved.<p>Other than just dumping 10M tokens of chats into a gist and say <i>read through everything I said back and forth with claude for a week.</i><p>But, I think I've got the start of a useful summary format: it that takes every prompt and points to the corresponding code commit produced by ai + adds a line diff amount and summary of the task. Check it out below.<p><a href="https://github.com/sutt/agro/blob/master/docs/dev-summary-v1.md#v017" rel="nofollow">https://github.com/sutt/agro/blob/master/docs/dev-summary-v1...</a><p>(In this case it's an python cli ai-coding framework that I'm using to build the package itself)</p>
]]></description><pubDate>Sat, 23 Aug 2025 18:58:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44998197</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=44998197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44998197</guid></item><item><title><![CDATA[New comment by stillsut in "AGENTS.md – Open format for guiding coding agents"]]></title><description><![CDATA[
<p>I'm rolling my own like this [0]:<p>.agdocs/<p>├── specs/          # Task specification files<p>├── conf/           # Configuration files<p>├── guides/         # Development guides for agents<p>└── swap/           # Temporary files (gitignored)<p>Every markdown file in guides/ gets copied to any agent (aider, claude, gemini) I kick-off.<p>I gitignore this .agdocs directory by default. I find this useful because otherwise you get into _please commit or stash your changes_ when trying to switch branches.<p>But I also run an rsync script before each release to copy the .agdocs to a git tracked mirrored directory [1].<p>[0]: <a href="https://github.com/sutt/agro/blob/master/README.md#layout" rel="nofollow">https://github.com/sutt/agro/blob/master/README.md#layout</a><p>[1]: <a href="https://github.com/sutt/vidstr/tree/master/.public-agdocs/guides" rel="nofollow">https://github.com/sutt/vidstr/tree/master/.public-agdocs/gu...</a></p>
]]></description><pubDate>Wed, 20 Aug 2025 13:10:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44961632</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=44961632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44961632</guid></item><item><title><![CDATA[New comment by stillsut in "Ask HN: Have any successful startups been made by 'vibe coding'?"]]></title><description><![CDATA[
<p>Yeah, I've been able to stack ~200 AI-generated commits on top of each other. Over 95% of the code is now AI generated.<p>You can see each prompt and each commit that was generated here: <a href="https://github.com/sutt/agro/blob/master/docs/dev-summary-v1.md" rel="nofollow">https://github.com/sutt/agro/blob/master/docs/dev-summary-v1...</a><p>Since AI-Gen code is such a roll of the dice, the key is to roll the dice a lot - usually generate at least 3 potential solutions from at least two separate providers at the outset - and get good at quickly reviewing the offered solutions, or iterating on the prompt and regenerating.</p>
]]></description><pubDate>Tue, 19 Aug 2025 23:08:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44957088</link><dc:creator>stillsut</dc:creator><comments>https://news.ycombinator.com/item?id=44957088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44957088</guid></item></channel></rss>