Skip to content

Instantly share code, notes, and snippets.

View knickers's full-sized avatar

Nick Cox knickers

  • The Desert
View GitHub Profile
@knickers
knickers / pull-requests.md
Last active August 16, 2020 18:55
How to make multiple pull requests to a forked repository.

How to make multiple pull requests to a forked repository.

One-time preparation

From inside the forked repository, add a new remote pointing to the upstream repository.

$ git remote add upstream git://github.com/upstream/repo.git
$ git pull upstream master
@knickers
knickers / ffmpeg-notes.md
Last active February 17, 2020 21:48
ffmpeg notes

Cut video

$ ffmpeg -i input.mp4 -ss HH:MM:SS.xxx -c copy -t HH:MM:SS.xxx output.mp4

Or use -to to specify end timestamp instead of duration. Leave off the end time to go to the end of the video.

Crop video

$ ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
@knickers
knickers / gifify.sh
Last active December 19, 2020 06:46
Make a gif with ffmpeg
#!/bin/bash
set -e
usage() {
echo "Usage: $0 [options] source.ext destination.gif"
echo ' -c crop output image. W:H:X:Y Pixels from top left corner'
echo ' -fps output Frames Per Second'
echo ' -s scale output image. X:Y ex: 480:360 or 480:-1 or -1:360'
echo ' -ss start time in hh:mm:ss.xxx or seconds'
echo ' -t duration in hh:mm:ss.xxx or seconds'
@knickers
knickers / rands.php
Created January 22, 2018 06:10
PHP Command Line Random String Generator
<?php
$fp = @fopen('/dev/urandom','rb');
if ($fp === FALSE) {
trigger_error('Can not open /dev/urandom.');
die();
}
$len = isset($argv[1]) && is_numeric($argv[1]) ? (int) $argv[1] : 32;
<html>
<head>
<style>
frac {
top: 0.75em;
margin: -1em 0 0.5em;
display: inline-block;
position: relative;
}
num, den {
@knickers
knickers / whatismyip.sh
Last active December 7, 2020 06:03
Print current public IP address to the console
#!/bin/bash
set -e
dig +short @resolver1.opendns.com myip.opendns.com
@knickers
knickers / ffmcat.sh
Last active December 7, 2020 06:02
Use ffmpeg to concatinate videos
#!/bin/bash
set -e
usage() {
echo "Usage: $0 infile1.ext [infile2.ext ...] outfile.ext"
echo
exit 1
}
confirm() {
@knickers
knickers / Headless Raspberry Pi pre-boot setup.md
Created February 18, 2020 19:04
Headless Raspberry Pi pre-boot setup

All operations done in the /boot partition.

Enable WIFI

$ cat > wpa_supplicant.conf <<EOF
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=«your_ISO-3166-1_two-letter_country_code»
EOF
@knickers
knickers / headless-pi.sh
Last active July 5, 2021 02:26
Headless Raspberry Pi Setup Script
#!/bin/bash
set -e
if [ ! -f cmdline.txt -o ! -f kernel.img -o ! -f bootcode.bin ]; then
echo 'This script must be run inside the /boot partition'
exit 1
fi
enableWIFI() {
echo -n 'Enter 2 letter ISO country code (https://www.iso.org/obp/ui/#search): '
@knickers
knickers / wedge.scad
Created June 7, 2022 21:33
OpenScad 2D Wedge
module wedge(radius, start_angle, end_angle) {
// https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#.24fa.2C_.24fs_and_.24fn
fragments = $fn > 0
? ($fn >= 3 ? $fn : 3)
: ceil(max(min(360/$fa, radius*2*PI/$fs), 5));
angle = end_angle - start_angle;
step = angle / fragments / (abs(angle)/360);
polygon([