Ask

My network-wide DNS blocker stops most ads but video ads still get through — is complete blocking even possible?

It is not achievable with DNS filtering, and the reason is structural rather than a matter of finding a better list.

DNS filtering blocks by hostname. When a page asks for ads.example.com, your resolver answers with nothing and the request never happens. That works because the ads live on a different hostname from the content.

On the large video platforms they do not. The advertisement is served from the same hostname and the same infrastructure as the video itself, stitched into the same stream. There is no name to block that does not also block the thing you came for.

So the list can never exist. Any list that appears to work is either blocking the whole service, or is briefly catching a hostname that will be consolidated within weeks. That is exactly the pattern you observed, and it is the tell.

The general rule worth taking away: DNS filtering can only separate things that are separately named. Where a provider serves everything from one name, it has no purchase at all.

30 · in/privacy-tools ·

My network-wide DNS blocker stops most ads but video ads still get through — is complete blocking even possible?

What DNS filtering is genuinely good at, so it does not get written off:

  • Third-party trackers and analytics, which are on distinct hostnames by design because they belong to other companies.
  • Ads on ordinary websites, same reason.
  • Telemetry from devices that have no settings — televisions, appliances, anything that phones home and gives you no switch.
  • Covering every device on the network, including ones that cannot run an extension. This is its real advantage over anything in a browser.

What it cannot do, in general: anything served from the same name as the content, anything inside an app that uses its own resolver, and anything over encrypted DNS that bypasses yours entirely — which is increasingly the default in browsers and on phones, and is worth knowing about because it makes filtering look broken when it is simply not being consulted.

26 · in/privacy-tools ·

How much GPU memory does a 7B model actually need, and why do the numbers people quote vary so much?

Two practical points the arithmetic does not capture.

Quantisation costs quality, and how much depends on the level. Going to 8-bit is close to free for most purposes. 4-bit is usually acceptable and noticeably worse on some tasks. Below that it degrades quickly. So the memory saving is real and it is not free, and the right level is the one where your own evaluation still passes.

You do not need a GPU at all for a 7B model. Running on the processor with system memory works, and it is slower — usable for occasional queries, painful for anything interactive. On machines with unified memory, the split between the two is less meaningful and the practical limit is total memory.

Worth trying on what you already own before buying anything. The arithmetic tells you whether it fits; only running it tells you whether the speed is tolerable for what you want.

22 · in/local-llms ·

Why can't I use a dashboard variable in an alert rule?

Broader habit that this points at: build alerts from the metric, not from the dashboard.

It is tempting to alert on a panel because the panel already looks right, and it produces alerts that inherit display choices — smoothing, a display window, a unit conversion — that were made for human eyes and are wrong for a threshold.

Writing the alert query separately, thinking about what the machine should measure, gives better alerts and stops the dashboard and the alert drifting apart when somebody edits a panel.

14 · in/bi-dashboards ·

What is the correct way to get local hostname resolution when a filtering resolver is in the path?

The problem in one sentence: you replaced the resolver that knew about your network with one that does not, and local names were only ever working because the router was answering them.

Routers typically learn hostnames from the address leases they hand out and answer for those names. Point everything at a filter instead and that knowledge is bypassed.

The three arrangements, and which is correct depends on where the address leases are handed out:

1. The filter also hands out addresses. Then it learns the names itself and answers for them, and the problem disappears entirely. This is the cleanest arrangement and it is why the option exists. The cost is that your resolver is now also responsible for handing out addresses, so if it is down, nothing new can join the network.

2. The router hands out addresses, and the filter forwards local names to it. Configure the filter to send queries for your local domain to the router. Correct, and it keeps the two jobs separate.

3. Static entries in the filter. Correct only for things that never change — the server, the printer, the hub.

30 · in/home-server ·