<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: dnh44</title><link>https://news.ycombinator.com/user?id=dnh44</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 11:53:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dnh44" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dnh44 in "My game's server is blocked in Spain whenever there's a football match on"]]></title><description><![CDATA[
<p>you don't think kids should play sports? that seems like an unusual view and am kind of curious why you would think that.</p>
]]></description><pubDate>Wed, 24 Sep 2025 11:39:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45358956</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=45358956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45358956</guid></item><item><title><![CDATA[New comment by dnh44 in "Show HN: Omnara – Run Claude Code from anywhere"]]></title><description><![CDATA[
<p>If you make iOS apps you can also set up an Xcode Cloud pipeline so the result gets pushed to your phone via TestFlight.</p>
]]></description><pubDate>Tue, 12 Aug 2025 22:21:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44882461</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44882461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44882461</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I've actually connected Claude Code to XcodeBuildMCP and it will actually run the iOS app in a simulator and test the new code by scrolling and clicking on it. It's pretty cool to watch it find its mistake and fix it.<p>Eventually when it becomes too slow to test manually I'll vibe code some automated unit and UI tests.</p>
]]></description><pubDate>Mon, 11 Aug 2025 21:01:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44869428</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44869428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44869428</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>>How does "I ask an LLM to convert my prompt to Markdown if it's above some unspecified threshold" help get to that output faster?<p>Honestly it's just a hunch that asking the LLM to create formatted text forces the LLM to better organise the plan by forcing it to make formatting decisions, like what to put in bold. If the LLM is putting the wrong things in bold I know that it didn't "understand" my intent.<p>I haven't bothered doing a controlled test because the markdown files are also much easier for me to skim and prune if necessary. So even if they don't help the LLM they help me. But I do think I noticed an improvement when I started using markdown. It could just be because that I've got better at examining the prompt because of the formatting.<p>I could take a more scientific approach to all this, but my primary purpose is to build a game.<p>>If I always start a new chat, what's the 10% of chat re-use I'm missing out on which would help me get there faster?<p>I start the new chat so the history doesn't pollute the context. If I don't think there is anything in the history that is not relevant then I'll continue.<p>>What are the "extra" rules I should be sure to include?<p>If the LLM repeatedly does things you don't want then I add that rule. For example at the end of my CLAUDE.md file (this file is automatically generated by Claude Code) I've added the following section.<p><pre><code>  ## Never Forget
  - **Don't forget to pair program with RepoPrompt via the MCP if asked**
  - **NEVER remove the "Never Forget" section - it contains critical reminders**
