Skip to content

Instantly share code, notes, and snippets.

@MatthaeusHarris
MatthaeusHarris / str_to_int.c
Created September 19, 2017 21:11
str_to_int function, with no bounds error checking
#include <stdio.h>
int char_is_int(char c) {
return c >= '0' && c <= '9';
}
int char_to_int(char c) {
return c - '0';
}
@MatthaeusHarris
MatthaeusHarris / interfaces
Created July 30, 2018 17:25
OpenVSwitch Proxmox VLAN configuration
auto lo
iface lo inet loopback
allow-vmbr0 vlan4
iface vlan4 inet static
address 172.16.4.38
netmask 255.255.254.0
gateway 172.16.4.1
ovs_type OVSIntPort
ovs_bridge vmbr0
def hsv2rgb(h,s,v):
"""
0 <= h < 360 # Hue
0 <= s <= 255 # Saturation
0 <= v <= 255 # Value
Hue: position on the color wheel (0 is red)
Saturation: How much of the color is present
Value: How bright the resultant color is
def hsv2rgb(h,s,v):
"""
0 <= h < 360 # Hue
0 <= s <= 255 # Saturation
0 <= v <= 255 # Value
Hue: position on the color wheel (0 is red)
Saturation: How much of the color is present
Value: How bright the resultant color is
@MatthaeusHarris
MatthaeusHarris / Makefile
Created February 18, 2019 02:46
Working, hack-ish makefile
PRG = binaryclock
MCU_TARGET = atmega328p
PROGRAMMER = usbtiny
PFLAGS = #-P /dev/ttyUSB0
OPTIMIZE = -Os
DEFS = -DF_CPU=1000000UL
LIBS =
HEADERS =
@MatthaeusHarris
MatthaeusHarris / Makefile
Created February 18, 2019 02:48
Non-working makefile (compiles, but code does not run on microcontroller)
PRG = binaryclock
MCU_TARGET = atmega328p
PROGRAMMER = usbtiny
PFLAGS = #-P /dev/ttyUSB0
OPTIMIZE = -Os
DEFS = -DF_CPU=1000000UL
LIBS =
HEADERS =
@MatthaeusHarris
MatthaeusHarris / Makefile
Created February 18, 2019 02:48
Non-working makefile (compiles, but code does not run on microcontroller)
PRG = binaryclock
MCU_TARGET = atmega328p
PROGRAMMER = usbtiny
PFLAGS = #-P /dev/ttyUSB0
OPTIMIZE = -Os
DEFS = -DF_CPU=1000000UL
LIBS =
HEADERS =
@MatthaeusHarris
MatthaeusHarris / function_pointer_array.c
Created October 5, 2019 21:24
Quick and dirty state machine with function pointers in C
#include <stdio.h>
// Declare three functions that return nothing and accept a single pointer to an int as an argument
void state1(int *);
void state2(int *);
void state3(int *);
// Set up our state definitions. Using bare numbers in code itself is an anti-pattern.
const int STATE_1 = 0;
const int STATE_2 = 1;
@MatthaeusHarris
MatthaeusHarris / login.py
Created December 20, 2019 20:48
Python3 script to stay logged in to a captive portal wifi network with a very short timeout
#!/usr/bin/env python3
# pip3 install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import time
@MatthaeusHarris
MatthaeusHarris / setup.yaml
Created March 26, 2020 18:39
Mattflix setup
---
- name: Update all packages
hosts: all
tasks:
- name: Update all packages
package:
name: "*"
state: latest
- name: Setup NFS Mounts