Skip to content

Instantly share code, notes, and snippets.

@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, ''),
@pstef
pstef / gist:04beb2587503d22646b3fa93be0a74a3
Last active January 4, 2024 11:53
pg_stat_statements plugin for munin
# pwd
/usr/local/etc/munin/plugins
# tail -n4 ../plugin-conf.d/plugins.conf
[pg_stat_statements]
env.STSTSCH statstatements
env.PGUSER munin
env.PGDATABASE postgres
# cat pg_stat_statements
#!/bin/sh
LIM=${STSTLIM:-10}