Agree discord sucks.
357 karma · joined October 28, 2013
Agree discord sucks.
You're right, it's very much a trade-off and preference where you put control, NixOS or Kubernetes. I'm not so much torn, but more believe you always have to weigh pros and cons.
For CoreDNS specifically, this setup adds CoreDNS to every node, and every node does DNS locally, so there's no redundancy benefit to using a Kubernetes deployment for CoreDNS. It does become a benefit as soon as you can't have a CoreDNS per node. I guess the obvious downsides to CoreDNS per node are that cache becomes very spread out in larger setups, and you may end up hammering your API server and upstream DNS servers more.
Me and my partner currently use Apple Notes for this, simple stuff like grocery lists, todo lists, etc. But Apple Notes perf is abysmal with real-time collab. The app constantly hangs and fans are spinning non-stop. iOS is not much better.
> The EDPS has also decided to order the Commission to bring the processing operations resulting from its use of Microsoft 365 into compliance with Regulation (EU) 2018/1725.
Which, to me, reads like they can keep using Microsoft 365, they just need to work with Microsoft to bring it in compliance.
So my guess is your second interpretation.
Right away, a partial mitigation for current versions of Portier is to modify the `email_*.mustache` templates to remove the link. But a second piece of information Portier leaks is simply which sites you're logging into. That's right in the subject for Portier, and not something you can customize for current versions.
I think it's worthy to try and harden against this type of attack, but I'm worried the effect is limited. There's often nothing stopping someone from simply starting the login process / creating a new session, so an attacker just has to know where, and there are a bunch of ways to find out.
I'm on mobile, so haven't really checked where we differ in details.
It's more like an API with multiple implementations.
(Even just JSON serialization differences will pop up. For example, PHP always likes to escape forward slashes.)
We could create a protocol for requesting content-addressable URLs over HTTP, but it wouldn't help with the problem described either.
I added three more libraries, and also the size in bytes of `JSON.stringify(result)` for each. (That was also important for me in making symmetry.)
The results from benchmark.js are a lot more consistent on my laptop:
Benchmark: Small object (baseline)
- @n1ru4l/json-patch-plus x 1,426,241 ops/sec ±0.29% (94 runs sampled) (94 bytes)
- deep-diff x 337,122 ops/sec ±0.45% (95 runs sampled) (193 bytes)
- deep-object-diff x 2,138,118 ops/sec ±0.25% (96 runs sampled) (60 bytes)
- diff x 59,277 ops/sec ±0.60% (97 runs sampled) (268 bytes)
- jsondiffpatch x 841,880 ops/sec ±0.38% (96 runs sampled) (113 bytes)
- microdiff x 6,979,471 ops/sec ±0.77% (95 runs sampled) (171 bytes)
- symmetry x 8,666,619 ops/sec ±0.21% (97 runs sampled) (7 bytes)
Benchmark: Large Object (300 properties)
- @n1ru4l/json-patch-plus x 16,902 ops/sec ±0.66% (92 runs sampled) (515 bytes)
- deep-diff x 8,378 ops/sec ±0.68% (96 runs sampled) (1194 bytes)
- deep-object-diff x 19,647 ops/sec ±0.40% (94 runs sampled) (410 bytes)
- diff x 737 ops/sec ±0.45% (94 runs sampled) (12051 bytes)
- jsondiffpatch x 14,306 ops/sec ±0.76% (95 runs sampled) (714 bytes)
- microdiff x 22,131 ops/sec ±0.25% (95 runs sampled) (935 bytes)
- symmetry x 21,432 ops/sec ±0.92% (98 runs sampled) (424 bytes)
Symmetry doesn't get a lot of activity, but I've been using it in production for many years. It does some more work on array diffing, which this benchmark doesn't cover, by implementing part of Myers' algorithm.
But in general, the difference in image size is negligible because of shared layers, and I just don't think enough testing happens on Alpine / musl in any given stack. Even if your app runtime is tested this way, how many dependencies are?
Come to think of it, I'm not even sure why there was a push for Alpine-based Docker images at some point. Maybe it was just hype.
Take a Python service started by systemd. The systemd ExecStart points directly to the immutable Nix path of the script, and the script also has a shebang that points directly to the immutable Nix path of the Python interpreter. (The Python interp in turn also links to libraries via direct Nix paths, etc.)
The same line of reasoning can be applied to humans. We can have really shitty deaths categorised as ‘old age’, yet euthanising is controversial.