For document signatures and such, run this (only when you fully understand the command): s="$(mktemp)" cat > "$s" << EOF -----BEGIN CERTIFICATE----- MIIBzjCCAXSgAwIBAgIUaHmeGPiA6P9Uma8qBTFZKDzeAMkwCgYIKoZIzj0EAwIw GzEZMBcGA1UEAwwQUnVueGkgWXUgUm9vdCBDQTAeFw0yNjA3MDMxNjE1MDRaFw0y ODEwMDUxNjE1MDRaMDIxETAPBgNVBAMMCFJ1bnhpIFl1MR0wGwYJKoZIhvcNAQkB…
incus config device add "$CONTAINER" wayland proxy \ connect=unix:"$XDG_RUNTIME_DIR"/"$WAYLAND_DISPLAY" \ listen=unix:/run/user/1000/wayland-0 \ bind=container \ uid=1000 gid=1000 mode=0660 \ security.uid=1000 security.gid=1000 incus config device add "$CONTAINER" gpu gpu No need to mess with ID mapping or anything like that, apparently. Works much better than waypipe for GPU-accelerated…
Properly configuring your service manager is good and all, but sometimes I just want to start a few services on startup and be able to tinker with them as I go. My solution is just to run my stuff in a tmux. I mean, this is a shell script. You can specify things and wait for readiness in whatever way you wish. #!/bin/sh set -ux session="tmuxsvc" tmux has-session -t "$session" 2>/dev/null && { tmux…
These might be useful to block or otherwise indicate things to LLM coding agents when they encounter your project, for example refusing to build or run tests, or telling the agent it’s performing copyright infringement (which appears to be effective in causing them to bail). The below is a list of environment variables highly indicative of LLM agents. There are other methods, such as…
Let’s say you have a shallow Git bundle, i.e., not all referenced objects are present. How do you convert it into a normal shallow repository? Initialize the target as a bare-repo with your desired object-format. git init --bare --object-format=sha1 target.git && cd target.git Find the start of the pack in each bundle (version 2 packs starts with 5041 434b 0000 0002 ). In my case it’s…
A hash table maps keys to buckets (or, sometimes, more complex schemes such as bucket directories and sizes, as seen in extendible hashing , probe chains in open addressing, etc.). In every case there is a function h : keys → { 0 , 1 } ∗ h : \text{keys} \to \{0, 1\}^* (or some prefix or reduction thereof) whose output the scheme consults to decide where a key lives. What must h h be? The naïve…
Disclaimer: I am not a cryptographer. There may be serious bugs or side channels! The minimum MTU for IPv6 is 1280 octets; if you subtract the 40-octet IPv6 header and the 8-octet UDP header, you get 1232 usable octets. ML-KEM-768 public keys are 1184 octets long, leaving little space for other protocol material that you might want to stuff into a single UDP packet. Can you compress ML-KEM-768…
With apologies to the original . (Please read it before this one.) 2009. Pike and Thompson, who invented C, return to invent C again, this time a relatively verbose, garbage-collected, type/method based, statically typed, not too but kinda object oriented programming language, without single implementation inheritance or multiple interface inheritance, with C-like syntax that isn’t C-like…
Abstract ML-KEM-768 public keys are 1184 bytes, which is regrettable for UDP-based protocols at the IPv6 MTU floor of 1232 bytes of payload. We present BOMSD, a technique that saves k k bytes on the initial public-key transmission by truncating the public key and having the receiver speculatively maintain 2 8 k 2^{8k} parallel protocol branches until downstream AEAD authentication disambiguates…
ML-KEM Fast, medium-small-ish among PQ, but do you trust the cryptanalysis for now? Classic McEliece 60 years of cryptanalysis, unbroken; megabyte public keys; ciphertext sizes are nice though. Never getting into Noise or TLS. CSIDH Beautiful NIKE, small keys, slow as hell, do you really trust isogenies, also everyone says it’s small because we benchmark CSIDH-512 but does that actually give…
I am not a lawyer. This is provided solely for the purposes of general information and does not constitute legal advice, guidance, or counsel. No attorney-client relationship is established by the provision of this information, and no reliance should be placed on this information in lieu of seeking professional legal advice. All information is provided “as is”, without warranty of any…
These solely represent my own interpretation and opinions. Some parts might be wrong — actually — some parts will be wrong. Please tell me somewhere. I am not a lawyer. This is provided solely for the purposes of general information and does not constitute legal advice, guidance, or counsel. No attorney-client relationship is established by the provision of this information, and no…
Although the onboarding process initially requires the Okta Verify mobile app, it is possible to use Okta with hardware FIDO2 security keys or software passkey implementations such as KeePassXC .
(See discussion on Lobsters . Some additions were added on 2026-05-02, to clarify things seen on HN.) Collapsing // to / inside an HTTP URL path is not normalization. If done by the origin, or a party authorized to rewrite URLs on behalf of the origin, it may be considered canonicalization or rewriting, just like rewriting /sillyclownwithnonstandardname/ to /%F0%9F%A4%A1/ ( /🤡/ ) can be correct…
中文里人称代词的历史还是挺悠久的,我没法在短时间内解释清楚。 不过,有几个重点还是可以列举一下: “他”本来是中性代词,可以无论性别,用于任何的人 “她”是由刘半农在 1920 年左右首创并推广的女性代词,部分原因包括方便翻译 现在,“他”一般默认男性,女性个体一般使用“她” 但是“他”毕竟是人字旁,不是什么男子旁,凭什么成为男性专用的代词呢? 我觉得更合适的方案是: “他”用作中性的代词,涵盖所有的人 “”作为指代 非二元性别 的人的代词 “她”作为女性代词 “”作为男性代词,因为是男子旁 其中, “”是 Unicode 17.0 中加入的新字,左边是一个“㐅”,右边是一个“也”,念 tā “”是 Unicode 17.0 中加入的新字,左边是一个“男”,右边是一个“也”,念 tā The history of personal pronouns in Chinese…
I am not a lawyer. This is provided solely for general information purposes and does not constitute legal advice, guidance, or counsel. No attorney-client relationship is established by the provision of this information, and no reliance should be placed on this information in lieu of seeking professional legal advice. All information is provided “as is”, without warranty of any kind,…
Recently I got to operate a Windows 11 machine. It was a ThinkPad T14 produced in 2020, with 16 gigabytes of RAM, a relatively recent Intel Core i5, and a 512-gigabyte PCIe SSD. This is much more powerful than one of my usual computers, a ThinkPad X220i. When I opened taskmgr I was met with about 200 processes 1 . Opening a new window in explorer , the file manager, takes about 5 seconds to…
This is more or less just a note to self. apk add qemu-modules incus create images:freebsd/15.0 "$container" --vm incus config set "$container" security.secureboot=false incus start "$container" Also, FreeBSD doesn’t come with VirtIO input drivers that work with incus, so: incus config set "$container" raw.qemu.conf - << EOF [device "fbsd_usb_kbd"] driver = "usb-kbd" [device…
random thought: Both UNIX and Plan 9 heavily utilize ambient namespace authority. Sure, in Plan 9 you have per-process namespaces and that’s good and all, but (1) you can still use #hash devices to mount random things, but (2) more importantly, the namespace is still ambient, it’s not that things a process needs are explicitly passed to it on startup. If, say, we consider a scheme…
None of the lists indicated here are exhaustive. Personal projects Fast Git libary for Go Git library for Hare Declarative dns-persist-01 ACME client Opinionated Git-based server/client suite for Internet Mail TLS SNI dispatcher based on SCM_RIGHTS Ogg Opus Internet radio stream seccomp_unotify-based SOCKS5 proxifier for Linux University SSO VPN helper HMAC-based OpenID Connect linked Discord…