News for hackers. Stuff that matters.

arianvanp

Re:We want you to build the next Git platform on Cloudflare on Saturday October 03, 2026 @05:18PM (#49947884)
When I tried out Delta by zed in Private alpha my first feedback was "wow this reminds me of Google Wave"
The distortion effects dont work for me on pixel 8 when using AR mode

I just get a flat floating image of a black hole. Am i holding it wrong?

At least on Apple devices you can share passkeys with contacts
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
Re:A font that humans can read but AI cannot on Saturday July 11, 2026 @06:48AM (#48870789)
That is not the message. Did you read the article.
Re:A font that humans can read but AI cannot on Saturday July 11, 2026 @06:44AM (#48870749)
"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)

Re:I Still Live in the Terminal on Monday June 22, 2026 @07:05AM (#48628564)
I'm so done with no-content slop articles on HN.
Re:Migrating from GNU Stow to Chezmoi on Friday June 19, 2026 @05:58AM (#48596800)
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

Re:Migrating from GNU Stow to Chezmoi on Thursday June 18, 2026 @06:47PM (#48592664)
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?

Re:Epic Games announces Lore version control system on Wednesday June 17, 2026 @07:04PM (#48578247)
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.

Re:Iroh 1.0 on Monday June 15, 2026 @04:34PM (#48546691)
Are you able to do any form of highly available loadbalancing with this?
Re:1-Click GitHub Token Stealing via a VSCode Bug on Wednesday June 03, 2026 @03:17AM (#48380938)
Zed downloads random binaries on startup without any permissions prompts. No thanks.
Re:NPM packages from Red Hat have been compromised on Monday June 01, 2026 @09:46AM (#48356818)
Given they use nx my bet is on developer laptop compromise through the nx vscode extension that also compromised GitHub engineer's laptop
Re:Garnix (A Nix CI) is shutting down on Friday May 29, 2026 @04:20AM (#48320522)
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.

https://youtube.com/shorts/5a9Md32gSQg?is=fJ9BYQEt-CpEUE-g

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)

Re:Amazon Web Services – Four Years and Out on Sunday May 24, 2026 @04:57AM (#48255712)
Was inspiring to meet you at NixCon. Thanks for all your energy and advocacy! You'll always be welcome in our open source community.
Re:We should get rid of average CPU utilization on Friday May 22, 2026 @05:15AM (#48233615)
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:

https://github.com/arianvp/cgroup-exporter

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

Re:Postmortem: TanStack npm supply-chain compromise on Tuesday May 12, 2026 @03:40AM (#48105357)
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

Re:Wire to Replace Signal as Standard in the Bundestag on Wednesday April 29, 2026 @05:27AM (#47946006)
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.

Re:Wire to Replace Signal as Standard in the Bundestag on Wednesday April 29, 2026 @04:39AM (#47945686)
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 :)

Re:Ghostty is leaving GitHub on Tuesday April 28, 2026 @04:32PM (#47940308)
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 :)

Older »