Skip to content

Instantly share code, notes, and snippets.

View thibaultmol's full-sized avatar

Thibault Molleman thibaultmol

  • Apotheek Molleman De Coster
  • Belgium
View GitHub Profile
@thibaultmol
thibaultmol / PDFpagedelete.sh
Last active August 3, 2023 16:04
Bash script to remove all empty pages from any pdf in the current directory
#!/bin/bash
# Ensure the required tools are installed
command -v pdfimages >/dev/null 2>&1 || { echo >&2 "pdfimages (poppler-utils) is required but it's not installed. Exiting."; exit 1; }
command -v convert >/dev/null 2>&1 || { echo >&2 "convert (ImageMagick) is required but it's not installed. Exiting."; exit 1; }
command -v tesseract >/dev/null 2>&1 || { echo >&2 "tesseract is required but it's not installed. Exiting."; exit 1; }
command -v pdftk >/dev/null 2>&1 || { echo >&2 "pdftk is required but it's not installed. Exiting."; exit 1; }
count_letters() {
echo "$1" | grep -o -i '[a-z]' | wc -l
@thibaultmol
thibaultmol / Open magazine.js
Created June 24, 2023 06:43
Solution for opening a magazine on a Lemmy/Kbin from a different instance
javascript:(function(){let prefix='https://kbin.social/m/';let url=window.location.href;let parts=url.split('/');let finalPart=parts[parts.length-1];let host=parts[2];let newURL=prefix+finalPart+'@'+host;window.open(newURL,'_blank');})();
@thibaultmol
thibaultmol / obsidian-remote reddit user help.sh
Created March 15, 2023 17:26
reply to Reddit user rergarding obsidian remote
#!/bin/bash -x
# This is a reply to https://www.reddit.com/r/ObsidianMD/comments/11rw50n/comment/jcagzq4/?utm_source=reddit&utm_medium=web2x&context=3
echo "Updating the package list and installing Docker..."
sudo apt-get update
sudo apt-get install -y docker.io
echo "Installing Nginx Proxy Manager (NPM) in a Docker container..."
sudo docker run -d --name npm -p 81:81 -p 443:443 -v npmdata:/data --restart always jlesage/nginx-proxy-manager
echo "Waiting for NPM to start up before proceeding..."
@thibaultmol
thibaultmol / trimvideo.ps1
Created January 18, 2023 10:36
Trim video without re-encode
function Download-FFmpeg {
# Download FFmpeg from the official website
$url = "https://ffmpeg.org/releases/ffmpeg-latest-win64-static.zip"
$output = "$env:TEMP\ffmpeg.zip"
Invoke-WebRequest -Uri $url -OutFile $output
# Extract the files
Expand-Archive -Path $output -DestinationPath $env:TEMP
# Add FFmpeg to the system PATH
@thibaultmol
thibaultmol / split-geojson-grid.py
Created January 4, 2023 20:23
Python script to split output from geojson-grid to seperate files
import json
from shapely.geometry import Polygon
# Generate geojson grid https://cityofaustin.github.io/geojson-grid/ and save it as grid.json
# Load the input file
with open("grid.json", "r") as f:
data = json.load(f)
# Iterate through the features
@thibaultmol
thibaultmol / WebpageToChatGptOSM
Created December 31, 2022 11:46
JS bookmarklet to take text from webpage, add gpt prompt, copy to clipboard. Ready to paste into ChatGPT
javascript:(function(){var t="",a=document.querySelectorAll("p,h1,h2,h3,h4,h5,h6,td,th,li,dt,dd");for(i=0;i<a.length;i++){if(a[i].nodeType==1){t+=a[i].textContent+"\n"}}var l=document.querySelectorAll("a");for(i=0;i<l.length;i++){if(!l[i].href.endsWith(".jpg") && !l[i].href.endsWith(".jpeg") && !l[i].href.endsWith(".png") && !l[i].href.endsWith(".gif")){t+=l[i].textContent+" ("+l[i].href+")\n"}}t=t.split("\n");for(i=0;i<t.length;i++){if(t[i].includes("<img")){var c=1;while(!t[i+c].includes(">")){c++}t.splice(i,c+1);i--}}t=t.join("\n");t=t.replace(/^\s*[\r\n]/gm,"");t="addr:housenumber=\naddr:street=\ncontact:facebook=\ncontact:instagram=\nemail=\nphone=\nopening_hours=\nref:vatin=\n\nExtract from the text below the openstreetmap tags mentioned above. Make sure everything is formatted according to Openstreetmap's conventions.\n\"ref:vatin\" should be formatted without spaces; in one continuous number (no dots/points).\nPhone should be formatted with country code +32\nDon't add data when you're not sure about i
@thibaultmol
thibaultmol / .crostini-setup
Last active January 24, 2024 21:44 — forked from tjpalanca/.crostini-setup
Crostini Setup
These scripts set up Crostini on my Acer Chromebook Spin 13
wget https://gist.githubusercontent.com/thibaultmol/aaf275a0bb36ba4aa8481e845aeb3135/raw/setup-crostini.sh \
&& chmod +x ./setup-crostini.sh
@thibaultmol
thibaultmol / start.sh
Last active May 1, 2019 05:53
Crostini initialize
#!/bin/bash
get_go() {
# [get_golang.sh](https://gist.github.com/n8henrie/1043443463a4a511acf98aaa4f8f0f69)
# Download latest Golang release for AMD64
# https://dl.google.com/go/go1.10.linux-amd64.tar.gz
set -euf -o pipefail
# Install pre-reqs
sudo apt-get install python3 git -y
@thibaultmol
thibaultmol / steamvr.vrsettings
Created April 8, 2019 18:09
SteamVR nulldriver (by dEEPZoNE)
{
"DismissedWarnings" : {
"DismissableWarning_RunTutorialAgain" : true
},
"GpuSpeed" : {
"gpuSpeed0" : 17,
"gpuSpeed1" : 17,
"gpuSpeed2" : 17,
"gpuSpeedCount" : 3,
"gpuSpeedDriver" : "25.21.14.1967",
@thibaultmol
thibaultmol / script.js
Created August 23, 2016 05:55
Google Apps Script Gmail: when sublabel and parent label, only sublabel
function startFunction() {
// If email has 1-Ingrid label and sublabel label then delete 1-Ingrid:
mainFunction("Ingrid");
mainFunction("Claire");
}
function mainFunction(name) {
var amountOfLabelsRemoved = 0;
var subLabelsWithUsername = getSubLabels(name);
for (var x = 0; x < subLabelsWithUsername.length; x++) {