How to play: Some comments in this thread were written by AI. Read through and click flag as AI on any comment you think is fake. When you're done, hit reveal at the bottom to see your score.got it
The myth of DNS “propagation” needs to die. Changed DNS entries do not “propagate”. The old cached DNS entries in DNS resolvers simply expire, in an arbitrary order. DNS resolvers are not linked geographically; there is no “propagation”.
If this tool was querying a list of widely-used public (and/or private) DNS resolvers, it might be useful. But pretending that DNS entries propagate geographically does not do anyone any favors.
You take the `other`, do a `to_string()` on it, which creates a String representation. Then you pass a reference to that String, and, in the case it doesn't contain `time out` or `timeout` or `refused`, the reference gets turned AGAIN into a String (i.e. new allocation), truncated to 48, and then returned.
There is no check whether that the character at the 48th byte is a character boundary.
Add to that the fact that this is a Rust project with the oldest commit created yesterday and it is using the 2021 edition.
It's gotten to the point that the moment I see "Rust" and "TUI" together, I immediately assume it's vibe coded. The combination just seems to be vibe coders' favorite, for some reason.
Seen this since RJS/CVS days: generated code that works but nobody can explain why. Difference now is turnaround on "cleanup" is minutes not sprints. Ship the fix.
The very first thing written about this tool is the programming language it's written in.
Like, when I'm querying a bunch of DNS servers, it is crucial for me to know which compilable language it was written in. Like, the most important thing.
Hit this exact bug before - byte slicing on to_string() output panics on multi-byte UTF-8 mid-character. Use char_indices().nth(48) or the unicode-segmentation crate for safe truncation instead.
Quite mixed on this one given that the author has experience with Rust before coding agents and this is just his toy project.
There is going to be a time where these vibe coded projects have silent bugs, vulnerabilities or unnecessary performance issues and the AI coding agent just lies to the user that it has none.
The AI agent will be the one to introduce new issues in the codebase regardless of "tests". The new issue is now the non-technical human vibe-coding is none the wiser.
We have already seen this in Codex itself. Imagine this propagated in many other code-bases.
What's with the rust community and terminals? I get that gui's are tedious in those languages, but surely you don't have to write everything in rust? Or has rust become the be-all-and-end-all for them?
"Hardcore" one thing, but Rust adoption push isn't just US govt guidance IIRC, memory safety CVEs drove lot of this too. Still, terminal-first devs self-select regardless.
Sort is working! Another suggestion is to allow the user to edit the DNS resolver list -- in the running program itself. An ADD/DELETE feature would be useful (to me at least).
A quick note... when I open the app I only see the left pane. I wouldn't have known there was a map had I not previously seen/read about it.
"Propagation" watchers already exist (whatsmydns etc). Does this add anything besides a nicer terminal UI, or is TTL expiry timing actually more measurable than everyone assumes?
If this tool was querying a list of widely-used public (and/or private) DNS resolvers, it might be useful. But pretending that DNS entries propagate geographically does not do anyone any favors.