

I usually use rsync -avHXS --numeric-ids --progress --delete
Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @dan@d.sb


I usually use rsync -avHXS --numeric-ids --progress --delete


uBO can block things that DNS-based blocking can’t block. Some sites serve their ads from the same domain as the rest of their content, and some sites need custom JavaScript to block the ads.


I think that’d make sense. The trackers for public torrents are often at seemingly random domain names and nobody really pays much attention to who runs them.
The US military created Tor, so I don’t doubt the US government still runs a lot of the nodes.


I doubt it. It’s likely custom code that’s better suited to the task.
The *arrs watch RSS feeds to find new torrents. It wouldn’t be difficult to write a script that pulls the RSS feed and polls the tracker to collect data on the initial seeds/peers. They might use an actual torrent client for some of the data collection, since I’d guess they have to prove the person is actually uploading, rather than just being connected but not actually uploading or downloading.


Your comment isn’t entirely accurate.
in an overwhelming amount of cases, that host networking will be a “here’s a device-local subnet your containers can join to”, so no, a Docker container won’t by default “get it’s own IP address”
With the default NAT network, it gets its own IP in the 172.16.x.x range that Docker decides to use. That IP is accessible from the Docker host. It doesn’t matter that it’s not on your LAN - it’s still a dedicated IP. Port forwarding (or a reverse proxy) to it is a separate thing, and you can map a different port if you want to.
Plenty of Docker containers use the same port (often 80, 3000 or 8000), and the reason you can use multiple of those containers concurrently is because each one is on a separate IP.
The default NAT network isn’t commonly used for Home Assistant, though. It usually has a direct network connection to the LAN, since plenty of smart home devices rely on broadcasts for discovery.
Also claiming that “nothing else will use port 80” is a gross over-simplification.
It’s true for both the Home Assistant Docker container and for HAOS. In both cases, there’s no other web servers running in the container/VM. For the Docker container:
If you’re using the default Docker NAT network, the port you use to expose it to other devices is completely unrelated to the port used in the container. When you expose a Docker port, you specify the host port and container port separately.
proxy_pass http://hass/If you bridge the Docker container to the LAN, it has its own IP on the LAN and no other web servers will be running on that IP.
The actual reason that Docker containers don’t use port 80 by default is so they’re able to run in rootless mode without any extra capability grants. I don’t think Home Assistant supports rootless mode though.


There’s two supported ways to run Home Assistant:
In both cases, it’s running on its own IP address, so nothing else will be using port 80.
With Docker, you’d normally either use its standard NAT network, or bridge it to your LAN using a macvlan or ipvlan network. Bridging is usually better because some devices rely on broadcasts.
You used to be able to run Home Assistant directly on an existing Linux system, but that’s been deprecated for over a year and unsupported since December last year.
I use healthchecks + runitor for notifications. Would recommend. I posted another comment about them.
OK, TIL you can just do <foo.txt. I didn’t think that worked. Thanks!
I’d recommend self-hosting healthchecks and using runitor for your cronjobs. Runitor pings healthchecks when the cronjob starts, then pings it again on completion with the status (success or fail) along with the stdout and stderr.
Healthchecks can be configured to expect a ping periodically (once per day, once per hour, whatever) and alert you if it doesn’t receive one.
For backups, Borgmatic has a healthchecks integration.
RFC3339 is better than ISO8601 since it doesn’t allow some of the esoteric formats, and allows some useful formats that ISO8601 doesn’t (like separating date and time by a space instead of by T)
For example, 2026-W32-1 is also a valid ISO8601 date: Monday on the 32nd week of 2026. That format isn’t allowed with RFC3339.
RFC3339 is better than ISO8601 since it doesn’t allow some of the esoteric formats, and allows some useful formats that ISO8601 doesn’t (like separating date and time by a space instead of by T)
For example, 2026-W32-1 is also a valid ISO8601 date: Monday on the 32nd week of 2026. That format isn’t allowed with RFC3339.
Thanks - I didn’t know this either!
Admittedly I still use cat for this.
This also works too, but it’s more verbose:
echo "$(<foo.txt)"
It’s mentioned in the Bash man pages:
The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).
EDIT: I was just informed that simply <foo.txt works too.
It wouldn’t be at the end, since you’d still be piping into program
program <file | grep | cut
I know, but I just wanted to mention this since a lot of new Linux users end up using cat this way :)
cat is misunderstood a lot. The purpose of cat is to combine multiple files together (it’s literally short for “concatenate”), like cat *.log to combine all log files together.
If you’re just using it for a single file, then you should just redirect the file to stdin. These two command lines behave similarly:
cat foo.txt | some-command
some-command < foo.txt
For head, tail, grep and some other commands, you can just pass in the file name directly as an argument (e.g. grep whatever foo.txt).
This looks like an AI edit rather than an actual renovation.
The shelf thing on the left has exactly the same items on it. Why would they keep the hole with the CRT TV in it? Also I’d hope that nobody would actually put a square table in a round space.
For other alternatives with their own engine - the main ones are Yandex, Mojeek, and Qwant. DuckDuckGo is good, but most of their results come from Bing.
Kagi is priced well for what you get. Search engines are very expensive to run. You don’t have to pay for the premium AI, and the pricing of the starter ($5/month for 300 searches) and pro ($10/m for unlimited searches) plans hasn’t been affected by AI. They’ve remained the same price ever since they launched in 2022.


Accurate. At work I’m finally getting around to paying down tech debt from a temporary hack that was supposed to only be in the code for a month or so, but now it’s been in our production code for around five years.
It would have been maybe a week or so to do it the right way initially, but we had hard deadlines and were pressed for time and just couldn’t get around to doing it. Now it’s over a month of work for one senior engineer (me) to clean up, because there’s so many interdependencies between the hacky code and other parts of the system that depend on side effects of the hacky code, or the order of updates performed in the hacky code. What a mess.
At least AI can help a bit. Even the newest models aren’t so great at system architecture in brownfield projects though (projects building into existing systems).
I usually use Clonezilla and have it verify the data after cloning. It works for local drives, but it can also clone a drive over the network by running it on both the source and destination system, which is very useful for remote servers (eg moving a VPS to a different location).