Skip to content

Instantly share code, notes, and snippets.

View wteuber's full-sized avatar

Wolfgang Teuber wteuber

View GitHub Profile
@wteuber
wteuber / encrypt_decrypt.rb
Last active April 3, 2024 13:07
Simply encrypt and decrypt Strings in Ruby.
require 'openssl'
class String
def encrypt(key)
cipher = OpenSSL::Cipher.new('DES-EDE3-CBC').encrypt
cipher.key = Digest::SHA1.hexdigest key
s = cipher.update(self) + cipher.final
s.unpack('H*')[0].upcase
end
@wteuber
wteuber / fmod.js
Last active February 6, 2024 14:47
fmod for Javascript, will work with any ECMA-262 implementation.If you need a precision higher than 8, please use another implementaion of fmod.
/*
fmod for Javascript, will work with any ECMA-262 implementation.
If you need a precision higher than 8, please use another implementation of fmod.
1.05 % 0.05
=> 0.04999999999999999
Math.fmod(1.05, 0.05)
=> 0
@wteuber
wteuber / volume.md
Last active February 3, 2024 21:50
FFmpeg - Audio Volume Manipulation

Audio Volume Manipulation

ffmpeg -i input.mp4 -af "volume=<volume_level>" output.mp4
input.mp4: The input video file.
-af: Stands for audio filter. This option tells FFmpeg to apply an audio filter.
@wteuber
wteuber / reduce_pdf.sh
Created February 1, 2024 16:18 — forked from knugie/reduce_pdf.sh
reduce pdf size
#reduce PDF size
#-dPDFSETTINGS
# /screen
# /ebook
# /printer
# /prepress
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -sOutputFile=out.pdf in.pdf
@wteuber
wteuber / iterm-colors-to-vscode.js
Created May 18, 2022 13:10 — forked from experimatt/iterm-colors-to-vscode.js
A simple script to use your iTerm color profile in vscode's built-in terminal.
// This script takes an iTerm Color Profile as an argument and translates it for use with Visual Studio Code's built-in terminal.
//
// usage: `node iterm-colors-to-vscode.js [path-to-iterm-profile.json]
//
// To export an iTerm Color Profile:
// 1) Open iTerm
// 2) Go to Preferences -> Profiles -> Colors
// 3) Other Actions -> Save Profile as JSON
//
// To generate the applicable color settings and use them in VS Code:
@wteuber
wteuber / .zshrc
Last active November 14, 2023 12:46
git aliases
# Print origin/HEAD branch name (default branch)
gdb() {
git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5
}
# Print origin/HEAD branch name (default branch)
# uses ohmyzsh git plugin aliases https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh
gcdb() {
gco `gdb`
}
@wteuber
wteuber / no_input_10.sh
Last active October 3, 2023 15:01
x11 disable all input devices for 10 seconds
inputs=($(xinput --list --id-only | sort -hr | tr "\n" " "))
for i in "${inputs[@]}"; do
echo $i
xinput --disable $i
done
sleep 10
for i in "${inputs[@]}"; do xinput --enable $i; done
@wteuber
wteuber / install_eventmachine.md
Created September 26, 2023 10:01
MacOS M1 installing eventmachine (1.2.7)
An error occurred while installing eventmachine (1.2.7), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.2.7' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  github-pages was resolved to 228, which depends on
    jekyll-avatar was resolved to 0.7.0, which depends on
      jekyll was resolved to 3.9.3, which depends on
        em-websocket was resolved to 0.5.3, which depends on
 eventmachine
@wteuber
wteuber / list_gists_with_url.sh
Created September 23, 2023 19:46
List gists with gh cli
# install and set up gh (https://cli.github.com/)
GH_USER=`gh auth status | grep -oue "Logged in to github.com as [^ ]*" | grep -oue "[^ ]*$"`
gh gist list -L1000 | sed -e "s/^/https:\/\/gist.github.com\/$GH_USER\//"
@wteuber
wteuber / git_checkout_branch_from_previous_commit_message_ruby.sh
Last active June 14, 2023 08:28
Git checkout branch from previous commit message
git checkout -b `git log -1 --pretty=%s | ruby -e "puts gets.downcase.gsub(/[^a-zA-Z0-9]+/, ' ').strip.tr(' ','_')"`