Skip to content

Instantly share code, notes, and snippets.

View warmwaffles's full-sized avatar
🛠️
Code Wrestling

Matthew Johnston warmwaffles

🛠️
Code Wrestling
View GitHub Profile
@warmwaffles
warmwaffles / dotenv.fish
Created April 4, 2021 15:05
Loads a dotenv file definition into the current fish shell
function dotenv -a filePath -d 'exports all .env entries to global'
if not test -f $filePath
echo Error: file $filePath does not exist or can not be read
return
end
echo Parsing dotenv file $filePath
for entry in (cat $filePath | grep -v '^#' | grep -v '^$')
set entry = (string split -m 1 \= -- $entry)
# Some help text here
thing:
@echo boooo
# Show this help.
help:
@python make_help.py $(MAKEFILE_LIST)
@warmwaffles
warmwaffles / organize.py
Created October 26, 2020 17:34
Organize GoPro Hero7 files.
"""
Works primarily only with GoPro Hero 7 at the moment.
GoPro has a really weird naming scheme and terrible pattern for timelapse and
videos. This tool helps move files into a usable / navigable directory.
"""
import argparse
import os
import re
@warmwaffles
warmwaffles / convert.md
Last active October 17, 2020 01:05
Convert go-pro timelapse with ffmpeg

To compile all of the gopro timelapse images use the following command.

ffmpeg -r 6 \
  -f image2 \
  -pattern_type glob \
  -i '*.JPG' \
  -s 4000x3000 \
  -c:v mjpeg \
 -q:v 10 \
@warmwaffles
warmwaffles / defer.c
Created September 30, 2020 22:09 — forked from jart/defer.c
Go-like defer for C that works with most optimization flag combinations under GCC/Clang
#include "gc.h"
/**
* Adds destructor to garbage shadow stack.
*
* @param frame is passed automatically by wrapper macro
* @param fn takes one argument
* @param arg is passed to fn(arg)
* @return arg
*/
#include <stdint.h>
uint64_t s[2];
uint64_t
xorshiftrng128(void)
{
uint64_t s1 = s[0];
uint64_t s0 = s[1];
uint64_t result = s0 + s1;

I do know that it’s really easy to convert them into an ISO file, and then mount the ISO in debian based linux.

sudo apt-get install bchunk

The syntax from bchunk is as follows:

bchunk [-v] [-p] [-r] [-w] [-s]
@warmwaffles
warmwaffles / GeodesicSphere.js
Created April 18, 2018 04:14 — forked from Inscrutabilis/GeodesicSphere.js
Three.js geodesic sphere primitive class
/**
* @author Inscrutabilis / mailto:iinscrutabilis@gmail.com
*/
/*
* Generates a geodesic sphere geometry
* By default, it is 1x1x1 octahedron, as a first approximation to sphere
* It will return more sphere-like object if you specify iterations > 0
* But please keep in mind that it generates (4 ^ iterations) * 8 faces
* Radius argument overrides default sphere radius (1)
#version 330 core
in vec2 v_texcoord;
in vec4 v_color;
uniform sampler2D u_tex;
uniform mat4 u_combined;
out vec4 f_color;
@warmwaffles
warmwaffles / stopwatch.rb
Last active March 29, 2018 21:15
Quick stopwatch to do some basic timings in ruby
#
# A simple stop watch for a quick timer to check app performance
#
# @see https://blog.dnsimple.com/2018/03/elapsed-time-with-ruby-the-right-way/
#
# @example Basic Usage
# timer = Stopwatch.new
# timer.start #=> 59539.814152996
# timer.stop #=> 59544.700881683
# timer.elapsed #=> 4.886728687000868