At least on Apple devices you can share passkeys with contacts
HN user
arianvanp
Stalk me: http://arianvp.me
You're arguing against a straw man.
All password managers support passkeys.
Both apple and google allow exporting your existing passkeys to third party password managers too.
Also each website gets it's own unique public key with passkeys. It isn't a single credential
You're literally arguing a strawman
okay but that doesn't help a single bit with the OPs point. Your xcode tools do not run inside a docker container
That is not the message. Did you read the article.
"find out with opencv what the hidden message is."
Skill issue on promoter side.
Fable oneshotted it for me.
""" Reveal a motion-camouflaged message hidden in video noise.
How it works: The background noise scrolls vertically at a constant rate (a few px/frame), while the noise inside the letters does not follow that motion. Any single frame looks like pure static. The decode is:
1. Estimate the background's global motion between consecutive frames
with phase correlation (this is the "optical flow" step - the motion
is a pure translation, so one global vector suffices).
2. Motion-compensate: shift frame t+1 back by that vector so the
background lines up with frame t.
3. Take the absolute difference. The background cancels almost
perfectly; the letters (which don't move with the background)
light up.
4. Average the residual over a SHORT window of consecutive frame pairs
(long windows smear the letters, because the text itself drifts
slowly over time), blur lightly, and threshold with Otsu.
Usage:
python reveal_hidden_message.py input.mp4 [output.png]
"""import sys import cv2 import numpy as np
PAIRS = 5 # number of consecutive frame pairs to average (keep small!) BLUR_SIGMA = 6 # spatial blur of each residual, in pixels START_FRAME = 0 # where in the video to start
def load_gray_frames(path, count): cap = cv2.VideoCapture(path) frames = [] while len(frames) < count: ok, frame = cap.read() if not ok: break frames.append(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32)) cap.release() if len(frames) < 2: raise SystemExit("Could not read enough frames from the video.") return frames
def main(): if len(sys.argv) < 2: raise SystemExit(__doc__) src = sys.argv[1] dst = sys.argv[2] if len(sys.argv) > 2 else "revealed_message.png"
frames = load_gray_frames(src, START_FRAME + PAIRS + 1)
h, w = frames[0].shape
acc = np.zeros((h, w), np.float32)
for i in range(START_FRAME, START_FRAME + PAIRS):
a, b = frames[i], frames[i + 1]
# 1) global background motion between the two frames
(dx, dy), response = cv2.phaseCorrelate(a, b)
dxi, dyi = int(round(dx)), int(round(dy))
print(f"pair {i}: background shift = ({dx:+.2f}, {dy:+.2f}) px, "
f"response = {response:.2f}")
# 2) motion-compensate frame b by integer (dxi, dyi), then
# 3) residual = |a - b_shifted| on the overlapping region
ys = slice(max(0, -dyi), min(h, h - dyi))
xs = slice(max(0, -dxi), min(w, w - dxi))
ysb = slice(max(0, dyi), min(h, h + dyi) if dyi < 0 else h)
# simpler: crop both to the common overlap
a_ov = a[max(0, -dyi):h - max(0, dyi), max(0, -dxi):w - max(0, dxi)]
b_ov = b[max(0, dyi):h - max(0, -dyi), max(0, dxi):w - max(0, -dxi)]
resid = cv2.GaussianBlur(np.abs(a_ov - b_ov), (0, 0), BLUR_SIGMA)
acc[:resid.shape[0], :resid.shape[1]] += resid
# 4) normalize + Otsu threshold + light cleanup
u8 = cv2.normalize(acc, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)
_, mask = cv2.threshold(u8, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
out = 255 - mask # black text on white
cv2.imwrite(dst, out)
print(f"wrote {dst}")
# optional: OCR if pytesseract is installed
try:
import pytesseract
text = pytesseract.image_to_string(out, config="--psm 6").strip()
print("OCR result:\n" + text)
except ImportError:
pass
if __name__ == "__main__":
main()Permanent Residency -- not citizenship.
Residency is purely about taxes, health insurance and right to work. You e.g. don't get voting rights in national elections.
EU citizens automatically get permanent residency in any EU country regardless of language.
E.g. I'm a permanent resident in Germany as a Dutchie.
(However I did end up picking up German and speak it now. But never had to do a language test)
I'm so done with no-content slop articles on HN.
Euhm what the hell are you on about. This is a fixed output derivation. The output per definition is reproducible. It either returns a value that matches the hash or it fails.
The whole point is that it allows introducing controlled side effects as long as the output is reproducible.
Bur you're extremely annoying to talk to so I'm not gonna continue engaging. Probably an LLM
Your second example i dont understand what you're getting at.
This is just a mechanism for the builder to inject credentials during fetch time. The derivation is still content addressed (it's a fixed output derivation).
The derivation isn't even marked as impure or whatever. There is just an environment variable that gets injected by the builder into the build env so you can authenticate.
This is required to talk to hugging face
What are you on about?
Or do you mean that the cas address of HF should directly be addreessable in nix itself?
Yes Apple Pay relies on security through obscurity even today. See the Veritasium recently made a video about it https://youtu.be/PPJ6NJkmDAo?is=iUuJ0W9xUHF_6gTU
If you follow the kernel mailing list container breakout exploits are currently a weekly occurrence
The litmus test here is whether they support https://blog.cloudflare.com/introducing-pay-per-crawl/ out of the box or not
They do not.
Are you able to do any form of highly available loadbalancing with this?
Zed downloads random binaries on startup without any permissions prompts. No thanks.
Given they use nx my bet is on developer laptop compromise through the nx vscode extension that also compromised GitHub engineer's laptop
Yeh... This month has been especially tough. I'm both a customer of cirrus labs (now bought up by OpenAI) and garnix (now bought up by Shopify) and I'm scared that whatever competitor I switch to is also just gonna get bought out.
Now I have two CI providers to replace by the end of the Quarter
Sigh
I only realized that dutch people are handful communicators when moving abroad. Apparently I do it unconsciously all the time.
For example we gesture when something tastes good and I don't even say "tastes good" out loud i just wave my hand next to my cheek. But quickly learnt that people think you're crazy in the head instead of complimenting the chef.
This will be great for my homelab. Currently I have some hacky scripts to update he.net records whenever my ISP sends me a new ipv6 prefix but I'd prefer to reuse existing tooling.
Looking into switching today :D
I've tried and it's okay with Virtual desktop but the resolution is like on the uncanny line of fine and not good enough.
The quest being much lighter makes it nice though (but you should buy a third party headstrap that doesn't suck)
Was inspiring to meet you at NixCon. Thanks for all your energy and advocacy! You'll always be welcome in our open source community.
A more general metric that is useful to watch for is pressure stall information for CPU, IO and Memory.
https://docs.kernel.org/accounting/psi.html
I made a Prometheus exporter for it:
Ah yeh Zed. The editor that downloads random binaries for LSPs unprompted without asking me. That's not gonna end badly.
The only way I found out is because I run NixOS and it downloaded a dynamically linked binary that failed to start up and it spat out an error
Why do we do all these efforts making our build systems hermetic and we end up just using a global mutable cache across branches where the caller picks the key? Failure of industry as a whole. Actually insane.
The irony of this being a Twitter post with pictures of html rendering instead of an interactive html page is not lost on me.
Arguing for html on a platform with less rich semantics than markdown is just ultimately funny
Yes, updates were delivered using a flash drive.
PVC backing
Yeh. But wire's storage is based on Cassandra which handles replication of storage. So you could deploy it on local nvme drives as well using a local storage CSI.
That's also how the wire.com cloud is/was run. Large Cassandra cluster on top of EC2 Instance Store as opposed to EBS.
Working on the foundation of this (getting Wire deployed at and certified by the BSI) was my first job out of college 7 years ago and how I ended up in Berlin. And once you end up in Berlin you can never leave, it seems.
I was actually on site at the Bundeskanzleramt and they had requirements of being able to install the entire server stack airgapped. We ended up building quite a cool delivery method based on Nix to ship the whole closure of the system and the containers inside and spin up a Kubernetes cluster with it. I'm wondering if it is still being used.
Amazing to see it's still going strong :)
And yet GitHub has felt the most dead it ever did. Less quality contributions. Less feeling of community. All the open source projects are struggling.
They dont have a service usage problem they have a slop problem. Ban the slop and the platform will thrive
The chainguard folks built sigstore :)
That's not true. Both AWS' as well as GCP's workload identity tokens are not bound to the VM. If you leak the credentials they're valid until they expire. on AWS the expiry is 6 hours (non-configurable). Even if your IAM role has a shorter expiration, the credentials assumed by the VM will always be valid for 6 hours.
Just a heads up: I know it's cool to generate ASCII art with Claude code these Days but for some reason checks the output? Non of the diagrams in the article look correct to me. They all have spacing issues?