Sign in

Philipp Pohl-Krüger

@matheus23.com
654 followers 368 following 670 posts

Building iroh with the amazing folks at number 0 (n0.computer). Generally striving to increase user agency and excited about commons networks. Only works for Canadian CEOs, apparently. Rust, cryptography, CRDTs & more on my feed

PostsRepliesMedia
Philipp Pohl-Krüger @matheus23.com · 27/08/2026
Billions of floating point operations for these things to do this will never stop being funny to me
letta code terminal excerpt:

• Run Verify Qwen reasoning control and parser behavior on Vulkan
  └  {
       "content": "1517",
       "reasoning": "37 × 41 = 37 × 40 + 37 × 1 = 1480 + 37 = 1517\n",
0151
Philipp Pohl-Krüger @matheus23.com · 26/06/2026
Just signed up this morning. Now closed :) glad I got in though. Interested in seeing how long this lasts.
110
Philipp Pohl-Krüger @matheus23.com · 09/05/2026
moq.dev/blog/webrtc-...
Screenshot of text from the article: "Sad Fact: That’s why every conferencing app (except Google Meet) tries to shove a native app down your throat. It’s the only way to avoid using WebRTC."
1644
Philipp Pohl-Krüger @matheus23.com · 27/04/2026
140
Philipp Pohl-Krüger @matheus23.com · 08/03/2026
I asked Aljoscha to fact-check on discord:
Screenshot of Aljoscha's message on discord:
I'm not on Bluesky, so I can't chime in directly. But in a nutshell:

- you can incrementally recompute the root hash when appending data, in amortised `O(l)` time when appending `l` bytes (worst case per append is  `O(l + log(n))`), where `n` is the total length so far
  - this means you can hash a string incrementally in linear time
  - this is identical in Blake3 and Bab
- the main differences between Blake3 and Bab:
  - Bab has constant-size length proofs
  - in Bab you can speed up computation when the input string repeats (for example, you could compute the hash of `n` successive zero bytes in O(log(n)) time, whereas Blake3 deliberately requires O(n) there to thwart timing attacks)
  - Bab admits multiple instantiations (different digest sizes, different merkle tree label computations), Blake3 is one-size-fits-all
