Damus

Recent Notes

ARGVMI~1.PIF · 6w
nostr:nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpquyxyr55xy9auvwxym75a38rgr5jsc29x08hwh65n6pl9l8wuzunsujqjgw One of the main complaints about open-source phone operating systems is that banking...
Kornel profile picture
@nprofile1q... Do you think Europe hasn't discovered websites yet?European banks have web-based access too. Many even have oAuth-like APIs.

The problem with Apple and Google's Play Services being DRM-loving control freaks is affecting EU, which EU is actually doing something about (DMA).
Kornel profile picture
The Bun's #Zig to #Rust rewrite is an advertisement for Anthropic, at the cost of hurting both languages.

It already made a stink for Zig. Now, when this mountain of unstable, auto-converted LGTM'd code is going to have embarrassing bugs, it's going to make a stink for Rust: "see, Rust adoption was pointless, it's still buggy!"
Kornel profile picture
I'm switching from #macOS to Linux. So far keyboard shortcuts are the hardest obstacle. Muscle memory refuses to change, so I work like I've seen a keyboard for the first time yesterday.

Lack of separate Ctrl & Cmd seems like a deeper problem than just doing things differently. It halves available keyboard combos. It turns out I've been using lots more than just Cmd+C vs Ctrl+C.
Kornel profile picture
While implementing a custom #HomeAssistant control screen, I set a wrong GPIO pin and accidentally created a 100% natural organic cyberpunk.

Zło To 🏴‍☠️ · 45w
nostr:nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqypau8rylf6un6qx5f9286c8u6efquf0y0rfmd964y3672qkj9pr5gfljlv4 two other languages that this applies to are python and rust.
Kornel profile picture
@nprofile1q... Rust can convert between sync and async within functions (tokio complains if you carelessly layer sync and async too much, but that is tokio's choice, and not a dead-end either). Languages with threads generally don't have this problem, because they can always spawn a thread for running blocking code, or block a thread waiting on a signal from async code. JS is unique in insisting on a single event loop.
Kornel profile picture
"What color is your function?" is a wonderful title. It's so good, the title alone could win the Sundance Festival.

But that post is about a JavaScript-specific limitation (not applicable to other languages), and some wishful bikeshedding about syntax (which turns out to be a leaky abstraction that makes locking ambiguous, very problematic in low-level languages).

But *color* is so catchy. It's not well defined that post, but you can't have "color" in your async, whatever that is. Just can't.
1
Zło To 🏴‍☠️ · 45w
nostr:nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqypau8rylf6un6qx5f9286c8u6efquf0y0rfmd964y3672qkj9pr5gfljlv4 two other languages that this applies to are python and rust.
Kornel profile picture
SIGBOIVK 2025 [PDF, p170]: https://sigbovik.org/2025/proceedings.pdf

`ccdoom` is a standards-compliant C23 C compiler that has "program-agnostic compilation model" and "advanced whole-program dead-code elimination" that always outputs doom.exe.

> ccdoom adopts a more user-centric approach to safety: the output contains significantly more monsters than the output of most C compilers, but the user is provided sufficient ammunition to defeat them.
Kornel profile picture
What if C isn't portable, only non-C-compatible architectures went extinct?

I'm half joking, but:

VLIW/EPIC architectures are dead, despite CPUs desperately needing instruction-level parallelism.
Instead of SIMT we have hyperthreading at home, and bug-prone threads with context switching in software.
Instead of hierarchical memory, we waste 8 bytes on all pointers & emulate thread-local memory in software. Larabee was DOA & SIMD barely exists. MOS6502-style stack+registers are only on GPUs.
Kornel profile picture
I'd like to have a terminal that is like an IDE, not merely a smart typewriter.

Unfortunately, the traditional Unix separation between terminals and shells limits how good the #UX of each of them can be.

The shell can do a lot of clever things, but it doesn't control the UI, except for a single shared text canvas, through archaic unreliable in-band control codes.

The terminal app could implement any GUI imaginable, except it doesn't know what the shell is doing, and can't reliably control it