HNHacker News
TopNewBestAskShowJobs

CGamesPlay

8,743 karma · joined April 2, 2009

https://cgamesplay.com/

[ my public key: https://keybase.io/cgamesplay; my proof: https://keybase.io/cgamesplay/sigs/GtbWedLQcajnhwIFcwX1AsuUul7jHmox7E_MCW6PHlw ]

submissionscomments
CGamesPlay··on Travel Is Not Education
> Things would indeed be different if rural Dagestanians who are about to be drafted would start booking trips, but it is so telling that the digital media access, not the flight ticket is where the Kremlin intervenes. If someone wanted you to not learn about a culture, would they rather take away your opportunity to travel, or to go on the internet?

They only need to take away the internet, because the opportunity to travel never existed in the first place. And it's not as if, upon returning from your cultural experiences out west, your banking app isn't searched at the border for treacherous transactions. Physical travel is just dramatically easier to precisely control and dramatically more expensive to access, compared to digital media where you have to use a heavy-handed approach to blocking.

This post is, at it's core, "my town is being wrecked by tourism". That's perhaps a reasonable feeling for the author to have, but I don't really agree with any of the broader claims they're trying to make.

CGamesPlay··on CLI agents make self-hosting on a home server easier and fun
You aren't actually supposed to ever need to deal with tickets manually, unless you are trying to get a tunnel between two machines and neither can SSH into the other. It could be streamlined with something like Magic Wormhole, though. I'll add that to the backlog and see if there's interest. The normal way is to use SSH / docker exec / any remote shell to let QTM swap the tickets over it.

I've added an asciinema to the README now <https://asciinema.org/a/z2cdsoVDVJu0gIGn>, showing the manual connection steps. Thanks for the kind words. Hope you find it useful!

CGamesPlay··on CLI agents make self-hosting on a home server easier and fun
Thanks for the shout-out! If you have any experiential reports using QTM, I'd love to hear them!
CGamesPlay··on CLI agents make self-hosting on a home server easier and fun
I really enjoy self-hosting on rented compute. It's theoretically easy to migrate to an on-prem setup, but I don't have to deal with the physical responsibilities while it's in the cloud.
CGamesPlay··on Code and Let Live
Did you write up anything about this? Is this off the shelf behavior for Envoy or did you create this API yourself?
CGamesPlay··on Code and Let Live
Oh, thanks, that works. ([edit] rewrote this whole post) I guess I need to install my own tunneling into the VM to do web development on it, but that's not so bad. The lack of regional support is crippling, because whatever region you put me in is ~200ms from me and the typing lag is terrible.

I'd love to adopt this for all my development (which I currently do using rented cloud instances, so I'm pretty comfortable with the remote development paradigm). I'm especially excited about the snapshot/clone pattern, and have (this past week) been researching solutions for exactly this problem.

Hope you launch multiple regions for this ASAP. Will be watching.

CGamesPlay··on Code and Let Live
I spun one up, started a server on port 8080, ran `sprite url`, it gave me a URL, that URL just has `{ "error": "unauthorized" }`. How am I supposed to access it?
CGamesPlay··on Code and Let Live
I ran the command to check and it erased /bin and now my sprite is busted. But I was able to restore from a checkpoint and it's all good.
CGamesPlay··on Total monthly number of StackOverflow questions over time
I recall when they disabled the data export a few years ago [0], March 2023. Almost certainly did this in response to the metrics they were seeing, but it accelerated the decline [1].

[0] https://meta.stackexchange.com/questions/389922/june-2023-da...

[1] https://data.stackexchange.com/stackoverflow/query/edit/1926...

CGamesPlay··on A website to destroy all websites
> To sum it up: this is not so much a problem of the internet as a lack of discernment among its users.

This is very true. I've found that there's more good content than there ever was before, but that there's also much more bad content, too, so the good is harder to find.

RSS helps me, curated newsletters help me. What else helps build this discernment?

CGamesPlay··on Rust--: Rust without the borrow checker
Yes. An analog would be uninitialized memory. The compiler is free to make optimizations that assume that uninitialized memory holds every value and no value simultaneously (because it is undefined behavior to ever read it).

In the following example, z is dereferenced one time and assigned to both x and y, but if z and x are aliased, then this is an invalid optimization.

    fn increment_by(x: &mut i32, y: &mut i32, z: &i32) {
        *x = *z;
        *y = *z;
    }
https://rust.godbolt.org/z/Mc6fvTzPG
CGamesPlay··on Nerd: A language for LLMs, not humans
If you're going to set TypeScript as the bar, why not a bidirectional transpile-to-NERD layer? That way you get to see how the LLM handles your experiment, don't have to write a whole new language, and can integrate with an existing ecosystem for free.
CGamesPlay··on No strcpy either
It's not quite as black and white as the article implies. The hallucinated vulnerability reports don't flag it "without caveat", they invent a convoluted proof of vulnerability with a logical error somewhere along the way, and then this is what gets submitted as the vulnerability report. That's why it's so agitating for the maintainers: it requires reading a "proof" and finding the contradiction.
CGamesPlay··on HSBC blocks its app due to F-Droid-installed Bitwarden
I'm sorry this is so difficult for everyone involved. US is sanctioning EU citizens, sometimes with their banks (Nicholas Guillou, Francesca Albanese, and others) and sometimes with visas (Thierry Breton, and others).

