Skip to content

Instantly share code, notes, and snippets.

View frafra's full-sized avatar

Francesco Frassinelli frafra

View GitHub Profile
@frafra
frafra / example.sql
Created April 9, 2026 12:28
GBIF backbone FTS with DuckDB
attach database 'backbone.db' as backbone (read_only);
use backbone;
select taxonID, canonicalName, scientificName, fts_main_taxon.match_bm25(taxonID, 'gulo gulo') as score
from taxon
where score is not null and taxonomicStatus = 'accepted'
order by score desc;
select taxonID, canonicalName, taxonomicStatus, vernacularName, fts_main_vernacular_name_no.match_bm25(vernacularID, 'fjellrev') as score
from vernacular_name_no
@frafra
frafra / rsession-wrapper.sh
Last active March 12, 2026 19:14
RStudio pixi integration
#!/bin/bash
# rsession-wrapper — RStudio Server rsession wrapper with per-project pixi support
#
# When a user opens (or switches to) a project that contains a pixi.toml,
# this wrapper activates the pixi environment before launching rsession.
# This gives each project its own R installation and library paths.
#
# HOW IT WORKS
# ------------
# RStudio Server does not pass project information to rsession at launch.
@frafra
frafra / linux-intel-llm.md
Last active March 29, 2026 11:54
Personal notes of a Linux user with an Intel Arc GPU starting using local generative models

Setup:

  • Intel(R) Arc(tm) A380 Graphics (DG2) with 6 GB of RAM.

Monitor GPU usage:

sudo dnf install intel-gpu-tools nvtop
sudo intel_gpu_top
sudo nvtop
@frafra
frafra / test.md
Created December 20, 2025 14:30
btrfs dup simulated corruption

Testing btrfs dup profile and automatic repairing on a USB drive.

$ sudo mkfs.btrfs -d dup -m dup -L Dati /dev/sdc1 -f
btrfs-progs v6.16.1
See https://btrfs.readthedocs.io for more information.

Label:              Dati
UUID:               9598b427-857e-44c7-9800-dbd90bd7cbe7
Node size:          16384
services:
postgres:
image: docker.io/library/postgres:18-alpine
environment:
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: wikijs
volumes:
- ./postgresql/18:/var/lib/postgresql/18/docker
wikijs:
image: ghcr.io/requarks/wiki:2
@frafra
frafra / tutorial.md
Created July 26, 2025 14:23
Track software changes to Linux root using overlayfs
mkdir -p upper work merged

mount overlay -t overlay -o lowerdir=/,upperdir=upper/,workdir=work/ merged/

mount -t proc /proc merged/proc/
mount --rbind /sys merged/sys/
mount --rbind /dev merged/dev/

chroot merged/
@frafra
frafra / chromebook-ideapad-flex-5i.md
Last active December 13, 2025 12:39
Chromebook with Linux

Hardware details

  • Model: Lenovo Chromebook IdeaPad Flex 5i 14''
  • Hardware ID: TAEKO-QSHQ
  • CPU: Intel Pentium Gold 8505
    • Alder Lake
    • 1 performance core (2 threads) + 4 efficient cores = 6 threads
    • Virtualization Technology, Quick Sync, AVX2
  • Storage: 64 GB eMMC
#!/bin/bash
set -eu
OLD_PASSWORD="old_endoded_pwd"
NEW_PASSWORD="new_endoded_pwd"
filter='(.resource.sources | (.sqlsource, .sqlsources[])? | select(.password == $old).password) |= $new'
for file in */resource.xml; do
@frafra
frafra / aliases.sh
Last active December 7, 2024 22:57
Nice shortcuts
# Pick a random private port, start caddy and start cloudflared:
# p=$((RANDOM%16383+49152)); caddy file-server -bl :$p & cloudflared tunnel --url [::1]:$p
# Use nix-shell:
# nix-shell -p cloudflared -p caddy --run 'p=$((RANDOM%16383+49152)); caddy file-server -bl :$p & cloudflared tunnel --url [::1]:$p'
# Or use podman (or Docker) with nixery.dev:
# podman run --rm --network host -ti -v $PWD:/data:ro --workdir /data nixery.dev/bash/caddy/cloudflared /bin/bash -c 'p=$((RANDOM%16383+49152)); caddy file-server -bl :$p & cloudflared tunnel --url [::1]:$p'
# Create an alias:
alias staticserve="nix-shell -p cloudflared -p caddy --run 'p=$((RANDOM%16383+49152)); caddy file-server -bl :\$p & cloudflared tunnel --url [::1]:\$p'"
@frafra
frafra / README.md
Last active January 10, 2025 09:06
GLX in nix-shell

How to solve Could not initialize GLX and similar errors?

Workaround (not recommended)

export QT_XCB_GL_INTEGRATION=none

-- NixOS/nixpkgs#82959 (comment)