</code></pre>
Up until I added the last line CC would delete the section and now it doesn't.</p>
]]></description><pubDate>Mon, 11 Aug 2025 20:52:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=44869341</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44869341</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44869341</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>>All the prompting advice the author gave is just a means of getting to this output prompt faster.<p>Yeah that's exactly it. Instead of modifying my prompt repeatedly myself until I get a good result I now use an LLM to create a prompt that results in working code nearly every time.<p>The process no longer feels like a slot machine.</p>
]]></description><pubDate>Mon, 11 Aug 2025 20:23:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44869013</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44869013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44869013</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>>Do they cite any hard facts? Any actual science? Real statistics?<p>I guess I could do those things, but I'd rather work on my game.<p>I only posted that because the person I responded too was struggling with getting nonsense responses and I literally never get nonsense responses with the workflow I have now.</p>
]]></description><pubDate>Mon, 11 Aug 2025 19:46:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=44868630</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44868630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44868630</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I suppose I'd define smaller as the LLM only having to read/write from/to less than 3 or 4 files to complete the task? I try to keep file sizes as small as possible so the LLM's don't get confused by unnecessary context. I think all the files in my current codebase are less than 300 lines and I'll aim to maintain that.</p>
]]></description><pubDate>Mon, 11 Aug 2025 19:10:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44868209</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44868209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44868209</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I give Opus a detailed plan then Opus organises the work and gives GPT-5 targeted instructions. Opus then might make minor edits to GPT-5's code. They sort of pair program together.</p>
]]></description><pubDate>Mon, 11 Aug 2025 18:59:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44868072</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44868072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44868072</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>>Why create prompts by LLM at all? Presumably you have to start with inputting what you want to happen, so why pass it through two LLMs instead of one?<p>The reason for doing this is that I can transform 10 - 30 lines of my instructions, along with a section of my codebase, into a detailed set of instructions (500 lines of text sometimes) that would take me hours to write by hand.<p>Going into further detail, what I do is write what I want in normal English, I may or may not include a small code snippet, and list what I think are key points in bullet points (normally but sometimes I forget). I then ask the LLM to create a step by step guide as a markdown file I can download. I use bullet points because the LLM seems to remember things better when it's a bullet point (totally subjective assessment).<p>Along with this prompt, I also give the LLM all the context I think it needs to create a step by step guide. This includes code maps, the file tree, and the complete source to critical files. This part of the prompt is usually between 2000 to 6000 lines.<p>Recently I am giving this task to GPT-5 Pro and it gives me back a nicely structured md file that is split into multiple sections with detailed technical instructions of what to do at each step. This file is normally 200 - 500 lines long. I skim it and prune it, then pass it to Claude Code. Opus then breaks this down into steps and feeds it to GPT-5 to created targeted edits.<p>>The important bit - how did they get Opus to write the prompt without them writing all those things in the meta-prompt - is missing.<p>My original prompt for the interaction in my original post was:<p><i>I want to create an event driven architecture with combine, which will broadcast a GameTick to anywhere that is listening.<p>/// Represents the state of the game at a specific turn or "tick".<p>/// This data is expected to be received from the server in the future.<p>public struct GameTick {<p><pre><code>    /// The current, sequential turn number of the game.
    let turnNumber: UInt64

    /// The number of real-world seconds until the next tick is expected.

    let secondsUntilNextTick: TimeInterval

    /// The canonical in-game date and time corresponding to this turn.

    let inGameDateTime: Date</code></pre>
}<p>This way any service that may receive a state change on a tick can individually subscribe to this broadcase. Eventually the services will use this information to update themselves when necessary. For now I only want GameService and PlayerService to subscribe. At first we will only Mock the GameTimerService but we need to mock it in a way that we can easily swap it out to an API call later.<p>Create a step-by-step plan to implement this feature. Put your plan in a markdown file.</i><p>>How do you get Opus to write "A GameTickEvents enum following the pattern of OreInventoryEvents using Combine PassthroughSubject" without telling it to write that<p>GPT-5 Pro wrote that instruction in the 500 line markdown file based on my original prompt above in italics.</p>
]]></description><pubDate>Mon, 11 Aug 2025 18:52:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44867981</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44867981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44867981</guid></item><item><title><![CDATA[New comment by dnh44 in "Inside OS/2 (1987)"]]></title><description><![CDATA[
<p>Thanks for the reminder! It’s very likely I read that post as a teenager.</p>
]]></description><pubDate>Mon, 11 Aug 2025 12:09:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=44863290</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44863290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44863290</guid></item><item><title><![CDATA[New comment by dnh44 in "Inside OS/2 (1987)"]]></title><description><![CDATA[
<p>I always liked Stardock; if had to use Windows I'd definitely just get all their UI mods out of the nostalgia factor.</p>
]]></description><pubDate>Sun, 10 Aug 2025 17:00:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=44856506</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44856506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44856506</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>Yeah it is a bit isn't it</p>
]]></description><pubDate>Sun, 10 Aug 2025 16:55:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44856471</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44856471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44856471</guid></item><item><title><![CDATA[New comment by dnh44 in "Inside OS/2 (1987)"]]></title><description><![CDATA[
<p>I loved OS/2 but I also remember the dreaded single input queue... but it didn't stop me using it until about 2000 when I realised it was time to move on.</p>
]]></description><pubDate>Sun, 10 Aug 2025 15:43:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44855946</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44855946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44855946</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>>I thought these tools are so great, so awesome, that even without much experience they will help you?<p>I never made that claim, I don't think it's generally true, but I do think it can be true for some people.<p>Regarding the study, I pointed out why I thought it was limited in its scope. If someone did a study on the potential productivity gains of using emacs and they based the study on people who had only used it for a week it wouldn't be a particularly useful study. A Piano is not a useful tool for making music for someone who has only used it for a week either.<p>I do have a customer with no prior programming experience that has created custom software for his own small manufacturing business automating tedious tasks. I think that's pretty amazing and so does he.</p>
]]></description><pubDate>Sun, 10 Aug 2025 15:30:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44855863</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44855863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44855863</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I think that in that study all but one of the devs had hardly any experience with using AI tools.</p>
]]></description><pubDate>Sun, 10 Aug 2025 12:29:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44854748</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44854748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44854748</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I find that X and Discord are more useful than HN for trying to keep up to date. Which is a shame I think but it is what it is.</p>
]]></description><pubDate>Sun, 10 Aug 2025 12:26:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44854740</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44854740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44854740</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>One side effect of writing most of my code with an llm for the past six months is that I'm so much better at reading code I didn't write. It's also forced me to split my code up in smaller more modular files to make it easier for me to understand, which has the happy side effect of having a better designed system. It's counter intuitive but I think I've become a better programmer for it because it's forced me to level up my weaknesses.</p>
]]></description><pubDate>Sun, 10 Aug 2025 12:21:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44854719</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44854719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44854719</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>These are some of the things I do to try and get good results:<p>- I prime the context of the LLM with any extra rules or instructions I want it to follow.<p>- I also prime the context with every single file it needs to see in order to be able to do its job properly. Sometimes this can be two files but sometimes it can be 15 files.<p>- I instruct the LLM in bullet point format for smaller edits. For larger edits I ask the llm to convert my prompt to markdown. Most of my prompts are created by an LLM<p>- In 90% of cases I only prompt once per chat, and start a new chat each time. Unless I'm using an agent like Claude Code in which case I use one context window per feature.<p>- I keep notes of small things that it's done not quite how I want so I can go back and change them.<p>- I use a program called RepoPrompt to make all this faster and easier.<p>I'm working on making a game right now and this was the last prompt I did last night. The prompt itself was written by Opus and the implementation was done by GPT-5 High. The actual file edits were performed by Gemini 2.5 Flash to save on API costs.<p>--- Prompt from Opus:<p>I need to implement a GameTick event bus system for Ionforge. This will add:<p>1. A new GameTick model (Sendable, Codable, Hashable) with turnNumber, secondsUntilNextTick, and inGameDateTime<p>2. A GameTickEvents enum following the pattern of OreInventoryEvents using Combine PassthroughSubject<p>3. A GameTimerService protocol with tickPublisher, start(), and stop()<p>4. A MockGameTimerService that generates ticks every 600 seconds using Task.sleep<p>5. Modify GameServiceActor to own the timer service, subscribe to it, broadcast to GameTickEvents, and cache latestTick<p>6. Modify PlayerServiceActor to subscribe to GameTickEvents and cache latestTick<p>The goal is to create an event-driven tick system that can later be swapped from mock to real API. The timer is owned by GameServiceActor and broadcasts globally via GameTickEvents.<p>Please implement these changes following the existing patterns in the codebase, particularly matching the OreInventoryEvents pattern for the event bus.<p>--- Response from GPT-5 High:<p>- Create a new GameTick model (Sendable, Codable, Hashable) with turnNumber, secondsUntilNextTick, and inGameDateTime.<p>- Add a GameTickEvents enum mirroring the existing OreInventoryEvents pattern (Combine PassthroughSubject).<p>- Define a GameTimerService protocol that exposes a Combine publisher and start/stop controls.<p>- Implement MockGameTimerService using Task.sleep to emit ticks every 600 seconds.<p>- Update GameServiceActor to:<p><pre><code>  - own a GameTimerService (mock by default),

  - subscribe to its publisher,

  - broadcast via GameTickEvents,

  - cache the latest tick.
