Skip to content

Instantly share code, notes, and snippets.

Avatar

K Adam White kadamwhite

View GitHub Profile
@kadamwhite
kadamwhite / ffmpeg-cheat-sheet.md
Last active Jul 23, 2021
ffmpeg command "cheat sheet"
View ffmpeg-cheat-sheet.md

ffmpeg cheat-sheet

Video

Compressing x265

ffmpeg -i INPUT_FILE.mkv -c copy -pix_fmt yuv420p10le -c:v libx265 -crf 28 -x265-params profile=main10 OUTPUT_FILE.mkv
@kadamwhite
kadamwhite / ExcludeMediaQueriesPlugin.js
Created Apr 22, 2021
A Webpack plugin to remove media queries matching certain patterns from a generated CSS file.
View ExcludeMediaQueriesPlugin.js
/**
* This file defines the project-level Webpack production configuration. It
* combines configs from all relevant plugins and themes into one single
* array (a "multi-configuration" Webpack setup) and runs those builds in
* a single pass.
*/
const { basename, extname } = require( 'path' );
const postcss = require( 'postcss' );
const filtermq = require( 'postcss-filter-mq' );
@kadamwhite
kadamwhite / phpcs-changed-files.sh
Created Mar 4, 2021
Bash script to run PHPCS against only files which have changed since branching off a specific base branch.
View phpcs-changed-files.sh
#/usr/bin/env bash
# Usage:
#
# Run this script (via an npm run alias) with no arguments to compute the
# issues in files changed since you branched from "development."
#
# npm run lint:php:changed
#
# Pass a specific branch name as the first argument to determine which files
@kadamwhite
kadamwhite / geo.js
Created Feb 16, 2021
Script to create an SVG visual representation of a page's DOM nesting
View geo.js
const equalPoint = ( x1, y1, x2, y2 ) => ( x1 === x2 && y1 === y2 );
const sum = nums => nums.reduce( ( sum, num ) => sum + num, 0 );
// See https://stackoverflow.com/questions/9043805/test-if-two-lines-intersect-javascript-function
const linesIntersect = ( x1, y1, x2, y2, x3, y3, x4, y4 ) => {
if (
equalPoint( x1, y1, x3, y3 ) ||
equalPoint( x1, y1, x4, y4 ) ||
equalPoint( x2, y2, x3, y3 ) ||
@kadamwhite
kadamwhite / summarize-altis-traefik-logs
Created Feb 10, 2021
Use like `docker logs docker_proxy_1 --follow | summarize-altis-traefik-logs
View summarize-altis-traefik-logs
#!/usr/bin/env node
const { match } = require('assert');
const { parse } = require('path');
const readline = require('readline');
const { getContainers, matchContainerByURL } = require( '/home/kadam/bin/get-docker-ips' );
// Figure out if we asked for a certain number of events, or else show the 20 most recent.
const [ , , flag, val ] = process.argv;
let eventCount = 20;
@kadamwhite
kadamwhite / get-docker-ips.js
Last active Feb 10, 2021
Node script to print out all running docker containers by IP
View get-docker-ips.js
#!/usr/bin/env node
const child_process = require( 'child_process' );
/**
* Execute a command as a spawned process.
*
* @param {String} command A bash command string, excluding arguments.
* @param {String[]} args An array of argument strings for the provided command.
*/
@kadamwhite
kadamwhite / ddr_test.pde
Last active Jan 31, 2021
Processing Sketch controlled by USB DDR pad
View ddr_test.pde
// PREREQUISITES!
//
// 1. Plug in the controller before running sketch
// 2. Follow the steps below once to download the Game Control Plus library
//
// In the "Sketch" menu in Processing's menubar, go to
// Sketch > Import Library > Add Library
// Then search for "Game Control". You should find a library called "Game Control Plus";
// install it and let Processing download all the files.
//
@kadamwhite
kadamwhite / korosawa.sh
Created Sep 11, 2020
A shell script to add "Kurosawa mode" (as implemented in the videogame Ghost of Tsushima) to your webcam, tested with a Logitech c920 on Ubuntu. Run "bash kurosawa.sh on" or make it an executable and run `kurosawa on` to activate high-contrast black-and-white; run with "off" to disable/reset.
View korosawa.sh
#!/usr/bin/env bash
MODE="$1"
if [ $MODE = "on" ]; then
v4l2-ctl -d /dev/video0 --set-ctrl=saturation=0,contrast=190,brightness=105
elif [ $MODE = "off" ]; then
v4l2-ctl -d /dev/video0 --set-ctrl=saturation=128,contrast=128,brightness=120
fi
@kadamwhite
kadamwhite / convert-to-gif
Created Mar 9, 2020
Gif conversion script
View convert-to-gif
#!/usr/bin/env node
/*
This script will clip a segment of a video file into a gif, using techniques
described in these resources:
https://engineering.giphy.com/how-to-make-gifs-with-ffmpeg/
https://video.stackexchange.com/questions/4563/how-can-i-crop-a-video-with-ffmpeg
https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line
https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo
View rotary-bar-chart.pde
float fillColor;
void setup() {
size(300, 200);
background(255, 255, 255);
fill(0, 0, 0);
// Draw one bar graph on the left, starting from the bottom and working clockwise
//===============================================================================