Skip to content

Instantly share code, notes, and snippets.

View hexagon5un's full-sized avatar

Elliot Williams hexagon5un

View GitHub Profile
## Creates a gamma-corrected lookup table
import math
def gamma(nsteps, gamma):
gammaedUp = [math.pow(x, gamma) for x in range(nsteps)]
return [x/max(gammaedUp) for x in gammaedUp]
def rounder(topValue, gammas):
return [min(topValue, round(x*topValue)) for x in gammas]
@hexagon5un
hexagon5un / hull_pcb_case.scad
Created February 4, 2018 22:16
Create a PCB Caddy with OpenSCAD's hull() Command
use <hull.scad>
w = 66.35;
l = 79;
pin_locations = [ [-w/2, -l/2, 0], [-w/2, l/2, 0],
[ w/2, -l/2, 0], [ w/2, l/2, 0] ];
thickness = 1;
$fn = 24;
#! /bin/env bash
[ $# -eq 0 ] && echo "Usage: randomNIST number_contestants [pulseIndex]" && exit
[ $# -eq 1 ] && number_contestants=$1 && pulseIndex=last
[ $# -eq 2 ] && number_contestants=$1 && pulseIndex=$2
# convert to hexadecimal
number_contestants=$(echo "ibase=10 ; obase=16 ; $number_contestants" | bc)
randomHex=$(curl https://beacon.nist.gov/beacon/2.0/chain/2/pulse/${pulseIndex} | grep outputValue | cut -d \" -f 4)
#!/bin/bash
clear
# init colors
FG="#00ffff"
BFG="#00ff00"
# if you wonder why true is in there https://www.shellcheck.net/wiki/SC2015
gum confirm --default --affirmative="Play now" --negative="Dump source first" --timeout=10s "Would you like to view the source code before playing?" &amp;amp;&amp;amp; true || ( gum format -t code &amp;lt;"$0" )
# get initial info
gum style --foreground "$FG" --border-foreground "$BFG" --border double --align center --width 64 --margin "1 2" --padding "2 4" \
@hexagon5un
hexagon5un / 3Play.py
Created February 24, 2023 14:26
Horrible code from ages ago
#! /usr/bin/env python
## Simple controller shell to interface with MPC with minimal keystrokes
## Note: ssh -p 23 -L 6600:audiobox:6600 elliotwilliams.org
## makes it work from remote locations. Tunnels into my network. :)
import mpdclient2, time, pdb, curses, os
import cPickle as pickle
## os.system("export MPD_HOST='audiobox'")
@hexagon5un
hexagon5un / Tiny_Tachometer.c
Created December 1, 2016 06:44
PIC Code to Set 6 Pins With 3: http://wp.me/pk3lN-YHm
/*******************************************************************************
TINY TACHOMETER
TACOMETRO C/ PIC12F675 E LCD (M�TODO LPLEX - 3 FIOS)
METODO: LEITURA DO PERIODO
@hexagon5un
hexagon5un / spacemouse.py
Created January 11, 2023 16:42
Quick and dirty Spacemouse test
#! /usr/bin/env python3
import serial
import subprocess
SENSITIVITY=250
PORT1="/dev/ttyUSB1"
DEBUG = False
DELAY = 0.25 ## seconds, prevents race
@hexagon5un
hexagon5un / randomImage
Created November 18, 2022 17:00
Random number from webcam and hash
#! /bin/env bash
number_contestants=$1
# convert to hexadecimal
number_contestants=$(echo "ibase=10 ; obase=16 ; $number_contestants" | bc)
# take image
ffmpeg -f v4l2 -i /dev/video0 -frames:v 1 -y foo.png
# md5sum it and extract the value
@hexagon5un
hexagon5un / hull.scad
Created February 4, 2018 22:50
OpenSCAD Hull Functions Library
module multiHull(){
for (i = [1 : $children-1])
hull(){
children(0);
children(i);
}
}
module sequentialHull(){
for (i = [0: $children-2])
@hexagon5un
hexagon5un / skull_n_wrenches5_nobg-shrinkwrap.svg
Created May 10, 2022 09:20
Hackaday Logo, Jolly Wrencher SVG, No Background
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.