I've updated my original post with a link that hopefully helps explain what "other" means.

CGamesPlay··on HSBC blocks its app due to F-Droid-installed Bitwarden
> There were some other sanctions involving visas, but as far as I understand

Yes, I read the article. You misread my comment.

CGamesPlay··on HSBC blocks its app due to F-Droid-installed Bitwarden
https://www.lemonde.fr/en/international/article/2025/11/19/n...

There were some other sanctions involving visas, but as far as I understand that did not affect the individuals' ability to to bank: https://www.cnbc.com/2025/12/24/us-bans-visas-for-ex-eu-comm...

CGamesPlay··on Toad is a unified experience for AI in the terminal
> Everyone brings their own experiences to the table, and in 6 months of testing nobody has made assumptions you just did. < As an experiment, try disabling the app's mouse support and testing it.

> For instance, "toad run" takes a path to a directory and not a command (check the usage). < I stand corrected. I think I was confused because I read this comment <https://news.ycombinator.com/item?id=46370722> ("toad acp COMMAND") and substituted "toad run COMMAND". I saw in the usage that it mentions "PATH" without specifying what it is the path to, and does include a "--agent" flag but with no explanation about what it does. This level of documentation is far from what I would call good, but I'll give it to you that I could have figured that one out. ([append] `toad run` isn't even the right command and as near as I can tell --agent does nothing. But `toad acp` is what I actually wanted and finally I can actually test the app)

> But you've chosen to be combative < My post was snarky but my experience was honest. I don't think I'm being combative. I certainly don't intend to offend you as the creator of the tool, regardless of whether or not I think the tool is high-quality in its current state.

Merry Christmas, I will continue to watch this project. Maybe I will open a discussion in the Github if I end up successfully able to use it with my newfound understanding of the "acp" subcommand.

CGamesPlay··on Nabokov's guide to foreigners learning Russian
Given that this pattern appears in several Georgian colors (the color purple is also just "lilac-color": იასამნისფერი / იასამნის ფერი), I'm sure they just used a different brown thing before coffee was common.
CGamesPlay··on Toad is a unified experience for AI in the terminal
> Pretty sure you are a troll < OK, I'll come clean: I knew what Textualize is before I even evaluated toad, and have never to date found a Textualize app that "sparked joy" as it were. But I figured I should try Toad anyways since A) I strongly resonate with the problem statement of Toad and B) surely the creator of the library would create a best-in-class implementation using that library. Also, https://news.ycombinator.com/item?id=45912796

> If you don't like the keyboard control, you could always just use your mouse to click stuff. < You're reading me backwards. I like keyboard control, but feel like Textualize is a mouse-first UI library. Pressing arrow keys when launching Toad does nothing because I'm not in a "control". As a user, I am supposed to intuitively know that "Recommended" and "Coding agents" are "different controls" and so it should be obvious to me that the arrow keys would not navigate between them?

> 100x20 characters IIRC < You have 20 lines to work with and you decided to shove 4 of the 5 actions for the form into a modal control within the modal dialog. That's my point.

> Which is displayed prominently in the footer. < That's rich. You dedicate 3 lines to the "show in launcher" button and a "Go" button and say the one line at the bottom of the screen is "prominently". Also, that message isn't even on the opening screen of the app, presumably because I have a flawed understanding of what a "control" is.

> I don't think you were interested in fixing it, as you would have mentioned an error message.

No, the error message was perfectly clear! That's how I knew the solution. "Agent returned a failure code: 127 - /bin/sh: claude-code-acp: command not found" The solution is to run via npx.

> It does work for multi-word commands. But if your command contains a space you will need to wrap it in quotes. < You are wrong.

    $ toad run "npx @zed-industries/claude-code-acp"
    Not a directory: npx @zed-industries/claude-code-acp
> I imagine you don't work in the terminal much? < Please don't blame your users for uncovering bugs that your coding agent put in that you didn't catch in review.

Anyways, go take your sabbatical, relax, you need it. I do genuinely want a better CLI interface for my coding agents and what you said elsewhere that the landscape is "like building a browser for a single website" is very true. Hopefully you come back with fresh eyes and can make a compelling offering in this space.

CGamesPlay··on Nabokov's guide to foreigners learning Russian
Georgian is really interesting. Very few cognates for non-modern words. Colors in Georgian are fun: you don't have "brown", you have "coffee-color" (ყავისფერი / ყავის ფერი); you don't have "light blue", you have "sky-color" (ცისფერი / ცის ფერი).
CGamesPlay··on Toad is a unified experience for AI in the terminal
I strongly resonate with the problem statement, but this implementation was very far off the mark for me. Every interaction feels bad.

