Skip to content

Instantly share code, notes, and snippets.

@clausecker
clausecker / README.md
Last active July 17, 2025 09:43
prepare()-ing for execution

UNIX famously uses fork+exec to create processes, a simple API that is nevertheless quite tricky to use correctly and that comes with a bunch of problems. The alternative, spawn, as used by VMS, Windows NT and recently POSIX, fixes many of these issues but it overly complex and makes it hard to add new features.

prepare() is a proposed API to simplify process creation. When calling prepare(), the current thread enters “preparation state.” That means, a nascent process is created and the current thread is moved to the context of this process, but without changing memory maps (this is similar to how vfork() works). Inside the nascent process, you can configure the environment as desired and then call prep_execve() to execute a new program. On success, prep_execve() leaves preparation state, moving the current thread back to the parent's process context and returns (!) the pid of the now grownup child. You can also use prep_exit() to abort the child without executing a new process, it similarly returns the pid

import { ReadonlySignal, computed, effect, signal } from "@preact/signals-core";
export class AsyncState<T> {
constructor() {}
get value(): T | null {
return null;
}
get requireValue(): T {
@caccialdo
caccialdo / article.adoc
Last active August 13, 2025 13:13
How to reinstall Windows 11 Home on a Snapdragon X Elite device

How to reinstall Windows 11 Home on a Snapdragon X Elite device

Table of Contents
Note
As of June 2024, Snapdragon X Elite devices are still very new and support for installations of Windows on ARM by the consumers is not (yet) as straight forward as "burning" an ISO file supplied by Microsoft onto a USB drive like for their x86 counterparts. Currently, the only way to get a USB device to boot is to use an EFI partition created with diskpart or a WinPE boot drive.

What you’ll need

object YAML:
apiVersion:
apps/v1
kind:
Deployment
metadata:
name:
"my-app"
namespace:
"my-app"
@rochacbruno
rochacbruno / helix_config.toml
Created September 20, 2023 10:49
Helix file picker
### requires the script lf-pick on path
### Requires lf installed https://github.com/gokcehan/lf
### lf has the keybindings: <space> select file, lowercase `l` accept selection
### or use arrow right to open the file
### This allows selecting multiple files with space and then hit `l` to open
# touch ~/.local/bin/lf-pick
# chmod +x ~/.local/bin/lf-pick
# function lfp(){
# local TEMP=$(mktemp)
# lf -selection-path=$TEMP

Usage of virglrenderer

Introduction

virglrenderer is a library that gives emulators the necessary tools to implement a [virtio-gpu][] device, in particular one with 3D support. See capability sets below for a summary of the APIs virglrenderer can implement for the guest. It directly implements the logic behind some 3D commands like GET_CAPSET, CTX_CREATE, CTX_SUBMIT_3D, CREATE_RESOURCE_BLOB, and though it closely follows the semantics of virtio-gpu in most cases, it is in theory independent of virtio or any other transport.

Main user is [qemu][qemu-gpu-impl], but there also appears to be a [standalone virtio-gpu vhost-user][qemu-vhost-impl] implementation that uses virglrenderer in qemu/contrib.

virglrenderer's public header is at [src/virglrenderer.h][public-header]. This document attempts to outine the public API and contract, but you should look at the header for an authoritative source of truth since semantics described here could be slightly wrong or have changed, a

@PatrickLang
PatrickLang / README.md
Last active June 11, 2025 21:26
Cleaning up Alsa + Pipewire for Focusrite Scarlett series

These are just some notes on how I'm trying to clean up Linux support a bit to make the Focusrite Scarlett 18i8 (gen2) and 2i4 a bit easier to use.

Getting UCM profiles

Currently having issues getting a clean test run on upstream project. See failing history

@kcxt
kcxt / qcom_sound_notes.md
Last active July 17, 2025 01:42
Qualcomm sound architecture notes

Qcom (sdm845) audio

db410c notes

From 96boards docsdragonboard/dragonboard410c/guides/enable-ls-i2s.md.html

  • Primary MI2S - Supports only playback
  • Secondary MI2S - Supports only playback
  • Tertiary MI2S - Supports only capture
@ilyakurdyukov
ilyakurdyukov / faster_lzma_decoder_x86.patch
Last active June 18, 2023 17:04
Faster LZMA decoder for x86 CPUs (patch for XZ Utils).
From 387fd25f57f41009fc317f7922e957de9f370ff2 Mon Sep 17 00:00:00 2001
From: Ilya Kurdyukov <[email protected]>
Date: Tue, 14 Dec 2021 21:54:32 +0700
Subject: [PATCH] faster lzma_decoder for x86
Notice: Uses inline assembly with CMOV instruction.
Another change that removes the comparison with in_size can give a few
percent speedup for architectures with a small number of registers.
---
@christianparpart
christianparpart / terminal-synchronized-output.md
Last active August 20, 2025 14:30
Terminal Spec: Synchronized Output

Synchronized Output

Synchronized output is merely implementing the feature as inspired by iTerm2 synchronized output, except that it's not using the rare DCS but rather the well known SM ? and RM ?. iTerm2 has now also adopted to use the new syntax instead of using DCS.

Semantics

When rendering the screen of the terminal, the Emulator usually iterates through each visible grid cell and renders its current state. With applications updating the screen a at higher frequency this can cause tearing.

This mode attempts to mitigate that.