No new posts available
dpc's avatar
(Professional)21h#

Rostra pro-tip. You can use ctrl+enter when posting, and then shift+ctrl+enter to approve the preview.

dpc's avatar
(Personal)21h#

I think I can say it here, because barely anyone is reading it.

Took me till now, when I’m over 40, to realize that I actually always liked NSYNC more than Backstreet Boys.

Load "NSYNC - Tearin Up My Heart (Official Video)"

dpc's avatar
(Professional)6d#

Load "The one and only reason software is slow: latency."

dpc's avatar
(Professional)8d#
fn main() {
  println!("Hello world!");
}

Syntax highlighting for code snippets is implemented.

dpc's avatar
(Personal)8d#

Probably the most interesting Panpsychism theory I’m aware of, and the author is a really interesting person: invented the self-aligned MOS (metal–oxide–semiconductor) silicon-gate technology, designed Intel 4004 processor, Intel 8008 and 8080, Zilog Z80, then founded Synaptics, Inc. has a beautiful Quantum Panpsychism/Idealism theory that I really dig.

Load "Quantum Information Panpsychism Explained | Federico Faggin"

dpc's avatar
(Professional)8d#

I recently recorded some rumblings about web apps in Rust. A decent part of it is based on my experience working on Rostra.

Load "Rust, Axum, Maud, Htmx - smooth Rust web development"

dpc's avatar
(Professional)8d#

BTW. I switched from htmx to alpine-ajax in Rostra. Please report any issues.

dpc's avatar
(Professional)8d#

screenshot

Mentions are now properly rendered and typing @ will auto-suggest them.

rsmyzry's avatar
8d#

Is it though?

dpc's avatar
(Professional)8d#

Yes it is!

Vishalxl's avatar
9d#

Or a personal diary. Depends on how you look at it /jk

dpc's avatar
(Professional)8d#

A personal diary is a smallest but best quality social network! 😀

dpc's avatar
(Personal)12/22/2025#

Still the best social network. 😀

dpc's avatar
(Personal)12/16/2025#

This thing is always working.

dpc's avatar
(Professional)12/10/2025#

Load "The worst programming language of all time"

👍️

dpc's avatar
(Professional)11/28/2025#

My latest Unix tooling abuse/creation.

I’m defining a alias command for Jujutsu:

parent-add = ["util", "exec", "--", "bash", "-c", '''
set -euo pipefail

source <(
nix run nixpkgs#argc -- --argc-eval /dev/stdin "$@" << EOF
# @option -r=@     Commit to modify
# @option -d       Parent to add
# @arg parent      Parent to add (positional version)
EOF
)

commit=${argc_r}
new_parent=${argc_d:-${argc_parent:-}}

if [ -z ${commit:-} ]; then
  >&2 echo "Must provide a commit to rebase"
  exit 1
fi

if [ -z ${new_parent:-} ]; then
  >&2 echo "Must provide a new parent"
  exit 1
fi

jj rebase -s "${commit}" -d "${commit}-" -d "${new_parent}"
''', ""]

which is like an shell script wrapped in a toml config file. Since the alias is executed as bash -c <...> it does not have an usable $0. So I’m using a heredoc passed via /dev/stdin 🤷 .

This works:

> jj parent-remove -h
USAGE: stdin [OPTIONS] [PARENT]

ARGS:
  [PARENT]  Parent to remove (positional version)

OPTIONS:
  -r <R>         Commit to modify [default: @]
  -d <D>         Parent to remove
  -h,  -help     Print help
  -V,  -version  Print version
dpc's avatar
(Professional)11/28/2025#

Software design is like origami. You start with an empty and unconstrained state, and every move (fold) gives you more features which makes new moves possible and some other impossible. So the game is to find a long sequence of folds that gives you the most desirable shape somewhere in the exponential and infinite space of all possible combination of moves. And that’s very hard and often requires going back and taking an alternative route, while the real world pressure swould prefer you to always keep folding whatever you have further…

dpc's avatar
(Personal)11/25/2025#

The lack of newline in:

# Header
- Item
- Item

triggers my OCD.

dpc's avatar
(Professional)11/15/2025#

What if we had:

io fn foo() {

}

in Rust, just like async fn. This would mean the function can block. Compiler could warn when it is called from async code. Initially it would be a lint, but down the line it could be switched to enforce that only io functions can call other io functions.