I fired it up, and the first thing I notice is that the arrow keys don't work. I can't select Claude Code. Oh, apparently it's in a different control, so I have to press Tab, and then the arrow keys work. Wow, this list of buttons has a slow scrolling animation when navigating it. Can I turn that off? Press enter on Claude, now I'm in a tiny modal window. Press enter, because I want to do the obvious thing, but apparently the obvious thing is "show in launcher", so the background of the modal is weirdly changing while a tiny single character inside the button is indicating that this is the part I'm supposed to be focusing on. No, I want to do the obvious thing of running Claude code. You could easily fit the 4 actions of this form on my screen, but by choosing to use a tiny modal window you're now forcing yourself to use another modal drop-down control to choose the action and a separate "yes actually do it" button, so the OBVIOUS ACTION of RUN THIS AGENT requires pressing tab, enter, down, down, down, enter, tab, enter. Great. Now I'm at a chat interface with an error screen, because it isn't installed. Quit the program, restart, enter, tab, enter, down, down, enter, tab, enter to install. It shows a successful run of the "ACP adapter" for claude. Shift-tab, enter, down, enter, tab, enter. Now I'm back at exactly the same error screen because apparently the install didn't work. Now, I know that you need to be running "npx @zed-industries/claude-code-acp", so I check the docs and apparently I can "toad run COMMAND". But it doesn't work for multi-word commands. And my trial with toad comes to an end.

So I can't test it for anything actually useful right now, but I'll add this to my list of projects to watch. Hopefully, being a UX-focused project, the creator actually focuses on the UX and fixes some of these silly decisions.

CGamesPlay··on FCC Updates Covered List to Include Foreign UAS and UAS Critical Components [pdf]
Your originally quoted text explicitly disagrees with you: "This update to the Covered List does not prohibit the import, sale, or use of any existing device models the FCC previously authorized."
CGamesPlay··on Show HN: HN Wrapped 2025 - an LLM reviews your year on HN
My roasts are now substantially more well done now. Well done.
CGamesPlay··on Show HN: HN Wrapped 2025 - an LLM reviews your year on HN
I agree, it feels like it only read the most recent few months of comments. The "vibe check" was on point though!
CGamesPlay··on Your job is to deliver code you have proven to work
THGTTG was actually just an early version of the prompt. "What do you get if you multiply six by nine?"
CGamesPlay··on Show HN: Picknplace.js, an alternative to drag-and-drop
OK, so I get that you're trying an alternative on the metaphor that drag and drop uses. The metaphor is "pick up the item, move it, then drop it", but the implementation doesn't work well on mobile, so you made it modal. But for me scrolling feels like "pick up the item, move the rest of the world so the item above the target, then drop it". It feels very strange.

As an refinement, I would keep the modality but add back in the dragging paradigm. Use a typical "move item" scrubber control, but have that control switch the item to a floating modality, and give it "send back" and "drop here" buttons. The user can drag the item, scroll, interact with the page, and the item stays with them to get where they want to go. Here is a crude mockup: https://excalidraw.com/#json=9DwYqkWRhdEgEEqyzY7X8,fCdPzIzTm...

CGamesPlay··on I got hacked: My Hetzner server started mining Monero
I took issue with this paragraph of the article, on account of several pieces of misinformation, presumably courtesy of Claude hallucinations:

> Here’s the test. If /tmp/.XIN-unix/javae exists on my host, I’m fucked. If it doesn’t exist, then what I’m seeing is just Docker’s default behavior of showing container processes in the host’s ps output, but they’re actually isolated.

1. Files of running programs can be deleted while the program is running. If the program were trying to hide itself, it would have deleted /tmp/.XIN-unix/javae after it started. The nonexistence of the file is not a reliable source of information for confirming that the container was not escaped.

2. ps shows program-controlled command lines. Any program can change what gets displayed here, including the program name and arguments. If the program were trying to hide itself, it would change this to display `login -fp ubuntu` instead. This is not a reliable source of information for diagnosing problems.

It is good to verify the systemd units and crontab, and since this malware is so obvious, it probably isn't doing these two hiding methods, but information-stealing malware might not be detected by these methods alone.

Later, the article says "Write your own Dockerfiles" and gives one piece of useless advice (using USER root does not affect your container's security posture) and two pieces of good advice that don't have anything to do with writing your own Dockerfiles. "Write your own Dockerfiles" is not useful security advice.

CGamesPlay··on I got hacked: My Hetzner server started mining Monero
Notably, if you run docker-in-docker, Docker is probably not a security boundary. Try this inside any dind container (especially devcontainers): docker run -it --rm --pid=host --privileged -v /:/mnt alpine sh

I disagree with other commenters here that Docker is not a security boundary. It's a fine one, as long as you don't disable the boundary, which is as easy as running a container with `--privileged`. I wrote about secure alternatives for devcontainers here: https://cgamesplay.com/recipes/devcontainers/#docker-in-devc...

CGamesPlay··on Children with cancer scammed out of millions fundraised for their treatment
Once you realize how profitable it is, it's hard to stop. https://www.cnbc.com/2025/11/06/meta-reportedly-projected-10...
CGamesPlay··on Nature's many attempts to evolve a Nostr
There was a “nature keeps evolving crabs” meme that was floating around a while back, I think it is a reference to that. I was also disappointed by the lack of nature, evolution, and crabs in the article.
← PreviousPage 6 of 34Next →