020
Philipp Pohl-Krüger @matheus23.com · 22/01/2026
Essentially, we can skip sending a message on the response stream, because the "FIN" that's sent is already one such message. So `received_reset().await` is enough (which waits for a FIN or reset to be sent). 0 "actual" stream bytes sent. For completeness' sake, here's the receiving side:
110
Philipp Pohl-Krüger @matheus23.com · 22/01/2026
So in this case, the client could wait for the server to send it after the upload finishes:
100
Philipp Pohl-Krüger @matheus23.com · 14/08/2025
Interestingly, Claude seems to be able to print an em dash, but not those fancy tilted quotation marks (they're called left and right double quotation marks apparently). Also it seems to be unaware of that fact.
130
Philipp Pohl-Krüger @matheus23.com · 13/04/2025
😅 I'm almost through checking my code against (almost) all PLC records. This is one of the 3 last remaining failures: Love how it reads like graffiti.
030
Philipp Pohl-Krüger @matheus23.com · 02/04/2025
That operator is a Haskell OG 😀 Have a look at the Haskell Logo: (refers to the Monad bind operator: hackage.haskell.org/package/base...)
110
Philipp Pohl-Krüger @matheus23.com · 01/04/2025
did:plc auditing is a bunch of CPU work: re-encoding loaded date in dag-cbor, hashing, verifying signatures etc. Parallelizing this was really easy with #rust scoped threads & crossbeam-channel (I needed an spmc channel to distribute work). A full audit of ~34M dids now takes ~20mins on my machine
010
Philipp Pohl-Krüger @matheus23.com · 01/04/2025
@retr0.id providing endless test cases. In other news: I'm verifying (almost) all did:plc records (until ~March 6th this year).
Console text saying:
[philipp@nixos:~/program/spds]$ cargo run --release -- audit-full
   Compiling spds v0.1.0 (/home/philipp/program/spds)
    Finished `release` profile [optimized + debuginfo] target(s) in 6.49s
     Running `target/release/spds audit-full`
Audited 226000 DIDs so far (0.60%)
Failed audit: Auditing did:plc:ag3gatteub5k23e7ivqb5k5t: PLC genesis didn't match this DID, expected did:plc:ag3gatteub5k23e7ivqb5k5t, but got did:plc:sili6lx7l6msbo26vqatwksn
Audited 436000 DIDs so far (1.15%)
Failed audit: Auditing did:plc:aneosvncwerovrzwxrmrnurv: PLC genesis didn't match this DID, expected did:plc:aneosvncwerovrzwxrmrnurv, but got did:plc:hob3fdsofnb2nv6fx4o6pe4n
Audited 984000 DIDs so far(2.60%)
2100
Philipp Pohl-Krüger @matheus23.com · 30/03/2025
Shoutout to @534.bsky.social (who I assume created) the bsky.app/profile/did:... with a great did:plc record
110
Philipp Pohl-Krüger @matheus23.com · 23/03/2025
Ha! I have not. It was just outside the samples I fetched to verify my code (I haven't yet fully mirrored plc.directory). No samples between 2024-12-17T11:04:53.086Z and 2024-12-26T00:03:26.116Z.
010
Philipp Pohl-Krüger @matheus23.com · 18/12/2024
Yeah they are. According to the BLAKE3 paper, KangarooTwelve is slower than BLAKE3 for 64B inputs, though.
Performance comparison chart from the BLAKE3 paper showing better performance for BLAKE3 compared to KangarooTwelve with 64B inputs.
010
Philipp Pohl-Krüger @matheus23.com · 28/11/2024
#Rust v1.83.0 was just released: blog.rust-lang.org/2024/11/28/R... It has "New const capabilities" specifically "Mutable references and pointers" Look at this! This is amazing news for e.g. the crypto-bigint #cryptography crate.
0142
Philipp Pohl-Krüger @matheus23.com · 18/11/2024
Damn. Starting off strong with an Open Source game :0 Recently I've enjoyed Core Keeper :) I'm a major fan of Terraria-style games, it has amazing pixel art & music and I really dig their game design thoughtfulness. Getting multiplayer connections has been a major pain unfortunately though 😭
A screenshot of a custom build in Core Keeper of a biome with trees of various colors, old ruins and a bunch of ice.
130
Philipp Pohl-Krüger @matheus23.com · 20/08/2024
Wanted to try this out, but got this
Screenshot of the smoke signal login screen with an error message "missing field protected_resources".
210
Philipp Pohl-Krüger @matheus23.com · 20/06/2024
I am *so* sorry for commenting without having read the article yet @robin.berjon.com, but after seeing attached figure from the article, I couldn't help myself: It's super interesting to me how kagi search changes the funding model and is now starting to build their own browser, Orion (on WebKit).
The figure generally compares the market share of search engines to the to the market share of the browsers that search engines pay for.
More precisely, it shows how Google Search revenue pays for 92% of browsers (Google Chrome, Opera, Samsung Internet, Apple Safari, Mozilla Firefox and more sub-1% browsers), and showing how Microsoft Bing pays for Microsoft Edge, and showing that 75% of browsers are built on Chromium (Microsoft Edge, Google Chrome, Opera and Samsung Internet).
131
Philipp Pohl-Krüger @matheus23.com · 27/02/2024
Not the Netherlands, but I got out in Brussels once and couldn't get past the turnstiles. I was trying to use my German QR code, because Google told me it'd work, but it didn't (and really I highly doubted it would). Walked around confused a bunch, tried it again later and it worked 🙃
200
Philipp Pohl-Krüger @matheus23.com · 02/08/2023
For my lockscreen and when unlocked.
Vector graphic of a huge Totoro with trees for ears and with smaller Totoros walking on it.A vector graphic image of a sunset over a valley with a lake, forest and a deer.
010
Philipp Pohl-Krüger @matheus23.com · 17/07/2023
Yeah for me it seems to post some papers repeatedly every 15 minutes. I mean. I don't hate my timeline being mostly papers :D
Two papers posted 9m ago
The same papers posted 24min agoThe same papers posted 39min ago
110