Skip to content

Instantly share code, notes, and snippets.

View alecjacobson's full-sized avatar

Alec Jacobson alecjacobson

View GitHub Profile
@alecjacobson
alecjacobson / gifenc.sh
Created October 4, 2018 15:49
.mov to .gif converter
#!/bin/sh
# sh gifenc.sh input.mp4 output.gif [width] [height]
# Optionally accepts width / height (one or both).
# http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
if [ -z "$1" ];then
echo "gifenc input.mov output.gif [width] [height] [fps] [slowdown]"
exit 0
fi
@alecjacobson
alecjacobson / procrusteanarxiv.sh
Last active March 16, 2022 21:16
This script will attempt to create a copy of the input tex directory whose total size is less than the 10000 KBs (i.e., 10MBs) limit of ArXiv.
#!/bin/bash
if [ -z "$1" ];then
echo "USAGE:
procrusteanarxiv path/to/input/dir/containing/tex/files/
This script tested with dependencies:
gs Ghostscript version 9.27 (9.21 is buggy)
@alecjacobson
alecjacobson / turbomap.m
Created September 5, 2019 17:35 — forked from reispat/turbomap.m
Turbo Colormap Look-up Table for Matlab
function map = turbomap()
% Look-up table for Turbo colormap.
% Includes example usage and comparison with other colormaps.
% Adapted for Matlab from https://gist.github.com/mikhailov-work/ee72ba4191942acecc03fe6da94fc73f
% Nikolas Karalis, 21 August 2019
map = [[0.18995,0.07176,0.23217];[0.19483,0.08339,0.26149];[0.19956,0.09498,0.29024];[0.20415,0.10652,0.31844];[0.20860,0.11802,0.34607];[0.21291,0.12947,0.37314];[0.21708,0.14087,0.39964];[0.22111,0.15223,0.42558];[0.22500,0.16354,0.45096];[0.22875,0.17481,0.47578];[0.23236,0.18603,0.50004];[0.23582,0.19720,0.52373];[0.23915,0.20833,0.54686];[0.24234,0.21941,0.56942];[0.24539,0.23044,0.59142];[0.24830,0.24143,0.61286];[0.25107,0.25237,0.63374];[0.25369,0.26327,0.65406];[0.25618,0.27412,0.67381];[0.25853,0.28492,0.69300];[0.26074,0.29568,0.71162];[0.26280,0.30639,0.72968];[0.26473,0.31706,0.74718];[0.26652,0.32768,0.76412];[0.26816,0.33825,0.78050];[0.26967,0.34878,0.79631];[0.27103,0.35926,0.81156];[0.27226,0.36970,0.82624];[0.27334,0.38008,0.84037];[0.27
@alecjacobson
alecjacobson / hover-dcs-codes.js
Last active September 19, 2019 17:18
Add hover-over text for course codes on the DCS Course page
javascript:(function(){
var h3s = document.getElementsByTagName("h3");
var codes = {};
for (var i = 0; i < h3s.length; i++)
{
var splits = h3s[i].textContent.split(" - ");
if(splits.length == 2)
{
codes[splits[0].trim()] = splits[1].trim();
}
@alecjacobson
alecjacobson / GMT_to_locale.js
Last active June 24, 2020 14:35
bookmarklet to find all times (00:00), assume they're in GMT, and convert to determined local time
javascript:( function(){document.body.innerHTML = document.body.innerHTML.replace(/[0-9]+(:[0-9][0-9])+( (am|pm|a.m.|p.m.))*/gi,str => "<span style='color:#f45;font-weight:bold;'>"+new Date("1/1/2020 "+str+" GMT").toLocaleTimeString([], {hour: '2-digit', minute:'2-digit',hour12:false})+"</span>")}());
@alecjacobson
alecjacobson / denoise.sh
Last active January 13, 2025 03:48
Remove background audio noise from a video clip via the command line (using ffmpeg and sox)
#!/bin/bash
if [ -z "$2" ];then
echo 'USAGE:
denoise input.mov output.mov
OR
denoise input.mov output.mov [ambient-noise-start-time] [ambient-noise-duration] [sox-noisered-amount] [sox-norm-param]
#!/bin/bash
# https://github.com/rarora7777/computer-graphics-kinematics/blob/master/replace.sh
sed -i '' -E 's/\\A($|[^A-Za-z0-9])/\\mathbf\{A\}\1/g' $1
sed -i '' -E 's/\\B($|[^A-Za-z0-9])/\\mathbf\{B\}\1/g' $1
sed -i '' -E 's/\\C($|[^A-Za-z0-9])/\\mathbf\{C\}\1/g' $1
sed -i '' -E 's/\\D($|[^A-Za-z0-9])/\\mathbf\{D\}\1/g' $1
sed -i '' -E 's/\\E($|[^A-Za-z0-9])/\\mathbf\{E\}\1/g' $1
#!/bin/bash
# This will download and run readme2tex on the given README.tex.md, commit the
# resulting svgs and README.md file to the repo and push the changes
if [ $# -eq 0 ]; then
echo "Usage:
./readme2tex.sh path/to/repo/with/README.tex.md"
exit 1
fi
@alecjacobson
alecjacobson / dark_mode.m
Created December 28, 2020 23:45
Dark mode from matlab
function dark_mode(use_dark_mode)
% DARK_MODE Switch command and figures windows to dark background with light
% text.
%
% dark_mode
% dark_mode(flag)
%
% Optional input:
% flag whether to switch to dark mode {false} or back to default (true)
%
@alecjacobson
alecjacobson / solve_quadprog.h
Created December 30, 2020 19:49
Templated C-Style wrapper for Luca Di Gaspero's QuadProg++ https://github.com/liuq/QuadProgpp
// MIT License
//
// Copyright (c) 2020 Alec Jacobson
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions: