Live data from Hacker News

Show HN: Doggo – A powerful, human-friendly DNS client for the command line

doggo.mrkaran.dev

131–138 of 138 posts

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#131

Earlier quoted context omitted.

Just curious, but why go through all the trouble to create a docker container for a DNS cli utility with no dependencies?

Long answer: Not OP, but sometimes you’re in a throwaway env and want to quickly do a DNS query and don’t have any tools (like Ubuntu minimal) available. Spawning an ephemeral container isn’t a bad idea in that case. Short answer: Why not :)

I don't specifically know Ubuntu minimal. But suggesting that a minimal OS has containerd pre-installed isn't exactly the "minimal" I'm thinking of.

It's a lot of code to "just run a UDP packet" IMHO.

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#132

Earlier quoted context omitted.

I did not realize the list of record types was so long! [1] But I was thinking the common ones, yes. --- 1: https://en.wikipedia.org/wiki/List_of_DNS_record_types#/medi...

This is now live: https://doggo.mrkaran.dev/docs/features/any/

Really nice!

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#133

Earlier quoted context omitted.

Just curious, but why go through all the trouble to create a docker container for a DNS cli utility with no dependencies?

Long answer: Not OP, but sometimes you’re in a throwaway env and want to quickly do a DNS query and don’t have any tools (like Ubuntu minimal) available. Spawning an ephemeral container isn’t a bad idea in that case. Short answer: Why not :)

That's also where declarative package managers such as Nix and Guix shine. You can temporarily "install" packages that can be cleaned up later, garbage-collection style. Besides being their own distros, both can be used as add-on package managers on other Linux distros, for example.

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#134

Earlier quoted context omitted.

Just curious, but why go through all the trouble to create a docker container for a DNS cli utility with no dependencies?

Long answer: Not OP, but sometimes you’re in a throwaway env and want to quickly do a DNS query and don’t have any tools (like Ubuntu minimal) available. Spawning an ephemeral container isn’t a bad idea in that case. Short answer: Why not :)

Have you ever heard of Nix?

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#135

Earlier quoted context omitted.

Long answer: Not OP, but sometimes you’re in a throwaway env and want to quickly do a DNS query and don’t have any tools (like Ubuntu minimal) available. Spawning an ephemeral container isn’t a bad idea in that case. Short answer: Why not :)

Have you ever heard of Nix?

[deleted]

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#136
post #101

Very nice to also have it dockerized. You might just want to add in the documentation the `--rm` parameter for cleanup after running and `-t` for the colors. So it will be docker run --rm -it ghcr.io/mr-karan/doggo:latest mrkaran.dev MX

Just curious, but why go through all the trouble to create a docker container for a DNS cli utility with no dependencies?

Which trouble? The image gets pulled once. Running it is pretty straightforward and fast enough. And not much work to clean up if you don’t use it. Beside that I don’t have to care about the right package manager. But then I‘m also a person that prefers npx to global npm installs.

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#137
post #103

Earlier quoted context omitted.

Go is produces (mostly) statically compiled binaries by default. No runtime, no interpreter, no dependencies. Python, Java, JavaScript, C#, etc. can't say the same.

Correct me if I am wrong. but this is the feature of C#/.Net as well as of recent versions.

I'm a C# dev, but I'm not up to date on the latest C#/.Net developments. Could you tell me more?

Specifically, I mean that by default, Rust and Go binaries only rely on libc, so you only need to download the binary and `chmod +x` it (on libc distros). No distro-specific dependencies, no frameworks like `java` or `dotnet`, etc.

Re: Show HN: Doggo – A powerful, human-friendly DNS client for the command line

#138
post #103

Earlier quoted context omitted.

Correct me if I am wrong. but this is the feature of C#/.Net as well as of recent versions.

dotnet publish -o . -p:PublishAot=true :) To be fair, I do not think the author understands what static binaries are and why they may or may not want them, and how what Go does differs to what C/C++ toolchain does. I’d be very surprised if they do, being a Go developer. Next time they will learn another excuse to promote their language.

For starters, I develop C# professionally, and I use Go almost exclusively as a consumer :) Your assumptions about me are wrong, and static compilation is not a complicated idea.

Go or Rust programs are standalone by default. You just download the binary, `chmod +x` it, and drop it in your $PATH. Caddy, Helix, Micro, ripgrep, fd-find, eza, bat, and bottom are all programs I install that way.

Some C/C++ applications release as standalone binaries, but that's not the default. and I have not encountered a single C#/.NET application that distributes as a standalone binary.

The only difficulty is if you're on non-libc distros like Alpine (which uses musl) or an uncommon OS-architecture combo like Arm64 Windows or RISC-V anything. These are usually rare and intentional choices and you would be used to building from source. A nice thing is that it's usually much easier to compile Rust or Go projects from source than it is for C/C++.

Post reply on HN