Skip to content

Instantly share code, notes, and snippets.

@cletusw
cletusw / .eslintrc
Last active February 29, 2024 20:24
ESLint Reset - A starter .eslintrc file that resets all rules to off and includes a description of what each rule does. From here, enable the rules that you care about by changing the 0 to a 1 or 2. 1 means warning (will not affect exit code) and 2 means error (will affect exit code).
{
// http://eslint.org/docs/rules/
"ecmaFeatures": {
"binaryLiterals": false, // enable binary literals
"blockBindings": false, // enable let and const (aka block bindings)
"defaultParams": false, // enable default function parameters
"forOf": false, // enable for-of loops
"generators": false, // enable generators
"objectLiteralComputedProperties": false, // enable computed object literal property names
@cletusw
cletusw / process_for_atem.bat
Last active March 23, 2023 16:58
Windows batch script that prepares (pre-multiplies) an image file for use as an overlay on an ATEM video switcher (see https://www.youtube.com/watch?v=N2vLs9i0bA0 and https://stackoverflow.com/questions/6591361/method-for-converting-pngs-to-premultiplied-alpha#comment74190171_27177752 ). Requires ImageMagick: https://imagemagick.org/script/downl…
@echo off
rem Source: https://gist.github.com/cletusw/648076667040699f9ec148b322e76a4e
if "%~1"=="" goto :usage
if not "%~2"=="" goto :usage
set "OUTPATH=%~dp1processed\"
if not exist "%OUTPATH%" (
mkdir "%OUTPATH%"
)
#!/bin/bash
show_usage () {
echo "Usage: `basename $0` [START [END]]"
echo
echo "Steps through the commit history from START to END,"
echo "then returns to the branch or commit from before execution."
echo
echo "START defaults to the root commit (beginning of history)."
echo "END defaults to current branch/commit."
import time
import psutil
import pyautogui
# Check https://youtu.be/OGKQ6krf5O0 for a demo
# Required software
# Python 3 (https://www.python.org/downloads/) (with installation: check add to PATH)
# psutil (pip install psutil)
# pyautogui (pip install pyautogui)
@cletusw
cletusw / video-recorder.js
Created April 24, 2021 17:02
Video recorder custom element
import { html, css, LitElement } from 'lit';
import { ref, createRef } from 'lit/directives/ref.js';
export class VideoRecorder extends LitElement {
static get styles() {
return css`
video {
background: #222;
--width: 100%;
width: var(--width);
@cletusw
cletusw / get-old-chromium-binary.md
Last active December 7, 2020 18:32
Download an old Chromium binary

(source)

Taking [denilson-sá's answer][2] further...

You need revision numbers to grab downloads. So first lookup the full version string from the following URL, adjusting parameters as needed:

https://omahaproxy.appspot.com/history.json?channel=stable&os=mac

For Chrome version 28 the full version string is 28.0.1500.71. Now go to https://omahaproxy.appspot.com and enter the full version string ("28.0.1500.71") into the Position Lookup box. Copy the Base Position number ("209842" in this case).

@cletusw
cletusw / git-bisect-run
Last active August 13, 2019 19:00
git bisect run
Quick git tip: Most of you know (and love) git's "bisect" command, but how many have used "git bisect run"? Specify a shell script/command, and git will automatically run it on each bisect step. If it exits with a 0, the commit is marked "good". Anything else, and the commit is marked "bad".
For example, want to find the cause of a failing test?
git bisect start <failing commit> <passing commit>
git bisect run sh -c '(cd app && grunt test)'
Voila! Git will automatically find the first commit in the given range that fails the tests.
http://git-scm.com/docs/git-bisect#_bisect_run
@cletusw
cletusw / Flow.scpt
Created October 30, 2015 20:31
Change your background at a specific time (Mac OS X). Use `crontab -e` to edit your crontab:
tell application "Finder"
-- wrapped in a try block for error suppression
try
set mainDisplayPicture to "/Users/claytonwatts/Pictures/Flow.jpg"
-- set the picture for additional monitors, if applicable
tell application "System Events"
@cletusw
cletusw / angular-injection-to-import.js
Last active May 16, 2019 23:46
Converts the given angular injected parameter into an explicit require statement
/*
* Converts the given angular injected parameter into an explicit require statement
*
* Run this with jscodeshift
* @example
* jscodeshift . --specifier='Auth' --source='application/Auth'
*
* Live demo: https://astexplorer.net/#/gist/5492d2b9850a451d8e8d532bc64f21ce/latest
*
* Converts:
@cletusw
cletusw / git-sync-ship.sh
Created September 14, 2017 20:35
Git aliases for an easier rebase workflow
git config --global alias.sync '!f() { echo "$(tput setaf 4)Syncing this branch with origin master$(tput sgr 0)" && git fetch origin master && git rebase origin/master && echo "$(tput setaf 2)Branch sync successful$(tput sgr 0)"; }; f'
git config --global alias.ship '!f() { BRANCH=$(git symbolic-ref --short HEAD) && MERGE_BASE=$(git merge-base origin/master HEAD) && NUM_COMMITS=$(git rev-list --count $MERGE_BASE..) && git log --oneline --stat $MERGE_BASE.. && read -p "$(tput setaf 4)Are you sure you want to ship $(tput bold)$NUM_COMMITS$(tput sgr 0)$(tput setaf 4) commits to $(tput bold)master$(tput sgr 0)? [Y/n] " response </dev/tty && case $response in [yY][eE][sS]|[yY]|"") echo "$(tput setaf 4)Shipping branch $(tput bold)$BRANCH$(tput sgr 0)" ;; *) echo "$(tput setaf 1)Ship aborted by user$(tput sgr 0)"; return 1 ;; esac && git checkout master && (git merge --ff-only - || (echo "$(tput setaf 1)Could not merge branch into local master\nRun git sync before running this command\nIf this error persists, you ha