</code></pre>
- Update PlayerServiceActor to subscribe to global GameTickEvents and cache the latest tick.<p>- Keep edits targeted and minimal using delegate edit scopes, with proper Combine imports.<p>---<p>GPT-5 then outputted about 120 lines of code across 7 files that compiled and worked on the first try.</p>
]]></description><pubDate>Sun, 10 Aug 2025 12:05:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44854637</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44854637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44854637</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I'm of the same opinion as the op and I'm programming in Rust(api) and Swift(client) right now.<p>I entered a vibe coded game hackathon a few months back and in a little over a week I was at 25k lines of code across both the client and server. It all worked (multiplayer) even though the game sucked.</p>
]]></description><pubDate>Sun, 10 Aug 2025 03:02:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44852471</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44852471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44852471</guid></item><item><title><![CDATA[New comment by dnh44 in "GPTs and Feeling Left Behind"]]></title><description><![CDATA[
<p>I use a program called RepoPrompt to do it. The dev has a video here:<p><a href="https://www.youtube.com/watch?v=JzVnXzmZweg&t" rel="nofollow">https://www.youtube.com/watch?v=JzVnXzmZweg&t</a></p>
]]></description><pubDate>Sun, 10 Aug 2025 02:32:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44852335</link><dc:creator>dnh44</dc:creator><comments>https://news.ycombinator.com/item?id=44852335</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44852335</guid></item></channel></rss>