Skip to content

Instantly share code, notes, and snippets.

View frafra's full-sized avatar

Francesco Frassinelli frafra

View GitHub Profile
frafra / default.vcl
Created November 16, 2023 21:04
Allow GDAL vsicurl to fetch streamed replies and caching
vcl 4.1;
import dynamic;
backend default none;
sub vcl_init {
new d = dynamic.director(port = "80");
sub vcl_recv {
frafra / zotero.js
Created August 21, 2023 12:22
zotero cookbook
// Add incremental Call Number
let items = Zotero.getActiveZoteroPane().getSelectedItems();
let callNumberLength = items.length.toString().length;
for (i=0; i<items.length; i++) {
let item = items[i];
if (!items[i].isRegularItem()) continue;
item.setField("callNumber", (i+1).toString().padStart(callNumberLength, "0"));
await item.saveTx();
frafra / kroki.js
Last active April 25, 2023 14:12
Render with mermaid and kroki, with support for mdbook
// <script type="module">
var server = "";
var libraries = [
frafra /
Created February 8, 2023 08:14
debug tricks
function read_strace_file() {
strace --trace=file "$@" |&
sed --quiet 's;.*"\(/[^"]*\)".*;\1;p' |
sort --unique |
fzf --scheme=path |
xargs --no-run-if-empty less
export read_strace_file
frafra / look_for_value.sql
Created October 10, 2022 16:27
Look if any column contains such a value
create function pg_temp.look_for_value(value text) returns
table(table_fullname text, column_name text)
language plpgsql as $$
r record;
found bool;
for r in select * from information_schema.columns
table_fullname = format('%I.%I.%I', r.table_catalog, r.table_schema, r.table_name);
frafra /
Last active August 28, 2022 16:33 — forked from kevineduardo/
How to install (and compile) the latest v4l2loopback kernel module on Fedora Workstation 34

How to install (and compile) the latest v4l2loopback kernel module on Fedora Workstation 34

Execute the commands below

sudo dnf install git kernel-devel kernel-headers dkms v4l-utils
git clone
cd v4l2loopback
frafra /
Last active March 31, 2022 10:34
mitmproxy snippets and examples
#!/bin/bash -xeu
mkdir -p "$path"
curl -x mitmproxy:8080 > "$path/mitmproxy.crt"
# System
# Java
frafra /
Last active March 14, 2022 08:45
Find identical files and folders (comparing file names, paths and sizes)
# Example:
# $ ./ $HOME/Documents/*/
set -Eeuo pipefail
declare -A dirs
for dir in "$@"
# Build a container with the required command and run it
set -euo pipefail
docker_like() {
if command -v podman &> /dev/null
podman "$@"
frafra /
Last active July 4, 2022 13:42
Remove files from git history

Did you forgot to add some rules into your .gitignore and committed some files by mistake? Here is how to fix that. Be aware that this procedure is going to overwrite the entire history of the project and your collaborators will have to clone the repository again.

Fix .gitignore files and commit

Fix your .gitignore files. You can have more than one, by placing them into different folders (useful for projects using different programming languages). Use to generate good defaults.

Remove ignored files and commit