<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: mnahkies</title><link>https://news.ycombinator.com/user?id=mnahkies</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 23 May 2026 00:10:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mnahkies" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mnahkies in "Project Glasswing: An Initial Update"]]></title><description><![CDATA[
<p>One issue I've seen with LLM's is adding superfluous code in the name of "safety" and confidently generating a bunch of stuff that was useful in years gone by, but now handled correctly by the standard lib. I'm of the opinion that less is more when it comes to code, and find the trend this is introducing quite frustrating.<p>How do you avoid this pitfall?</p>
]]></description><pubDate>Fri, 22 May 2026 21:25:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48241870</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48241870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48241870</guid></item><item><title><![CDATA[New comment by mnahkies in "Intuit to lay off over 3k employees to refocus on AI"]]></title><description><![CDATA[
<p>In the UK tax on interest earned on plain savings accounts isn't deducted at source - so if you have a rainy day pot chances are you're required to register for self assessment and pay tax on it (particularly now that interest rates are higher and it's relatively easy to go above the tax free threshold, which has been frozen for a long time).<p>If you have investments outside of an ISA (tax free investment wrapper) then same story - you need to report disposals and dividends for tax purposes.<p>That's before we get into side hustles/self employment and investment properties, etc.</p>
]]></description><pubDate>Thu, 21 May 2026 09:30:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48219979</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48219979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48219979</guid></item><item><title><![CDATA[New comment by mnahkies in "Minnesota becomes first state to ban prediction markets"]]></title><description><![CDATA[
<p>Yeah that seems like a massive reach. Does banking count as a "supporting service"? After all a prediction market isn't very useful if you can't get money in/out.</p>
]]></description><pubDate>Wed, 20 May 2026 06:12:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48203729</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48203729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48203729</guid></item><item><title><![CDATA[New comment by mnahkies in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>My first full time job after university was using hg, and particularly <a href="https://tortoisehg.bitbucket.io/" rel="nofollow">https://tortoisehg.bitbucket.io/</a> made it really pleasant.<p>Prior and post that I'd always used git but I'll always have a bit of a soft spot for mercurial, especially as our forge usage at the time predated strict guardrails and controls - we did code review, but it was your responsibility to tag the appropriate people and wait for them to respond, if you felt it was necessary to merge prior to that you could - but better be ready to defend that decision.</p>
]]></description><pubDate>Sun, 17 May 2026 21:37:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48173406</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48173406</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48173406</guid></item><item><title><![CDATA[New comment by mnahkies in "Apple Silicon costs more than OpenRouter"]]></title><description><![CDATA[
<p>They do take a cut of 5.5%, (as they should)</p>
]]></description><pubDate>Sun, 17 May 2026 12:40:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48168394</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48168394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48168394</guid></item><item><title><![CDATA[New comment by mnahkies in "Launch HN: Ardent (YC P26) – Postgres sandboxes in seconds with zero migration"]]></title><description><![CDATA[
<p>Yeah I think a read replica might fit the bill - though I suspect active logical replication counts as a connection in this context.<p>Using a cloud provider read replica might not (as I think that might use block level replication) - but then you're paying for an extra dev database host for the privilege</p>
]]></description><pubDate>Fri, 15 May 2026 08:26:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48145975</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48145975</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48145975</guid></item><item><title><![CDATA[New comment by mnahkies in "Launch HN: Ardent (YC P26) – Postgres sandboxes in seconds with zero migration"]]></title><description><![CDATA[
<p>I wanted to try doing something similar to this in our dev environment (think shared dev database but per branch clones), but this limitation seemed tricky to accept:<p>> The source database can't have any active connections during cloning.<p>I wouldn't mind some lock contention, but having to kill all connections seemed a bit harsh</p>
]]></description><pubDate>Wed, 13 May 2026 20:28:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48127051</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48127051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48127051</guid></item><item><title><![CDATA[New comment by mnahkies in "Postmortem: TanStack NPM supply-chain compromise"]]></title><description><![CDATA[
<p>I use GitHub environments to require a manual approval (which includes MFA) in GitHub, prior to a pipeline running with a oidc token capable of publishing.<p>Would this have caught the cache poisoning? Unsure, though it at least means I'm intentionally authorising and monitoring each publish for anything unexpected.<p><a href="https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment" rel="nofollow">https://docs.github.com/en/actions/deployment/targeting-diff...</a></p>
]]></description><pubDate>Tue, 12 May 2026 07:17:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48105235</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48105235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48105235</guid></item><item><title><![CDATA[New comment by mnahkies in "I’ve banned query strings"]]></title><description><![CDATA[
<p>Completely agree on the axios part - one implication of that is you can't statically type the error response shapes (since exceptions can't be typed). Where as with fetch you can have a discriminated union based on the status code (eg: <a href="https://github.com/mnahkies/openapi-code-generator/blob/main/integration-tests%2Ftypescript-fetch%2Fsrc%2Fgenerated%2Ftodo-lists.yaml%2Fclient.ts#L196-L198" rel="nofollow">https://github.com/mnahkies/openapi-code-generator/blob/main...</a>)<p>Although I do feel like I've seen too many instances of a 404 being used for an empty collection where it would make more sense to return `[]` and treat it as an expected (successful) state.</p>
]]></description><pubDate>Sun, 10 May 2026 07:57:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48081921</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48081921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48081921</guid></item><item><title><![CDATA[New comment by mnahkies in "The React2Shell Story"]]></title><description><![CDATA[
<p>I was really surprised when this hit, and I discovered the protocol was essentially undocumented / unspecified. I was trying to find indicators of compromise and that was made more difficult by the lack of documentation.<p>It was really helpful that they had coordinated with WAF providers like cloud flare ahead of disclosure to put rules in place though.</p>
]]></description><pubDate>Sat, 09 May 2026 07:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48072748</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=48072748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48072748</guid></item><item><title><![CDATA[New comment by mnahkies in "GitHub Copilot is moving to usage-based billing"]]></title><description><![CDATA[
<p>You can pool credits through open router (afaik, I'm only using a single user account), but if you top-up $10 per user, per month, any unused credits will rollover.<p>Tbh I think it still works, but only because the new allowance will likely get used very quickly within a billing cycle - I'm expecting this change to increase our orgs bill significantly based on how many API credits with open router I consume in a weekend using a single agent in a pairing style.<p>The pooling will only be useful if you have a bunch of infrequent/low usage users that you still want to have licenses.</p>
]]></description><pubDate>Mon, 27 Apr 2026 18:50:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47925621</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47925621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47925621</guid></item><item><title><![CDATA[New comment by mnahkies in "Got an Old Kindle? It Might Not Work Anymore"]]></title><description><![CDATA[
<p>My paper white is about 7/8 years old, and is still holding up fine though the battery is noticeably degraded - charging it approximately once a week now.<p>I was also having a play with a demo model of the latest one in a store and the page turn speed is much much better, which is tempting me to upgrade though I'd prefer to run the current one into the ground first.</p>
]]></description><pubDate>Mon, 20 Apr 2026 02:47:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47829839</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47829839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47829839</guid></item><item><title><![CDATA[New comment by mnahkies in "I shipped a transaction bug, so I built a linter"]]></title><description><![CDATA[
<p>Aside from data consistency issues mentioned, you can also quickly get yourself into connection pool exhaustion issues, where concurrent requests have already obtained a transaction but are asking for another accidentally, then all stall holding the first open until timeouts occur.</p>
]]></description><pubDate>Tue, 14 Apr 2026 04:57:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47761405</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47761405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47761405</guid></item><item><title><![CDATA[New comment by mnahkies in "E2E encrypted messaging on Instagram will no longer be supported after 8 May"]]></title><description><![CDATA[
<p>I don't disagree, but I think there is a distinction between "everything is e2ee, but specific conversations may be MiTM without detection" and "nothing is e2ee and can be retrospectively inspected at will" that goes a little beyond security theatre - makes it more analogous to old fashioned wiretaps in my mind.<p>Obviously it involves trust that it isn't actually "we say it's e2ee but actually we also MiTM every conversation"</p>
]]></description><pubDate>Fri, 13 Mar 2026 18:54:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368165</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47368165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368165</guid></item><item><title><![CDATA[New comment by mnahkies in "Contextual commits – An open standard for capturing the why in Git history"]]></title><description><![CDATA[
<p>I like to follow conventional commit style, and some repos I work on have CI checks for it. It's been fixed now, but for a long time the validator we were using would reject commits that included long urls in the body (for exceeding the width limit).<p>It was enraging - I'm trying to provide references to explain the motivation of my changes, all my prose is nicely formated, but the bulleted list of references I've provided is rejecting my commit.<p>I generally think it's in the category of a social problem not a technical problem - communicate the expectations but don't dogmatically enforce them</p>
]]></description><pubDate>Thu, 12 Mar 2026 21:42:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47357583</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47357583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47357583</guid></item><item><title><![CDATA[New comment by mnahkies in "My Homelab Setup"]]></title><description><![CDATA[
<p>Personally I'm using haproxy for this purpose, with Lego to generate wildcard SSL certs using DNS validation on a public domain, then running coredns configured in the tailnet DNS resolvers to serve A records for internal names on a subdomain of the public one.<p>I've found this to work quite well, and the SSL whilst somewhat meaningless from a security pov since the traffic was already encrypted by wire guard, makes the web browser happy so still worthwhile.</p>
]]></description><pubDate>Sun, 08 Mar 2026 18:31:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47299733</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47299733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47299733</guid></item><item><title><![CDATA[New comment by mnahkies in "The bare minimum for syncing Git repos"]]></title><description><![CDATA[
<p>> I used to throw every scrap of code onto GitHub in the vague hope of “sharing knowledge”<p>I looked at a random repo today, and used some of its (MIT licensed) code as a starting point.<p>It was an expo plugin for managing android key stores, I didn't need most of what it did, and I went a different direction in the remaining bits - but it still helped me do that quickly. That won't show up in any stats the author can see, but I appreciate their contribution</p>
]]></description><pubDate>Sat, 21 Feb 2026 19:59:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47104093</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47104093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47104093</guid></item><item><title><![CDATA[New comment by mnahkies in "Infrastructure decisions I endorse or regret after 4 years at a startup (2024)"]]></title><description><![CDATA[
<p>We've only raised a handful of support cases with GCP the past 5 years, but we happened to raise one this week and they've put us onto a preview feature that solves the problem we were facing - I'm suddenly wondering if we should be trying our luck with support more often instead of figuring it out ourselves.</p>
]]></description><pubDate>Fri, 20 Feb 2026 19:06:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47092373</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47092373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47092373</guid></item><item><title><![CDATA[New comment by mnahkies in "Tailscale Peer Relays is now generally available"]]></title><description><![CDATA[
<p>Heh, that's my PR. Initially I thought it would be a trivial change, but then I realized I hadn't considered how it should interact with MDM / device posture functionality - these aren't features I'm personally using with the Android client, but are understandably important to enterprises.<p>I still hope to get back to that and try to get it to a state where it can be merged, but I need to figure out how to test the MDM parts of it properly, and ideally get a bit of guidance from the tailscale team on how it should work/is my implementation on the right track (think I had some open questions around the UI as well)</p>
]]></description><pubDate>Thu, 19 Feb 2026 07:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47071048</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47071048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47071048</guid></item><item><title><![CDATA[New comment by mnahkies in "Flashpoint Archive – Over 200k web games and animations preserved"]]></title><description><![CDATA[
<p>I think the interface breaking on newer screens is a key point - AOE2 definite edition looks great on a 4k screen now, but when I tried one of the other variants beforehand the UI didn't scale properly and so all the elements were tiny to the point of being unplayable without adjusting the resolution</p>
]]></description><pubDate>Sun, 15 Feb 2026 10:03:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47022511</link><dc:creator>mnahkies</dc:creator><comments>https://news.ycombinator.com/item?id=47022511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47022511</guid></item></channel></rss>