Skip to content

Instantly share code, notes, and snippets.

View oclero's full-sized avatar

Olivier Cléro oclero

View GitHub Profile
@oclero
oclero / convert-png-to-jpg.sh
Created April 3, 2023 18:19
Convert Solarus PNG screenshot to bigger JPEG one
#!/bin/sh
# Needs imagemagick
for i in *.png; do convert "$i" -quality 90 -interpolate Nearest -filter point -resize 400% "${i%.*}.jpg"; done
@oclero
oclero / convert-png-to-webp.sh
Last active March 22, 2023 14:11
Convert PNG to WEBP
#!/bin/sh
for i in *.png; do cwebp "$i" -q 90 -o "${i%.*}.webp"; done
@oclero
oclero / imagemagick_utilites.sh
Last active November 1, 2022 16:33
ImageMagick utilities when scanning documents
# Rotate photos.
for photo in *.jpg ; do convert $photo -rotate -90 $photo ; done
# Grayscale them.
for photo in *.jpg ; do convert $photo -set colorspace Gray -separate -average $photo ; done
# Change brightness and contrast (<brightness>x<contrast>).
for photo in *.jpg ; do convert $photo -brightness-contrast 5x5 $photo ; done
# Make a pdf from photos.
@oclero
oclero / adobe-cleaner.sh
Created October 1, 2022 09:07
Script to remove all Aodbe stuff
#!/bin/sh
sudo rm -rf /Applications/Adobe*
sudo rm -rf /Applications/Utilities/Adobe*
sudo rm -rf /Library/Application\ Support/Adobe
sudo rm -rf /Library/Preferences/com.adobe.*
sudo rm -rf /Library/PrivilegedHelperTools/com.adobe.*
sudo rm -rf /private/var/db/receipts/com.adobe.*
sudo rm -rf ~/Library/Application\ Support/Adobe*
sudo rm -rf ~/Library/Application\ Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.adobe*
@oclero
oclero / convert-wav-to-mp3.sh
Last active March 21, 2023 11:38
Convert wav to mp3
#!/bin/sh
for i in *.wav; do ffmpeg -i "$i" -codec:a libmp3lame -ar 44100 -b:a 320k "${i%.*}.mp3"; done
@oclero
oclero / album_to_mp4.py
Created April 3, 2022 13:18
Convert an audio album to video for Youtube
#!/usr/bin/env python3
import shutil
import subprocess
import os
import sys
import sys
from pathlib import Path
INPUT_AUDIO_DIR = './audio'
@oclero
oclero / OptimizePDFSizes.md
Last active February 23, 2022 21:49
Optimize PDF size
  1. Install ghostscript:
sudo apt install ghostscript
  1. Optimize your PDF:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
@oclero
oclero / GitSubmodules.md
Last active July 7, 2023 16:17
Git Submodules

To initialize:

git submodule update --init --recursive

To get latest commits:

git submodule update --init --remote --recursive
@oclero
oclero / CppTreeSearchCheatsheet.md
Created January 3, 2022 10:54
Tree Search in C++

Tree Search in C++

Depth-Search First (DFS)

Recursive

void search(Node& root) {
  // 1. Visit node.
  visit(node);
@oclero
oclero / CppSingleProducerSingleConsumer.cpp
Created January 3, 2022 10:37
C++ Single Producer / Single Consumer
std::cond_var cond;
std::mutex mutex;
std::queue<int> queue;
auto finished = false;
std::thread producer([&cond, &mutex, &queue, &finished](){
// Add data to the queue.
auto steps = 100;
while (steps) {
std::lock_guard<std::mutex> lock{ mutex };