- Install ghostscript:
sudo apt install ghostscript
- Optimize your PDF:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
#!/bin/sh | |
# Needs imagemagick | |
for i in *.png; do convert "$i" -quality 90 -interpolate Nearest -filter point -resize 400% "${i%.*}.jpg"; done |
#!/bin/sh | |
for i in *.png; do cwebp "$i" -q 90 -o "${i%.*}.webp"; done |
# 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. |
#!/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* |
#!/bin/sh | |
for i in *.wav; do ffmpeg -i "$i" -codec:a libmp3lame -ar 44100 -b:a 320k "${i%.*}.mp3"; done |
#!/usr/bin/env python3 | |
import shutil | |
import subprocess | |
import os | |
import sys | |
import sys | |
from pathlib import Path | |
INPUT_AUDIO_DIR = './audio' |
sudo apt install ghostscript
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
To initialize:
git submodule update --init --recursive
To get latest commits:
git submodule update --init --remote --recursive
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 }; |