Skip to content

Instantly share code, notes, and snippets.

View Riebart's full-sized avatar

Mike Riebart

View GitHub Profile
@Riebart
Riebart / ffmpeg_side_by_side.sh
Created November 16, 2020 04:31
ffmpeg incantation for side-by-siding two videos of different resolutions and framerates.
#!/bin/bash
ffmpeg \
-ss 90.75 -i "input1.mp4" \
-ss 0 -i "input2.mp4" \
-filter_complex "\
[0:v]setpts=PTS-STARTPTS,crop=iw/2:ih:iw/4:0[leftRaw];\
[1:v]setpts=PTS-STARTPTS,crop=iw/2:ih:iw/4:0[rightRaw];\
[leftRaw]scale=-1:1080[left];\
[rightRaw]scale=-1:1080[right];\
@Riebart
Riebart / state_scaling_by_election_power.wls
Created November 4, 2020 22:47
Wolfram code to generate a few maps that show election results, scaling states to show actual electoral power.
votesPerState = {{"Alabama", 9.`}, {"Alaska", 3.`}, {"Arizona",
11.`}, {"Arkansas", 6.`}, {"California", 55.`}, {"Colorado",
9.`}, {"Connecticut", 7.`}, {"Delaware",
3.`}, {"DistrictOfColumbia", 3.`}, {"Florida", 29.`}, {"Georgia",
16.`}, {"Hawaii", 4.`}, {"Idaho", 4.`}, {"Illinois",
20.`}, {"Indiana", 11.`}, {"Iowa", 6.`}, {"Kansas",
6.`}, {"Kentucky", 8.`}, {"Louisiana", 8.`}, {"Maine",
4.`}, {"Maryland", 10.`}, {"Massachusetts", 11.`}, {"Michigan",
16.`}, {"Minnesota", 10.`}, {"Mississippi", 6.`}, {"Missouri",
10.`}, {"Montana", 3.`}, {"Nebraska", 5.`}, {"Nevada",
@Riebart
Riebart / steam_library_completion_time.sh
Last active November 4, 2020 06:24
Scrape completion times from a Steam user library using howlongtobeat
#!/bin/bash
# DEPENDENCIES:
# - jq: https://stedolan.github.io/jq/
# - pup: https://github.com/EricChiang/pup
# - python-Levenshtein: https://pypi.org/project/python-Levenshtein/
# - You'll need a Steam API key, which you can get from https://steamcommunity.com/dev/apikey
# USAGE:
# This pulls in the full steam app list from the API, your user's game list via the Steam API,
@Riebart
Riebart / config.snipet
Created March 2, 2020 17:52
Ubiquiti EdgeRouter IPv6 router advert and prefix delegation config
interfaces {
ethernet eth1 {
address 10.0.0.1/24
address 192.168.100.1/24
address ffff:ffff:ffff:ffff::1/64
address ffff:ffff:ffff:ffff::1/64
description Athens
duplex auto
firewall {
local {
@Riebart
Riebart / watch_fedex_package.sh
Created March 1, 2020 19:36
Watch a fedex package status via API calls
#!/bin/bash
tracking_number="$1"
while [ true ]
do
date +%FT%T
echo -n "Tracking ${tracking_number} "
curl 'https://www.fedex.com/trackingCal/track' \
-s \
-H 'Connection: keep-alive' \
-H 'Pragma: no-cache' \
@Riebart
Riebart / .bashrc.aws
Created October 26, 2019 01:17
Collection of bashrc contents that makes it a bit easier to work across accounts
#!/bin/bash
# For non-256 colour terminals
#PS1='\[\e]0;\w\a\]\n\[\e[00;35m\]${AWS_PROFILE}$([ "$AWS_PROFILE" == "" ] && echo -n "" || echo -n " ")'
# The default region, if set
PS1=$PS1'\[\033[38;5;92m\]${AWS_DEFAULT_REGION}$([ "$AWS_DEFAULT_REGION" == "" ] || echo -n " ")'
# The AWS profile
PS1=$PS1'\[\e]0;\w\a\]\[\033[38;5;208m\]${AWS_PROFILE}$([ "$AWS_PROFILE" == "" ] || echo -n " ")'
# The existence of environment variables
@Riebart
Riebart / do.js
Created September 19, 2019 17:19
Nodejs script to convert Textract output into a PDF using PDFkit
const fs = require('fs');
let rawdata = fs.readFileSync('/working/out4.json');
let data = JSON.parse(rawdata);
// You'll need to twiddle the dpi, page size, and font size to get your stuff to layout properly.
// Assumes uniform font size in the input.
let dpi = 200;
let width = 17 * dpi;
let height = 11 * dpi;
const PDFDocument = require('pdfkit');
@Riebart
Riebart / get_symlink_file_target.ps1
Created July 17, 2019 17:03
FInd the target of a file reparsepoint (such as those used for binaries in Store apps)
@Riebart
Riebart / nginx_stream_tls.md
Last active July 16, 2019 21:04
Notes on configuring the nginx stream module to run as a non-root user

nginx Stream Module Config

This will use the nginx SSl stream, and ssl_stream_preread modules

Non-root running of the nginx master process

# chmod 777 /var/run
# mkdir /var/run/nginx
# chown -R www-data:www-data /var/run/nginx
@Riebart
Riebart / pihole_docker.sh
Created July 15, 2019 19:59
Start a PiHole docker container with the appropriate upstream DNS and server IPs autodetected.
#!/bin/bash
docker run --rm -d --name pihole \
-p 53:53/tcp -p 53:53/udp -p 80:80 \
-v /home/pihole/etc/pihole:/etc/pihole/ \
-v /home/pihole/etc/dnsmasq.d:/etc/dnsmasq.d/ \
--dns $(nslookup 1.1.1.1 | \
grep Server: | tr -s '\t' | \
cut -f2) \
-e DNS1=$(nslookup 1.1.1.1 | \