Skip to content

Instantly share code, notes, and snippets.

View rsms's full-sized avatar

Rasmus rsms

View GitHub Profile
@rsms
rsms / pixel-studio.c
Created April 24, 2026 16:42
Run it with: pb run pixel-studio.c
#include <playbit/playbit.h>
#define CANVAS_MAX 64
#define PALETTE_COUNT 16
typedef enum {
Tool_Brush,
Tool_Rectangle,
Tool_Circle,
} Tool;

Local coding agent

pi with Qwen3.6-27B

https://huggingface.co/Qwen/Qwen3.6-27B

$ curl -fsSL https://ollama.com/install.sh | sh
$ ln -s /Applications/Ollama.app/Contents/Resources/ollama ~/bin/ollama
$ ollama pull qwen3.6:27b
@rsms
rsms / playbit-vconsole.sh
Last active July 4, 2024 00:57
Script for connecting to Playbit development console
#!/bin/sh
set -eo pipefail
SOCKFILE="$HOME/Library/Application Support/Playbit/vconsole0.sock"
while [ $# -gt 0 ]; do case "$1" in
-h|-help|--help) cat <<END
Connect a terminal to Playbit
Usage: $0 [--help | <sockfile>]
<sockfile> defaults to $SOCKFILE
@rsms
rsms / macos-distribution.md
Last active April 15, 2026 12:15
macOS distribution — code signing, notarization, quarantine, distribution vehicles
// cc -std=c11 miniast.c -o miniast && ./miniast
#include "xcommon.h"
ASSUME_NONNULL_BEGIN
typedef enum AKind {
AKindInt, // 123
AKindAdd, // +
AKindSub, // -
AKindMul, // *
} AKind;
#!/bin/sh
#
# Usage:
# sh build-fontkit.js.sh [<outfile>]
# <outfile> defaults to ./fontkit-VERSION.js
#
# This script builds fontkit.js for a web browser as an ES module script.
# Use the result like this:
# <script type="module">
# import fontkit from "./fontkit-2.0.2.js"
@rsms
rsms / cgroup2-cpu-limit.sh
Last active August 25, 2025 15:59
Example of limiting how much CPU a process can use in linux with cgroup2
#!/bin/sh
set -e
# Documentation and guides:
# https://docs.kernel.org/admin-guide/cgroup-v2.html
# https://lore.kernel.org/lkml/[email protected]/T/
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/using-cgroups-v2-to-control-distribution-of-cpu-time-for-applications_managing-monitoring-and-updating-the-kernel
# remove if already exists
[ -e /sys/fs/cgroup/test1 ] && rmdir /sys/fs/cgroup/test1
@rsms
rsms / apk-size-list.sh
Created September 1, 2022 17:50
apk: list installed packages sorted by file size (e.g. alpine linux)
#!/bin/ash
# list installed packages sorted by file size
apk info -e -s \* >/tmp/apksize
awk 'NR % 3 == 1' /tmp/apksize | cut -d ' ' -f 1 > /tmp/apkname
awk 'NR % 3 == 2' /tmp/apksize > /tmp/apksize2
while read -r n unit; do
B=$n
case "$unit" in
Common terminology found in across literature and implementations:
Page
Region of memory. Usually 4096, 8192 or 16384 bytes
Page Frame
Same as a Page but when talking about physical memory. Same size as a Page.
Page Table
Per virtual address space table mapping virtual addresses to Pages.
Page Directory
Like Page Table and is often the same thing. The first level of Page Tables.
PTE - Page Table Entry