Skip to content

Instantly share code, notes, and snippets.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pstef
pstef / flamegraph.svg
Last active April 28, 2026 18:04
3DO Wolf3D
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BEGIN {
FS = OFS = "\t"
}
$0 == "" { next }
NF == 2 {
current_author = $1
commits[current_author]++
next
}
NF == 3 {
@pstef
pstef / _etc_hosts
Last active April 26, 2025 11:43
WebDAV for RetroArch
192.168.5.1 webdav.local
@pstef
pstef / example.txt
Last active December 19, 2023 18:37
FreeBSD package dependency tree
$ pkg shell
SQLite version 3.42.0 2023-05-16 12:36:15
Enter ".help" for usage hints.
sqlite> .read tree.sql
deskutils/xfce4-notifyd (1)
databases/sqlite3 (2)
devel/libedit (2)
sysutils/xfce4-power-manager (1)
x11/libXScrnSaver (1)
x11/libXtst (145)
@pstef
pstef / mastodon_threads.py
Created March 11, 2023 10:36
Generate plain text mastodon threads
#!/usr/bin/env python
# https://codeberg.org/edent/Mastodon_Tools/src/commit/b284814810db1aaa5b0dfe98afa668f8d35eb525/threads.py
from mastodon import Mastodon
from treelib import Node, Tree
from datetime import datetime, timedelta
from urllib.parse import urlparse
import argparse
from bs4 import BeautifulSoup
sqlite> WITH RECURSIVE
up AS (
SELECT reference, 0 AS n
FROM mails
WHERE msgid = 'ed7f0232-1e16-8085-f9e2-eb0d77c87184@gmail.com'
UNION ALL
SELECT m.reference, n + 1
FROM mails m JOIN up ON m.msgid = up.reference AND m.reference IS NOT NULL
),
down AS (
pstef@thinkpad:~ $ for i in `apropos -w .` ; do printf '%s,"%s"\n' "$(basename $i)" "$(zcat $i | mandoc -T html | sed -En '/<h1.*id="(SUMMARY|DESCRIPTION)">/,/<\/section>/p' | sed '/<h1.*/d;/^$/d;s/"/\"/g' | tr -s '\n' ' ' | sed 's/<[^>]*>//g')" ; done > man.csv
pstef@thinkpad:~ $ sqlite3 man.db "CREATE VIRTUAL TABLE test USING fts5(title unindexed, text, tokenize = 'porter unicode61');"
pstef@thinkpad:~ $ sqlite3 man.db
SQLite version 3.35.5 2021-04-19 18:32:05
Enter ".help" for usage hints.
sqlite> .mode csv
sqlite> .import man.csv test
sqlite> SELECT rank, title, snippet(test, 1, '<', '>', '', 5) FROM test WHERE text MATCH 'set timer' ORDER BY rank;
-10.8040906839996,timer_getoverrun.2.gz,"last <set> by <timer>_settime"
-10.4134584558555,getitimer.2.gz,"call <sets> a <timer> to"
@pstef
pstef / gist:ff98d32f637592b2998584c13c7a2800
Last active August 12, 2020 20:38
Instructions for getting OpenWrt to compile on FreeBSD
portmaster shells/bash sysutils/coreutils textproc/diffutils misc/findutils lang/gawk lang/gcc10 misc/getopt devel/git-lite devel/gmake textproc/gsed archivers/gtar devel/patch lang/perl5.30 lang/python37 net/rsync ftp/wget
or
pkg install bash coreutils diffutils findutils gawk gcc getopt git-lite gmake gsed gtar patch perl5 python rsync wget
git clone --shallow-since=2016-03-01 'https://github.com/pstef/openwrt' --branch=freebsd && cd openwrt
mkdir -p staging_dir/host/bin && cd staging_dir/host/bin
ln -s /usr/local/bin/getopt
ln -s /usr/local/bin/gmake make
INSERT INTO x_y
SELECT l.x_id, unnest(array_positions) - 1
FROM (
SELECT x_y.x_id, bit_or(1 << y.id) AS yids
FROM x_y
GROUP BY x_y.x_id
HAVING count(*) <> (SELECT count(*) FROM y)
) AS l,
reverse(((SELECT bit_or(1 << y.id) FROM y) # l.yids)::bit(64)::text),
string_to_array(reverse, ''),